|
发表于 2002-10-13 10:13:00
|
显示全部楼层
把一个圆分成两段圆弧,下面的代码也许能做到,也是新手。
(defun C:BRC(/ en1 en2 ed start end pt1 pt2 a)
(setq a (getvar "osmode"))
(setvar "osmode" 544)
(while (/= (cdr (assoc 0 (entget (car
(setq en1 (entsel "\nSelect a Circle: ")))))) "CIRCLE")
(alert "Not a circle, try again...")
)
(setq pt1 (getpoint "\nPick first point: ")
pt2 (getpoint "\nPick second point: ")
)
(command "break" en1 "f" pt1 pt2)
(command "copy" en1 "" pt1 pt1)
(setq en2 (entlast)
ed (entget en2))
(setq start (cdr (assoc 50 ed))
end (cdr (assoc 51 ed)))
(setq ed (subst (cons 50 end) (assoc 50 ed) ed)
ed (subst (cons 51 start) (assoc 51 ed) ed))
(entmod ed)
(setvar "osmode" a)
); |
|