|
|
发表于 2010-9-1 21:07:20
|
显示全部楼层
来自: 中国辽宁
有个问题:你是要查找名为"属性块"的块参照,还是要查找带有属性的块参照?( w! u+ t: x+ C
如果是前者,上面的代码就可以了.如果是后者,要用下面的代码
. @1 o) Q2 E: `6 \! J3 y8 C1 ?- Sub A()
' q7 z! l9 w& Z2 f. f1 J - Dim E As AcadEntity, BR As AcadBlockReference, B As Boolean, Atts As Variant
2 H2 v/ O: l& r% {3 q6 }% Y - For Each E In ThisDrawing.ModelSpace
$ Z& d, z, a& F. }8 |. E# g - If E.ObjectName = "AcDbBlockReference" Then
F( J4 \2 e, @" t" E& u4 M8 v. a - Set BR = E; I! ?$ f. {: r9 V! Z* [
- Atts = BR.GetAttributes
, K3 T9 j. K/ ]% b w6 Q+ M3 | - If UBound(Atts) >= 0 Then8 u9 W a' M; g) t2 V* [& X
- B = True2 z- ^, u8 n3 q. _0 G; t- g
- Exit For; R7 m; T/ O; C
- End If- F. D& X' @4 w3 ^% D
- End If
1 F; z, E# }# V - Next
8 P/ a' P7 [9 ?) E1 ]1 t% {# n - If B Then( p. `' f: R. s1 U9 E H
- MsgBox "存在", C' ~6 H) c8 v; d. d6 K* `
- Else1 ?+ ^9 d8 V0 u8 b1 u1 D& f
- MsgBox "不存在"
: |& p- X* |2 Z& B - End If
/ g: E3 d5 M' N! D - End Sub5 t# h9 Z& x0 o, p
复制代码 先声明一个变体变量,用块参照对象的"GetAttributes"方法获得块参照对象的属性数组并存放在这个变体变量中,再检查这个数组的下标,如果是-1则说明数组为空,该块参照对象没有属性;如果数组下标大于或等于0,则说明该块参照有属性. |
|