乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 84|回复: 6

可以检测当前层是否改变?

[复制链接]

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2015-8-16 05:21:36 | 显示全部楼层 |阅读模式
有没有可能检测出当前图层是否发生了变化?我想更新一个表单来显示当前图层,并确保它保持正确。

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

14

主题

275

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
331
发表于 2015-8-16 08:07:19 | 显示全部楼层
您可以为系统变量CLAYER设置事件处理程序。
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2015-8-16 16:25:30 | 显示全部楼层
对于任何其他可能想这样做的人来说,下面是我如何完成它的。我肯定它有问题,但它目前有效。感谢惠兹的建议,公共空层更改监视器()。
{。
acApp.SystemVariableChanged+=新的Autodesk.AutoCAD.ApplicationServices.SystemVariableChangedEventHandler(SysVariableChange);。
}。


空SysVariableChange(对象发送者,Autodesk.AutoCAD.ApplicationServices.SystemVariableChangedEventArgse)。
{。
如果(e.Name=="CLAYER")。
{。
//在这里做任何你想做的,我得到了当前图层,然后用它的名字更新了一个输入框,用与它的值匹配的颜色更新了另一个。。
字符串当前工作空间名称=(string)acApp.GetSystemVariable(e.Name);。
LayerTableRecord myLayer=MyCollectors.GetCurrentLayer();。
CurrentLayerBox.Textmylayer.Name.ToString。
CurrentLayerColorBox.BackColormylayer.Color.ColorValue。
}。

}。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2015-8-16 19:03:02 | 显示全部楼层
对Henrique的apt帖子没有什么要补充的,但是如果您需要了解更多关于图层更改的信息,您可以使用可绑定对象层(BOL),只是要注意额外的开销:
http://through-the-interface . typepad . com/through _ the _ interface/2012/07/finding-out-about-changes-to-AutoCAD-layers-via-the-Bindable-Object-Layer-using-net . html
回复

使用道具 举报

129

主题

422

帖子

5

银币

中流砥柱

Rank: 25

铜币
936
发表于 2015-8-17 00:28:18 | 显示全部楼层
谢谢
回复

使用道具 举报

24

主题

204

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
300
发表于 2015-8-17 07:49:34 | 显示全部楼层

不确定此方法会产生多少额外开销。无论您是否使用过,AutoCAD都在创建可观察集合。订阅其事件的开销不会比订阅Application.SystemVariableChanged.
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2015-8-17 14:49:18 | 显示全部楼层

不确定此方法是否会导致更多额外开销。无论你是否使用它,AutoCAD都在创建一个可观察的集合。订阅其事件并不比订阅application . system variable changed的开销更多。不是事件订阅会消耗更多的开销。
它是给定LayerTableRecord的设置在更改前的每个文档的存储,更改后的后续存储,以及之后的比较功能(如果需要确定哪些LayerTableRecord属性已更改为哪些值?)这将需要额外的开销——同样,只有在需要这种报告的情况下。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 00:41 , Processed in 0.154713 second(s), 66 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表