cdcongcong 发表于 2011-6-3 15:53:07

读取块参照中的对象是否只能用Explode方法

请教:
1、图纸中定义了块A,块A中定义了多个多段线,VBA要取图纸中多个块A参数中的多段线坐标,是否只能取到一个块A的参照后,Explode再取出多个多段线对象的坐标。不Explode可以取得到不?
2、VBA中如何执行Undo。因为我目前的方法是采用了Explode,取到多段线坐标后,需要Undo回图纸的原始状态。(因为有多个块参照,所以用到了ThisDrawing.StartUndoMark和ThisDrawing.EndUndoMark)

chengaokkk 发表于 2011-6-7 20:56:49

同问,希望高手解答,谢谢!

wwswwswws 发表于 2011-9-20 14:48:17

好象对于块这个东西,高手还没有出现哦。我也是对这个块很茫然啊。正在学习这个块的操作。望高手解答,谢谢!

yzg_208 发表于 2013-7-23 22:19:29

不需要Undo,Explode后的实体在一对象数组里,而原块还在。你再对象数组里完成操作后删除对象数组就OK

wylong 发表于 2013-7-25 13:58:40

楼上正解。

badgirl010 发表于 2013-9-9 10:57:26

不需要,看这段
                For Each sub_Ent In ACADDoc.Blocks(Ent.Name)
      
                                 If sub_Ent.ObjectName = "AcDbBlockReference" Then
   
。。。。。。可以遍历块中的子块,当然也可以访问块中的其他图形对象,只要将sub_Ent.ObjectName 的值改一下即可。

Helix.xu 发表于 2018-9-26 18:10:36

对象数组新名词需要学习下

zhangaofeng 发表于 2019-2-8 06:37:35

For Each sub_Ent In ACADDoc.Blocks(Ent.Name)这个可以
页: [1]
查看完整版本: 读取块参照中的对象是否只能用Explode方法