MastroLube 发表于 2022-7-5 18:51:27

从另一个选择中获取

大家好,
我想知道是否有可能从另一个选择集获得一个选择集过滤器。
(ssget“P”'((0。“ATTDEF”))从最后一个选择集中获取所有属性
 
以前的sset也包含多段线,但我现在无法执行
(ssget“P”'((0。“LWPOLYLINE”))因为上一个集合只包含属性。
 
也许我可以做一个(ssget“P”((0。“LWPOLYLINE,ATTDEF”))但是我必须做一个循环来选择不同的元素。
 
 
我的问题是,是否可以从这样的选择集中获取对象:
(defun c:esplodi_cordoli (/ )
;explode all blocks
(setq sel1 (ssget '((0 . "INSERT"))))
(setvar "qaflags" 1)
(command "_explode" sel1 "")
(setvar "qaflags" 0)

;select polylines and attributes
(setq index 0
   sel2 (ssget "P" '((0 . "LWPOLYLINE,attdef")))
   sel3 (ssget sel2 '((0 . "LWPOLYLINE")))
   sel4 (ssget sel2 '((0 . "ATTDEF")))
   )

;;change color to polylines

(repeat (sslength sel3)
(setq modificato (SUBST (CONS 62 253) (ASSOC 62 (entget (ssname sel3 index))) (entget (ssname sel3 index))))
(entmod modificato)
(setq index (1+ index))
)

(setq sel4 (ssget "P" '((0 . "ATTDEF"))))
(setq i -1)
(repeat (sslength sel4)
(entdel (ssname sel4 (setq i (1+ i))))
)
)

谢谢大家!!!
丹尼斯

rlx 发表于 2022-7-5 19:26:29

当然,请逐步完成您的选择集,例如ss1(使用ssname/sslength),并为每个元素检查新条件,然后使用ssadd,例如:if(=(setq ent(ssname ss1 i))(您的条件))(setq ss2(ssadd ent)
 
 
我想你知道如何处理sslength(setq len(sslength ss1)I 0)(而(
 
 
gr.Rlx

SLW210 发表于 2022-7-5 19:44:07

请阅读代码发布指南并编辑您的帖子,将代码包含在代码标签中。
Your Code Here=
Your Code Here

Commandobill 发表于 2022-7-5 20:10:02

 
或者李的网站上列出的许多其他方式
页: [1]
查看完整版本: 从另一个选择中获取