CAD 双击实体事件

article/2025/10/15 5:28:59

CAD本身为我们提供的双击事件的设置。工具-工作空间-自定义...打开用户自定界面

窗体内找到双击动作。在双击动作下我们可以看到CAD自带的所有实体

例如我们在双击三维实体时自定义一个事件。那么我们就选中三维实体-快捷特性。在右侧特性里编辑宏内容。以下是系统彼带的宏$M=$(if,$(and,$(>,$(getvar,blockeditlock),0)),^C^C_properties,^C^C_bedit)

在些我们只需要将最后的bedit替换成,我们自定义的命令即可。例如:我的命令为"aaa",将宏修改为$M=$(if,$(and,$(>,$(getvar,blockeditlock),0)),^C^C_properties,^C^C_aaa)保存确定后。当我们在CAD内双击三维实体后CAD自动执行命令aaa。这样我们可以通过此方法来注册CAD双击事件。

1. 修改操作实体的双击动作宏

2. 注册一个新的命令做为事件

以下源代码来源于https://adndevblog.typepad.com/autocad/2012/12/customizing-double-click-on-block-reference.html

在插件初始化函数内加入注册事件(修改双击动作宏)
 

public class Connect : IExtensionApplication    
{        public void Initialize()        {        // 修改双击动作宏RegeditDoubleClickEvent();        }
}/// <summary>/// 注册双击事件/// </summary>public static void RegeditDoubleClickEvent(){Autodesk.AutoCAD.ApplicationServices.Document activeDoc= Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;Autodesk.AutoCAD.EditorInput.Editor ed = activeDoc.Editor;// Retrieve the location of, and open the ACAD Main CUI Filestring mainCuiFile =(string)Autodesk.AutoCAD.ApplicationServices.Application.GetSystemVariable("MENUNAME");mainCuiFile += ".cuix";Autodesk.AutoCAD.Customization.CustomizationSection cs = new Autodesk.AutoCAD.Customization.CustomizationSection(mainCuiFile);Autodesk.AutoCAD.Customization.DoubleClickAction blockDoubleClickAction = null;foreach (Autodesk.AutoCAD.Customization.DoubleClickAction dca incs.MenuGroup.DoubleClickActions){// 这里要注意,如果是英文版CAD,请使用英文名称。具体对象名称可在CAD自定义面板内查询if (dca.Name.Equals("三维实体")){blockDoubleClickAction = dca;break;}}if (blockDoubleClickAction != null){// Change the double click macro to call our commandblockDoubleClickAction.DoubleClickCmd.MenuMacroReference.macro.Command= "$M=$(if,$(and,$(>,$(getvar,blockeditlock),0)),^C^C_properties,^C^C_aaa)";// Save our changes if (cs.IsModified)cs.Save();}}

注册命令aaa

/// <summary>/// 三维实体双击命令/// </summary>[CommandMethod("aaa", CommandFlags.UsePickSet)]static public void MyBeditCommand(){Document activeDoc= Application.DocumentManager.MdiActiveDocument;Editor ed = activeDoc.Editor;PromptSelectionResult result = ed.GetSelection();if (result.Status == PromptStatus.OK){SelectionSet ss = result.Value;foreach (SelectedObject so in ss){bool isMyBlockRef = false;Database db = activeDoc.Database;using (Transaction tr= db.TransactionManager.StartTransaction()){if (BLL.ComTools.GetH3DType(so.ObjectId) == Model.EnumH3DEntityType.Slot)isMyBlockRef = true;//Entity ent//    = tr.GetObject(//                    so.ObjectId,//                    OpenMode.ForRead//                  ) as Entity;Lets check for XData to identify if we need to show our dialog//if (ent.GetXDataForApplication(RegAppName) != null)//{//    isMyBlockRef = true;//}tr.Commit();}if (isMyBlockRef){// Custom action such as showing our form.// Just as a demo we use the alert dialogApplication.ShowAlertDialog("Custom action such as showing our form.");}else{// Let AutoCAD do the block edit.ObjectId[] ids = ss.GetObjectIds();// Set the implied selection to what it was // before our command was calleded.SetImpliedSelection(ids);// call "bedit" commandactiveDoc.SendStringToExecute("_BEDIT ",false,false,false);}}}}

这里的BLL.ComTools.GetH3DType是我自己的方法。在制作三维实体时我标记了三维实体的类型并写入到三维实体的XDATA内。该方法就是从该实体内取出XDATA。来获取实体类型。通过验证实体类型来区分是打开CAD自带的属性窗体,还是执行我们自定义的方法。


http://chatgpt.dhexx.cn/article/xw0oOQfu.shtml

相关文章

深入探索透视投影变换(续)

-潘宏 -2009.4.14 -本人水平有限&#xff0c;疏忽错误在所难免&#xff0c;还请各位数学高手、编程高手不吝赐教 -email: popyynetease.com -B站专栏&#xff1a; https://b23.tv/oWsl6PD 在上一篇文章中我们讨论了透视投影变换的原理&#xff0c;分析了OpenGL所使用的透视…

凯文·凯利:AI将改变一切设计工作

每一项新技术诞生之初都会引发新一轮科技恐慌周期&#xff0c;近期大火的AI生成艺术更是如此。连线杂志创始主编、知名科技思想家凯文凯利&#xff08;Kevin Kelly&#xff09;在6个月重度使用之后认为&#xff0c;这次AI进展的确是一次令人震惊的突破。但是&#xff0c;它不会…

鼠标双击退出应用程序简单实现

文章目录 Android 简单模拟鼠标双击退出应用程序&#xff0c;利用Toast提示“再点一次退出”使用Toast鼠标单击提示信息鼠标双击实现退出系统 Android 简单模拟鼠标双击退出应用程序&#xff0c;利用Toast提示“再点一次退出” 使用Toast // 参数&#xff1a;当前上下文环境&…

如何用JavaScript完美地区分双击和单击事件

通过一个悬浮球交互功能的案例来阐述问题&#xff0c;以及解决办法。 实现效果 类似微信里的悬浮窗效果&#xff0c;苹果手机的悬浮球功能效果 1.可以点击拖动&#xff0c;然后吸附在窗口边缘2.点击悬浮球&#xff0c;可以跳转界面&#xff0c;或者更改悬浮球的形态准备 1.移…

单机显示、双击隐藏;事件绑定、单击div、双击div、删除事件;元素显示、隐藏、交替; 向上收缩、向下展开、交替;淡入淡出

单机显示、双击隐藏 <style>div {width: 500px;height: 200px;background-color: green;display: none;} </style> <body><button id"btn">单击显示&#xff0c;双击隐藏</button><br><br><div> </div&…

干货分享 | UE游戏鼠标双击判定

UE虚幻引擎对于游戏开发者来说都不陌生&#xff0c;市面上有47%主机游戏使用虚幻引擎开发游戏。作为是一款游戏的核心动力&#xff0c;它的功能十分完善&#xff0c;囊括了场景制作、灯光渲染、动作镜头、粒子特效、材质蓝图等。本文介绍了虚幻引擎游戏开发过程中游戏鼠标双击判…

鼠标单击变双击问题

解决此问题可以从硬件和软件两方面思考角度入手:我们先把鼠标插在别人的机器上使用,如果没发现问题可能是软件问题,若发现同样的问题则可能是硬件方面的问题。 软件方面:(1)病毒导致将杀毒软件病毒库更新至最新版,全盘扫描。 (2)鼠标属性设置不当我们打开控制面板-&…

鼠标双击事件

随时随地阅读更多技术实战干货&#xff0c;获取项目源码、学习资料&#xff0c;请关注源代码社区公众号(ydmsq666) java中没有给出鼠标双击事件&#xff0c;虽然可以通过事件源e.getClickCount()2来判断鼠标点击次数&#xff0c;但是执行双击事件的同时也执行了单击事件&#x…

关于双击与单击事件冲突解决方案

有时候会要需求要求&#xff0c;比如附件&#xff0c;单击查看详情&#xff0c;双击下载文件时遇到的双击单击事件同时绑定一个节点。 比如单击click&#xff0c;dlbclick同时绑定时&#xff0c;双击会同时触发&#xff0c;而且click会触发两次。单用click来处理双击单击同时存…

TRUE PARTNER迎来戴维斯双击,资产规模业绩双增长

配图来自Canva可画 2020年可谓是黑天鹅乱舞的一年&#xff0c;新冠疫情肆虐全球&#xff1b;原油危机引发的资本市场动荡&#xff1b;地缘政治冲突以及美国大选&#xff0c;市场处于时不时来一波的上蹿下跳的状态当中。 在资本市场波动加剧的大环境中&#xff0c;有这样一家奇…

慧择业务布局成效明显,戴维斯双击可期

“没有一个冬天不会过去&#xff0c;没有一个春天不会到来”。 过去的一年&#xff0c;美股市场波折不断&#xff0c;尤其是2020年3月份的4次熔断&#xff0c;让股神巴菲特都惊呼“活久见”。 过去的一年&#xff0c;美股市场惊喜不断&#xff0c;道琼斯指数更是在2020年11月创…

流动性持续改善,佳源国际迎来“戴维斯双击”?

随着上半年密集的救市政策出台&#xff0c;房地产行业迎来触底回暖。 5月&#xff0c;央行以不低于市场报价利率20个基点调整首套房贷款利率下限&#xff0c;这也让当前金融环境在近几年处于较为宽松的阶段。 据克而瑞研究中心观点&#xff0c;因冲刺年中业绩&#xff0c;房企…

湖人詹姆斯 戴维斯 拉塞尔三人合体就赢!

湖人主力詹姆斯&#xff08;LeBron James&#xff09;球星成为NBA新历史得分王后&#xff0c;连3战因伤缺席&#xff0c;今天主场对抗鹈鹕终于回归&#xff0c;和戴维斯&#xff08;Anthony Davis&#xff09;、拉塞尔&#xff08;DAngelo Russell&#xff09;三人连线&#xf…

九龙证券|游戏板块或继续迎来业绩估值“戴维斯双击”

机构指出&#xff0c;AIGC技术及产品现在已在游戏职业有部分使用&#xff0c;中长期来看&#xff0c;对游戏制作的降本增效、内容质量进步有较强的促进作用&#xff1b;当前游戏版号常态化发放&#xff0c;政策端不确定性降低&#xff0c;预计产品周期是成绩的要害驱动&#xf…

戴维斯双击背后的故事 - 读《戴维斯王朝》

一、序言 作为一个对炒股知识孤陋寡闻的新手&#xff0c;我最近才听说「戴维斯双击」&#xff0c;于是买了《戴维斯王朝》了解了一下戴维斯本人以及他的成功故事。看完书后&#xff0c;我感觉戴维斯本人还真算是一段传奇经历。 戴维斯的投资回报率和巴菲特对等&#xff0c;他投…

科普一下,什么是戴维斯双击和戴维斯双杀?

创业板受到多重利空压制而大跌&#xff0c;上证也受到拖累&#xff0c;只有上证50小幅翻红。创业板依然是下跌趋势&#xff0c;不要瞎猜底部&#xff0c;更不要轻易抄底&#xff0c;要以均线为准&#xff0c;反弹站上5日线才有短线机会。主板部分板块仍然是处于上升趋势&#x…

股票策略 —— 戴维斯双击

1、策略概述 这里的戴维斯是美国的一个投资大师&#xff0c;38 岁才开始投资生涯&#xff0c;初始资金 5 万美元&#xff0c;最终财富达到 9 亿美元&#xff0c;并登上福布斯400 富豪榜。他投资策略中的选股的要点是良好的管理、持续增长及低估值。 后来基于这两个原则&#x…

戴维斯双击策略的实现与验证

戴维斯双击策略的实现与验证 戴维斯效应简述&#xff1a; 戴维斯双击和戴维斯双杀&#xff1a; 戴维斯效应&#xff0c;就是有关市场预期与上市公司价格波动之间的双倍数效应。也就是说当一个公司利润持续增长使得每股收益提高&#xff0c;同时市场给予的估值也提高&#xf…

如何在Github上建立自己的个人博客网站详细教程

概述 之前闲着没事,就利用Github建了一个个人博客网站,效果还不错,今天就来分享一下. 建立自己个人博客网站的好处: 1.面试装逼,这个不必多说… 2.把平时积累的知识和项目记录下来,方便日后查看使用 3.不受其他博客平台的限制 准备工作 开始之前,先大致介绍一下用到的技术和…

怎么创建自己的博客网站

怎么创建自己的博客网站最简单的方法还是使用wordpress系统来搭建&#xff0c;使用者不需要掌握很多的专业知识就能独立操作。 首先&#xff0c;在wordpress官网上&#xff08;https://wordpress.org/&#xff09;下载wordpress-5.1.zip这个压缩包。 其次&#xff0c;登录空间…