请教关于trim的用法
初学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)
)
24-30行剪切大圆 不太清楚,同求 本帖最后由 snddd2000 于 2012-4-26 19:17 编辑
是不是如图这样的结果? 大圆剪切里的(entlast)得到的图元并不是想要的图元。 snddd2000 发表于 2012-4-26 19:20 static/image/common/back.gif
大圆剪切里的(entlast)得到的图元并不是想要的图元。
如何得到大圆剪切后的图元名呢?图元名获取不到就不能继续了
http://bbs.mjtd.com/thread-93229-2-1.html这是我的帖子,因为不容易获得TRIM后的图元名,我的程序不能得到想要的结果,能帮我看看吗?论坛里关于TRIM的很少,而且使用的都是以获得图元名之后的操作。 革天明 发表于 2012-4-27 13:29 static/image/common/back.gif
如何得到大圆剪切后的图元名呢?图元名获取不到就不能继续了
http://bbs.mjtd.com/thread-93229-2-1.htm ...
(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))
(setq en1 (ssname (ssget "_C" cen2 cen2) 0))
(command "trim" ss "" (list en1 cen2) "")
;;;(setq en1 (entlast))
(setq i (+ i 1))
)
(command "circle" cen1 (/ rr1 2))
(setvar "osmode" os)
;;恢复捕捉设置
(princ)
)
谢谢分享!!!!!!!!!!!!!!!!!!!!
页:
[1]