|
|
发表于 2010-9-1 21:07:20
|
显示全部楼层
来自: 中国辽宁
有个问题:你是要查找名为"属性块"的块参照,还是要查找带有属性的块参照?2 y+ Z9 i* R- Z+ e. S* \4 Y: p
如果是前者,上面的代码就可以了.如果是后者,要用下面的代码
, c6 U! \0 Y5 g6 @ g" g' `- Sub A()
: I3 ?7 m1 J( o2 @ - Dim E As AcadEntity, BR As AcadBlockReference, B As Boolean, Atts As Variant
0 N) B& n1 Q+ g - For Each E In ThisDrawing.ModelSpace
6 n# g. r" t! y w1 r7 x - If E.ObjectName = "AcDbBlockReference" Then
) _. h1 u: s" a* K8 N5 } - Set BR = E: G9 i2 D/ |& q3 p
- Atts = BR.GetAttributes
n% Z$ d( l4 _ - If UBound(Atts) >= 0 Then
7 d' y. ]" t; `- L: D# J4 p7 { - B = True' i* U1 `' Q6 \" y; ]9 D! g
- Exit For# v" E' D5 r. `, ^
- End If% a6 t3 y! `) X! h A$ v
- End If0 l9 h' u/ |* k, y4 M3 h3 K4 g4 [
- Next: a1 v$ k# ]' |* i
- If B Then
% j/ _! V' U- L0 [) ?& R. l - MsgBox "存在"
( N1 p$ A9 x' H* i - Else3 M8 P N! d5 ~ Y" e) {
- MsgBox "不存在"
7 f5 x; E1 _9 u - End If, R& W5 I7 C3 W! r$ h1 m8 R
- End Sub
; u- l( f: m* {2 J H6 z- ?" p) H
复制代码 先声明一个变体变量,用块参照对象的"GetAttributes"方法获得块参照对象的属性数组并存放在这个变体变量中,再检查这个数组的下标,如果是-1则说明数组为空,该块参照对象没有属性;如果数组下标大于或等于0,则说明该块参照有属性. |
|