[原创]翔麟专集——获取图块里的所有对象(包含子图块的对象)
本贴的内容是获取图块里的所有对象(包含子图块的对象),如何对对象进行操作,让各位自个儿去实现.因为每个人的需求都不一致.以下是我调试时的例子:
http://bbs.mjtd.com/forum.php?mod=attachment&aid=NTAxNTZ8ZDYzMzVkN2F8MTY1OTAyODg4M3w3MzI2OTE4fDc4OTcz&noupdate=yes¬humb=yes
这图块做得不咋的,它不代表什么,只用来实操而已.
http://bbs.mjtd.com/forum.php?mod=attachment&aid=NTAxNjB8MGYxMTNhYzN8MTY1OTAyODg4M3w3MzI2OTE4fDc4OTcz&noupdate=yes¬humb=yes
以上是图块嵌套的示意图.
以下是在CAD2010下加载getBlockObject命令运行,选择图块后得到的结果:复制代码下面是就是这贴子的源码工程文件
[原创]翔麟专集——获取图块里的所有对象(包含子图块的对象)
http://bbs.mjtd.com/forum.php?mod=attachment&aid=NTAxNTd8OTlhNDNjZTN8MTY1OTAyODg4M3w3MzI2OTE4fDc4OTcz&noupdate=yes¬humb=yes
**** Hidden Message *****
超版,我最近也遇到遍历慢,想另觅新方法。你这个方法可以贴一下例子出来学习一下吗? 错误 2 “Autodesk.AutoCAD.DatabaseServices.BlockReference”不包含“Name”的定义,并且找不到可接受类型为“Autodesk.AutoCAD.DatabaseServices.BlockReference”的第一个参数的扩展方法“Name”(是否缺少 using 指令或程序集引用?) 楼上是否未引用"acdbmgd"dll文件? function XML() {
}
acmgd、acdbmgd两个文件我都引用了,还是有那个错误,我用的是VS2008及CAD2007
如果只是想得到,块中所有子块呢?这样遍历所有实体太慢了,有没有办法像过滤器那样直接将所有子块一下都选择出来的方法呢?
如果只是想得到块中所有子块,做个判断就行了.
你说速度慢,我有点不怎么相信.一个图块当中再多也不会多到有多少个实体对象.
一个图块倒是感觉不到快慢。
但是要是在实际工作中使用的话,这个是真的很慢啊,我用这种方法,遍历一张图纸中所有的块大概需要10秒左右.图纸上有大概20几个块(嵌套块,大概有3、4层嵌套)
响铃遍历的是Insert实体,块参照种类比较多的时候可能比较慢
应该先遍历块表,并生成块嵌套的树结构
然后遍历块参照,简单的输出信息
页:
[1]