|
发表于 2008-9-23 18:00:07
|
显示全部楼层
来自: 中国
Sub A()
) G1 P$ j7 J2 |2 f) S Dim B As AcadBlock, I As Integer, P(2) As Double2 ^8 M7 ]9 L- a' U2 H3 j
With ThisDrawing
5 F9 k9 C, p+ v& h For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块& M8 {% _4 e: a' X* P
If B.Name = 块名称字符串 Then '找到指定的块' E6 F+ X7 R( w9 b! c! M, o
For I = 0 To B.Count - 1 '遍历块元素1 O3 j# v$ x- d3 v. a* Q! X
If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环8 m6 y# L# a6 S6 }" r: ]6 A
Next% }9 f% P' x' W% M' u6 k7 n& I
.ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)
! |; B1 U& j; D6 I9 Z8 k9 T '根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)+ ] m4 T A" l3 J" `
Exit For
1 ], W8 p$ w, W3 t End If) C* ^% p: N& R8 r3 s1 M9 b
Next2 t3 b9 r) g( S; l2 r
End With
) M! }9 `9 k4 P# B4 b# I4 oEnd Sub |
|