|
|
发表于 2010-9-1 21:07:20
|
显示全部楼层
来自: 中国辽宁
有个问题:你是要查找名为"属性块"的块参照,还是要查找带有属性的块参照?. Q5 i. {& ]! {: Z% w, }& Z
如果是前者,上面的代码就可以了.如果是后者,要用下面的代码- / x; _' {' _$ v( T( K
- Sub A()
5 U4 L' ]9 n0 @0 [5 @ - Dim E As AcadEntity, BR As AcadBlockReference, B As Boolean, Atts As Variant
$ F( i# T A4 @' @$ \8 J/ g - For Each E In ThisDrawing.ModelSpace
8 R( K6 X7 P. L, h# x6 `7 @$ q - If E.ObjectName = "AcDbBlockReference" Then
1 V& B! V5 m; ~: U5 ~ - Set BR = E" B& M8 u8 k! [ _
- Atts = BR.GetAttributes! Q1 a7 Z8 O$ h4 U1 i& s
- If UBound(Atts) >= 0 Then
2 {$ X; ]' L9 b - B = True
) o8 \8 ^; X; N. M- y+ Z, t - Exit For
o, J* j/ b- K8 s; f - End If. x2 j7 o- v4 W/ K ~1 N6 q
- End If$ H8 H$ W4 s( `6 a
- Next
4 z9 h" Y7 e1 d; ~9 N - If B Then
7 @& ?( \ `6 @" H% O5 O: ^$ Y0 f - MsgBox "存在"
& |8 i% |/ z. B) P$ q$ O! n; L - Else# `/ \$ i L2 n
- MsgBox "不存在": c! o1 V# R2 C1 {9 D# X
- End If9 C0 p! d8 d& S: l6 A- A7 o
- End Sub
+ ^6 N9 Z* g8 s; g
复制代码 先声明一个变体变量,用块参照对象的"GetAttributes"方法获得块参照对象的属性数组并存放在这个变体变量中,再检查这个数组的下标,如果是-1则说明数组为空,该块参照对象没有属性;如果数组下标大于或等于0,则说明该块参照有属性. |
|