54256 发表于 2009-2-8 17:55:00

[求助]怎样获得多段线中某段的斜率

<p>我现在的程序是选择一条直线,从而获得直线的端点,求出斜率,根据这个斜率在线上插入块.</p><p>现在想把这个在多段线上也可以用,其实就是只要知道我点下去的那点所在直线的两个端点就可以了,</p><p>那怎么获得多段线的端点列表呢</p><p>谢谢大家,我知道这里高手很多,希望赐教</p>

sharknj 发表于 2009-2-8 22:23:00

本帖最后由 作者 于 2009-2-8 22:42:44 编辑 <br /><br /> <p>论坛上有“获得拾取点临近的端点”的程序,我抄了一份。给个链接:<a href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=73495">http://bbs.mjtd.com/forum.php?mod=viewthread&tid=73495</a></p><p>不敢乱贴。以下是我自己的,献丑。;输入图元名称,获得多义线的分段线段的端点和角度;输出一个表palist</p><p><br/>(defun entptanglist( ename / entptlist i entlist n entpt entptlist listlen ptang)<br/>&nbsp; (setq entptlist '()<br/>&nbsp;i 0<br/>&nbsp;entlist (entget ename)<br/>&nbsp;n (length entlist) <br/>&nbsp;)<br/>&nbsp; (while (&lt; i n)<br/>&nbsp;&nbsp;&nbsp; (if (= 10 (car(nth i entlist )))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;(setq entpt (list(list (cadr(nth i entlist)) (caddr(nth i entlist )))))<br/>&nbsp;(setq entptlist (append&nbsp; entpt entptlist))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (setq i (+ i 1))<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; <br/>(setq listlen&nbsp; (- (length entptlist) 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; palist '()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i 0)<br/>(while (&lt; i listlen)<br/>&nbsp; (setq ptang (list(angle(nth i entptlist) (nth (+ i 1) entptlist))))<br/>&nbsp; (setq pal (list(list (nth i entptlist) (nth (+ i 1) entptlist) ptang)))<br/>&nbsp;(setq palist (append palist pal ))<br/>&nbsp;<br/>&nbsp;(setq i (+ i 1))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp; )<br/>(princ palist)<br/>)</p>

Andyhon 发表于 2009-2-9 09:36:00

<p>换个思路如何?</p><p>(setq ee (entsel)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pt (cadr ee) <br/>&nbsp;&nbsp;&nbsp;&nbsp; ppt (apply 'vlax-curve-getClosestPointTo ee)&nbsp; ; 垂足<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl (angle pt ppt)<br/>)</p>

sharknj 发表于 2009-2-11 19:23:00

楼上高人,谢谢提供新思路。
页: [1]
查看完整版本: [求助]怎样获得多段线中某段的斜率