关于修改选择集 (AutoLISP)
创建选择集后,可以使用 和 向其添加实体或从中删除实体。ssaddssdel 您可以使用该函数创建新的选择集或将实体添加到现有选择集。下面的示例代码创建一个选择集,其中包括当前图形中的第一个和最后一个图元 ( 和 ):ssaddentnextentlast (setq fname (entnext)) ; Gets first entity in the drawing. (setq lname (entlast)) ; Gets last entity in the drawing. (if (not fname) (princ "\nNo entities in drawing. ") (progn (setq ourset (ssadd fname)) ; Creates a selection set ; of the first entity. (ssadd lname ourset) ; Adds the last entity to ; the selection set. ) ) 即使数据库中只有一个实体(在这种情况下,两个实体都将其参数设置为相同的实体名称),该示例也能正确运行。如果传递了选择集中已有的实体的名称,则会忽略该请求,并且不会报告错误。entnextentlastssadd 下面的示例代码从上一示例中创建的选择集中删除第一个实体: (ssdel fname ourset) 如果图形中有多个图元(即,如果 和 不相等),则选择集仅包含图形中的最后一个图元。fnamelnameoursetlname 该函数返回选择集中的实体数,并测试特定实体是否是选择集的成员。最后,该函数使用选择集中的索引返回选择集中特定实体的名称(选择集中的实体从 0 开始编号)。sslengthssmembssname 以下示例代码显示了对 的调用:ssname (setq sset (ssget)) ; Prompts the user to create ; a selection set. (setq ent1 (ssname sset 0)) ; Gets the name of the first ; entity in sset. (setq ent4 (ssname sset 3)) ; Gets the name of the fourth ; entity in sset. (if (not ent4) (princ "\nNeed to select at least four entities. ") ) (setq ilast (sslength sset)) ; Finds index of the last ; entity in sset. ; Gets the name of the last ; entity in sset. (setq lastent (ssname sset (1- ilast))) 无论如何将实体添加到选择集中,该集都不会包含重复的实体。如果多次添加同一实体,则忽略以后添加的内容。因此,准确返回指定选择集中非重复图元的数量。sslength 相关概念 |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 23:59
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.