分解对象
From AutoCAD ActiveX/VBA
分解对象将对象从单一对象转换为构成该对象的组件,但是不会有视觉上的影响。例如,分解可以将三维多边形、多段线、多边形网格和面域变成简单的直线和圆弧,将块参照替换为组成块的简单对象的副本。
有关分解对象的详细信息,请参见《用户手册》中的“解除复合对象的关联(分解)”。
本例创建一个优化多段线对象,然后将多段线分解成多个对象。接着遍历产生的对象,显示含有每个对象名称的消息框,并显示分解对象在列表中的索引。
Sub Ch4_ExplodePolyline()
Dim plineObj As AcadLWPolyline
Dim points(0 To 11) As Double
' 定义二维多段线的点points(0) = 1: points(1) = 1points(2) = 1: points(3) = 2points(4) = 2: points(5) = 2points(6) = 3: points(7) = 2points(8) = 4: points(9) = 4points(10) = 4: points(11) = 1' 创建优化多段线对象Set plineObj = ThisDrawing.ModelSpace. _AddLightWeightPolyline(points)' 在某个线段上设置凸度以改变' 多段线中的对象类型plineObj.SetBulge 3, -0.5plineObj.Update' 分解多段线Dim explodedObjects As VariantexplodedObjects = plineObj.Explode' 遍历分解的对象' 并以消息框来显示' 每个对象的类型Dim I As IntegerFor I = 0 To UBound(explodedObjects)explodedObjects(I).UpdateMsgBox "Exploded Object " & I & ": " & _explodedObjects(I).ObjectNameexplodedObjects(I).UpdateNextEnd Sub