程序:
'记录起始时模型空间的实体数
Dim FaceNumber As Double
FaceNumber = ThisDrawing.ModelSpace.Count
'分解3dsolid
Dim TempObj As AcadEntity, ObjIndex As Double
For ObjIndex = 0 To ThisDrawing.ModelSpace.Count - 1
Set TempObj = ThisDrawing.ModelSpace(ObjIndex)
If TypeOf TempObj Is IAcad3DSolid Then
ThisDrawing.SendCommand "_explode (handent """ & TempObj.Handle & """)" & vbCr & vbCr
End If
Next
'分解region
For ObjIndex = FaceNumber To ThisDrawing.ModelSpace.Count - 1
Set TempObj = ThisDrawing.ModelSpace(ObjIndex)
If TypeOf TempObj Is AcadRegion Then
TempObj.Explode
End If
Next
以上程序看似可以。实际上运行到分解region处,由于此程序使用的是lisp与vba混用的方式,由lisp语句创建的实体在vba没有退出之前没有添加到thisdrawaing.modelspace中所以
分解region处的modelspace实体数与没有执行分解3dsolid前的实体数相同,因此以上程序不可以将3dsolid分解为line
我可以上传一个例图和我的程序,请大家帮我看一看,谢谢!!!!