xjf 发表于 2011-12-20 08:20 
试了一下,下面改的不行
 - ;;;消去相同的X坐标,且Y最小的保留
- ;;;(dumpx '((18 20) (40 15) (18 50) (30 50) (40 25)) 0.01)
- (defun dumpx (PL FUZZ / DUMPPOINT)
- ;;;除X相同点
- (defun DumpPoint (ptLst fuzz / pt1)
- (cond ((<= (length ptLst) 1) ptLst)
- (t
- (setq pt1 (car ptLst))
- (cons pt1
- (vl-remove-if
- '(lambda (x) (equal (car pt1) (car x) fuzz))
- (DumpPoint (cdr ptLst) fuzz)
- )
- )
- )
- )
- )
-
- (setq pl (vl-sort pl '(lambda (a b) (< (cadr a) (cadr b))))) ;_ 按Y从小到大排序
- (setq pl (DumpPoint pl 0.01))
- (vl-sort pl '(lambda (a b) (< (car a) (car b)))) ;_ 按X从小到大排序
- )
|