初学lisp,下面的代码中为何大圆无法剪切? - (defun c:12()
- (setvar "cmdecho" 0) ;;关闭命令行响应
- (setq cen1 (getpoint "\n请指定中心点:"))
- (setq rr1 (getdist "\n请指定大圆半径:"))
- (setq rr2 (getdist "\n请指定小圆半径:"))
- (setq nn (getint "\n请指定阵列次数<10>:"))
- (if (null nn) (setq nn 10))
- (setq os (getvar "osmode")) ;;保存捕捉设置
- (setvar "osmode" 0) ;;关闭捕捉
- (setq pj (/ (* 2 pi) nn))
- (command "circle" cen1 rr1)
- (setq en1 (entlast))
- (setq ss (ssadd))
- (setq i 0)
- (repeat nn
- (setq cen2 (polar cen1 (* i pj) rr1))
- (command "circle" cen2 rr2)
- (setq en2 (entlast))
- (setq ss (ssadd en2 ss))
- (setq jqd (polar cen2 (angle cen2 cen1) rr2))
- (command "trim" en1 "" (list en2 jqd) "")
- (setq i (+ i 1))
- )
- (setq i 0)
- (repeat nn
- (setq cen2 (polar cen1 (* i pj) rr1))
- (command "trim" ss "" (list en1 cen2) "")
- (setq en1 (entlast))
- (setq i (+ i 1))
- )
- (command "circle" cen1 (/ rr1 2))
- (setvar "osmode" os) ;;恢复捕捉设置
- (princ)
- )
|