XIAOFEILONG 发表于 2008-10-29 21:14:00

[求助]如何调用ET工具中的命令?

<p>我想做一个简单的对象前置和后置的程序</p><p>我是想先调用ET工具中的GETSEL命令选择对象</p><p>再调用DRAWORDER命令进行前置和后置</p><p></p><p>但是getsel是外部命令无法调用,有什么办法处理吗?</p>

dianbotang 发表于 2008-10-29 22:55:00

<p>(defun c:ggg() <br/>&nbsp; (c:getsel)<br/>&nbsp; (command "DRAWORDER")<br/>)</p><p>试试看行不?</p>

XIAOFEILONG 发表于 2008-10-30 20:12:00

<p>(defun c:drr() <br/>&nbsp;&nbsp;&nbsp; (princ "\n选择物体:")<br/>&nbsp;&nbsp;&nbsp; (setq e (ssget))<br/>&nbsp;&nbsp;&nbsp; (command "c:getsel" e "" "") <br/>&nbsp;&nbsp;&nbsp; (command "DRAWORDER" p "" "")<br/>&nbsp;&nbsp;&nbsp; (princ)<br/>) </p><p></p><p>不行啊,getsel后面还要输入的</p>

Andyhon 发表于 2008-10-30 21:43:00

<p>Check here:</p><p><a href="http://www.cadtutor.net/forum/showthread.php?t=14346">http://www.cadtutor.net/forum/showthread.php?t=14346</a></p><p></p>

XIAOFEILONG 发表于 2008-10-31 15:08:00

Andyhon发表于2008-10-30 21:43:00static/image/common/back.gifCheck here:http://www.cadtutor.net/forum/showthread.php?t=14346

<p></p><p>谢谢,这个LISP能满足使用要求.</p><p>但是能不能说一下,如果要调用ET命令来实现,该怎么做呢?</p>

dianbotang 发表于 2008-10-31 21:39:00

楼主的意思是不是将GETSEL命令选择到的对象进行前置和后置,根据这个思路设计程序如下:<br/>(defun c:drr() <br/>&nbsp;&nbsp;&nbsp; (c:getsel) <br/>&nbsp;&nbsp;&nbsp; (setq SS (ssget "P"));上一个选择集<br/>&nbsp;&nbsp;&nbsp; (command "DRAWORDER" SS "" pause)<br/>&nbsp;&nbsp;&nbsp; (princ)<br/>)

XIAOFEILONG 发表于 2008-10-31 23:13:00

dianbotang发表于2008-10-31 21:39:00static/image/common/back.gif楼主的意思是不是将GETSEL命令选择到的对象进行前置和后置,根据这个思路设计程序如下:(defun c:drr() &nbsp;&nbsp;&nbsp; (c:getsel) &nbsp;&nbsp;&nbsp; (setq SS (ssget \"P\"));上一个选择

<p>在原图层中选择一个对象 &lt;*&gt;:<br/>选择一个你希望的对象类型 &lt;*&gt;:</p><p></p><p>我希望在调用GETSEL的时候把这2步变成一步,不指定对象类型,把步骤减到最少</p>

dianbotang 发表于 2008-11-2 04:04:00

<p>如果既要指定图层,又要指定对象类型,那按我上面所说的做就可以了。<br/>在(c:getsel) 里面好像不可以再加其他的关键字,不知道有没有解决的方法。<br/>如果只指定图层,或者只指定对象类型,又要求一步完成,可以用别的方法。<br/>(defun c:dr1()'过滤图层<br/>&nbsp; (setq ent (entsel))<br/>&nbsp; (setq entlist (entget (car ent)))<br/>&nbsp; (setq lname (cdr (assoc 8 entlist))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SSLST (list (cons 8 lname))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss (ssget "_X" SSLST))<br/>&nbsp; (command "DRAWORDER" SS "")<br/>&nbsp; (princ)<br/>) </p><p><br/>(defun c:dr2()'过滤对象<br/>&nbsp; (setq ent (entsel))<br/>&nbsp; (setq entlist (entget (car ent)))<br/>&nbsp; (setq ename (cdr (assoc 0 entlist))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SSLST (list (cons 0 ename))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ss (ssget "_X" SSLST))<br/>&nbsp; (command "DRAWORDER" SS "")<br/>&nbsp; (princ)<br/>) </p><p>还有你要求前置还是后置?如果确定的话就可以再简化。</p><p></p>

XIAOFEILONG 发表于 2008-11-2 20:52:00

本帖最后由 作者 于 2008-11-2 20:57:23 编辑 <br /><br /> <p>谢谢,我原意是想看大家是否有方法可以在外部命令后加关键字,如果能够的话,对我这种菜鸟来说,小程序就可以简单点了</p><p></p><p>呵呵,谢谢大家</p>
页: [1]
查看完整版本: [求助]如何调用ET工具中的命令?