|
|
发表于 2010-9-1 21:07:20
|
显示全部楼层
来自: 中国辽宁
有个问题:你是要查找名为"属性块"的块参照,还是要查找带有属性的块参照?
( F* }6 j5 @0 F P4 L如果是前者,上面的代码就可以了.如果是后者,要用下面的代码- ' N( c' _! U7 x6 ~
- Sub A()( [' ^& f2 B8 \" ?/ ~* F
- Dim E As AcadEntity, BR As AcadBlockReference, B As Boolean, Atts As Variant) t7 G/ M0 J$ g f4 ^3 y* H( v5 P
- For Each E In ThisDrawing.ModelSpace2 u3 ] {% e: r0 f
- If E.ObjectName = "AcDbBlockReference" Then+ d4 A" `: p, A; T, |# g. N
- Set BR = E8 k! x" R3 V9 Q9 `
- Atts = BR.GetAttributes8 W$ h6 T7 ?+ P
- If UBound(Atts) >= 0 Then' s1 o7 m ^0 a; N
- B = True
; {( l5 t6 G- e0 d0 f0 X9 ` - Exit For; Z5 h1 k6 k7 d6 Z F8 \, U
- End If! B. v# D8 k# x9 \3 p
- End If5 }4 v# [2 }, c5 }& {
- Next
2 ^, o1 y D& B0 }3 e - If B Then* i8 x4 w3 ~/ l! Q0 \; w+ Q
- MsgBox "存在"
; R4 Y2 l# t- m& ]: o - Else* P' G; }+ o8 u4 a
- MsgBox "不存在"
7 ~+ E' Q1 i, u7 j( N/ D, e2 j - End If
) N7 a9 S+ _& c6 ]) o2 V - End Sub7 D' i$ O R3 m9 d
复制代码 先声明一个变体变量,用块参照对象的"GetAttributes"方法获得块参照对象的属性数组并存放在这个变体变量中,再检查这个数组的下标,如果是-1则说明数组为空,该块参照对象没有属性;如果数组下标大于或等于0,则说明该块参照有属性. |
|