VBA能控制图层的新组过滤器吗?
<p>在CAD中用layer可以创建新组过滤器。但是如何通过VBA创建或者编辑这个图层过滤器呢?我看CAD的对象树里没有图层过滤器相关的。</p><p>谁能教教我啊?到底用VBA能不能做到呢?</p> 折腾了半天,囫囵吞枣的拷贝到如下一点点咚咚,期待高人指点,这里面的xtype及xvalue的意思,为什么xtype多个值是1呢?如果我需要把axis及axis-text等图层都加进来又该如何设置xtype及xvalue呢?
Dim xRec As AcadXRecord
Dim oDict1 As AcadDictionary, oDict2 As AcadDictionary
Dim xtype(0 To 6) As Integer
Dim xvalue(0 To 6) As Variant
Dim name As String
name = "结构图层" 'Filter name
xtype(0) = 1: xvalue(0) = name 'Filter Name:
xtype(1) = 1: xvalue(1) = "AXIS" 'Layer Name
xtype(2) = 1: xvalue(2) = "*" 'Color
xtype(3) = 1: xvalue(3) = "*" 'Lineyype
xtype(4) = 70: xvalue(4) = 0 'DXF (0 Both (On/Off) + 0 Both (Frz/Thaw) = 0)
xtype(5) = 1: xvalue(5) = "*" 'Lineweight
xtype(6) = 1: xvalue(6) = "*" 'PlotStyle
'xtype(7) = 1: xvalue(7) = "AXIS-TEXT" 'Layer Name
Set oDict1 = acaddoc.Layers.GetExtensionDictionary
Set oDict2 = oDict1.AddObject("ACAD_LAYERFILTERS", "AcDbDictionary")
Set xRec = oDict2.AddXRecord(name)
xRec.SetXRecordData xtype, xvalue
acaddoc.Utility.Prompt xRec.Item(0).name
<p>经过一整天的不断尝试以及找资料,终于发现:如果图层过滤器要选中axis和axis-text图层,那么只需要将axis替换成axis,axis-text.</p>
<p>感觉坛子里大家都不愿意回答问题,帮助我这样的新手嘛。</p>
<p>另外,创建了这个图层过滤器,但是并没有激活啊,需要用layer进去激活,否则图层过滤器还是全部</p>
页:
[1]