command 调用命令 pause问题
<p>我想用lisp连续调用两个命令。具体代码</p><p>(defun c:mylc()<br/> (command "line" pause pause pause "c" )<br/> (command "circle" pause pause "c")<br/>)</p><p><br/>我的问题是,第一步我在画line的时候可能需要多于三次次的鼠标输入,怎么办?而且有可能不是line命令,其他的命令,选择的次数每次都是随机的,我也无法预先知道,也就是说没办法用循环预先构造一个string list。这种情况怎么处理?能否等一个命令执行完毕再执行下一个?</p> (defun c:mylc()<br/> (command "line")<br/> (setq pt (getpoint "\n指定點:"))<br/> (command pt)<br/> (while (setq ptn (getpoint pt "\n指定點:"))<br/> (command ptn)<br/> (setq pt ptn)<br/> )<br/> (command "c")<br/>(prin1) <br/>) 本帖最后由 作者 于 2008-4-2 15:48:31 编辑 <br /><br /> <p>多谢回复。</p><p>我的问题没有讲太清楚。这里第一个命令可能是line,也可能是别的命令,可能是其他的objectARX命令,甚至有可能弹出对话框。不一定只是简单的获取点,还可能是选取实体,输入文字等其他操作。这种情况怎么办?而且用while一定要等用户取消输入,可我希望是第一个命令在得到足够输入后自己结束。</p><p>本质上来说,我想达到的效果就象在命令行先敲一个命令,执行结束,再输入另外一个命令。比如第一个是block命令,第二个是其他命令,怎么处理?</p><p>AutoCAD其他的开发工具比如ARX, VBA提供相应的方法么?</p> 不同情况需要不同解决方案 <p>那如果针对block这种情况呢?有什么方案?</p><p>因为block这个有对话框,还可能选取block的元素,还可能选取block的原点,我想要得操作都在里面了。</p><p>其实我想要这种功能,第二个命令以第一个命令的输出为输入,而第一个命令可能是千变万化的。</p> <p>搞定啦</p><p>(defun c:mylc()<br/>(command "block" )(while(>(getvar "cmdactive")0)(command pause))(command "circle") <br/>)</p> <p>(command ".-block" <块名> <插入点> <选择集>)</p><p>先了解命令行的提示,并不是一点要用 pause,2 楼已经给你启示了,</p><p>第二个命令以第一个命令的输出为输入,而第一个命令可能是千变万化的</p><p>有时候可以根据系统变量 cmdactive 的当前值进行判断一个命令是否结束。</p> f5612140 发表于 2008-4-2 06:35 static/image/common/back.gif(defun c:mylc() (command "line") (setq pt (getpoint "\n指定點:")) (command pt)&nbs ...
学习了
页:
[1]