 - ;; 示例: (MJ:SortPoints MJ:Points "Y") 按Y排序
- (defun MJ:SortPoints (points-list xyz)
- (setq xyz (strcase xyz))
- (cond
- ((= xyz "Z")
- (vl-sort points-list
- (function (lambda (p1 p2) (< (caddr p1) (caddr p2))))
- )
- ;|; 3-point lists required!
- (if
- (apply '= (mapcar '(lambda (lst) (length lst)) points-list));如果各点长度同
- (vl-sort points-list (function (lambda (p1 p2) (< (caddr p1) (caddr p2)))))
- (princ "\nCannot sort on Z-coordinates with 2D points!")
- )|;
- )
- ((= xyz "X")
- (vl-sort
- points-list
- (function (lambda (p1 p2) (< (car p1) (car p2))))
- )
- )
- ((= xyz "Y")
- (vl-sort
- points-list
- (function (lambda (p1 p2) (< (cadr p1) (cadr p2))))
- )
- )
- )
- )
|