|
|
发表于 2010-9-1 21:07:20
|
显示全部楼层
来自: 中国辽宁
有个问题:你是要查找名为"属性块"的块参照,还是要查找带有属性的块参照?2 M( ~2 u. s( E& {$ u0 |$ y
如果是前者,上面的代码就可以了.如果是后者,要用下面的代码- ) y0 L' {5 [7 ~1 i2 ]
- Sub A(); F6 e9 T& x# f7 ]1 F, \
- Dim E As AcadEntity, BR As AcadBlockReference, B As Boolean, Atts As Variant
" p. y7 J* E1 u$ G+ l# J l - For Each E In ThisDrawing.ModelSpace. j. e( A% N; O9 A# F
- If E.ObjectName = "AcDbBlockReference" Then# B9 H. X4 S# @$ L
- Set BR = E% M1 |. R* ?8 [9 c6 X2 g4 L
- Atts = BR.GetAttributes% R6 ?' ]; Y% b
- If UBound(Atts) >= 0 Then! k: h4 |$ N% K! H9 e
- B = True/ R9 G6 y! b2 t: x$ C1 Z
- Exit For9 ]8 K2 q% v+ b
- End If: M+ k% P# T5 L. H, E6 a" \
- End If& m$ ^1 ^, l2 L9 [! }
- Next; O- T1 f4 I) d) J5 k$ z5 ^6 k! b
- If B Then) e; R! Z' M6 C$ j! e
- MsgBox "存在"
. t, M8 u: w7 @+ R1 K - Else6 L" j( N/ U3 J1 p3 r6 l% j
- MsgBox "不存在"
c, t4 z, b2 d2 O+ T - End If; c- V, F$ A4 e7 a1 m
- End Sub
* _) V$ ?9 r y0 T3 T
复制代码 先声明一个变体变量,用块参照对象的"GetAttributes"方法获得块参照对象的属性数组并存放在这个变体变量中,再检查这个数组的下标,如果是-1则说明数组为空,该块参照对象没有属性;如果数组下标大于或等于0,则说明该块参照有属性. |
|