ztj988 发表于 2019-3-15 17:11:53

假设选择了一个所有圆的选择集表ss,请帮用vlax的排序函数编写一个语句,返回经过...

假设选择了一个所有圆的选择集表ss,请帮用vl的排序函数编写一个语句,返回经过排序(以圆的半径大小排序)的表。

yshf 发表于 2019-3-15 23:11:18

             (setq i 0 n (sslength ss) jgb nil)
             (repeat n
               (setq jgb (cons (ssname ss i) jgb))
               (setq i (1+ i))
             )
             (setq jgb (vl-sort jgb '(lambda(a b)
                                       (> (cdr (assoc 40 (entget a)))
                                          (cdr (assoc 40 (entget b)))
                                       )
                                     )
                        )
         )

ysq101 发表于 2019-3-15 22:27:20

路过顶一下
半径表?
圆心表?

xyp1964 发表于 2019-3-16 18:38:52

(defun c:tt (/ lst)
(setq        ss (ssget '((0 . "circle")))
        i-1
)
(while (setq s1 (ssname ss (setq i (1+ i))))
    (setq lst (cons (list (cdr (assoc 40 (entget s1))) s1) lst))
)
(mapcar 'cdr (vl-sort lst '(lambda (x y) (< (car x) (car y)))))
)
页: [1]
查看完整版本: 假设选择了一个所有圆的选择集表ss,请帮用vlax的排序函数编写一个语句,返回经过...