|
|
发表于 2008-9-23 18:00:07
|
显示全部楼层
来自: 中国
Sub A()
5 \6 k, _8 m) W+ k Dim B As AcadBlock, I As Integer, P(2) As Double' c5 R8 G1 R0 d' N: ]- m0 @6 a- X! x
With ThisDrawing
* Z$ F& A4 p3 J! Z) ]5 w For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块
, I$ H* C( P, K6 d% w/ I If B.Name = 块名称字符串 Then '找到指定的块
3 L2 [. u* V$ J0 M1 q b For I = 0 To B.Count - 1 '遍历块元素" z8 B: w6 V- G) h, l2 b
If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环; l4 f8 V3 V* c/ n, X) n
Next
0 {9 a$ c3 O, |4 a9 ]: Q .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)1 @* H7 s$ L* O2 x2 w1 X0 ?! ]
'根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)6 T% C) q$ j- m8 s* g
Exit For" G6 X" E& R D' V8 h- [
End If
5 i% |* b/ V& P5 Z) q! f& g Next4 o q. E$ J; h" F. i# j
End With$ W/ e- F' ~2 Q7 s- H# P3 f2 Z
End Sub |
|