CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2025 开发者帮助

关于向筛选器列表条件添加复杂性 (VBA/ActiveX)

2024-5-18 19:19| 发布者: admin| 查看: 90| 评论: 0|原作者: admin|来自: AutoCAD

关于向筛选器列表条件添加复杂性 (VBA/ActiveX)

指定多个选择条件时,AutoCAD 假定所选对象必须满足每个条件。但是您可以通过其他方式限定您的标准。

对于数值项,可以指定关系运算(例如,圆的半径必须大于或等于 5.0)。对于所有项目,您可以指定逻辑运算(例如,或 )。TextMtext

使用 -4 DXF 代码指示筛选器规范中的关系运算符。将运算符指定为字符串。允许的关系运算符如下表所示。

用于选择集筛选器列表的关系运算符
算子 描述
"*" 任何事情都会发生(总是真的)
"=" 等于
"!=" 不等于
"/=" 不等于
"<>" 不等于
"<" 小于
"<=" 小于或等于
">" 大于
">=" 大于或等于
"&" 按位 AND(仅限整数组)
"&=" 按位屏蔽等于(仅限整数组)

筛选器列表中的逻辑运算符也由 -4 组代码指示,运算符是字符串,但运算符必须成对。开始运算符前面有一个小于符号 (<),结束运算符后面跟着一个大于符号 (>)。下表列出了选择集筛选中允许的逻辑运算符。

用于选择集筛选器列表的逻辑分组运算符
起动算子 包围 结束运算符
“<和” 一个或多个操作数 “和>”
“<或” 一个或多个操作数 “或>”
“<异或” 两个操作数 “异或>”
“<不” 一个操作数 “没有>”

选择半径大于或等于 5.0 的圆

下面的代码指定所选对象必须是半径大于或等于 5.0 的圆:

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

选择“文本”或“多边文字”

以下示例指定可以选择 or 对象:TextMtext

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

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2025-1-19 06:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部