|
|
发表于 2010-9-1 21:07:20
|
显示全部楼层
来自: 中国辽宁
有个问题:你是要查找名为"属性块"的块参照,还是要查找带有属性的块参照?
* p9 {" H3 w8 g1 e$ v如果是前者,上面的代码就可以了.如果是后者,要用下面的代码- # X5 M k6 I9 C/ p1 l) u2 G T+ [
- Sub A()
9 `' ]" M* W1 H9 O& P4 S3 T$ n - Dim E As AcadEntity, BR As AcadBlockReference, B As Boolean, Atts As Variant
5 p2 f9 M5 ^3 C4 ?" s - For Each E In ThisDrawing.ModelSpace' _, Y. D- I7 I- M
- If E.ObjectName = "AcDbBlockReference" Then
7 J3 g9 y; W( X( a5 n - Set BR = E
, o; l( n$ e+ E% E5 B - Atts = BR.GetAttributes" A; O6 O& F( i
- If UBound(Atts) >= 0 Then
0 q) j" L0 `* q! ^ - B = True; E0 J1 L* t7 {2 R# |7 C2 q
- Exit For
0 U+ d& I- t+ z! q; ?5 O m8 f - End If& P- N2 N# t2 b2 C) u2 E
- End If; {7 X0 U" l3 q' G% o* ~4 r9 n% k) C8 p
- Next2 m( |) C" T, v) |3 X L& i9 P4 M
- If B Then
6 T. y0 p6 V- }, q g - MsgBox "存在"+ ?, X9 K4 \6 g- Q7 R
- Else, z7 l; j& ?2 h5 N: ?* Z
- MsgBox "不存在"
# ^6 J1 }% `4 l5 ^ - End If( X2 B5 C4 l4 N. r( Y+ L
- End Sub2 t. e+ @, e$ j) {- `( R& Z5 d
复制代码 先声明一个变体变量,用块参照对象的"GetAttributes"方法获得块参照对象的属性数组并存放在这个变体变量中,再检查这个数组的下标,如果是-1则说明数组为空,该块参照对象没有属性;如果数组下标大于或等于0,则说明该块参照有属性. |
|