CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ActiveX 开发指南

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

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

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

指定多个选择条件时,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

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

以下示例指定可以选择 bothorobjects: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 )

GMT+8, 2024-5-12 01:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部