|
发表于 2010-9-1 21:07:20
|
显示全部楼层
来自: 中国辽宁
有个问题:你是要查找名为"属性块"的块参照,还是要查找带有属性的块参照?
3 F. M* s# Y% |' i4 \* i- X如果是前者,上面的代码就可以了.如果是后者,要用下面的代码
0 J" S& k4 F/ i; `4 P8 N- Sub A()
& H, `% W& ~& Y5 |. s - Dim E As AcadEntity, BR As AcadBlockReference, B As Boolean, Atts As Variant7 u; r, X+ w* q y& N
- For Each E In ThisDrawing.ModelSpace, A$ `8 {$ ] I
- If E.ObjectName = "AcDbBlockReference" Then
5 j2 Z! l+ d& ~* a- E5 V: P% j - Set BR = E
, K' W% J# W2 ^ J, f/ Z - Atts = BR.GetAttributes4 d9 o' p3 N2 X4 u2 J: O. ?
- If UBound(Atts) >= 0 Then
9 R- ^/ y# q' Y7 U; _. ^" I* T - B = True
" y% A6 ]7 V/ f3 Y - Exit For! L; o+ H0 o2 U9 P
- End If- {: h6 i5 D4 n
- End If, x/ H: Y2 h; ^2 A$ I' s
- Next- A3 e3 ` y2 J, ^5 U$ V
- If B Then
* z4 {! ~& I" \* ~4 ~( V# ` - MsgBox "存在": W! r# g. W; L8 h* g
- Else' T' A$ ?4 @% s5 K+ c
- MsgBox "不存在"
3 j5 A t' A6 `6 x0 g0 L. _2 g" ] - End If2 n, `& f3 d Z
- End Sub
) @( a- a( J6 q, v; c
复制代码 先声明一个变体变量,用块参照对象的"GetAttributes"方法获得块参照对象的属性数组并存放在这个变体变量中,再检查这个数组的下标,如果是-1则说明数组为空,该块参照对象没有属性;如果数组下标大于或等于0,则说明该块参照有属性. |
|