woudy 发表于 2010-11-26 16:33:00

[求助]自动捕捉端点插入块的问题。

<p></p>
<p>&nbsp;</p>
<p>小弟自学VLISP,身边没有会的人,所以遇到一点小问题就卡壳,太困难了,刚整明白的函数不多,向各位前辈请教。</p>
<p>如上图:几条横线都延伸到一条竖线,我想在这条竖线上捕捉到的所有“端点”上全部插如一个块。</p>
<p>我的思路是:从竖线起点作为P1,捕捉只开启端点,插入一个,然后P1的X坐标和Y坐标-6(搜索范围),组成新点,对这个点用OSNAP,会自动吸附到下一个端点P2,如果P2的Y坐标和P1(上次插入的点)不同,那么在P2插入一个块,然后把P2的Y坐标给P1,然后再P1的X坐标和Y坐标-6,组成新点,对这个点用OSNAP,会再自动吸附到下一个端点P2。。。。。如此循环。</p>
<p>请各位前辈帮忙看下怎么就不行呢?多谢多谢。</p>
<p>&nbsp;</p>
<p><font face="Verdana">(defun c:ii ()<br/>&nbsp; (setvar "CMDECHO" 0)<br/>&nbsp; (setvar "osmode" 1)<br/>&nbsp; (setvar "apbox" 1)<br/>&nbsp; (setvar "aperture" 20)<br/>&nbsp; (setq&nbsp;p1&nbsp; '(244 342)<br/>&nbsp;p1x (car p1)<br/>&nbsp;p1y (cadr p1)<br/>&nbsp; )</font></p>
<p><font face="Verdana">&nbsp; (while (&gt; p1y 91)<br/>&nbsp;&nbsp;&nbsp; (setq p2&nbsp; (osnap (list p1x (- p1y 6)) "endp")</font></p>
<p><font face="Verdana">&nbsp;&nbsp; p2y (cadr p2)<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (if&nbsp;(&gt; p1y p2y)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn (command "-insert" "left-circle2" p2 "" "" "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq p1y p2y<br/>&nbsp;&nbsp;&nbsp;&nbsp; p1&nbsp; (list p1x p1y)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; )<br/>)</font></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>

发表于 2010-11-26 17:06:00

<p>先取交点&nbsp; 再插入</p>
<p>先交再插 </p>
<p>inter之类函数</p>
页: [1]
查看完整版本: [求助]自动捕捉端点插入块的问题。