[求助]lsp输入一个数据的命令 已解决
本帖最后由 作者 于 2010-11-24 0:07:01 编辑 <br /><br /> <p><font face="Verdana">写了一个输入数据的命令,可是不知为什么得不到赋值?请见下面的语句:<br/> (setq xn1 (getreal "\n请输入数据 <>: "))<br/>(if (/= n1 "")<br/> (setq n1 xn1)<br/> )</font></p><p><font face="Verdana">当输入一个数,假如是:1.5<br/>可是在后面的语句里:<br/> (command "line"<br/> (polar p0 (+ ang (* n1 pi)) (* n1 p_d1))<br/>语句不认可n1为1.5<br/>而直接写成(setq n1 1.5)时<br/> (polar p0 (+ ang (* n1 pi)) (* n1 p_d1))<br/>此时的n1又认可为是1.5<br/>不知是为什么?望高手指教<br/>谢谢</font></p>
<p> </p>
<p> </p>
<p>已解决</p> <p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">Command: (setq xn1 (getreal "\n请输入数据 <>: "))<br/>请输入数据 <>:<br/>nil ;<======== <font color="#800000">""</font> != <font color="#993366">nil</font></font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">-----------------------------------------<br/>(setq xn1 (getreal "\n请输入数据 <>: "))<br/>(if (/= xn1 nil)<br/> (setq n1 xn1)<br/> (setq n1 1.0) ; 内定 <br/>)</font></p> <p>谢谢<font color="#61b713" face="Verdana"><b>Andyhon</b></font></p>
<p>我去试试</p>
<p>谢谢了</p> Andyhon发表于2010-11-22 9:10:00static/image/common/back.gifCommand: (setq xn1 (getreal \"\n请输入数据 <>: \"))请输入数据 <>:nil ;<======== \"\" !
<p> 试了试,还是不行</p>
<p> 当"\n请输入数据 <>: " 不输数据时,就可以作图,取了内定值;当输入了数据时,作出的图形就不对。</p>
<p> </p>
<p>比如:是给它一个数值,让它偏移。当取内定值时,即不输入数据,就能按内定值偏移;输入数值后,则在指定位置画出线条,而不偏移。</p>
<p> </p>
<p>不知是为什么?</p>
<p> </p>
<p>请指教</p>
<p> </p>
<p>谢谢</p> <font style="BACKGROUND-COLOR: #ffffff" face="Verdana">未见您的代码,猜想是受捕捉模式的影响</font> 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> <p>我又在其它的电脑上试了试,运行的结果是一样的。</p>
<p>即在不输入数据时,图形是对的,一旦输入数据,就有误,不是平行作线。不知是为什么,出错在哪里?</p>
<p>请见下面:</p>
<p><font face="Verdana">(defun c:test () </font></p>
<p><font face="Verdana">(setq xn1 (getreal "\n请输入数据 <>: ")) </font></p>
<p><font face="Verdana"> (if (/= xn1 nil)<br/> (setq n1 xn1)<br/> (setq n1 0.5) </font></p>
<p><font face="Verdana"> )</font></p>
<p><font face="Verdana"> (setq p0 (getpoint "\n请选取第一点:")) </font></p>
<p><font face="Verdana"> (setq pt1 (getpoint P0 "\n请选取第二点:"))<br/> (setq pl (distance p0 pt1)) </font></p>
<p><font face="Verdana"> (setq ang (angle p0 pt1)) </font></p>
<p><font face="Verdana"> (setq p_d1 5) </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> </p>
<p>望得到高手指教</p>
<p>谢谢</p>
<p> </p> <p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">(setq xn1 (getreal "\n请输入数据 <>: ")) <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)) ; Pi 的 倍数值 << 内定值相当于90?</p>
<p>(* n1 p_d1) ; p_d1 的 倍数值 << 用意呢? </font></p> <font face="Verdana">(setq w1 (polar p0 (+ ang (* 0.5 pi)) (* n1 p_d1)))<br/></font> <font face="Verdana">(setq w2 (polar pt1 (+ ang (* 0.5 pi)) (* n1 p_d1)))</font>
页:
[1]
2