461045462 发表于 2010-11-22 07:13:00

[求助]lsp输入一个数据的命令 已解决

本帖最后由 作者 于 2010-11-24 0:07:01 编辑 <br /><br /> <p><font face="Verdana">写了一个输入数据的命令,可是不知为什么得不到赋值?请见下面的语句:<br/>&nbsp;(setq xn1 (getreal "\n请输入数据 &lt;&gt;: "))<br/>(if (/= n1 "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq n1 xn1)<br/>&nbsp;&nbsp;&nbsp; )</font></p>
<p><font face="Verdana">当输入一个数,假如是:1.5<br/>可是在后面的语句里:<br/>&nbsp;(command "line"<br/>&nbsp;&nbsp;&nbsp; (polar p0 (+ ang (* n1 pi)) (* n1 p_d1))<br/>语句不认可n1为1.5<br/>而直接写成(setq n1 1.5)时<br/>&nbsp;(polar p0 (+ ang (* n1 pi)) (* n1 p_d1))<br/>此时的n1又认可为是1.5<br/>不知是为什么?望高手指教<br/>谢谢</font></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>已解决</p>

Andyhon 发表于 2010-11-22 09:10:00

<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">Command: (setq xn1 (getreal "\n请输入数据 &lt;&gt;: "))<br/>请输入数据 &lt;&gt;:<br/>nil&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;&lt;========&nbsp; <font color="#800000">""</font>&nbsp; !=&nbsp; <font color="#993366">nil</font></font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">-----------------------------------------<br/>(setq xn1 (getreal "\n请输入数据 &lt;&gt;: "))<br/>(if (/= xn1 nil)<br/>&nbsp;&nbsp; (setq n1 xn1)<br/>&nbsp;&nbsp; (setq n1 1.0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; 内定&nbsp; <br/>)</font></p>

461045462 发表于 2010-11-22 13:18:00

<p>谢谢<font color="#61b713" face="Verdana"><b>Andyhon</b></font></p>
<p>我去试试</p>
<p>谢谢了</p>

461045462 发表于 2010-11-22 13:39:00

Andyhon发表于2010-11-22 9:10:00static/image/common/back.gifCommand: (setq xn1 (getreal \"\n请输入数据 &lt;&gt;: \"))请输入数据 &lt;&gt;:nil&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;&lt;========&nbsp; \"\"&nbsp; !


<p>&nbsp;&nbsp;&nbsp; 试了试,还是不行</p>
<p>&nbsp;&nbsp; 当"\n请输入数据 &lt;&gt;: "&nbsp; 不输数据时,就可以作图,取了内定值;当输入了数据时,作出的图形就不对。</p>
<p>&nbsp;</p>
<p>比如:是给它一个数值,让它偏移。当取内定值时,即不输入数据,就能按内定值偏移;输入数值后,则在指定位置画出线条,而不偏移。</p>
<p>&nbsp;</p>
<p>不知是为什么?</p>
<p>&nbsp;</p>
<p>请指教</p>
<p>&nbsp;</p>
<p>谢谢</p>

Andyhon 发表于 2010-11-22 14:06:00

<font style="BACKGROUND-COLOR: #ffffff" face="Verdana">未见您的代码,猜想是受捕捉模式的影响</font>

461045462 发表于 2010-11-22 23:01:00

Andyhon发表于2010-11-22 14:06:00static/image/common/back.gif未见您的代码,猜想是受捕捉模式的影响


<p>不是捕捉模式的影响,因为不输数据时能作图,输入数值,则在指定位置的两点画出线条。</p>
<p>代码就是根据两点,再赋值给它:<font face="Verdana"><font face="Verdana">(setq w1 (polar p0 (+ ang (* n1 pi)) (* n1 p_d1)))<br/>(setq w2 (polar (polar p0 (+ ang (* n1 pi)) (* n1 p_d1)) ang pl))<br/>(command "line" w1 w2 "")</font></font></p>
<p>只是不明白,为什么输入值就不行,内定值又可以?</p>
<p>盼得到高手指点</p>
<p>谢谢</p>

461045462 发表于 2010-11-23 07:06:00

<p>我又在其它的电脑上试了试,运行的结果是一样的。</p>
<p>即在不输入数据时,图形是对的,一旦输入数据,就有误,不是平行作线。不知是为什么,出错在哪里?</p>
<p>请见下面:</p>
<p><font face="Verdana">(defun c:test () </font></p>
<p><font face="Verdana">(setq xn1 (getreal "\n请输入数据 &lt;&gt;: "))&nbsp;</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp; (if (/= xn1 nil)<br/>&nbsp;&nbsp; (setq n1 xn1)<br/>&nbsp;&nbsp; (setq n1 0.5)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></p>
<p><font face="Verdana">&nbsp; )</font></p>
<p><font face="Verdana">&nbsp; (setq p0 (getpoint "\n请选取第一点:"))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></p>
<p><font face="Verdana">&nbsp; (setq pt1 (getpoint P0 "\n请选取第二点:"))<br/>&nbsp; (setq pl (distance p0 pt1))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></p>
<p><font face="Verdana">&nbsp; (setq ang (angle p0 pt1))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font></p>
<p><font face="Verdana">&nbsp; (setq p_d1 5)&nbsp;&nbsp;&nbsp; </font></p>
<p><font face="Verdana">(setq w1 (polar p0 (+ ang (* n1 pi)) (* n1 p_d1)))<br/>(setq w2 (polar (polar p0 (+ ang (* n1 pi)) (* n1 p_d1)) ang pl))<br/>(command "line" w1 w2 "")<br/>)</font></p>
<p>&nbsp;</p>
<p>望得到高手指教</p>
<p>谢谢</p>
<p>&nbsp;</p>

Andyhon 发表于 2010-11-23 09:24:00

<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">(setq xn1 (getreal "\n请输入数据 &lt;&gt;: ")) <br/>.....<br/>(setq w1 (polar p0 (+ ang (* n1 pi)) (* n1 p_d1)))</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">(+ ang (* n1 pi))&nbsp;&nbsp; ; Pi 的 倍数值&nbsp;&nbsp; &lt;&lt; 内定值相当于90?</p>
<p>(* n1 p_d1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; p_d1&nbsp; 的 倍数值&nbsp;&nbsp;&nbsp; &lt;&lt; 用意呢? </font></p>

jxlsp 发表于 2010-11-23 13:14:00

<font face="Verdana">(setq w1 (polar p0 (+ ang (*&nbsp;0.5 pi)) (* n1 p_d1)))<br/></font>

jxlsp 发表于 2010-11-23 13:15:00

<font face="Verdana">(setq w2 (polar pt1 (+ ang (*&nbsp;0.5 pi)) (* n1 p_d1)))</font>
页: [1] 2
查看完整版本: [求助]lsp输入一个数据的命令 已解决