CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ActiveX 开发指南

关于在选择集筛选条件中使用通配符模式 (VBA/ActiveX)

2023-1-5 01:25| 发布者: admin| 查看: 711| 评论: 0|来自: AutoCAD

摘要: 筛选器列表中的符号名称和字符串可以包含通配符模式。

筛选器列表中的符号名称和字符串可以包含通配符模式。

下表标识了 AutoCAD 识别的通配符,以及每个通配符在字符串上下文中的含义:

通配符
字符 定义
# (磅) 匹配任何单个数字
@ (在) 匹配任何单个字母字符
.(期间) 匹配任何单个非字母数字字符
* (星号) 匹配任何字符序列,包括空字符序列,并且可以在搜索模式中的任何位置使用:开头、中间或结尾
?(问号) 匹配任何单个字符
~ (波浪号) 如果它是模式中的第一个字符,则它匹配除模式之外的任何字符
[...] 匹配包含的任何一个字符
[~...] 匹配未括起来的任何单个字符
- (连字符) 在方括号内用于指定单个字符的范围
、(逗号) 分隔两种模式
'(反向引号) 转义特殊字符(按字面意思读取下一个字符)

使用单引号 (') 表示字符不是通配符,而是按字面意思理解。例如,要指定选择集中仅包含名为“*U2”的匿名块,请使用以下过滤器参数:

FilterType(0) = 2
FilterData(0) = "`*U2"

选择文本中出现特定单词的多行文字

下面的代码将选择条件定义为文本字符串中出现“The”的任意选项。此示例还演示了选择方法的用法:MtextSelectByPolygon

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("SS10")

  FilterType(0) = 0
  FilterData(0) = "MTEXT"
  FilterType(1) = 1
  FilterData(1) = "*The*"

  sstext.SelectByPolygon mode, pointsArray, FilterType, FilterData
End Sub

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-12 08:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部