;;建筑层数排序,早期也玩过的。 dwg001
(defun c:tt (/ al bl i j l m n)
(setq l '("-2层" "1层"
"2层" "16层"
"3层" "-6层"
"4-15奇数层"
"屋面层" "4-15偶数层"
"17层" "-3层"
"-1层" "99层"
)
)
(princ "\n原始list=") (print l)
(setq m (Vl-sort l '(lambda (a b) (< (atoi a) (atoi b)))))
(princ "\n一般性排序后list=") (print m)
(if (setq n (vl-position "屋面层" m))
(progn
(setq al '() bl '() i -1 j n )
(repeat n
(setq al (cons (nth (setq i (1+ i)) m) al))
)
(repeat (- (length m) n 1)
(setq bl (cons (nth (setq j (1+ j)) m) bl))
)
(setq m (append (reverse al) (reverse bl) (list "屋面层")))
)
m
)
(princ "\n有屋面层排序后list=") (print m)
(princ)
)