使用过滤器列表来定义选择集规则

AutoCAD ActiveX/VBA

 
使用过滤器列表来定义选择集规则
 
 
 

过滤器列表由成对的参数组成。第一个参数标识过滤器的类型(例如对象),第二个参数指定要过滤的值(例如圆)。过滤器类型是指定使用哪种过滤器的 DXF 组码。下面列出了一些最常用的过滤器类型。

常用过滤器的 DXF 组码

DXF 组码

过滤器类型

0

对象类型(字符串)

例如“Line”、“Circle”、“Arc”等。

2

对象名(字符串)

命名对象的表(给定)名称。

8

图层名(字符串)

例如“Layer 0。”。

60

对象可见性(整数)

使用 0 = 可见,1 = 不可见。

62

颜色编号(整数)

范围 0 到 256 内的数字索引值。

零表示 BYBLOCK。256 表示 BYLAYER。负值表示图层被关闭。

67

模型/图纸空间标识符(整数)

使用 0 或省略 = 模型空间,1 = 图纸空间。

有关 DXF 组码的完整列表,请参见《DXF 参考手册》中的“组码值类型”。

过滤器参数声明为数组,过滤器类型声明为整数,过滤器值声明为变量。每个过滤器类型都必须与过滤器值成对出现。例如:

FilterType(0) = 0 ' 表示过滤器是对象类型
FilterData(0) = "Circle" ' 表示对象类型是“Circle”

为选择集指定单一选择条件

以下代码提示用户选择要包含在选择集中的对象,但仅当选择的对象是 Circle 时才将其添加到选择集中:

Sub Ch4_FilterMtext()
   Dim sstext As AcadSelectionSet
   Dim FilterType(0) As Integer
   Dim FilterData(0) As Variant
   Set sstext = ThisDrawing.SelectionSets.Add("SS2")
   FilterType(0) = 0
   FilterData(0) = "Circle"
   sstext.SelectOnScreen FilterType, FilterData
End Sub