分解对象

AutoCAD ActiveX/VBA

 
分解对象
 
 
 

分解对象将对象从单一对象转换为构成该对象的组件,但是不会有视觉上的影响。例如,分解可以将三维多边形、多段线、多边形网格和面域变成简单的直线和圆弧,将块参照替换为组成块的简单对象的副本。

有关分解对象的详细信息,请参见《用户手册》中的“解除复合对象的关联(分解)”。

分解多段线

本例创建一个优化多段线对象,然后将多段线分解成多个对象。接着遍历产生的对象,显示含有每个对象名称的消息框,并显示分解对象在列表中的索引。

Sub Ch4_ExplodePolyline()
    Dim plineObj As AcadLWPolyline
    Dim points(0 To 11) As Double
      
    ' 定义二维多段线的点
    points(0) = 1: points(1) = 1
    points(2) = 1: points(3) = 2
    points(4) = 2: points(5) = 2
    points(6) = 3: points(7) = 2
    points(8) = 4: points(9) = 4
    points(10) = 4: points(11) = 1
      
    ' 创建优化多段线对象
    Set plineObj = ThisDrawing.ModelSpace. _
                  AddLightWeightPolyline(points)
      
    ' 在某个线段上设置凸度以改变
    ' 多段线中的对象类型
    plineObj.SetBulge 3, -0.5
    plineObj.Update
      
    ' 分解多段线
    Dim explodedObjects As Variant
    explodedObjects = plineObj.Explode
      
    ' 遍历分解的对象
    ' 并以消息框来显示
    ' 每个对象的类型
    Dim I As Integer
    For I = 0 To UBound(explodedObjects)
    explodedObjects(I).Update
        MsgBox "Exploded Object " & I & ": " & _
                    explodedObjects(I).ObjectName
        explodedObjects(I).Update
    Next
End Sub