|
|
发表于 2010-9-1 21:07:20
|
显示全部楼层
来自: 中国辽宁
有个问题:你是要查找名为"属性块"的块参照,还是要查找带有属性的块参照?
: N8 j0 v( S3 U% v' ~+ {! [如果是前者,上面的代码就可以了.如果是后者,要用下面的代码- " T; W( l; f- i/ u4 L, t
- Sub A()
9 N" u4 Y7 m' ]5 w/ u; G9 m+ Q/ S - Dim E As AcadEntity, BR As AcadBlockReference, B As Boolean, Atts As Variant
. s$ Z' R! } ~ - For Each E In ThisDrawing.ModelSpace, d# J! e, J, \: N, w, q. }9 h7 w
- If E.ObjectName = "AcDbBlockReference" Then
7 z. k; z8 r. @/ O5 I0 j: E - Set BR = E! p, R7 A4 \2 r
- Atts = BR.GetAttributes5 L' A) q: N# c* z4 W
- If UBound(Atts) >= 0 Then
3 \0 O# _1 E" o9 l( T" z$ w- \ - B = True
2 n9 b+ M$ m% X O$ K - Exit For# p9 L) t- o+ E! U3 a
- End If" H) p$ [; `, p& K8 e4 H4 f9 K
- End If- P; l: A; @7 }' ?' K
- Next
4 @ y( B9 J( d) E& g* w) n - If B Then
( o# j' Q% E6 e* x7 a$ V - MsgBox "存在"
. v: j' U* k1 `5 Z7 d - Else$ M7 ~# G' T. i8 {( b: k
- MsgBox "不存在". s$ x1 \8 P1 E( y) l: r5 N5 q' z
- End If% v# G* p( T) U, e* f' g/ A
- End Sub+ i- ]5 q7 Z3 V2 o( l) Z- ?
复制代码 先声明一个变体变量,用块参照对象的"GetAttributes"方法获得块参照对象的属性数组并存放在这个变体变量中,再检查这个数组的下标,如果是-1则说明数组为空,该块参照对象没有属性;如果数组下标大于或等于0,则说明该块参照有属性. |
|