实体筛选器列表是使用 DXF 组代码的关联列表,其格式与 返回的列表相同。entget 该函数可识别除实体名称(组代码 -1)、句柄(组代码 5)和 xdata(大于 1000 的组代码)之外的所有组代码。如果在筛选器列表中使用了无效的组代码,则 将忽略该代码。使用组代码 -3 搜索带有 xdata 的对象。当 filter-list 作为 的最后一个参数提供时,该函数将扫描选定对象并创建一个选择集,其中包含与指定条件匹配的所有主要实体的名称。筛选器列表指定要检查实体的哪些属性(或多个属性)以及哪些值构成匹配项。ssgetssgetssget 例如,您可以获取一个选择集,其中包含给定类型、给定图层或给定颜色的所有对象。 以下示例演示了将筛选器列表与各种对象选择选项一起使用的不同方法。
如果组代码和所需值都已知,则可以如前所述引用列表。如果变量指定了任一变量,则必须使用 and 函数构造列表。例如,以下代码创建数据库中位于层 FLOOR3 上的所有对象的选择集:listcons (setq lay_name "FLOOR3") (setq ss1 (ssget "X" (list (cons 8 lay_name)) ) ) 如果 filter-list 指定了多个属性,则仅当实体与所有指定条件匹配时,该实体才会包含在选择集中,如以下示例代码所示: (ssget "X" (list (cons 0 "CIRCLE")(cons 8 lay_name)(cons 62 3))) 此代码仅选择图层 FLOOR3 上颜色为绿色的 Circle 对象。这种类型的测试执行布尔运算。“AND” 该函数通过扫描所选实体并将每个主实体的字段与指定的筛选列表进行比较来筛选选择集。如果实体的属性与筛选列表中的所有指定字段匹配,则该实体将包含在返回的选择集中。否则,该图元将不包括在选择集中。如果所选实体均未与指定的筛选条件匹配,则该函数将返回。ssgetssgetnil 注意:某些组代码的含义可能因实体而异,并且并非所有组代码都存在于所有实体中。如果在筛选器中指定了特定的组代码,则不包含该组代码的实体将从返回的选择集中排除。ssget
筛选选择集时,它检索的选定对象可能包括图纸空间和模型空间中的图元。但是,当选择集传递给 AutoCAD 命令时,仅使用当前生效空间中的图元。(实体所属的空间由其 67 组代码的值指定。ssget 相关概念 |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-16 00:31
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.