|
|
发表于 2008-9-23 18:00:07
|
显示全部楼层
来自: 中国
Sub A()5 K& ]1 V4 S3 j) X, c8 |
Dim B As AcadBlock, I As Integer, P(2) As Double
( ]4 y- _& J8 S9 `# _! d2 _ With ThisDrawing$ I" P6 `, x+ E: }2 F0 j
For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块% X; Z/ ]% a$ d& I% j
If B.Name = 块名称字符串 Then '找到指定的块* D7 _- l) d' H3 L6 @/ Q2 ~0 U) C
For I = 0 To B.Count - 1 '遍历块元素1 S) R V0 \' B. R# w, B
If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环
0 B5 N) p( k: D8 h# H Next
+ N4 E: ]1 K# t& ^5 p% V2 @ G .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)7 W, U1 L( |& t
'根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)
! Q) Q+ i0 w- c Exit For
$ m! {# }0 M( E* i5 h9 G4 ~) }; A* @+ I, } End If
: g6 Q2 }2 t0 {2 @" Z' D: t d Next
6 V p# \! z0 A7 @5 |; q End With& n5 H' B0 D& Q4 w- A& ]7 H' b4 _
End Sub |
|