luowy 发表于 2008-10-16 12:28:00

[讨论]绘制多条线段

<p>autolisp怎么实现同是绘制多条线,它们不在同一层,且可以预览这些线的长度?</p><p></p><p>这个我想了很久,无从下手,请高手指点一二~~</p><p></p><p>先此谢过!</p>

caoyin 发表于 2008-10-16 12:41:00

grread 无法捕捉对象,mline是明智的做法

sailorcwx 发表于 2008-10-16 12:46:00

grread + 反应器

luowy 发表于 2008-10-16 13:48:00

<p>mline画的线是同一个层的,我想要的是不同层的阿</p><p>反应器可以实现这功能么?</p>

caoyin 发表于 2008-10-16 14:06:00

本帖最后由 作者 于 2008-10-16 14:07:41 编辑 <br /><br /> <p>同一个层的没关系的,在绘制过程中(预览)是看不出图层的,如果图层颜色不同,可以设定不同的颜色</p><p>等mline命令完成,炸开,将图层改变</p>

luowy 发表于 2008-10-16 14:29:00

本帖最后由 作者 于 2008-10-16 14:32:59 编辑 <br /><br /> <p>mline后可以用entlast获取,然后炸开,但是之后怎么操作呢?</p><p></p><p>假设mline是不同颜色,如何对已经炸开的mline进行对象匹配,使各线分配到指定的图层呢?</p><p>&nbsp;</p><p>类似此效果</p>

luowy 发表于 2008-10-17 14:46:00

怎么解决阿?研究好久了,都没有思绪~~

sailorcwx 发表于 2008-10-17 15:57:00

实现预览很难,不要预览的画可以在画完后offset,然后修改

wwwliuyu 发表于 2008-10-18 23:04:00

<p>得用STRETCH拉伸命令可以做到,当指定起点后,马上画出几条不同层不同颜色的直线,然后计算出窗口点再调用STRETCH命令拉伸直线.</p>

luowy 发表于 2008-10-20 14:19:00

<p>(defun c:aaa()<br/>&nbsp; (drawline)<br/>&nbsp; (matchinglines)<br/>&nbsp; )<br/>&nbsp;</p><p>(defun drawline()<br/>&nbsp; (setq gt (getint "绘制的管线条数:"))<br/>&nbsp;<br/>(command "_mline" "st" "3气" "pause")<br/>&nbsp; )<br/><br/>(defun matchinglines()<br/>(command "explode" (entlast) "")<br/>&nbsp; (setq ll (cons 8 "0")<br/>&nbsp;yl (cons 8 "1")<br/>&nbsp;ysl (cons 8 "2")<br/>&nbsp;zkl (cons 8 "3")<br/>&nbsp;;ol (cons 62 1)<br/>&nbsp;)<br/>&nbsp; (setq ss (ssget "p"))&nbsp; ;获得选集<br/>&nbsp;<br/>&nbsp; (setq n 0)<br/>&nbsp;&nbsp;&nbsp; (repeat (sslength ss)<br/>&nbsp;&nbsp;&nbsp; (setq ents (entget (ssname ss n))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pp (cdr (assoc 62 ents)))<br/>&nbsp;&nbsp;&nbsp;&nbsp; (cond<br/>&nbsp;((= pp '1)&nbsp; (entmod (subst yl ll ents)))<br/>&nbsp;((= pp '6)&nbsp; (entmod (subst zkl ll ents)))<br/>&nbsp;((= pp '230)&nbsp; (entmod (subst ysl ll ents)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;(entmod ents)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq n (1+ n))<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );repeat<br/>&nbsp; )</p><p>(defun *error* (msg)<br/>&nbsp; (princ "Failure at:")<br/>&nbsp; (princ msg)<br/>&nbsp; (princ))</p><p>问题已经解决得差不多了,采用mline的方法,但不能把mline命令结合到一段程序中,一调用mline命令后就提示函数被取消,这个解决了就可以完成此段代码了~~</p><p>期待各位指点一二~~</p>
页: [1] 2
查看完整版本: [讨论]绘制多条线段