|
|
发表于 2010-9-1 21:07:20
|
显示全部楼层
来自: 中国辽宁
有个问题:你是要查找名为"属性块"的块参照,还是要查找带有属性的块参照?9 E# I1 k+ X2 y/ D0 X% |: _2 D" E; |* x
如果是前者,上面的代码就可以了.如果是后者,要用下面的代码
0 V. u2 }2 t& V6 o- Sub A()
, S5 a" o/ M+ |$ j - Dim E As AcadEntity, BR As AcadBlockReference, B As Boolean, Atts As Variant
% a; t; P# D) T- N2 c# Y - For Each E In ThisDrawing.ModelSpace4 M% f' D; D0 T8 \
- If E.ObjectName = "AcDbBlockReference" Then
# x- K$ ?# A/ d, D4 i - Set BR = E
2 w, K. G- s; q. B, l' ^; m - Atts = BR.GetAttributes: y0 z) |- x1 A) b& r1 j
- If UBound(Atts) >= 0 Then
( u# h' T' B% i! E. O, E! i9 ]/ T% Y' ? - B = True1 S: U) B5 [. Z7 W
- Exit For& n0 O% s4 u H; O' T. ]+ `
- End If& s6 I3 o8 Z, }4 @
- End If
$ {1 j# S4 t% l2 u1 z9 I - Next+ W2 O. T) R8 i c4 k
- If B Then
3 d2 M1 F H, E - MsgBox "存在"* X. t: W7 m8 e/ J p2 e2 _3 Z% `
- Else: A" \4 `5 R( p, f) |2 ?1 d
- MsgBox "不存在"
& B% @0 T. o( B" B$ b L8 Y - End If7 ]( _! i$ B; x- X/ s
- End Sub7 ?* e1 ?+ G& k
复制代码 先声明一个变体变量,用块参照对象的"GetAttributes"方法获得块参照对象的属性数组并存放在这个变体变量中,再检查这个数组的下标,如果是-1则说明数组为空,该块参照对象没有属性;如果数组下标大于或等于0,则说明该块参照有属性. |
|