我做了一个lisp:
;;在已知线段的中点自动画一个圆,然后把圆内线段剪掉
(defun c:zdhy() (setq en1 (car (entsel))) (setq data1 (entget en1)) (setq zb1 (assoc 10 data1)) (setq pt1 (cdr zb1)) (setq pt1x (car pt1)) (setq pt1y (cadr pt1)) (setq zb2 (assoc 11 data1)) (setq pt2 (cdr zb2)) (setq pt2x (car pt2)) (setq pt2y (cadr pt2)) (setq pt0x (/ (+ pt1x pt2x) 2)) (setq pt0y (/ (+ pt1y pt2y) 2)) (setq pt0 (list pt0x pt0y)) (setq r (getdist pt0 " 输入圆半径:")) (command "circle" pt0 r) (setq en2 (entlast)) (command "trim" en2 "" en1 "") (prin1) )
但使用"trim"剪切命令时,不能保证每次都剪切圆内的线段,有时把圆外的线剪切掉了,求高手释疑,不胜感激。
对了,上面说的线段指“直线”,不是“多义线” 。 |