本帖最后由 e2002 于 2019-1-26 19:33 编辑
- ;; 边界列表的2次排序函数
- (defun _lkpt_Layout_CreateByTitleBlocks_Sort ( / i1 sym1 i2 sym2 l_sort u v lReturn)
- (cond
- ( (= sSort "1") (setq i1 1 sym1 '> i2 0 sym2 '<) );;左到右,上到下
- ( (= sSort "2") (setq i1 1 sym1 '< i2 0 sym2 '<) );;左到右,下到上
- ( (= sSort "3") (setq i1 1 sym1 '> i2 0 sym2 '>) );;右到左,上到下
- ( (= sSort "4") (setq i1 1 sym1 '< i2 0 sym2 '>) );;右到左,下到上
- ( (= sSort "5") (setq i1 0 sym1 '< i2 1 sym2 '>) );;上到下,左到右
- ( (= sSort "6") (setq i1 0 sym1 '> i2 1 sym2 '>) );;上到下,右到左
- ( (= sSort "7") (setq i1 0 sym1 '< i2 1 sym2 '<) );;下到上,左到右
- ( (= sSort "8") (setq i1 0 sym1 '> i2 1 sym2 '<) );;下到上,右到左
- )
- ;; 第一次排序
- (setq l_sort (vl-sort lBoundarys '(lambda (u v) ((vl-symbol-value sym1) (nth i1 (car u)) (nth i1 (car v))))))
- ;; 第二次排序,考虑 rFuzzy
- (setq l_sort (vl-sort l_sort '(lambda (u v) (if (< (abs (- (nth i1 (car u)) (nth i1 (car v)))) rFuzzy)
- ((vl-symbol-value sym2) (nth i2 (car u)) (nth i2 (car v)))
- nil
- )
- )
- )
- )
- (setq lReturn l_sort)
- );end defun _lkpt_Layout_CreateByTitleBlocks_Sort
|