|
|
发表于 2010-9-1 21:07:20
|
显示全部楼层
来自: 中国辽宁
有个问题:你是要查找名为"属性块"的块参照,还是要查找带有属性的块参照?) l: r# w9 O1 J1 f+ f B
如果是前者,上面的代码就可以了.如果是后者,要用下面的代码- 1 @' ?' a$ {4 ?0 Q" \% ~
- Sub A()
" N2 w2 R \7 j" d- V - Dim E As AcadEntity, BR As AcadBlockReference, B As Boolean, Atts As Variant
) K5 ?/ Q4 w6 e$ Y3 \& h - For Each E In ThisDrawing.ModelSpace; i8 F$ X% c5 c- X/ M( |
- If E.ObjectName = "AcDbBlockReference" Then
# n) X `( o, x) X& x+ I - Set BR = E
- y4 m# T+ Q. d+ Z/ e - Atts = BR.GetAttributes
2 {: x. z3 h' A5 j( w' v' m - If UBound(Atts) >= 0 Then
) @2 D( E- B: [* f; @; Z2 i9 Y - B = True( z/ b( [: ?2 c( O
- Exit For& R, R# q5 Q4 Y) ^0 Z0 T, l
- End If
6 e4 J( w) `6 w7 {4 H+ x8 f' @5 n - End If
' T; r5 a' T) ]+ s o! A - Next6 u: j4 {9 _6 I
- If B Then- M8 ^8 E/ f/ H: U- l
- MsgBox "存在"2 ^3 W6 V/ k- c( T5 h1 e
- Else% r) Y) m$ x& S6 G2 ?9 e
- MsgBox "不存在"* p: \2 J! f2 o0 f; k/ w$ D# a2 ^
- End If t7 p! o% t3 s# m, Z2 o6 J
- End Sub2 Y2 `1 n- L! U$ q( Q
复制代码 先声明一个变体变量,用块参照对象的"GetAttributes"方法获得块参照对象的属性数组并存放在这个变体变量中,再检查这个数组的下标,如果是-1则说明数组为空,该块参照对象没有属性;如果数组下标大于或等于0,则说明该块参照有属性. |
|