1 '定义过滤器
 2
 3     Dim pType, pData
 4
 5
 6
 7     'BuildFilter pType, pData, 0, "BlockReference", 8, "GCD", 62, 3 '建立图层是JZD?颜色为绿色的多段线过滤器
 8
 9
10
11
12
13     BuildFilter pType, pData, 8, "GCD"
14
15     '定义选择集
16
17
18
19     Dim sset As AcadSelectionSet
20
21     Set sset = CreateSelectionSet
22
23     '
24
25
26
27     '根据以上指定的过滤器建立选择集
28
29
30
31     sset.Clear
32
33     sset.Select acSelectionSetAll, , , pType, pData
34
35
36
37     Dim pEntity As Object
38
39     Dim pBlock As AcadBlockReference
40
41     Dim pAttr As Variant
42
43
44
45     Dim pCoords As Variant
46
47
48
49     For Each pEntity In sset
50
51         If pEntity.ObjectName = "AcDbBlockReference" Then
52
53             Set pBlock = pEntity
54
55
56
57             If pBlock.Name = "gc200" Then
58
59                 pAttr = pBlock.GetAttributes
60
61                 For i = 0 To UBound(pAttr)
62
63                     pAttr(i).TextString = ChangeH(pAttr(i).TextString)
64
65                 Next i
66
67             ElseIf pBlock.Name = "GC022y" Then
68
69                 pCoords = pBlock.InsertionPoint
70
71
72
73                 If pCoords(2) <> 0 Then
74
75                     pCoords(2) = 0
76
77                     pBlock.InsertionPoint = pCoords
78
79                 End If
80
81             End If
82
83         End If
84
85     Next pEntity
86
87
88
89     sset.Delete
90
91     MsgBox "修改完成"
12-16 11:47