对象持久数据是否已保存?
我正在编写一个例程,在AutoCAD绘图上执行一系列计算,获取多段线的面积等,但我偶然发现了一个……”;脑筋急转弯;(当然是为了我那该死的小VBA大脑)我允许用户选择他们不希望包含在计算中的对象集,到目前为止,我一直在列表框中存储他们的对象ID、层名称和面积 ;它们还可以从“文件”中删除对象;不包括“;列表 ;在同一个会话中这很好,但是,我从未检查过的一点是,该数据是否在保存后持久 ;它不是#039;t、  ;关闭并重新打开图形时,任何给定对象的ObjectID都与上次打开时不同
我曾想过要“创造”;“在飞行中”;排除层(扩展名为“excluded”)他们选择每个对象,然后将对象移动到该层 ;这个想法对于排除一个对象很好,但是如果排除的同一层上有多个对象(或者对于块,两个具有相同名称),会发生什么 ;我的脚本如何再次知道要在计算中包括哪些内容
当然,我可以在对象上存储一些附加数据,例如其面积,但这取决于这样一个事实,即用户不会在将多段线排除在计算之外后更改其面积,也不会对块进行操作
有什么建议吗?
我会选择扩展数据
您可以添加一个;“排除我”;标识符到具有扩展数据的对象,然后只需将其过滤掉以供计算。 谢谢,这个想法没有#039;我甚至没有想过:丑: ;我现在就开始 本人';我不确定我是否完全理解你的问题,但听起来至少有一部分是因为ObjectId#039;从一个AutoCAD任务到另一个AutoCAD会话之间不会持久 ;如果是这样,您可能需要查看文档中关于句柄的信息。
我要说的是同一件事……句柄是持久的,直到/除非你对图形进行wblock(我经常这样做) 字典中用于持久对象排除的句柄…';努夫说
英雄所见略同,对吗
干杯,格伦。 顺便说一句,objectid是通过手柄计算的,还有其他一些东西。。。
医生说格伦和我不是;真的不是两个截然不同的人 ;他们认为当我需要强壮的时候,格伦只是我的一部分,但我们知道得更好 ;唐#039;我们不是格伦吗 ;哦,是的,我们知道; 知道知道什么。。。!?谁说的 ; 很抱歉耽误了回来的时间……我接受了用扩展数据伪造数据的想法-看起来很好,谢谢大家。
页:
[1]