CAD二次开发&C#.Net编程-CAD创建右键菜单

21 篇文章 2 订阅
3 篇文章 0 订阅
该博客介绍了如何使用C#.Net进行AutoCAD的二次开发,特别是如何创建和卸载右键菜单。通过示例代码展示了如何在BlockReference对象的右键菜单中添加"竖井"插入功能,用户可以指定插入点来添加竖井到模型空间。
摘要由CSDN通过智能技术生成

CAD二次开发&C#.Net编程-CAD创建右键菜单


 		private static ContextMenuExtension m_ContextMenu;
 		
 		//装载右键菜单
        public static void Attach()
        {
            //右键菜单 对象
            m_ContextMenu = new ContextMenuExtension();

            m_ContextMenu.Title = "修改";

            //右键菜单项及其事件
            MenuItem MenuItem_1 = new MenuItem("竖井");
            
            MenuItem_1.Click += new EventHandler(MenuItem_1_Click);
            
            //菜单项添加到右键菜单
            m_ContextMenu.MenuItems.Add(MenuItem_1);
            
            //加入到应用程序级的右键菜单中
            // Application.AddDefaultContextMenuExtension(m_ContextMenu);

            //加入到某一种对象的右键菜单中
            RXClass rxClass = Entity.GetClass(typeof(BlockReference));
            Application.AddObjectContextMenuExtension(rxClass, m_ContextMenu);

        }

		//卸载右键菜单
        public static void Detach()
        {
            Application.RemoveDefaultContextMenuExtension(m_ContextMenu);
        }
		
		//将竖井插入模型空间的事务处理
        private static void MenuItem_1_Click(object sender,EventArgs e)
        {
            Database db = HostApplicationServices.WorkingDatabase;
            Editor ed = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument.Editor;
            ObjectId SpaceId = db.CurrentSpaceId;
            PromptPointResult ppr;
            PromptPointOptions ppa = new PromptPointOptions("\n 指定插入点:")
            {
                UseBasePoint = false
            };
            ppr = ed.GetPoint(ppa);
            Point3d location;
            if (ppr.Status != PromptStatus.OK)
            {
                return;
            }
            else
            {
                location = ppr.Value;
            }
            
            //保留小数点后4位
            string x = location.X.ToString("f4");
            string y = location.Y.ToString("f4");
            
            Set4mShaft(db, SpaceId, x+" "+y+" 竖井", location, layername);
        }
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值