CAD2012二次開發-導航欄的實現

開發環境
win10+ VS2015 Enterprise+ CAD2012簡體中文版
項目創建
CAD插件項目創建簡單實例
項目引用
AcCui.dll acdbmgd.dll acmgd.dll AutoCAD(COM)
在這裏插入圖片描述
新建一個類 Main

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Customization;
using System.Collections.Specialized;
using Autodesk.AutoCAD.Interop; //獲取CAD應用程序

[assembly: CommandClass(typeof(_13_CAD.Main))]
namespace _13_CAD
{
    class Main
    {

        [CommandMethod("SMM")]
        public void ShowMyMenu()
        {
            //獲取CAD應用程序
            AcadApplication app = (AcadApplication)Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication;
            for (int i = 0; i < app.MenuGroups.Item(0).Menus.Count; i++)
            {
                if (app.MenuGroups.Item(0).Menus.Item(i).Name == "我的菜單Com")  //判斷菜單是否已存在,如果存在則不再創建
                    return;
            }

            AcadPopupMenu pmParnet = app.MenuGroups.Item(0).Menus.Add("CAD文件託管");  //添加根菜單

            //多級
            AcadPopupMenu pm = pmParnet.AddSubMenu(pmParnet.Count + 1, "打開");
            AcadPopupMenuItem pmi0 = pm.AddMenuItem(pm.Count + 1, "文件  ", "OPEN1\n");  //第一個參數是在菜單項中的位置(第幾項),第二個參數是顯示的名稱,第三個參數是點擊之後執行的命令
            AcadPopupMenuItem pmi1 = pm.AddMenuItem(pm.Count + 1, "模版  ", "OPEN2\n");

            //單級
            AcadPopupMenuItem pmi2 = pmParnet.AddMenuItem(pmParnet.Count + 1, "退出  ", "EXIT\n");

            //將創建的菜單加入到CAD的菜單中
            pmParnet.InsertInMenuBar(app.MenuBar.Count + 1);
        }
    }



}

打開註冊表
1.跟着數字找
在這裏插入圖片描述
2.在Applications項下新建項
在這裏插入圖片描述

3.新項說明在這裏插入圖片描述

4.定義初始化類Init

//實現插件在菜單欄中自動顯示
    public class Init : IExtensionApplication
    {
        #region IExtensionApplication 成員
        //在程序集初始化時
        public void Initialize()
        {
            //在程序集被初始化時,執行創建菜單操作,再配合註冊表設置可以實現菜單的自動加載
            Main main = new Main();
            main.ShowMyMenu();
        }
        //在程序集被卸載時(也可以理解爲CAD關閉時)
        public void Terminate()
        {

        }

        #endregion
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章