mcxiangxin
发表于 2008-5-3 23:20:00
请教这个超级好用的修剪命令是怎么做的
请教:下面这个超级好用的修剪命令是怎么做的?我想了好久都想不出来呀
董堃
发表于 2008-5-4 06:57:00
(defun c:super (/ PT0 PTLIST PTLIST0 ss CMDECHO OSMODE)<br/> (setq cmdecho (getvar "cmdecho")<br/> osmode (getvar "osmode")<br/> )<br/> (while (and (setq ptlist0 (getpoint_list))<br/> (> (length ptlist0) 1)<br/> )<br/> (setvar "cmdecho" 0)<br/> (setvar "osmode" 0)<br/> (setq pt0 (car ptlist0)<br/> ptlist (cdr ptlist0)<br/> )<br/> (command "trim" "")<br/> (foreach pt ptlist<br/> (command "f" pt0 pt "")<br/> (setq pt0 pt)<br/> )<br/> (command "")<br/> (if (setq ss (ssget "f" ptlist0))<br/> (command "erase" ss "")<br/> )<br/> (setvar "osmode" osmode)<br/> (setvar "cmdecho" cmdecho)<br/> )<br/> (princ)<br/>)<br/>(defun getpoint_list ( / DIS OUT PT)<br/> (setq pt (getpoint "\n开始:"))<br/> (princ "\n按任意键完成:")<br/> (if (= (type pt) 'LIST)<br/> (progn<br/> (setq out (list pt)<br/> dis (* 0.01 (getvar "viewsize")))<br/> (while (= 5 (car (setq pt (grread t 4 0))))<br/> (setq pt (cadr pt))<br/> (if (> (distance pt (car out)) dis)<br/> (progn<br/> (grdraw pt (car out) 1)<br/> (setq out (cons pt out))<br/> )<br/> )<br/> )<br/> )<br/> )<br/> (redraw)<br/> (reverse out)<br/> )
sunny_8848
发表于 2019-10-29 11:29:19
多谢分享,很好用的修剪程序
happy336
发表于 2019-10-28 23:22:06
谢谢分享,学习了
mcxiangxin
发表于 2008-5-4 21:37:00
大哥,谢了
董堃
发表于 2008-5-5 06:45:00
不用谢,你有什么好东西也要让我们学习下哟!
yoyoho
发表于 2008-5-5 07:24:00
<p>感谢楼主,不错的修剪程序阿!</p><p>赞!赞!赞!</p><p>好构想!</p><p>用于延伸线段应该也不错吧!</p>
yewuqiang
发表于 2008-7-4 00:11:00
这个好像在图形比较复杂的时候就没这么好用了
zcenc
发表于 2009-10-3 20:12:00
太赞了,不顶对不起良心!
客人
发表于 2009-10-5 20:35:00
<p>顶一下,的确好构思,有点像PROE里的修剪!高手啊!!!</p>
ghgh0130
发表于 2009-12-2 10:23:00
不错的修剪程序阿!
liu_kunlun
发表于 2009-12-2 10:56:00
好程序