|
|
发表于 2008-9-23 18:00:07
|
显示全部楼层
来自: 中国
Sub A()& @. u3 I+ f+ T3 F
Dim B As AcadBlock, I As Integer, P(2) As Double
9 C7 v8 t7 _* B/ [9 i8 V With ThisDrawing9 z. C0 d8 q c' `: W+ h( L! R+ G
For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块
0 H$ x0 u0 ]8 N% I5 Z! N9 t If B.Name = 块名称字符串 Then '找到指定的块
r: [$ N0 Z3 x. h! x# M6 U O c For I = 0 To B.Count - 1 '遍历块元素6 G4 q7 y9 `2 | C. K
If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环, s8 q6 L2 d. U! P$ s3 L% q
Next
7 H4 @( Y8 m& q. Y0 I5 i7 R$ t .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)
/ x, g4 n( j* L1 o8 [ '根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)
5 E/ [, s. n, Y4 t$ h+ b Exit For' x0 O/ l. K) p+ v6 r
End If2 e" b% N- `. W7 @- d* M1 N2 {- q
Next
2 ]4 A) a& O$ c" j3 s" X* L5 T# I7 p, ] End With
8 l: o) p3 s2 Y9 u! ^End Sub |
|