|
发表于 2008-9-23 18:00:07
|
显示全部楼层
来自: 中国
Sub A()
4 H9 D+ A. z+ C0 }2 F+ B$ I Dim B As AcadBlock, I As Integer, P(2) As Double6 S/ l2 d7 {6 n
With ThisDrawing( A) u( g# a5 v7 [
For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块
9 c2 G8 J7 k: S If B.Name = 块名称字符串 Then '找到指定的块8 W4 h9 ^4 p* m3 X" M( s
For I = 0 To B.Count - 1 '遍历块元素
1 ~2 s$ u1 D6 [! y* Y If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环* F8 E3 f( Z* D4 \
Next
L8 D# ~' n4 S; J .ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)
, @2 G3 b0 N1 N: j' W '根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)/ ?, k/ y3 j! _4 Y; a
Exit For/ f3 ^/ O5 w% Q* u, q* \
End If
`+ ]1 t) b" E. ?6 @( q Next
' @) J w+ e; ~6 H6 { End With ~( c8 J9 W; O3 ^* T: p0 D- m: r9 p
End Sub |
|