|
|
发表于 2010-9-1 21:07:20
|
显示全部楼层
来自: 中国辽宁
有个问题:你是要查找名为"属性块"的块参照,还是要查找带有属性的块参照?
: {0 p" o9 k2 d+ X% W& A5 f如果是前者,上面的代码就可以了.如果是后者,要用下面的代码
. t" f# n# y0 f9 a6 J% b- Sub A()
1 H) L% P0 \2 m7 Q/ S - Dim E As AcadEntity, BR As AcadBlockReference, B As Boolean, Atts As Variant
. ?0 q# q* @% ^3 b - For Each E In ThisDrawing.ModelSpace
2 ]: V+ S, N D0 m7 G/ e - If E.ObjectName = "AcDbBlockReference" Then( d8 m. o" `+ d
- Set BR = E- z. G. L- a0 \7 ^! f' U
- Atts = BR.GetAttributes, I8 {. M( k, f9 h u) |+ N9 E6 h+ E
- If UBound(Atts) >= 0 Then0 [+ t, \$ o% Y% g( D, P, x, O5 M
- B = True& z. F2 n$ C8 H! V9 ]
- Exit For" j4 L1 ^- ^+ `5 \
- End If
3 L+ g E8 t G. G: ?, ?3 Z$ w/ c - End If
+ b+ E, b3 a2 x Y - Next, E# S; T7 l5 ^( J$ f$ _
- If B Then: }# S4 q. F. I. @& b
- MsgBox "存在"3 M! M2 s! G; q B, @
- Else
- p- m7 m& D7 @# w ~/ M - MsgBox "不存在"
7 f, m! J# @$ V; \ - End If" G- t, b& \2 z! J, }
- End Sub
# B# }9 A# o3 g( p+ X: }
复制代码 先声明一个变体变量,用块参照对象的"GetAttributes"方法获得块参照对象的属性数组并存放在这个变体变量中,再检查这个数组的下标,如果是-1则说明数组为空,该块参照对象没有属性;如果数组下标大于或等于0,则说明该块参照有属性. |
|