fatkids 发表于 2014-10-29 09:10:17

菜鸟求教:关于块分解的问题?

各位好!

       在Autocad里面有个操作是对“块”进行分解(或者叫炸开),可以把块分解成基本的图形元素。

      我用程序出入了块,然后用程序把“块”分解,可是出问题了,现在感觉是程序把“块”复制了之后分解的。图形上除了分解后的图形元素外,还重叠了原来的“块”。

      我用了VBA里的explode和ARX中的ExplodeToOwnerSpace,结果都是一样的。

         这个该怎么处理啊!求指教。

         谢谢啊!

wangshuping42 发表于 2014-10-29 10:20:45

把原来的块删了不就完事?

sieben 发表于 2014-10-29 10:23:24

你说的块是块记录还是块参考?

sieben 发表于 2014-10-29 10:26:59

我猜你说的是块参考,
ARX 方法的话应该只是生成新的图形实体,甚至没有提交到数据库,对原来的块参考是不动的
VBA 方法则应该是块参考不再存在,生成新的实体

fatkids 发表于 2014-10-29 10:40:12

sieben 发表于 2014-10-29 10:26 static/image/common/back.gif
我猜你说的是块参考,
ARX 方法的话应该只是生成新的图形实体,甚至没有提交到数据库,对原来的块参考是不动的 ...

感谢sieben。
你说得对,是BlockReference。
arx中,我用                  Dim BlkRef As BlockReference = ent ' trans.GetObject(ID, OpenMode.ForWrite)
                        BlkRef.ExplodeToOwnerSpace()
就像你说的,块参照是不动的,还在那里。

VBA中,我用Dim ddd As AcadObject
      For Each ddd In acadDoc.ModelSpace
                     ddd.explode()
      Next
结果还是一样的。
什么问题啊?
我的目的就是像菜单里的功能那样,炸开就行,还请指点。

sieben 发表于 2014-10-29 10:51:40

fatkids 发表于 2014-10-29 10:40 static/image/common/back.gif
感谢sieben。
你说得对,是BlockReference。
arx中,我用                  Dim BlkRef As BlockRefere ...

VBA我不熟悉,印象中应该和COM方法一样其情况和菜单操作是很类似的,
不过就如二楼朋友说的一样,假如块参考还在,你把它删除不就可以了吗?

fatkids 发表于 2014-10-29 11:17:52

本帖最后由 fatkids 于 2014-10-29 11:36 编辑

wangshuping42 发表于 2014-10-29 10:20 static/image/common/back.gif
把原来的块删了不就完事?

感谢回复!

fatkids 发表于 2014-10-29 11:25:18

本帖最后由 fatkids 于 2014-10-29 11:36 编辑

sieben 发表于 2014-10-29 10:51 static/image/common/back.gif
VBA我不熟悉,印象中应该和COM方法一样其情况和菜单操作是很类似的,
不过就如二楼朋友说的一样,假如块参考 ...

谢谢!
页: [1]
查看完整版本: 菜鸟求教:关于块分解的问题?