gufeng 发表于 2005-12-23 16:08:00

选择集按图层排序

<P>使用(ssget "x" 创建的选择集:</P>
<P>(setq ss (ssget "x" '((0 . "point") )))</P>
<P>可以把选择集&nbsp; ss 按图层排序,然后返回一个选择集吗?</P>
<P>按图层排序就是按图层的第一上字母,如有图层: BC&nbsp; AC&nbsp; FC&nbsp; DC</P>
<P>排序的顺序是 AC BC DC FC</P>

jpg102329 发表于 2017-8-12 08:00:05

(setq ss (ssget "x" '((0 . "text") )))
(defun tt(ss)
(setq elst(ice ss))
(setq elst(vl-sort elst (function(lambda(x y)(<(vla-get-layer(vlax-ename->vla-object x))(vla-get-layer(vlax-ename->vla-object y)))))))
(enamelst->ss (REVERSE elst))
)

(defun enamelst->ss(enamelst / ename sl ss)
(setq ss(ssadd))
(setq sl(length enamelst))
(repeat sl
    (setq ename(nth (setq sl(1- sl)) enamelst))
    (setq ss(ssadd ename ss))))
;;;选择集转图元名表001
;【博士】水洗(924604042) 15:42:42
;15:55 2017/3/9
(defun ice (s)
(if (/= 0 (sslength s))
(cons (ssname s 0) (ice (ssdel (ssname s 0) s)))
)
)
(vla-get-layer(vlax-ename->vla-object(ssname (tt ss) 0)));此句测试使用
(print"***大懒猪荣誉出品***")

xujinhua 发表于 2017-8-5 12:06:23

顶上去,我也想知道啊

jpg102329 发表于 2017-8-17 09:12:03

咦,这个不是在编程申请版块吗?怎么没钱呢
页: [1]
查看完整版本: 选择集按图层排序