[LISP] 关于圆内剪切的问题
<P>各位大哥:</P><P>erasec.lsp这个程序好像并不能自动的剪除图形里面的多个圆中与圆相交的线段。怎样才能自动剪除呢?</P>
<P>;圆内删除<BR>(DEFUN C:ERASEC (/ SS SL SN PC R N)<BR> (SETVAR "BLIPMODE" 0)<BR> (SETVAR "CMDECHO" 0)<BR> (IF (SETQ SS (SSGET "X" '((0 . "CIRCLE")))) (PROGN<BR> (SETQ SL (SSLENGTH SS) I 0)<BR> (REPEAT SL<BR> (SETQ SN (SSNAME SS I) I (1+ I)<BR> PC (CDR (ASSOC 10 (ENTGET SN)))<BR> R (CDR (ASSOC 40 (ENTGET SN)))<BR> N 0<BR> )<BR> (COMMAND "ZOOM" "C" PC (* 3 R))<BR> (COMMAND "TRIM" SN "" "F")<BR> (REPEAT 180<BR> (COMMAND (POLAR PC (/ (* 2 N PI) 180) (* R 0.9)))<BR> (setq N (1+ N))<BR> )<BR> (COMMAND "" "")<BR> (SETQ N 0)<BR> (COMMAND "ERASE" "WP")<BR> (REPEAT 180<BR> (COMMAND (POLAR PC (/ (* 2 N PI) 180) (* R 0.9)))<BR> (setq N (1+ N))<BR> )<BR> (COMMAND "" "" "ZOOM" "P")<BR> )<BR> ))<BR> (SETVAR "BLIPMODE" 1)<BR> (SETVAR "CMDECHO" 1)<BR> (PRINC)<BR>)</P>
<P>(princ "\nType ERASEC to start.")<BR>(princ)</P> 为什么不行?你将捕捉关了就行了。 <P>感谢大师指点弥津!!!</P>
<P>谢谢啊!!!。。。。。。</P> 还是老问题,怎么又发一个新帖???????????????????????????????????? <P>不好意思。那是在您理我之前发的。</P>
<P>以后就不会出现相同的情况了!</P> 有一点小问题:就是如若是多义线来回穿过圆内,则执行一次只能剪切其中的一段,其余字段则没有裁剪。如何解决这一问题? 这样试试。
(DEFUN C:ERASEC (/ SS SL SN PC R N)
(SETVAR "BLIPMODE" 0)
(SETVAR "CMDECHO" 0)
(SETQ OLDOS (GETVAR "OSMODE"))
(SETVAR "OSMODE" 0)
(IF (SETQ SS (SSGET "X" '((0 . "CIRCLE")))) (PROGN
(SETQ SL (SSLENGTH SS) I 0)
(REPEAT SL
(SETQ SN (SSNAME SS I) I (1+ I)
PC (CDR (ASSOC 10 (ENTGET SN)))
R(CDR (ASSOC 40 (ENTGET SN)))
N 0
)
(COMMAND "ZOOM" "C" PC (* 3 R))
(COMMAND "TRIM" SN "")
(REPEAT 180
(COMMAND "F" (POLAR PC (/ (* 2 N PI) 180) (* R 0.9))
(POLAR PC (/ (* 2 (SETQ N (1+ N)) PI) 180) (* R 0.9)) "")
)
(COMMAND "")
(SETQ N 0)
(COMMAND "ERASE" "WP")
(REPEAT 180
(COMMAND (POLAR PC (/ (* 2 N PI) 180) (* R 0.9)))
(setq N (1+ N))
)
(COMMAND "" "" "ZOOM" "P")
)
))
(SETVAR "OSMODE" OLDOS)
(SETVAR "BLIPMODE" 1)
(SETVAR "CMDECHO" 1)
(PRINC)
)
(princ "\nType ERASEC to start.")
(princ)
页:
[1]