一、选择集过滤时的使用方式如下:
Object 指使用SelectionSet这个方法适用的对象
运用select方法
Select的5种mode选择方式:
1:择全部对象(acselectionsetall)
2:选择上次创建的对象(acselectionsetlast)
3:选择上次选择的对象(acselectionsetprevious)
4:选择矩形窗口内对象(acselectionsetwindow)
5:选择矩形窗口内以及与边界相交的对象(acselectionsetcrossing)
1) object.Select Mode[, Point1][, Point2][, FilterType][, FilterData]
2) object.SelectOnScreen [FilterType][, FilterData]
3) object.SelectAtPoint Point, FilterType, FilterData
FilterType:Variant[变体](整数数组); 仅用于输入;(可选项) 指定使用的过滤器类型的 DXF 组码。
FilterData:Variant[变体](变体数组); 仅用于输入;(可选项) 过滤器的值。
二、DXF群组码共同群组码代码一览表
群码 | 说明 | 预设值 |
-4 | 过滤群组方式,例如 <AND 、AND>、<OR、OR>、<XOR、XOR>、<NOT、NOT> | 单一条件时可省略 |
-1 | 图元名称(会随每一个图档开启而有所不同) | 不可省略 |
0 | 图元类型,例如 “ARC”、 “LINE”、”CIRCLE”… | 不可省略 |
5 | 处理码 | 不可省略 |
6 | 线型名称(如果线型不为”BYLAYER”,此群码值会出现) | BYLAYER |
8 | 图层名称 | 不可省略 |
48 | 线性比例(选择性) | 1.0 |
60 | 物件可见性, 0=可见, 1=不可见 | 0 |
62 | 颜色编号 (如果线型不为”BYLAYER”,此群群码会出現)当值为0時,即指BYLAYER,如果是负值即指该图层是关闭的(选择性) | BYLAYER |
67 | 值为空或0时即指图元在模型空间,如果为1指在图形空间 | 0 |
三、过滤群组方式
– FilterType (DXF 群组码) = -4
过滤群组方式 | 內含项目 | 描述 | 运算法则 |
“<AND” … “AND>” | 1 或 多个 | 所有项目的交集 | 1+1=1, 1+0=0, 0+1=0, 0+0=0 |
“<OR” … “OR>” | 1 或多个 | 所有项目的并集 | 1+1=1, 1+0=1, 0+1=1, 0+0=0 |
“<XOR” … “XOR>” | 2个 | 两个项目的异或运算 | 1+1=0, 1+0=1, 0+1=1, 0+0=0 |
“<NOT” … “NOT>” | 1个 | 不包含此项目的值 | NOT(1)=0,NOT(0)=1 |
四、范例:
1、过滤条件为图元为MTEXT
图元是MTEXT
FilterData | MTEXT |
FilterType | 0 |
2、过滤条件为图元为CIRCLE或LINE
图元是CIRCLE OR 图元是LINE
FilterData | <OR | CIRCLE | LINE | OR> |
FilterType | -4 | 0 | 0 | -4 |
3、过滤条件为图元在DIM 图层(LAYER)中的CIRCLE或LINE
(图元是CIRCLE OR 图元是LINE) AND 图层位于DIM层
FilterData | <AND | <OR | CIRCLE | LINE | OR> | DIM | AND> |
FilterType | -4 | -4 | 0 | 0 | -4 | 8 | -4 |
4、过滤的条件为图元为CIRCLE或LINE但图层(LAYER)不属于DIM层
(图元是CIRCLE OR 图元是LINE) AND NOT(图层位于DIM层)
FilterData | <AND | <OR | CIRCLE | LINE | OR> | <NOT | DIM | NOT> | AND> |
FilterType | -4 | -4 | 0 | 0 | -4 | -4 | 8 | -4 | -4 |
DXF组码表
组码 | 说明 |
-5 | APP:persistent reactor 链表 |
-4 | APP:条件运算符(仅用于 ssget) |
-3 | APP:扩展数据 (XDATA) 标记(固定) |
-2 | APP:图元名引用 (固定) |
-1 | APP:图元名。每次打开图形时它都改变,且不被保存。(固定) |
0 | 表示图元类型的文字字符串(固定) |
1 | 图元的主要文字值 |
2 | 名称(属性标记、块名称等) |
3-4 | 其他的文字值或名称值 |
5 | 图元句柄。最多 16 位十六进制数字的文字字符串(固定) |
6 | 线型名(固定) |
7 | 文字样式名(固定) |
8 | 图层名(固定) |
9 | DXF:变量名标识符(仅用于 DXF 文件的 HEADER 区域)。 |
10 | 主要点。此点为直线或文字图元的起点,圆的圆心等等。
DXF:主要点的 X 值(其后为 Y 和 Z 值的组码 20 和 30) APP:三维点(三个实数构成的表) |
11-18 | 其他点。
DXF:其他点的 X 值(其后为 Y 和 Z 值的组码 21-28 和 31-38) APP:三维点(三个实数构成的表) |
20, 30 | DXF:主要点的 Y 和 Z 值 |
21-28, 31-37 | DXF:其他点的 Y 和 Z 值 |
38 | DXF:如果非零,则为图元的标高 |
39 | 如果非零,则为图元的厚度(固定) |
40-48 | 浮点值(文字高度、比例因子等) |
48 | 线型比例。浮点标量值。缺省值适用于所有图元类型。 |
49 | 可重复的浮点值。一个图元中的可变长度表(例如 LTYPE 表中的虚线长度)中可出现多个组码 49。组码 7x 总是在第一个组码 49 前出现,用于指定表的长度。 |
50-58 | 角度(在 DXF 文件中单位为度,在 AutoLISP 和 ARX 应用程序中单位为弧度)。 |
60 | 表示图元可见性的整数值。不赋值或值为 0 时表示可见;为 1 时表示不可见。 |
62 | 颜色代码(固定) |
66 | “图元跟随”标志(固定) |
67 | 空间,即模型空间或图纸空间(固定) |
68 | APP:表示视口打开但不可见、未激活或者关闭。 |
69 | APP:视口标识数字。 |
70-78 | 整数值,如重复部分的计数器、标志位或模式等。 |
90-99 | 32 位整数值 |
100 | 子类数据标记(把继承下来的类名当作字符串)。由具体类继承下来的所有对象和图元类都必须有此项。此标记用于分离某个对象中由不同的类定义的数据。它也满足从 ARX 继承下来的每个独立的具体类的 DXF 命名需要(请参见子类标记)。 |
102 | 控制字符串,其后为“{<任意名称>”或 “}”。除了字符串必须以 “{” 开始外,它与外部数据组码 1002 类似。其后可跟任意字符串,且此字符串的解释取决于应用程序。另一个可用的控制字符串为 “}”,它标识组的结束。如上所述,除了在执行图形核查操作期间外 AutoCAD 一般不解释这些字符串;它们仅用于应用程序。 |
105 | DIMVAR 符号表条目对象句柄。 |
210 | 拉伸方向(固定)。
DXF:拉伸方向的 X 值 APP:三维拉伸方向矢量 |
220, 230 | DXF:拉伸方向的 Y 和 Z 值 |
280-289 | 8 位整数值 |
290-299 | 布尔标志值 |
300-309 | 任意的文字字符串 |
310-319 | 任意二进制数据组,与组码 1004 具有相同表示法和限制:最长为 254 个字符的十六进制字符串表示最长为 127 个字节的数据数据组。 |
320-329 | 任意对象句柄。句柄值保留原样,在执行 INSERT 和 XREF 操作时它们不被转化。 |
330-339 | 软键指针句柄。任意指向同一 DXF 文件或图形中的其他对象的软键指针,在执行 INSERT 和 XREF 操作时被转化。 |
340-349 | 硬键指针句柄。任意指向同一 DXF 文件或图形中的其他对象的硬键指针,在执行 INSERT 和 XREF 操作时被转化。 |
350-359 | 软键从属句柄。链接到同一 DXF 文件或图形中其他对象的任意软键从属链接,在执行 INSERT 和 XREF 操作时被转化。 |
360-369 | 硬键从属句柄。链接到同一 DXF 文件或图形中其他对象的任意硬键从属链接,在执行 INSERT 和 XREF 操作时被转化。 |
370-379 | 线宽枚举值 (AcDb::LineWeight)。作为短整数保存并移动。自定义非图元对象可使用全部范围组码,但图元类只能在其描述中使用371-379的DXF组码,因为AutoCAD和AutoLISP都总是采用370组码作为图元的线宽。在这里370组码就象其它的“公用”图元字段一样。 |
380-389 | 打印样式名类型枚举(AcDb::PlotStyleNameType)。作为短整数保存并移动。自定义非图元对象可使用全部范围组码,但图元类只能在其描述中使用381-389的DXF组码,其原因与上面的线宽范围相同。 |
390-399 | 描述打印样式名对象的句柄值,本质上是硬指针,但它有一不同的范围以使向后兼容能容易地处理。作对象的ID(在DXF文件中为句柄)和在AutoLISP中为特殊的类型保存并移动。自定义非图元对象可使用全部范围组码,但图元类只能在其描述中使用391-399的DXF组码,其原因与上面的线宽范围相同。 |
400-409 | 16位整数 |
410-419 | 字符串 |
999 | DXF:999 组码表示其后为注释字符串行。DXFOUT 不在 DXF 输出文件中包括此组;DXFIN 能识别词组码,但忽略其后的注释。通过 999 组码,用户可以在所编辑的 DXF 文件中包括注释。 |
1000 | 扩展数据中的 ASCII 字符串(最长 255 个字节)。 |
1001 | 扩展数据的已注册应用程序名(ASCII 字符串,最长 31 个字节)。 |
1002 | 扩展数据控制字符串(”{” 或 “}”)。 |
1003 | 扩展数据图层名。 |
1004 | 扩展数据中的字节数据组(最长 127 字节)。 |
1005 | 扩展数据中的图元句柄。文字字符串,最多 16 位十六进制数字。 |
1010 | 扩展数据中的点
DXF:X 值(其后跟组码 1020 和 1030) APP:三维点 |
1020, 1030 | DXF:点的 Y 和 Z 值 |
1011 | 扩展数据中的三维世界空间位置
DXF:X 值(其后跟组码 1021 和 1031):三维点 |
1021, 1031 | DXF:世界空间位置的 Y 和 Z 值。 |
1012 | 扩展数据中的三维世界空间位移
DXF:X 值(其后跟组码 1022 和 1032):三维矢量 |
1022, 1032 | DXF:世界空间位移的 Y 和 Z 值 |
1013 | 扩展数据中的三维世界空间方向
DXF:X 值(其后跟组码 1022 和 1032) APP:三维矢量 |
1023, 1033 | DXF:世界空间方向的 Y 和 Z 值 |
1040 | 扩展数据浮点值。 |
1041 | 扩展数据距离值。 |
1042 | 扩展数据比例因子。 |
1070 | 扩展数据 16 位符号整数。 |
1071 | 扩展数据 32 位符号整数。 |
来源:互联网
本内容为作者个人观点,不代表学测量网站立场.
如对本文有异议或投诉,联系bd@xueceliang.cn