|
发表于 2008-9-23 18:00:07
|
显示全部楼层
来自: 中国
Sub A()% p( b( k% Q9 R8 Z" g, r2 d
Dim B As AcadBlock, I As Integer, P(2) As Double
5 G% O/ a5 u: F4 k4 ^& L With ThisDrawing4 Y# T% b8 O p D
For Each B In .Blocks '遍历文档中的块集合,通过块名称查找指定的块
& m0 I; H1 ~- ~& A If B.Name = 块名称字符串 Then '找到指定的块
* G9 f. g: O$ p% @ For I = 0 To B.Count - 1 '遍历块元素
: x3 Y* W( ?. l If B.Item(I).ObjectName = "AcDbEllipse" Then Exit For '找到椭圆后退出循环
# b* b8 S+ {" x" u' o+ m0 j8 _% d5 i5 b Next M3 t! J: y/ g! o7 }7 d+ P" V0 _
.ModelSpace.InsertBlock P, 块名称字符串, 1, 1, 1, -.Utility.AngleFromXAxis(B.Item(I).Center, B.Item(I).StartPoint)3 l6 @) b8 t9 m! Q5 I
'根据椭圆中心点和起点,用AngleFromXAxis方法获取椭圆旋转角,并用其负值做为插入块时的旋转角(反向转回来)5 W* {5 r3 B# _9 L" ^2 Y, H
Exit For
+ n6 v- p$ x/ K0 p D6 U& Y0 \ End If
( p- {/ E! W8 z2 g/ w! l# E6 Q Next) D$ x" H: Y6 R9 q5 u$ h
End With
z, e( s# \. LEnd Sub |
|