zyhandw
发表于 2012-10-29 10:55:31
9楼的代码好像只能延长交点在线上的情况,对不在线上的情况就不行了
doro
发表于 2012-10-29 11:01:32
好像cad08以后的延伸命令都自带这个功能
xuexicad1960
发表于 2012-10-29 11:07:33
如果 pline 也能用的话,用处就大了。
zml84
发表于 2012-10-29 11:17:01
本帖最后由 zml84 于 2012-10-29 11:24 编辑 <br /><br /><center><h1>2012-10-29框选对象,延伸一次.LSP</h1></center>
<script language="JavaScript">document.write("最后修改时间: " + document.lastModified)
</script>
<hr size="5"><pre><font face="Fixedsys" color="#990099"><span style="BACKGROUND-COLOR: #CCCCCC">;;;=================================================================*</span></font>
<font face="Fixedsys" color="#990099"><span style="BACKGROUND-COLOR: #CCCCCC">;;;问题来源:http://bbs.mjtd.com/thread-98171-1-1.html *</span></font>
<font face="Fixedsys" color="#990099"><span style="BACKGROUND-COLOR: #CCCCCC">;;;=================================================================*</span></font>
<font face="Fixedsys" color="#990099"><span style="BACKGROUND-COLOR: #CCCCCC">;;;功能:框选对象,自动延伸一次。 *</span></font>
<font face="Fixedsys" color="#990099"><span style="BACKGROUND-COLOR: #CCCCCC">;;;日期:zml84 于 2012-10-29 11:12 *</span></font>
<font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">defun</font> <font face="Fixedsys">c:tt</font> <font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">/</font> <font face="Fixedsys">ss</font> <font face="Fixedsys">i</font> <font face="Fixedsys">en</font> <font face="Fixedsys">ent</font> <font face="Fixedsys">pt10</font> <font face="Fixedsys">pt11</font><font face="Fixedsys" color="#FF0000">)</font>
<font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">setvar</font> <font face="Fixedsys" color="#FF00FF">"EDGEMODE"</font> <font face="Fixedsys" color="#009900">1</font><font face="Fixedsys" color="#FF0000">)</font> <font face="Fixedsys" color="#990099"><span style="BACKGROUND-COLOR: #CCCCCC">;_设置系统变量</span></font>
<font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">setq</font> <font face="Fixedsys">i</font> <font face="Fixedsys" color="#009900">0</font><font face="Fixedsys" color="#FF0000">)</font>
<font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">if</font> <font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">setq</font> <font face="Fixedsys">ss</font> <font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">ssget</font><font face="Fixedsys" color="#FF0000">)</font><font face="Fixedsys" color="#FF0000">)</font>
<font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">repeat</font> <font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">sslength</font> <font face="Fixedsys">ss</font><font face="Fixedsys" color="#FF0000">)</font>
<font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">setq</font> <font face="Fixedsys">en</font> <font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">ssname</font> <font face="Fixedsys">ss</font> <font face="Fixedsys">i</font><font face="Fixedsys" color="#FF0000">)</font>
<font face="Fixedsys">ent</font><font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">entget</font> <font face="Fixedsys">en</font><font face="Fixedsys" color="#FF0000">)</font>
<font face="Fixedsys">pt10</font> <font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">cdr</font> <font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">assoc</font> <font face="Fixedsys" color="#009900">10</font> <font face="Fixedsys">ent</font><font face="Fixedsys" color="#FF0000">)</font><font face="Fixedsys" color="#FF0000">)</font>
<font face="Fixedsys">pt11</font> <font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">cdr</font> <font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">assoc</font> <font face="Fixedsys" color="#009900">11</font> <font face="Fixedsys">ent</font><font face="Fixedsys" color="#FF0000">)</font><font face="Fixedsys" color="#FF0000">)</font>
<font face="Fixedsys" color="#FF0000">)</font>
<font face="Fixedsys" color="#990099"><span style="BACKGROUND-COLOR: #CCCCCC">;;调用命令</span></font>
<font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">command</font> <font face="Fixedsys" color="#FF00FF">"_extend"</font> <font face="Fixedsys">ss</font> <font face="Fixedsys" color="#FF00FF">""</font> <font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">list</font> <font face="Fixedsys">en</font> <font face="Fixedsys">pt10</font><font face="Fixedsys" color="#FF0000">)</font> <font face="Fixedsys" color="#FF00FF">""</font><font face="Fixedsys" color="#FF0000">)</font>
<font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">command</font> <font face="Fixedsys" color="#FF00FF">"_extend"</font> <font face="Fixedsys">ss</font> <font face="Fixedsys" color="#FF00FF">""</font> <font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">list</font> <font face="Fixedsys">en</font> <font face="Fixedsys">pt11</font><font face="Fixedsys" color="#FF0000">)</font> <font face="Fixedsys" color="#FF00FF">""</font><font face="Fixedsys" color="#FF0000">)</font>
<font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">setq</font> <font face="Fixedsys">i</font> <font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">1+</font> <font face="Fixedsys">i</font><font face="Fixedsys" color="#FF0000">)</font><font face="Fixedsys" color="#FF0000">)</font>
<font face="Fixedsys" color="#FF0000">)</font>
<font face="Fixedsys" color="#FF0000">)</font>
<font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">princ</font><font face="Fixedsys" color="#FF0000">)</font>
<font face="Fixedsys" color="#FF0000">)</font>
<font face="Fixedsys" color="#990099"><span style="BACKGROUND-COLOR: #CCCCCC">;;;=================================================================*</span></font>
<font face="Fixedsys" color="#FF0000">(</font><font face="Fixedsys" color="#0000FF">princ</font><font face="Fixedsys" color="#FF0000">)</font>
</pre>
328302216
发表于 2012-10-29 11:42:16
都是给力的牛人!
戏男
发表于 2012-10-29 11:50:58
要是能延伸到样条线或圆弧上才更完美了
挪威的森林
发表于 2012-10-29 12:53:40
zml84 发表于 2012-10-29 11:17 static/image/common/back.gif
本帖最后由 zml84 于 2012-10-29 11:24 编辑 2012-10-29框选对象,延伸一次.LSP
document.write("最后修改 ...
谢谢你的热心帮助,测试过发现动行程序的时候会有闪屏现像,框选对像很多的情况就会非常慢.在哪里需要改进一下呢?
xuexicad1960
发表于 2012-10-29 16:39:27
zml84 发表于 2012-10-29 11:17 static/image/common/back.gif
本帖最后由 zml84 于 2012-10-29 11:24 编辑 2012-10-29框选对象,延伸一次.LSP
document.write("最后修改 ...
试验了一下,感觉不听话,无法预料它要延到哪里,可能我没看明白。这个程序倒是能对pline 操作,希望改进一下。
chinawhy817
发表于 2012-10-29 17:39:08
zyhandw 发表于 2012-10-29 10:55 static/image/common/back.gif
9楼的代码好像只能延长交点在线上的情况,对不在线上的情况就不行了
这是应楼主的要求,如果要延长交点不在线上的情况,更改
(if (/= 0 (logand 7 (Dk:PtRelateLine insect b10 b11)))
为
(if (/= 0 (logand 31 (Dk:PtRelateLine insect b10 b11)))
试试。
chinawhy817
发表于 2012-10-29 17:44:34
zml84 发表于 2012-10-29 11:17 static/image/common/back.gif
本帖最后由 zml84 于 2012-10-29 11:24 编辑 2012-10-29框选对象,延伸一次.LSP
document.write("最后修改 ...
此法会出现意外情况,大批量批量操作显得效率较低。
我最初也考虑调用内建EXTEND命令