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