|
|
发表于 2010-9-1 21:07:20
|
显示全部楼层
来自: 中国辽宁
有个问题:你是要查找名为"属性块"的块参照,还是要查找带有属性的块参照?
- F1 Y8 c2 }$ E& D, h$ z6 x如果是前者,上面的代码就可以了.如果是后者,要用下面的代码
. J1 o3 p+ A. D0 f. |+ r- Sub A()7 w3 F3 U% H9 m8 g# H) }) f
- Dim E As AcadEntity, BR As AcadBlockReference, B As Boolean, Atts As Variant
- }( _4 r$ ^/ e7 c$ G2 r2 ^; Z1 l - For Each E In ThisDrawing.ModelSpace
( V g5 c+ d9 ` ~5 {2 k* \2 y - If E.ObjectName = "AcDbBlockReference" Then, t o8 i* @0 D
- Set BR = E* k2 V" `) c. }
- Atts = BR.GetAttributes0 \ x- N/ c5 m u! q7 j* A
- If UBound(Atts) >= 0 Then% K2 z3 I# w2 i; o1 O5 u* P) V
- B = True' m o0 r# q/ V
- Exit For; J8 H. z7 O1 T$ d: t `9 ^+ T
- End If1 E R# t5 h B$ \ Q* [6 K2 f( O
- End If
5 d3 s; [& v7 a8 S1 R" p# w# d - Next
) U0 o, s; n/ }( ]" J - If B Then
8 V+ m7 X9 O `! { - MsgBox "存在"
/ ~7 i# E# z e, a# B$ L" o; a3 _ - Else
& v) n( u: n" z2 d. H; S5 Y - MsgBox "不存在") k: |2 L% ?( \0 d1 |( {: i. m. v
- End If, J, c& A+ O7 |5 Q, p
- End Sub! h8 t4 b! J! x) u4 C# q2 {
复制代码 先声明一个变体变量,用块参照对象的"GetAttributes"方法获得块参照对象的属性数组并存放在这个变体变量中,再检查这个数组的下标,如果是-1则说明数组为空,该块参照对象没有属性;如果数组下标大于或等于0,则说明该块参照有属性. |
|