|
|
发表于 2010-9-1 21:07:20
|
显示全部楼层
来自: 中国辽宁
有个问题:你是要查找名为"属性块"的块参照,还是要查找带有属性的块参照? C- }) {/ A* C* I; o! n
如果是前者,上面的代码就可以了.如果是后者,要用下面的代码
% _2 ?# Z( c$ d5 m- Sub A()
0 U4 c) V; [/ G - Dim E As AcadEntity, BR As AcadBlockReference, B As Boolean, Atts As Variant
" ^' K' Y; Y' A - For Each E In ThisDrawing.ModelSpace; x4 u# N8 ^9 M+ T! i6 w! ^
- If E.ObjectName = "AcDbBlockReference" Then
* a! \: y7 ^& t' W g - Set BR = E( ]1 t' E. S; u; s8 n" ~8 d. A
- Atts = BR.GetAttributes' Z; I3 [2 ~# y8 [% B9 J
- If UBound(Atts) >= 0 Then8 K: Q9 j- _% X' ?/ G) H* ?1 V
- B = True+ g7 t8 i# u- d6 o. F! O
- Exit For
. R1 |& v( k! g) Q8 }6 s - End If$ ]8 R/ F6 O) a ~# `; B
- End If/ p4 |5 g2 _/ I) R; p `9 J. o, {
- Next+ a9 G$ l7 I7 d5 w
- If B Then& w/ s' A+ `/ A# N9 C2 o
- MsgBox "存在") D' r, h4 Z g, c/ z/ \& I* B
- Else
, z0 ]3 }/ T0 C, j - MsgBox "不存在"
3 O2 i$ z, t: ?" E% g/ e' [ - End If
! o9 D& t* c8 k- F - End Sub9 P* p9 s U9 A4 ~1 h" z. f
复制代码 先声明一个变体变量,用块参照对象的"GetAttributes"方法获得块参照对象的属性数组并存放在这个变体变量中,再检查这个数组的下标,如果是-1则说明数组为空,该块参照对象没有属性;如果数组下标大于或等于0,则说明该块参照有属性. |
|