120120
发表于 2007-8-16 18:03:00
[求助]谁会写一个像2006这样的剪切功能?
<p>2006以上的版本的剪切功能很好用,可以框选!</p><p>而2005及以下的版本的剪切功能就不咋的!只能单一选择!很麻烦。虽然可以加F,但还是没2006好用。</p><p>不知那位朋友可以写一个这样的功能!</p>
狂刀无痕
发表于 2007-8-16 18:39:00
直接升级cad!
i-Stone
发表于 2007-8-16 19:00:00
果然是好办法.
phoenixdjq
发表于 2007-8-16 19:52:00
<p>一针见血呀</p><p>发个超级剪切给你吧,从本论坛下载的</p><p>;;;BY LIJIAO <br/>(defun c:xx (/ PT0 PTLIST PTLIST0 ss CMDECHO OSMODE)<br/> (setq cmdecho (getvar "cmdecho")<br/> osmode (getvar "osmode")<br/> )<br/>(setvar "osmode" 0)<br/> (while (and (setq ptlist0 (getpoint_list))<br/> (> (length ptlist0) 1)<br/> )<br/> (setvar "cmdecho" 0)<br/> <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/> )<br/></p>
TLHMQH
发表于 2007-8-16 21:19:00
<p>这个是否是你需要的</p><p><a href="http://www.acad.net.cn/viewthread.php?tid=318&extra=page%3D1">http://www.acad.net.cn/viewthread.php?tid=318&extra=page%3D1</a></p>
无痕
发表于 2007-8-17 01:17:00
<p>楼上的程序不错,不过和楼主说的好像是两回事.</p><p>楼主要的是 cad2006版本的 trim ,先选剪切边,再框选被剪切实体.</p>
120120
发表于 2007-8-17 08:41:00
<p>楼上两位提供的都不像我说的那样..</p><p>希望像acad2006的一样</p>
英雄无敌
发表于 2007-8-17 09:32:00
试试我的这个,刚编好的
120120
发表于 2007-8-17 11:41:00
没有选取边界的功能..
zml84
发表于 2007-8-17 13:52:00
可以框选的修剪 ,见附件。<br/>源码见:http://www.acad.net.cn/viewthread.php?tid=156&page=1&extra=page%3D1#pid1537<br/><br/>