程序自动返回不同圆心坐标值和该圆心坐标的最小同心圆半径
通过全选图元,让程序自动返回不同圆心坐标值和该圆心坐标的最小同心圆半径值的方法。怎么没有高手回应啊,俺也需要这种功能 本帖最后由 690994 于 2020-3-13 15:22 编辑
发不出嘛手机只能这样了
690994 发表于 2020-3-13 15:17
发不出嘛手机只能这样了
怎么发不出呢?有容差设置吗?没有容差的程序只对理想状态的同心圆起作用 香远益清 发表于 2020-3-13 15:45
怎么发不出呢?有容差设置吗?没有容差的程序只对理想状态的同心圆起作用
电脑上不了网,有容差1e-6啊,可以按需要自己改一下 哪位大神帮忙看看哪里不对啊 我要批量把外圆改成蓝色 内圆改成红色
(defun c:tt ()
(setq ss (ssget '((0 . "circle"))))
(if ss
(progn
(setq m (sslength ss)
n 0
)
(while (< n m)
(setq e (ssname ss n)
n (1+ n)
l n
p (assoc 10 (entget e))
r (cdr (assoc 40 (entget e)))
P (vl-princ-to-string (list (nth 1 p) (nth 2 p)))
a nil
)
(while (< l m)
(setq f(ssname ss l)
l(1+ l)
p1 (assoc 10 (entget f))
rr(cdr (assoc 40 (entget f)))
P1 (vl-princ-to-string (list (nth 1 p1) (nth 2 p1)))
)
(if (equal P P1 20)
(progn
(ssdel f ss)
(if (> r rr )
(progn
(command "change" f "" "p" "c" 40 "")))
(if (< r rr )
(progn
(command "change" f "" "p" "c" 5 "")))
(setq l (1- l)
m (1- m)
a t
)
)
)
)
(if a
(progn
(ssdel e ss)
(if (> r rr )
(progn
(command "change" e "" "p" "c" 5 "")))
(if (< r rr )
(progn
(command "change" e "" "p" "c" 40 "")))
(setq n (1- n)
m (1- m)
)
)
)
)
)
)
)
页:
[1]