-------------------------- \不等于
-------------------------- \不等于
-------------------------- \小于
-------------------------- \小于或等于 -------------------------- \大于
-------------------------- \大于或等于 --------------------------
\按位与 (AND,仅限于整数组) --------------------------
\按位屏蔽相等(仅限于整数组) ==========================
-4 组码也可以指定过滤器列表中的逻辑运算符,逻辑运算符是字符串但必须成对出现。运算符
以小于号开始 (<),以大于号结束 (>)。下表列出了可以在选择集过滤中使用的逻辑运算符。 ===================================== 选择集过滤器列表的逻辑编组运算符 -------------------------------------
开始运算符 包含的内容 结束运算符 -------------------------------------
\一个或多个运算对象 \ -------------------------------------
\一个或多个运算对象 \ -------------------------------------
\两个运算对象 \ -------------------------------------
\一个运算对象 \
=====================================
************************************************************************* 以下代码指定选择半径大于或等于 5.0 的圆: Sub Ch4_FilterRelational() Dim sstext As AcadSelectionSet Dim FilterType(2) As Integer Dim FilterData(2) As Variant
Set sstext = ThisDrawing.SelectionSets.Add(\ FilterType(0) = 0
FilterData(0) = \ FilterType(1) = -4 FilterData(1) = \
FilterType(2) = 40 FilterData(2) = 5#
sstext.SelectOnScreen FilterType, FilterData End Sub
下例指定选择 Text 或 Mtext 对象:
Sub Ch4_FilterOrTest()
Dim sstext As AcadSelectionSet Dim FilterType(3) As Integer Dim FilterData(3) As Variant
Set sstext = ThisDrawing.SelectionSets.Add(\ FilterType(0) = -4 FilterData(0) = \ FilterType(1) = 0
FilterData(1) = \ FilterType(2) = 0
FilterData(2) = \ FilterType(3) = -4
FilterData(3) = \
sstext.SelectOnScreen FilterType, FilterData End Sub
过滤器列表中的符号名称和字符串可以包含通配符模式。 下表显示了 AutoCAD 能够识别的通
配符以及每个通配符在上下文字符串中的含义:
===================================================================== 通配符
-------------------------------------------------------- 字符 定义
-------------------------------------------------------
# (磅值符号) 匹配任意一个数字 @ (at) 匹配任意一个字母
. (句号) 匹配任意一个非字母数字的字符
* (星号) 匹配任意的字符序列(包括空字符串),它可以用在任何搜索模 式中:包括开头、中间和结尾处
? (问号) 匹配任意一个字符
~ (波浪号) 如果它是模式中的的第一个字符,则匹配除此模式以外的任意内 容
[...] 匹配方括号中的任意一个字符
[~...] 匹配不在方括号中的任意一个字符
- (连字符) 用在方括号中,指定一个字符的取值范围 , (逗号) 分隔两个模式
` (单引号) 避开特殊的字符(直接读取下一个字符)
======================================================================
===
使用单引号 (`) 表示下一个字符不是通配符,而是普通字符。例如,要指定在选择集中只包含
名为“*U2”的匿名块,请使用以下过滤器参数: FilterType(0) = 2 FilterData(0) = \
`*U2\以下代码将选择条件定义为选择包含“The”的所有 Mtext。本例也说明了 SelectByPolygon 选择方法的用法: Sub Ch4_FilterPolygonWildcard() Dim sstext As AcadSelectionSet Dim FilterType(1) As Integer Dim FilterData(1) As Variant
Dim pointsArray(0 To 11) As Double Dim mode As Integer
mode = acSelectionSetWindowPolygon
pointsArray(0) = -12#:pointsArray(1) = -7#:pointsArray(2) = 0 pointsArray(3) = -12#:pointsArray(4) = 10#:pointsArray(5) = 0 pointsArray(6) = 10#:pointsArray(7) = 10#:pointsArray(8) = 0 pointsArray(9) = 10#:pointsArray(10) = -7#:pointsArray(11) = 0 Set sstext = ThisDrawing.SelectionSets.Add(\ FilterType(0) = 0
FilterData(0) = \ FilterType(1) = 1
FilterData(1) = \
sstext.SelectByPolygon mode, pointsArray, FilterType, FilterData End Sub