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命令
页: 1 [2] 3 4
查看完整版本: 求助-如何批量延伸到最近点