环境:vs2005,autocad2008
using System.Windows.Forms;
using System.Collections; // For ArrayList
using System.Diagnostics;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Colors;
using Autodesk.AutoCAD.EditorInput;
using Interop = Autodesk.AutoCAD.Interop;
using services=Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Windows;
using AutoCAD = Autodesk.AutoCAD;
using System;
using System.Collections.Generic;
using System.Text;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Interop;
using Autodesk.AutoCAD.ApplicationServices;
using System.Reflection;
类 需要实现接口 IExtensionApplication,并实现 Initialize()方法,该方法是在dll文件被加载时,进行 系统 初始化
,并在 Initialize()中添加以下 代码 ,即可实现导航菜单的新增
//COM方式获取AutoCAD应用程序对象
AcadApplication acadApp = (AcadApplication)services.Application.AcadApplication;
//为AutoCAD添加一个新的菜单,并设置标题为"我的菜单"
AcadPopupMenu pm = acadApp.MenuGroups.Item(0).Menus.Add("建筑节能");
//声明一个AutoCAD弹出菜单项,用于获取添加的菜单项对象
AcadPopupMenuItem pmi;
//在新建的菜单中添加一个名为"圆"的菜单项,以调用绘制圆命令
pmi = pm.AddMenuItem(pm.Count + 1, "热评估", "topMenu ");
pm.InsertInMenuBar(acadApp.MenuBar.Count + 1);
核心代码为
pmi = pm.AddMenuItem(pm.Count + 1, "热评估", "topMenu ");
第一个参数表示菜单的位置,第2个为菜单名,第3个参数为需要调用的autocad命令,可以是系统自带的命令诸如_help.也可以自定义,这个是使用的自定义命令topMenu,作用为当点击菜单热评估的时候,打开一个新 窗体
[CommandMethod("topMenu")]
public void addTopMenu() {
Form1 f = new Form1();//new 一个新窗体
Autodesk.AutoCAD.ApplicationServices.Application.ShowModalDialog(f);//以autocad的方式打开,而非winForm形式
}
效果如下图
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删