sovby 发表于 2016-4-21 22:57:12

使用硬指针管理图层

我的办公室里有一个用户,他用我想保留在图纸中的图层清除Autocad图纸。Augi论坛中的某人建议使用硬指针来防止图层被删除。有没有人做过类似的事情?我没有太多使用xrecords的经验。这是论坛帖子的一个示例。“硬指针应该防止指向的对象(在本例中为层)被清除。指针将驻留在扩展字典中的 XRecord 下,可能附加到 Layers 集合或名为对象字典的图形中。这是否有效,如果是这样,我将如何去做?
**** Hidden Message *****

gile 发表于 2016-4-22 02:15:32

翻译错误代码(429):请求 QPS 超过限制。

sovby 发表于 2016-4-22 06:47:18

翻译错误代码(429):请求 QPS 超过限制。

gile 发表于 2016-4-22 07:01:58

翻译错误代码(429):请求 QPS 超过限制。

MexicanCustard 发表于 2016-4-22 07:40:38

嗨,这是一个旧的(短)版本。以下是我现在使用的那个:公共静态T GetObject(。
此 ObjectId id,。
OpenMode mode = OpenMode.ForRead,。
布尔打开拉塞德 = 假,。
布尔力打开锁定层 = 假)。
其中 T : DBObject。
{。
if (id == ObjectId.Null)。
抛出新的 ArgumentException(“该值不能是 ObjectId.Null.”, “id”);。

Transaction tr = id.Database.TransactionManager.TopTransaction;。
if (tr == null)。
抛出新的 AcRx.Exception(ErrorStatus.NoActiveTransactions);。

返回 (T)tr.GetObject(id, mode, openErased, forceOpenOnLockedLayer);。
}无论如何,即使 ObjectId.GetObject() 的效率(略低于 Transaction.GetOject())(其效率低于 OpenCloseTransaction.GetObject() 或 ObjectId.Open()),这里的目标更多的是获得简洁易读的代码。

gile 发表于 2016-4-22 08:41:16


只是为了清楚,我没有在你的代码中挑漏洞。我知道你只是在向OP展示一个例子。我想也许你知道一些我不知道的事情,因为你对API的了解比我好。不过,谢谢你的澄清。

MexicanCustard 发表于 2016-4-22 13:21:26

我也在想你。

gile 发表于 2016-4-22 13:48:50

对不起,我在这方面是个傻瓜,但如果我理解正确,我需要将我的所有层添加到此代码中,如第1层、第2层、第3层等。此外,我不知道如何实现这一点。我是否将其编译为dll文件?这是我的模板文件。我希望所有这些层都是不可切割的。我需要在这个文件的一侧运行这个代码吗?

sovby 发表于 2016-4-22 16:44:31

告诉人们停止清除层不是更容易吗?

挫败窃听器....在这些图层上放置单个自动排列点...然后他不能清除他们...pdmode=1
他们甚至无法看到它们....

mjfarrell 发表于 2016-4-22 17:01:41

翻译错误代码(429):请求 QPS 超过限制。
页: [1] 2
查看完整版本: 使用硬指针管理图层