选择集按图层排序
<P>使用(ssget "x" 创建的选择集:</P><P>(setq ss (ssget "x" '((0 . "point") )))</P>
<P>可以把选择集 ss 按图层排序,然后返回一个选择集吗?</P>
<P>按图层排序就是按图层的第一上字母,如有图层: BC AC FC DC</P>
<P>排序的顺序是 AC BC DC FC</P> (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"***大懒猪荣誉出品***") 顶上去,我也想知道啊 咦,这个不是在编程申请版块吗?怎么没钱呢
页:
[1]