我将使用以下命令在另一个文件中插入外部dwg文件:
Set xrefInserted = ThisDrawing.ModelSpace.AttachExternalReference(refDwgName, refDwgName, insertionPnt, 1, 1, 1, 0, False)
xrefInserted.Update
这是作为外部块插入的,因此我将其绑定到绘图:
For Each tempBlock In ThisDrawing.Blocks
If tempBlock.IsXRef Then
If (InStr(1, UCase(tempBlock.name), "MAJ_MATRICE", vbTextCompare)) Then
tempBlock.Bind (False)
Exit For
End If
End If
Next
现在我要分解它,首先acadblock似乎没有和explode方法,只有acadblock引用。
所以我寻找参考资料:
Dim ent As AcadEntity
Dim blockRefObj As AcadBlockReference
For Each ent In ThisDrawing.ModelSpace
If TypeOf ent Is AcadBlockReference Then
If (InStr(1, UCase(ent.name), "MAJ_MATRICE", vbTextCompare)) Then
Set blockRefObj = ent
blockRefObj.Explode
Exit For
End If
End If
Next
问题是
块参考对象分解
失败,它告诉我“无效-2145386494”。
我调试了代码,认为问题在于acadBlockReference仍然是acadexInternalReference类型,并且不可能分解外部引用。
如果我在返回到绘图后重新运行代码(函数调用已结束),并查找acadblockreference,它现在是acadblockreference类型,我可以正确地分解它。
我只是不能像绑定它那样在同一个函数、同一个执行中执行它。