图形的多边形删除,为什么有的时候在裁剪的时候剪掉的是相反的呢
<p><font face="Verdana">;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br/>;;; ;;多边形剪切;;裁剪内部数据<br/>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br/>(defun c:ksjq()<br/> (command"undo" "BE")</font></p><p><font face="Verdana"> (princ "\n欢迎使用快捷剪切程序,裁剪范围以内的数据!命令名:ksjq=== mdjchy 郭海录 2009.12.29===") <br/> (setq pt (getpoint "\n 指定第一点:"))<br/> (command "pline")<br/> (while pt<br/> (command pt)<br/> (setq pt (getpoint pt "\n 指定下一点(回车自动结束):"))<br/> )<br/> (command "c")<br/> (command "osnap" "off")<br/> <br/> (command "zoom" "e" "")<br/> ;;;;;;;;;;;;;;;;裁剪;;;;;;;;;;;;;;;;;;;<br/> <br/> (setq ma (ssname (ssget "L") 0))<br/> (setq p0 (getpoint "\n选择范围内的任意一点:"))<br/> (command "offset" 0.2 ma p0 "")<br/> <br/> (setq mb (ssname (ssget "L") 0))<br/> (setq bb (entget mb))<br/> (setq d1 nil)<br/> (setq nn1 (length bb) k2 1)<br/> (while (< k2 nn1)<br/> (if(or (= 10 (car ( nth k2 bb))) (= 11 (car ( nth k2 bb))) )<br/> (progn<br/> (setq x (atof (rtos (nth 1 (nth k2 bb)) 2 3)))<br/> (setq y (atof (rtos (nth 2 (nth k2 bb)) 2 3)))<br/> (setq d1 (cons (list x y) d1))<br/> )<br/> )<br/> (setq k2 (+ 1 k2))<br/> <br/> )<br/> (setq mn1 (length d1))<br/> (setq km 0)<br/> (while (<= km (- mn1 1))<br/> (progn<br/> (setq pt3 (nth km d1))<br/> (setq km1 (+ 1 km))<br/> (setq pt4 (nth km1 d1))<br/> (command "trim" ma "" "f" pt3 pt4 "" "")<br/> )<br/> (setq km (+ 1 km))<br/> )<br/> <br/> (setq pt3 (nth 0 d1))<br/> (setq pt4 (nth (- mn1 1) d1))<br/> (command "trim" ma "" "f" pt3 pt4 "" "")</font></p><font face="Verdana">
<p><br/> ;;;;;;;;;;;;;;删除;;;;;;;;;;;;;;;;;<br/> (setq kn 1)<br/> (command "erase" "wp")<br/> (setq pt1 (nth 0 d1))<br/> (command pt1)<br/> (while (< kn mn1)</p>
<p> <br/> (progn<br/> (setq pt1 (nth kn d1))<br/> (command pt1)<br/> ) <br/> <br/> (setq kn (+ 1 kn))<br/> )<br/> (command "" "")</p>
<p> </p>
<p> (command "erase" ma "" "")<br/> (command "erase" mb "" "")<br/>(command"undo" "e")</p>
<p>)</p>
<p></font> </p>
页:
[1]