zhuxuhong 发表于 2005-6-12 08:09:00

[VBA]为什么不能炸开?

为什么不能炸开?
Dim DwgBlock As AcadBlockReference
Dim insertionPnt(0 To 2) As Double
ThisDrawing.Application.Documents.Open (Text3.Text)
Set DwgBlock = Nothing
'''插入点
insertionPnt(0) = 0#: insertionPnt(1) = 0#: insertionPnt(2) = 0#
Set DwgBlock = ThisDrawing.ModelSpace.InsertBlock(insertionPnt, Text4.Text, 1#, 1#, 1#, 0)
DwgBlock.Explode
''''''''''''DwgBlock并没被炸开
ZoomExtents
ThisDrawing.Save
为什么将一幅图插入另一幅图时无法炸开?

zhang007 发表于 2005-6-12 11:05:00

''''''''''''DwgBlock已经被炸开了,加上一句DwgBlock.Delete

zhuxuhong 发表于 2005-6-12 12:32:00

我这样试了,图块上的属 性丢失了,线段上的倒还在。

mccad 发表于 2005-6-12 15:30:00

通过程序炸开的块跟在界面上直接炸开有区别,通过VBA炸开,则是另外产生炸开后的图元,而要炸开的块还是存在,所以必须通过程序删除它。
对于属性块炸开,则属性会变成属性定义,而属性显示的值会变回属性标签。
所以必须在炸开前取得属性值,炸开后用该值替换属性标签的内容。

zhuxuhong 发表于 2005-6-13 11:46:00

谢谢mccad,我再试试

wyj7485 发表于 2005-6-13 12:12:00

既是属性块,又何必要炸开呢?可以做成不带属性的块,这样就不会出现此问题.
页: [1]
查看完整版本: [VBA]为什么不能炸开?