|
发表于 2008-9-23 18:00:07
|
显示全部楼层
来自: 中国
Sub A()
6 e! \( ]1 ?, m$ Z5 U) H, n: h Dim B As AcadBlock, I As Integer, P(2) As Double
% t% B$ C7 a! @. L/ ` With ThisDrawing9 j3 ^ I5 u! y6 Q* i
For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块9 }3 d* H: E+ w# [$ ]4 f) Z$ e* h! r, E
If B.Name = 块名称字符串 Then '找到指定的块0 G: l% Z2 h- D, W2 [: P( a
For I = 0 To B.Count - 1 '遍历块元素
. ]& L, V2 p% y" A8 |- [, k6 H If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环
. h4 ~- N( k I; J& C% _$ C: U4 B Next+ `0 q/ P, d& b4 ^5 F6 j
.ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)2 x9 h: v6 [; t+ a( E
'根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)' D* s, G! q0 Y$ a/ R
Exit For5 k4 P5 |$ j$ J& y8 }
End If
& |4 |% }$ F. d4 J% W Next
( p! n8 S1 Q! t End With G+ q+ {" s. I+ E$ V+ f; @! H
End Sub |
|