boojum 发表于 2009-1-3 14:02:00

初学者问题,关于lisp做类似圆/圆弧命令的选项

本帖最后由 作者 于 2009-1-3 15:20:56 编辑 <br /><br /> <p>各位大侠,刚学lisp,想做个命令,其中要像CAD画圆这样,命令后是"提示指定点,[或者三点(3P)...]"这样的选项。</p><p>因为这个等待输入里,一个类型是getpoint,另外一个是getkworld,"IF"试了N次,都不知道怎么做出来,CAD里面有好多这样的选项,寻大家帮忙。</p><p>谢谢!</p><p>见3楼</p>

boojum 发表于 2009-1-3 14:43:00

<p>没人回答?</p><p></p>

Student 发表于 2009-1-3 15:09:00

<p>大概是这样:</p><p>(setq ws(strcase(getstring "\n画圆C\画弧A\画直线L:")))<br/>(cond<br/>&nbsp;((= ws "C")<br/>&nbsp;&nbsp;;准备画圆<br/>&nbsp;)<br/>&nbsp;((= ws "A")<br/>&nbsp;&nbsp;;准备画弧<br/>&nbsp;)<br/>&nbsp;((= ws "L")<br/>&nbsp;&nbsp;;准备画直线<br/>&nbsp;)<br/>&nbsp;(t<br/>&nbsp;&nbsp;(alert "输入错误,请重新输入关键字.")<br/>&nbsp;)<br/>)<br/>;<br/>供参考<br/></p>

boojum 发表于 2009-1-3 15:11:00

本帖最后由 作者 于 2009-1-3 15:18:31 编辑 <br /><br /> <p>谢谢回复</p><p>我想做的是选项里一个是指定点,或者是选关键字.如下面AutoCAD的命令提示</p><p><font color="#0000ff" style="BACKGROUND-COLOR: #cccccc;">命令: _arc指定圆弧的起点或[圆心(C)]:</font></p><p>此时要么在CAD屏幕上点一个点,即getpoint函数;要么在命令行里选关键字C,进入指定圆心的步骤,即getkworld函数.</p><p>这个过程怎么实现呢?</p>

caoyin 发表于 2009-1-3 15:20:00

<p>(initget "3P eXit")<br/>(setq a (getpoint "指定点或 [三点(3P)/退出(X)] &lt;退出&gt;: "))<br/>(cond<br/>&nbsp; ((vl-consp a)<br/>&nbsp;&nbsp; (alert "用户拾取了点")<br/>&nbsp; )<br/>&nbsp; ((= a "3P")<br/>&nbsp;&nbsp; (alert "用户输入了 3P ")<br/>&nbsp; )<br/>&nbsp; ((or (= a "eXit") (not a))<br/>&nbsp;&nbsp; (alert "用户输入了 eXit 或点执行了 ENTER ")<br/>&nbsp; )<br/>)</p><p></p>

boojum 发表于 2009-1-3 15:29:00

<p>多谢5楼答复,试了下,可以用</p><p>看样子还得继续学习啊,以为用条件语句就好做了呢.</p><p>谢谢!</p>
页: [1]
查看完整版本: 初学者问题,关于lisp做类似圆/圆弧命令的选项