CAD Select方法如何设置FilterType, FilterData
更新时间:2024-04-27 07:33:01 阅读量: 综合文库 文档下载
- cad制图初学入门推荐度:
- 相关推荐
根据AutoCAD2004 VBA的说明,Select方法的描述为: object.Select Mode[, Point1][, Point2][, FilterType][, FilterData] 如选择所有的圆,可以使用如下代码: Dim gpCode(0) As Integer Dim dataValue(0) As Variant gpCode(0) = 0
dataValue(0) = \
ssetObj.Select acSelectionSetAll, , , gpCode, dataValue
我的问题就是,如果要选择其它的对象,如何设置FilterType, FilterData?比如对象为 Ployline时。
哪位大侠能不能给一个关于此类设置的总结啊? ============================= Mode
============================= acSelectionSetWindow = 0
Selects all objects completely inside a rectangular area whose corners are defined by Point1 and Point2. And meets condition of FilterType and FilterData
acSelectionSetCrossing = 1
Selects objects within and crossing a rectangular area whose corners are defined by Point1 and Point2.And meets condition of FilterType and FilterData acSelectionSetFence = 2
Selects all objects completely inside Fence area whose are defined by Points. And meets condition of FilterType and FilterData acSelectionSetPrevious = 3
Selects the most recent selection set. This mode is ignored if you switch between paper space and model space and attempt to use the selection set. And meets condition of FilterType and FilterData acSelectionSetLast = 4
Selects the most recently created visible objects. And meets condition of FilterType and FilterData acSelectionSetAll = 5
Selects all objects. And meets condition of FilterType and FilterData acSelectionSetWindowPolygon = 6 acSelectionSetCrossingPolygon = 7
***************************************************************************** 参考:
'------------------------------------------------------------------ Option Explicit
'------------------------------------------------------------------ Public Sub Sample()
On Error GoTo ERROR_HANDLER Dim ssetObj As AcadSelectionSet
Set ssetObj = CreateSSet(\
Dim mode As Integer mode = acSelectionSetAll
Dim gpCode(0 To 10) As Integer Dim dataValue(0 To 10) As Variant
gpCode(0) = -4
dataValue(0) = \ gpCode(1) = -4
dataValue(1) = \ gpCode(2) = 0
dataValue(2) = \ gpCode(3) = -4
dataValue(3) = \
gpCode(4) = -4
dataValue(4) = \ gpCode(5) = 0
dataValue(5) = \YLINE\ gpCode(6) = -4
dataValue(6) = \
gpCode(7) = -4
dataValue(7) = \ gpCode(8) = 0
dataValue(8) = \YLINE\ gpCode(9) = -4
dataValue(9) = \
gpCode(10) = -4
dataValue(10) = \
Dim groupCode As Variant, dataCode As Variant groupCode = gpCode dataCode = dataValue
ssetObj.Select mode, , , groupCode, dataCode
MsgBox ssetObj.Count
Exit Sub
ERROR_HANDLER:
Debug.Print \ Err.Description End Sub
'------------------------------------------------------------------ ' 创建选择集
'------------------------------------------------------------------
Private Function CreateSSet(ByVal name As String) As AcadSelectionSet On Error GoTo ERR_HANDLER
Dim ssetObj As AcadSelectionSet Dim SSetColl As AcadSelectionSets
Set SSetColl = ThisDrawing.SelectionSets
Dim index As Integer Dim found As Boolean
found = False
For index = 0 To SSetColl.Count - 1 Set ssetObj = SSetColl.Item(index)
If StrComp(ssetObj.name, name, 1) = 0 Then found = True Exit For End If Next
If Not (found) Then
Set ssetObj = SSetColl.Add(name) Else
ssetObj.Clear End If
Set CreateSSet = ssetObj
Exit Function ERR_HANDLER:
Debug.Print \ Resume ERR_END
ERR_END: End Function
*********************************************************************** 过滤器列表由成对的参数组成。第一个参数标识过滤器的类型(例如对象),第二个参数指
定
要过滤的值(例如圆)。过滤器类型是指定使用哪种过滤器的 DXF 组码。下面列出了一些最常
用的过滤器类型。
================================================================================
常用过滤器的 DXF 组码 <请详查DXF手册>
-------------------------------------------------------------------------------- DXF组码 过滤器类型 缺省值
-------------------------------------------------------------------------------- -1 实体名称(随图档的开启而不同) 不可省略 -------------------------------------------------------------------------------- 0 对象类型(字符串)
例如“Line”、“Circle”、“Arc”等。 不可省略 -------------------------------------------------------------------------------- 2 对象名(字符串) 不可省略 命名对象的表(给定)名称。
-------------------------------------------------------------------------------- 5 处理码 不可省略
--------------------------------------------------------------------------------
6 线型名称(若线型不为bylayer,此群码值会出现) bylayer -------------------------------------------------------------------------------- 8 图层名(字符串) 0 例如“图层 0”。
-------------------------------------------------------------------------------- 48 线型比例(选择) 1.0
-------------------------------------------------------------------------------- 60 对象可见性(整数)
使用 0 = 可见,1 = 不可见。
-------------------------------------------------------------------------------- 62 颜色编号(整数) bylayer 范围 0 到 256 内的数字索引值。
零表示 BYBLOCK。256表示BYLAYER。 负值表示图层被关闭。
-------------------------------------------------------------------------------- 67 模型/图纸空间标识符(整数) 0 使用 0 或省略=模型空间,1=图纸空间。
================================================================================
物件是CIRCLE OR 物件是LINE FilterData
(物件是CIRCLE OR 物件是LINE) AND 圖層位於DIM層
FilterData DIM AND> FilterType -4 -4 0 0 -4 8 -4
物件是CIRCLE OR 物件是LINE) AND NOT(圖層位於DIM層) FilterData
过滤器参数声明为数组,过滤器类型声明为整数,过滤器值声明为变量。每个过滤器类型都必
须与过滤器值成对出现。例如:
FilterType(0) = 0 ' 表示过滤器是对象类型FilterData(0) = \' 表示对象类型 是“Circle”
以下代码指定两个条件:对象必须是圆,并且必须在图层 0 上。代码将 FilterType 和 FilterData 声明为两个元素的数组,并将每个条件指定给一个元素:
Sub Ch4_FilterBlueCircleOnLayer0() Dim sstext As AcadSelectionSet Dim FilterType(1) As Integer Dim FilterData(1) As Variant
Set sstext = ThisDrawing.SelectionSets.Add(\ FilterType(0) = 0
FilterData(0) = \ FilterType(1) = 8 FilterData(1) = \
sstext.SelectOnScreen FilterType, FilterData End Sub
在指定多个选择条件时,AutoCAD 会假设选定的对象必须符合每一个条件。但用户可以按照其
他方式来指定条件。对于数字项,用户可以指定关系运算(例如,圆的半径必须大于或等于 5.0);对于所有项,用户可以指定逻辑运算(例如 Text 或 Mtext)。
使用 -4 DXF 组码来指示过滤器规格中的关系运算符。以字符串的形式来指定运算符。下表显
示了可以使用的关系运算符:
=========================== 选择集过滤器列表的关系运算符 -------------------------- 运算符 说明
--------------------------
\任何情况(总为真) -------------------------- \等于
-------------------------- \不等于
-------------------------- \不等于
-------------------------- \不等于
-------------------------- \小于
-------------------------- \小于或等于 -------------------------- \大于
-------------------------- \大于或等于 --------------------------
\按位与 (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
正在阅读:
CAD Select方法如何设置FilterType, FilterData04-27
武汉市事业单位专业技术岗位设置后有关问题的暂行意见武人社发 2011 77号01-13
新学期新起点作文350字06-18
5000td新型干法水泥厂石灰石圆形预均化堆场工艺设计07-01
2017北京各区中考物理试题中的实验压轴题及答案(一)01-21
幸福的小路作文800字06-30
教育随笔《语文课,带着学生上路——听倪特讲座有感》05-23
工程材料课后习题(1)09-09
浅析园林绿化中的滨河景观功能分区05-30
高校辅导员技能大赛试题06-05
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- FilterData
- FilterType
- 设置
- 方法
- Select
- 如何
- CAD
- 基于51单片机的数字时钟设计2013
- 基础护理4-5章试题牟洪琼
- 16-17版:第二章化学物质及其变化重难点专题突破(二)(步步高
- 上海+深圳交易所代码编码规则
- 北京市石景山区2018-2019学年八年级下期末质量数学试题含答案新
- 低频小信号放大器电路设计毕业论文
- 2017年版中国气象探测系统行业调研报告目录
- 建设工程项目管理综合测试题(解答)
- 2014年国家级教学成果奖获奖项目名单 - 图文
- 关于档案整理工作的案例分析
- 电大计算机应用基础上机考试操作题
- 浙江省新课改联谊学校11月份联考(word)化学
- 药学基础(中专起)模拟试卷
- 新目标人教版七年级英语上册Unit2单词、短语、句型、语法综合讲
- 地震中的父与子(一等奖教案)
- 基于FPGA的逐点比较圆弧插补算法设计
- 重庆市书法家协会会员名录
- 5年级易错题(苏教版)
- 经济法概论试题及答案
- 铣工中级理论知识试卷