|
|
发表于 2010-9-1 21:07:20
|
显示全部楼层
来自: 中国辽宁
有个问题:你是要查找名为"属性块"的块参照,还是要查找带有属性的块参照?7 C ]' a& k' d3 Z
如果是前者,上面的代码就可以了.如果是后者,要用下面的代码
$ R* [$ T0 P* j% f1 e' i \4 e- Sub A()6 l" T; ?8 F, Z6 m0 S3 }, V
- Dim E As AcadEntity, BR As AcadBlockReference, B As Boolean, Atts As Variant
2 k; e ^# {3 e- V" K - For Each E In ThisDrawing.ModelSpace
# ^5 t2 A! M1 n9 P l2 a2 B - If E.ObjectName = "AcDbBlockReference" Then9 e0 N5 n0 y7 n) y8 a8 Z
- Set BR = E7 k0 `4 |/ b" S1 x
- Atts = BR.GetAttributes
8 \4 A5 {1 S( o7 |$ Y- l5 M - If UBound(Atts) >= 0 Then
( f q% r: j1 Z2 |0 _: s- |' z& [ - B = True4 b; A4 M$ w8 X* M$ O$ L
- Exit For
! ~; |% k" f4 l8 ^9 e) w - End If
, y% F, e5 f" f h - End If( _5 i I6 x7 [, p) f
- Next7 w4 U# P8 @* N2 i9 n
- If B Then
8 }* l4 K- {3 N - MsgBox "存在"
: @2 c. o9 _ h/ L, W7 K- W - Else
, s, Z5 y: ~+ J9 a. H6 v i - MsgBox "不存在"
( b0 j: G3 R% ]6 d - End If
5 W$ t: {. F) g7 f8 b - End Sub% B/ R1 o" O* a4 X2 g9 S
复制代码 先声明一个变体变量,用块参照对象的"GetAttributes"方法获得块参照对象的属性数组并存放在这个变体变量中,再检查这个数组的下标,如果是-1则说明数组为空,该块参照对象没有属性;如果数组下标大于或等于0,则说明该块参照有属性. |
|