首页 > 编程语言 >C# 开发cad 添加菜单栏下拉子菜单

C# 开发cad 添加菜单栏下拉子菜单

时间:2023-08-09 16:36:34浏览次数:62  
标签:Count pmParnet C# MenuGroups app 下拉子 菜单栏 Item AddMenuItem

 

[CommandMethod("caidan")]
   public void ShowJingDianMenu()
    {
      try
         {
                IAcadApplication app = Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication as AcadApplication;

                if (app == null) return;

                Document doc = Application.DocumentManager.MdiActiveDocument;

                Database db = doc.Database;

                Editor ed = doc.Editor;

                if (app.MenuGroups == null || app.MenuGroups.Item(0) == null) return;

                AcadMenuGroups acadMenuGroups = app.MenuGroups;

                int index = 0;

                foreach (AcadMenuGroup item in acadMenuGroups)
                {
                    string name = item.Name;

                    //name.ToLower() == "3dtool_menugroup"

                    if ( name.ToLower() == "amacad")

                        break;

                    index++;

                }

                for (int i = 0; i < app.MenuGroups.Item(index).Menus.Count; i++)

                {

                    if (app.MenuGroups.Item(index).Menus.Item(i).Name == "3DTool")

                    {

                        //app.MenuGroups.Item(index).Menus.Item(i).RemoveFromMenuBar();

                        ed.WriteMessage("3DTool已存在菜单组!");

                        return;

                    }

                }

                //添加根菜单

                AcadPopupMenu pmParnet = app.MenuGroups.Item(index).Menus.Add("3DTool");

                int countmenubar = app.MenuBar.Count;

                //多级 AcadPopupMenu

                //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  
                pmParnet.AddMenuItem(pmParnet.Count + 1, "绘制模型", "_CON ");

                pmParnet.AddSeparator(pmParnet.Count + 1);

                pmParnet.AddMenuItem(pmParnet.Count + 1, "导出设备清单", "_ETOE ");

                pmParnet.AddSeparator(pmParnet.Count + 1);

                pmParnet.AddMenuItem(pmParnet.Count + 1, "修改模型", "_MDC ");

                pmParnet.AddSeparator(pmParnet.Count + 1);

                pmParnet.AddMenuItem(pmParnet.Count + 1, "修改编号", "_GAT ");

                pmParnet.AddSeparator(pmParnet.Count + 1);

                pmParnet.AddMenuItem(pmParnet.Count + 1, "输出GA图", "_GAT ");

                pmParnet.AddSeparator(pmParnet.Count + 1);

                pmParnet.AddMenuItem(pmParnet.Count + 1, "导出BOM清单", "_EBOM ");

                pmParnet.AddSeparator(pmParnet.Count + 1);

                pmParnet.AddMenuItem(pmParnet.Count + 1, "镜像和改属性", "cusmirror ");

                //将创建的菜单加入到CAD的菜单中
                pmParnet.InsertInMenuBar(countmenubar + 1);
                ed.WriteMessage("3DTool工具条生成完成!");
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }


com 接口添加菜单栏

C#  开发cad 添加菜单栏下拉子菜单_Group

标签:Count,pmParnet,C#,MenuGroups,app,下拉子,菜单栏,Item,AddMenuItem
From: https://blog.51cto.com/u_15825922/7022037

相关文章

  • ChatGPT提示词
    提示✂️充当Linux终端贡献者: @f 参考: https://www.engraved.blog/building-a-virtual-machine-inside/我希望你充当Linux终端。我将键入命令,您将回复终端应显示的内容。我希望你只回复一个唯一代码块中的终端输出,没有别的。不要写解释。除非我指示你这样做,否则不要键入命......
  • ActionBar样式解析
    Android的装饰风格有多种,这些风格的不同之处主要体现在标题栏区域。比如最普通的标题栏仅有图标和标题。还有一些其他的风格,如带进度条的标题栏等。       在Android4.0上,有了新的标题栏,名为ActionBar,它提供了能强大的功能,如支持TAB页,支持菜单等。下面将分析主要的ActionBar......
  • C99 Clion 项目目录结构 CMakeLists.txt
    简单helle目录如下.├──CMakeLists.txt├──hello│  └──hello.c└──main.cmain.c#include"hello//hello.c"intmain(){print_hello();return0;}hello.c#include<stdio.h>staticvoidprint_hello();voidprint_hello(){pr......
  • onlyoffice 文件大小限制
    onlyoffice打开文件大小限制修改本次使用的是onlyoffice社区镜像版本版本号为7.11.先启动onlyoffice把/etc/onlyoffice/documentserver/default.jsoncopy到宿主机中命令为:brdockercp96f7f14e99ab:/etc/onlyoffice/documentserver/default.json/onlyoffice/default.json2......
  • Angular FormControl value属性的一些事
    背景:一个输入校验,允许输入多行,每一行是ip或网段。写了个校验,将其按行拆分后单独校验。1. FormControl无法深复制使用JSON.parse(JSON.stringify(control))进行简单深复制报错,因为不是json类型;使用deepClone进行递归深复制,直接栈溢出。考虑到代码的健壮性,已经有单独校验......
  • ThinkSystem SR系列 服务器配置RAID和BMC
    ThinkSystemSR系列服务器配置RAID和BMC前提条件:准备一台笔记本,一根网线,直连服务器imm网卡。1、修改笔记本ip与服务器默认带外管理ip(192.168.70.125)同网段,不同服务器默认ip可能有所不同。2、浏览器输入https://192.168.70.125 默认账号密码,登录xcc管理平台,然后打开......
  • 详解inline-block
    曾几何时,display:inline-block已经深入「大街小巷」,随处可见「display:inline-block;*display:inline;*zoom:1;」这样的代码。如今现代浏览器已经全面支持这个属性值了,上面的代码只是为了兼容IE6、7而已。那么你真的了解inline-block了吗?本文将带你深入剖析该属性值的前世......
  • 细说Cache(转)
    转 什么是缓存?Web应用程序通常都是被多个用户访问。一个Web站点可能存在一个“重量级”的加载,它能够使得站点在访问的时候,拖慢整个服务器。当站点被大量用户同时访问的时候,访问速度缓慢是大部分网站共同存在的问题。为了解决这个问题,我们可以使用一个更高级别的硬件配置,负载均衡......
  • 使用clayui制作界面的整套工程流程
              今天介绍一下利用clayui制作界面的工作流程,包含以下内容:1.  使用clayui编辑系统制作一个简单的界面,          2.  添加鼠标消息响应,并制作对应的互动动画效果          3.  输出界面文件,皮肤文件,布局文件          ......
  • 什么是HCK认证?什么是HLK认证?
    HCK认证和HLK认证都是WHQL认证的一种,使用WHQL认证的测试工具(HCK或HLK)对硬件设备或驱动程序进行测试,测试通过后即表示该硬件设备或驱动程序满足Windows操作系统兼容性要求,可获得“DesignedforWindows”徽标的使用资格,并将其产品列入硬件兼容性列表(HCL)和Windows目录。什么是HCK......