nobody 发表于 2016-4-29 03:37:55

如何取消块的动态

试图使动态块不动态...有人能帮我完成这个吗?    block table Bt = db,block table id . GetObject(OpenMode,ForRead)作为块表;。
foreach(Bt中的ObjectId objId)。
{。
block table record btr =(block table record)objId,GetObject(OpenMode,for read);。

if (btr,IsDynamicBlock)。
{。

}。
**** Hidden Message *****

kdub 发表于 2016-4-29 03:58:04

它们有文本属性吗?
胡乱猜测
而不看看是否有预建的解决方案。
没有属性。
确定数据库中的最后一个实体。获取其句柄
分解块
收集上一个后的实体
用这些实体创建一个新块。
如果有属性,您需要记住tag:value对,并将它们重置到新的块中。
可能有更简单的解决方案。

nobody 发表于 2016-4-29 04:03:26

发现这个:http://through-the-interface.typepad.com/through_the_interface/2014/09/exploding-nested-autocad-blocks-using-net.html
要尝试一下吗?

kdub 发表于 2016-4-29 04:07:33


我期待您关于该过程的论文。

nobody 发表于 2016-4-29 04:18:25


哦...以为它说的是动态块...不是嵌套的......我应该更仔细地阅读东西,哈哈...睡觉。

Panzee 发表于 2016-4-29 06:35:27

如果编辑块引用适合您的过程,也许函数
ConvertToStaticBlock(string new block name)可以满足您的需要。
它是Autodesk的成员。AutoCAD . database services . block reference

nobody 发表于 2016-4-29 19:00:43

它工作得很完美。谢谢
页: [1]
查看完整版本: 如何取消块的动态