论坛首页 编程语言技术论坛

autocad下菜单创建

浏览 4275 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-07-01   最后修改:2010-07-01

环境: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形式
           
        }

 

 效果如下图

 

  • 大小: 77 KB
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics