|
|
发表于 2010-9-1 21:07:20
|
显示全部楼层
来自: 中国辽宁
有个问题:你是要查找名为"属性块"的块参照,还是要查找带有属性的块参照?
- _; ~" [' A) Z) ~4 a/ W如果是前者,上面的代码就可以了.如果是后者,要用下面的代码
7 y- L0 j7 T& z: o' Y' E- Sub A()
+ q$ s* i X5 D$ s+ S- Q. I9 S - Dim E As AcadEntity, BR As AcadBlockReference, B As Boolean, Atts As Variant
, d1 p, k/ s! u$ Y- _: X% A - For Each E In ThisDrawing.ModelSpace
' g* B0 X" t2 x9 l6 Z; u - If E.ObjectName = "AcDbBlockReference" Then
$ Q+ E$ n9 a7 }+ n- G# p7 }) R - Set BR = E
9 H D* X0 r1 B v9 b* U8 o - Atts = BR.GetAttributes2 Z. ?0 A, {% S2 ]; \( k
- If UBound(Atts) >= 0 Then
1 L) C* }7 @0 o8 c! [" y; j - B = True
( `: D% F- Y' m H1 W! R - Exit For2 {6 T) v' d! g
- End If
6 p8 @3 a- j) |1 a - End If
: |" R6 V! d% F2 z& P8 {0 ^ - Next
- a2 H7 m* m8 L0 N# f# V$ [ - If B Then
" x' C6 [/ V/ x- H2 D - MsgBox "存在"
$ K- n& \# Y! a9 I - Else" V( @7 r( Z k6 J: U# B
- MsgBox "不存在") ^$ _; g$ a" e/ S/ y1 ~& A8 Z
- End If- @ @# R. B1 S7 B! l# `
- End Sub
2 j, l f* V- B) D, W
复制代码 先声明一个变体变量,用块参照对象的"GetAttributes"方法获得块参照对象的属性数组并存放在这个变体变量中,再检查这个数组的下标,如果是-1则说明数组为空,该块参照对象没有属性;如果数组下标大于或等于0,则说明该块参照有属性. |
|