附上例子。
- [FONT=courier new]
- Sub Ch10_ExplodingABlock()
- ' 定义块
- Dim blockObj As AcadBlock
- Dim insertionPnt(0 To 2) As Double
- insertionPnt(0) = 0
- insertionPnt(1) = 0
- insertionPnt(2) = 0
- Set blockObj = ThisDrawing.Blocks.Add _
- (insertionPnt, "CircleBlock")
-
- ' 添加圆到块中
- Dim circleObj As AcadCircle
- Dim center(0 To 2) As Double
- Dim radius As Double
- center(0) = 0
- center(1) = 0
- center(2) = 0
- radius = 1
- Set circleObj = blockObj.AddCircle(center, radius)
-
- ' 插入块
- Dim blockRefObj As AcadBlockReference
- insertionPnt(0) = 2
- insertionPnt(1) = 2
- insertionPnt(2) = 0
- Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock _
- (insertionPnt, "CircleBlock", 1#, 1#, 1#, 0)
- MsgBox "The circle belongs to " & blockRefObj.ObjectName
-
- ' 炸开块引用
- Dim explodedObjects As Variant
- explodedObjects = blockRefObj.Explode
-
- ' 枚举炸开的实体对象
- Dim I As Integer
- For I = 0 To UBound(explodedObjects)
- explodedObjects(I).Color = acRed
- explodedObjects(I).Update
- MsgBox "Exploded Object " & I & ": " _
- & explodedObjects(I).ObjectName
- explodedObjects(I).Color = acByLayer
- explodedObjects(I).Update
- Next
- End Sub
- [/FONT]
|