对象持久化数据是否保存完毕?
我正在编写一个例程,该例程在AutoCAD绘图上执行一系列计算,获取折线等区域,但我偶然发现了一个...“脑筋急转弯”(当然是为了我的小VBA'd-to-die大脑)。我允许用户选择他们不希望包含在计算中的对象集,到目前为止,我一直将他们的ObjectID、图层名称和区域存储在列表框中。他们还可以从“排除”列表中删除对象。但是,在同一会话中这很好,但我从未检查过这些数据是否会在保存后持久存在。事实并非如此。当您关闭并重新打开绘图时,任何给定对象的ObjectID都与您上次打开它时不同。
我曾考虑过为他们选择的每个对象创建“动态”排除层(扩展名为“-排除”),然后将对象移动到该层的想法。这个想法对于排除一个对象很好,但是如果在同一层上有多个对象被排除(或者对于块,两个同名)会发生什么?我的脚本如何知道再次包括哪些计算?
当然,我可以在对象上存储一些额外的数据,例如它的区域,但这取决于这样一个事实,即用户不会更改折线的区域,因为它被排除在计算之外,并且也不会工作块。
有人有什么建议吗?
**** Hidden Message ***** 谢谢,我甚至没有想过:丑陋:。我现在就去做 我不确定我是否完全理解您的问题,但听起来至少部分原因是由于ObjectId不是从一个AutoCAD会话到另一个AutoCAD会话的持久性。 如果是这样,您可能需要查看文档中有关句柄的信息。
我也想说同样的话...句柄是持久的,直到/除非你对绘图进行写块操作(我经常这样做) 字典中的句柄用于持久对象排除......“说得够多了。
伟大的头脑是一样的,嗯,查克?
干杯,
格伦。 顺便说一句,ObjectIds是在句柄之外计算的...
医生说格伦和我并不是两个截然不同的人。他们认为格伦只是我需要坚强时浮出水面的一部分,但我们知道得更清楚。不是吗格伦?哦,是的,我们知道... 知道...?知道什么...!?谁说的!?! 抱歉回来晚了...我选择了handles的想法,而不是用XData瞎忙活-看起来很好
谢谢各位。
页:
[1]