如果指定多个选择条件,AutoCAD 将假设选定对象必须符合所有条件。但用户可以按照其他方式来指定条件。对于数字项,用户可以指定关系运算(例如,圆的半径必须大于或等于 5.0);对于所有项,用户可以指定逻辑运算(例如 Text 或 Mtext)。
使用 -4 DXF 组码来指示过滤器规格中的关系运算符。以字符串的形式来指定运算符。下表显示了可以使用的关系运算符:
选择集过滤器列表的关系运算符 |
|
---|---|
运算符 |
说明 |
"*" |
任何情况(总为真) |
"=" |
相等 |
"!=" |
不等于 |
"/=" |
不等于 |
"<>" |
不等于 |
"<" |
小于 |
"<=" |
小于或等于 |
">" |
大于 |
">=" |
大于或等于 |
"&" |
按位 AND(仅限于整数组) |
"&=" |
按位屏蔽相等(仅限于整数组) |
过滤器列表中的逻辑运算符也由 -4 组代码表示,运算符为字符串,但必须组对。运算符以小于号开始 (<),以大于号结束 (>)。下表列出了可以在选择集过滤中使用的逻辑运算符。
选择集过滤器列表的逻辑编组运算符 |
||
---|---|---|
开始 运算符 |
包含的内容 |
结束 运算符 |
"<AND" |
一个或多个运算对象 |
"AND>" |
"<OR" |
一个或多个运算对象 |
"OR>" |
"<XOR" |
两个运算对象 |
"XOR>" |
"<NOT" |
一个运算对象 |
"NOT>" |
Sub Ch4_FilterRelational()
Dim sstext As AcadSelectionSet
Dim FilterType(2) As Integer
Dim FilterData(2) As Variant
Set sstext = ThisDrawing.SelectionSets.Add("SS5")
FilterType(0) = 0
FilterData(0) = "Circle"
FilterType(1) = -4
FilterData(1) = ">="
FilterType(2) = 40
FilterData(2) = 5#
sstext.SelectOnScreen FilterType, FilterData
End Sub
Sub Ch4_FilterOrTest()
Dim sstext As AcadSelectionSet
Dim FilterType(3) As Integer
Dim FilterData(3) As Variant
Set sstext = ThisDrawing.SelectionSets.Add("SS6")
FilterType(0) = -4
FilterData(0) = "<or"
FilterType(1) = 0
FilterData(1) = "TEXT"
FilterType(2) = 0
FilterData(2) = "MTEXT"
FilterType(3) = -4
FilterData(3) = "or>"
sstext.SelectOnScreen FilterType, FilterData
End Sub