|
|
发表于 2010-9-1 21:07:20
|
显示全部楼层
来自: 中国辽宁
有个问题:你是要查找名为"属性块"的块参照,还是要查找带有属性的块参照?
' X$ J2 |; \0 \4 c9 ]1 s如果是前者,上面的代码就可以了.如果是后者,要用下面的代码
( Q+ T0 @9 O, D- N- y) @ \- Sub A()
f, v( z i1 H$ Y' _% k" f9 L - Dim E As AcadEntity, BR As AcadBlockReference, B As Boolean, Atts As Variant
% D5 y/ s- Y9 b5 y" `- t" {4 I - For Each E In ThisDrawing.ModelSpace4 ]4 [. q/ d* {& I
- If E.ObjectName = "AcDbBlockReference" Then; R8 T# p, j3 q2 {+ S1 C( {
- Set BR = E0 ]6 G3 X, G0 K; f& c) D
- Atts = BR.GetAttributes
5 s, p v4 O* v, Y - If UBound(Atts) >= 0 Then
- s* Z0 w& f, l! J, o$ s - B = True3 [. Z w8 s3 ?. ?
- Exit For) B( k, o$ ~; \/ i
- End If. y8 h2 c: `5 d, z6 s8 {: K' f) a
- End If" M+ l5 s# G |# g! v4 ^
- Next1 ~9 W, n$ e. m% S' ~) c% [
- If B Then
v( Q4 w0 ?1 ^7 t- X8 C' y - MsgBox "存在"
" G d2 I' h1 S% K9 m/ ? - Else9 S1 [; [3 c( O' m) [0 v
- MsgBox "不存在"
* N9 P8 |8 b; @+ z6 E - End If
8 |8 [( t9 U5 U% b - End Sub0 p& d; l- x) j' a
复制代码 先声明一个变体变量,用块参照对象的"GetAttributes"方法获得块参照对象的属性数组并存放在这个变体变量中,再检查这个数组的下标,如果是-1则说明数组为空,该块参照对象没有属性;如果数组下标大于或等于0,则说明该块参照有属性. |
|