|
发表于 2008-9-23 18:00:07
|
显示全部楼层
来自: 中国
Sub A()( N! A) f' Y2 g6 H K. C
Dim B As AcadBlock, I As Integer, P(2) As Double: ~& I- Y; [0 ?* y
With ThisDrawing
$ Z; L/ A, o) Q$ ] For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块6 t' S" L/ A1 t0 M
If B.Name = 块名称字符串 Then '找到指定的块
0 X: ~3 a( e% W/ [3 ? For I = 0 To B.Count - 1 '遍历块元素
: i" d H# r# H7 @+ ~ If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环
7 @( {. R/ O; A! P0 U Next' l7 ?. \1 ~5 ?
.ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)1 o! T; H$ }. O; v
'根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)
, [9 ^8 \2 V5 r9 R' A" s! ^6 O+ F Exit For
6 A+ y H8 F1 C( D End If
2 F) H, B' a8 i1 h% @8 k! o Next
6 O6 D; R1 h) ?/ L2 T7 L( p1 _3 s End With. P/ n1 ]7 F$ Z ?$ u
End Sub |
|