Atook 发表于 2018-11-20 22:19:54

在命令处于活动状态时处理文档更改事件的最佳方法是什么?

今天注意到,如果用户在我的一个命令处于活动状态时切换活动绘图,则会出现 eLock 冲突。
测试AutoCAD的内置命令时,它们无法一致地处理开关。折线命令仅在最后一点结束,而 insert 命令将禁用切换活动图形。
处理这个问题的最佳方法是什么?
我喜欢将活动绘图锁定到当前绘图的想法,但不确定通过.NET API实现该方法的最佳方法。
**** Hidden Message *****

dgorsman 发表于 2018-11-21 10:05:58

我喜欢dotSmack方法。在切换文档之前给用户一个没有完成活动命令的耳光。最终他们会得到提示,有点像不把手指关在门上。

n.yuan 发表于 2018-11-21 10:21:10

AutoCAD 2015引入了这一重大变化:切换活动文档取消了大多数活动命令,因为删除了“光纤”属性(当然,许多现有的自定义CAD应用程序,无论是LISP/VBA/.NET,都在那时被破坏)。如果自定义命令具有会话标志,则文档切换可能会取消该命令,也可能不会取消,具体取决于该命令的功能
我为Acad2015之前的版本编写了一些项目,在迁移到Acad2015或更高版本时出现了问题,必须修复它们。在我的例子中,有一个场景是:在命令执行期间,用户需要转到另一个图形来拾取某些内容,然后返回继续。我在博客中讨论过:
https://drive-cad-with-code.blogspot.com/2017/04/asking-user-to-select-entity-in-other.html
这是一个很好的例子https://drive-cad-with-code.blogspot.com/2017/04/asking-user-to-select-entity-in-other_4.html
这是一个很好的例子

Atook 发表于 2018-11-26 17:08:39

德格斯曼,我很喜欢这种“点击”方法!尽管在对象浏览器中工作了数小时,我仍然无法找到实现user.smack(trout)的dll。有线索吗?
感谢Norman的帖子,有趣的是您让用户在命令中切换文档。这是一个很酷的方法
问题在于,在取消PromptResult后重置图层时,我丢失了一个documentlock。不知道为什么我通过esc退出时没有抛出错误。也许文档开关在命令完成之前杀死了命令的文档锁?不确定,但至少我知道如何修复它。
页: [1]
查看完整版本: 在命令处于活动状态时处理文档更改事件的最佳方法是什么?