一、选择集过滤时的使用方式如下:
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 位符号整数。 |
来源:互联网