yswoyh 发表于 2021-11-18 13:56:07

VB插入块时会出现2个,不影响使用,但总是看到不爽

Dim acadapp As Object
Dim acaddoc As Object
Private Sub Form_Load()
    Dim cqb As String
    Dim pt As Variant
    Dim cqb_wb As Object
    cqb = App.Path & "\Wblock\bg1.dwg"
    Set acadapp = GetObject(, "autocad.application")
    Set acaddoc = acadapp.ActiveDocument

    pt = acaddoc.Utility.GetPoint(, "请指插入点")

    Set cqb_wb = acaddoc.ModelSpace.InsertBlock(pt, cqb, 1, 1, 1, 0)
    cqb_wb.Explode
    cqb_wb.Update
    'cqb_wb.Delete
End Sub
高手分析一下哪里出现问题了,叩谢

sieben 发表于 2021-11-18 14:28:33

cqb_wb.Explode
把这一行去掉试试?

bluelover 发表于 2021-11-19 09:14:15

这几行注释掉
'cqb_wb.Explode
   'cqb_wb.Update
    'cqb_wb.Delete

添加这几行
dim NewObj as variant
newObj=cqb_wb.Explode
cqb_wb.Delete

yswoyh 发表于 2021-11-19 16:12:49

bluelover 发表于 2021-11-19 09:14
这几行注释掉
'cqb_wb.Explode
   'cqb_wb.Update


牛!真的不显示重新定义块了,有点不太明白,望详解

bluelover 发表于 2021-11-19 17:20:47

Explode后会保留原来的块,同时生成新的一组爆炸后的图元。
我给你的代码就是将爆炸后的图元赋值给newObj,然后删除原来的块。
留下的实际上是爆炸后的图元。

chixun99 发表于 2022-8-23 18:14:07

VBA的Explode方法是默认炸开后保留原块插入图元。
页: [1]
查看完整版本: VB插入块时会出现2个,不影响使用,但总是看到不爽