[讨论]绘制多条线段
<p>autolisp怎么实现同是绘制多条线,它们不在同一层,且可以预览这些线的长度?</p><p></p><p>这个我想了很久,无从下手,请高手指点一二~~</p><p></p><p>先此谢过!</p> grread 无法捕捉对象,mline是明智的做法 grread + 反应器 <p>mline画的线是同一个层的,我想要的是不同层的阿</p><p>反应器可以实现这功能么?</p> 本帖最后由 作者 于 2008-10-16 14:07:41 编辑 <br /><br /> <p>同一个层的没关系的,在绘制过程中(预览)是看不出图层的,如果图层颜色不同,可以设定不同的颜色</p><p>等mline命令完成,炸开,将图层改变</p> 本帖最后由 作者 于 2008-10-16 14:32:59 编辑 <br /><br /> <p>mline后可以用entlast获取,然后炸开,但是之后怎么操作呢?</p><p></p><p>假设mline是不同颜色,如何对已经炸开的mline进行对象匹配,使各线分配到指定的图层呢?</p><p> </p><p>类似此效果</p> 怎么解决阿?研究好久了,都没有思绪~~ 实现预览很难,不要预览的画可以在画完后offset,然后修改 <p>得用STRETCH拉伸命令可以做到,当指定起点后,马上画出几条不同层不同颜色的直线,然后计算出窗口点再调用STRETCH命令拉伸直线.</p> <p>(defun c:aaa()<br/> (drawline)<br/> (matchinglines)<br/> )<br/> </p><p>(defun drawline()<br/> (setq gt (getint "绘制的管线条数:"))<br/> <br/>(command "_mline" "st" "3气" "pause")<br/> )<br/><br/>(defun matchinglines()<br/>(command "explode" (entlast) "")<br/> (setq ll (cons 8 "0")<br/> yl (cons 8 "1")<br/> ysl (cons 8 "2")<br/> zkl (cons 8 "3")<br/> ;ol (cons 62 1)<br/> )<br/> (setq ss (ssget "p")) ;获得选集<br/> <br/> (setq n 0)<br/> (repeat (sslength ss)<br/> (setq ents (entget (ssname ss n))<br/> pp (cdr (assoc 62 ents)))<br/> (cond<br/> ((= pp '1) (entmod (subst yl ll ents)))<br/> ((= pp '6) (entmod (subst zkl ll ents)))<br/> ((= pp '230) (entmod (subst ysl ll ents)))<br/> )<br/> ;(entmod ents)<br/> (setq n (1+ n))<br/> <br/> );repeat<br/> )</p><p>(defun *error* (msg)<br/> (princ "Failure at:")<br/> (princ msg)<br/> (princ))</p><p>问题已经解决得差不多了,采用mline的方法,但不能把mline命令结合到一段程序中,一调用mline命令后就提示函数被取消,这个解决了就可以完成此段代码了~~</p><p>期待各位指点一二~~</p>
页:
[1]
2