; list 的排序指令
; -------------------------------------------------------------------- ; 點座標 (x y z) 所組成的list ; 可以用下列的指令來排序
(setq PntLst ( vl-sort PntLst '( lambda (lista listb) ( > (car lista) (car listb))) ) ) ; 以點座標的 x 值, 由大至小排序
(setq PntLst ( vl-sort PntLst '( lambda (lista listb) ( < (car lista) (car listb))) ) ) ; 以點座標的 x 值, 由小至大排序
(setq PntLst ( vl-sort PntLst '( lambda (lista listb) (< (cadr lista) (cadr listb))) ) ) ; 以點座標的 y 值, 由小至大排序
(setq PntLst ( vl-sort PntLst '( lambda (lista listb) (< (caddr lista) (caddr listb))) ) ) ; 以點座標的 z 值, 由小至大排序
; --------------------------------------------------------------------
; acad_strlsort [autolisp 的排序指令]
(defun get_blklist_for_block () (setq blocksobj ( vla-get-blocks dwgobj)) (setq blklist nil) ( vlax-for sobj blocksobj (setq blkn ( vla-get-name sobj)) (if (/= (substr blkn 1 1) "*") (setq blklist ( cons blkn blklist)) ) ) (setq blklist ( acad_strlsort blklist)) )
; ------------------------------------------------------------------
; vl-sort [ vlisp 的排序指令 ]
(setq printlist nil) ( foreach printname pop_default_plot_list (if (/= ( substr printname (- ( strlen printname) 2) 3) "pc3") (setq printlist ( cons printname printlist)) ) ) (setq printlist ( vl-sort printlist ' > ))
(show_list "pop_def_plot" printlist)
; (setq boundingbox_list ( vl-sort boundingbox_list '( lambda (lista listb) (< ( car ( car lista)) ( car ( car listb))) ) ) )