|
|
发表于 2010-9-1 21:07:20
|
显示全部楼层
来自: 中国辽宁
有个问题:你是要查找名为"属性块"的块参照,还是要查找带有属性的块参照?
: n' O5 K& b3 w8 a6 G4 g- o如果是前者,上面的代码就可以了.如果是后者,要用下面的代码
0 y3 i" O, T3 p* G- Sub A()
- c4 R4 i" J! j8 e9 W2 t) R - Dim E As AcadEntity, BR As AcadBlockReference, B As Boolean, Atts As Variant/ Y( s9 e7 E) v5 p3 K4 I
- For Each E In ThisDrawing.ModelSpace
/ Z3 D+ W% f2 }. m - If E.ObjectName = "AcDbBlockReference" Then
5 ~! S L# v: N* N - Set BR = E
8 w2 M" y `1 d* E5 x5 O - Atts = BR.GetAttributes, r, c" T3 g. M/ ^4 O$ H$ y
- If UBound(Atts) >= 0 Then7 K/ D$ ^# t0 D) H9 j! f8 a
- B = True
& _6 _/ A6 j6 K7 J' K - Exit For
1 V! y, T" P' d4 Y - End If: A% B! c3 c0 k8 I3 L2 L
- End If
5 n# D w8 o' k! Q - Next
" N+ ^5 d, w6 J - If B Then
' c( j/ t- y& A4 | - MsgBox "存在". @" N2 X7 v9 t1 d& H5 ]' P/ P- r
- Else
7 H- q4 }+ S( m( g( } - MsgBox "不存在"
; S. x# ^# r( t, K5 b - End If, x7 p0 H7 C" l+ u3 \; c# l0 h+ W6 @7 o
- End Sub9 `- z4 g7 x. d, L; A$ W' b
复制代码 先声明一个变体变量,用块参照对象的"GetAttributes"方法获得块参照对象的属性数组并存放在这个变体变量中,再检查这个数组的下标,如果是-1则说明数组为空,该块参照对象没有属性;如果数组下标大于或等于0,则说明该块参照有属性. |
|