XIAOFEILONG 发表于 2008-7-30 20:50:00

[求助]LISP在2004和2006下反应不一样?

<p>(defun c:22 (/ bw b1 b2 dw d1 d2 n1 n2 n11 n22 x1 x2)<br/>&nbsp; (prompt "\n 输入梁宽:")<br/>&nbsp; (setq bw (getreal))<br/>&nbsp; (prompt "\n 输入钢筋直径:")<br/>&nbsp; (setq dw (getreal))</p><p>&nbsp; <br/>&nbsp; <br/>&nbsp; (setq x1 (max 30 (* 1.5 dw)))<br/>&nbsp; (setq x2 (max 25 dw))</p><p>&nbsp;<br/>&nbsp; (setq n1 (/ (+ (- bw 50.0) x1) (+ dw x1)))<br/>&nbsp; (setq n2 (/ (+ (- bw 50.0) x2) (+ dw x2)))<br/>&nbsp; <br/>&nbsp;<br/>&nbsp; <br/>&nbsp; (setq n11 (fix n1))<br/>&nbsp; (setq n22 (fix n2))<br/>&nbsp; <br/>&nbsp; (princ "\n 梁端:")<br/>&nbsp; (princ n11)<br/>&nbsp; <br/>&nbsp; (princ "\n 梁底:")<br/>&nbsp; (princ n22)<br/>&nbsp;(princ)<br/>&nbsp;&nbsp; <br/>)<br/>&nbsp;&nbsp; </p><p></p><p><br/>&nbsp;&nbsp;&nbsp;&nbsp; 上面是我编的一个查询梁单排最大纵筋根数的程序</p><p>在2006中是正常运行的</p><p>但是在CAD2004中,当我输入梁宽和钢筋直径的时候,数字的第1位数字会自动的跳到最后一位</p><p>如“200”输入就成了“002”</p><p></p><p>这是为什么?</p><p>请大家帮忙找找问题所在!</p><p>谢谢</p>

phoenixdjq 发表于 2008-7-30 23:23:00

<p>应该是冒号的全角的关系</p><p>把冒号改一下就行了</p>

ZZXXQQ 发表于 2008-7-31 08:22:00

<p>\n后不要带空格就可以了。</p><p>另外为何要用PROMPT?可以直接将提示写到GETREAL函数后面。</p>

byghbcx 发表于 2008-7-31 08:47:00

本帖最后由 作者 于 2008-7-31 10:08:13 编辑 <br /><br /> <p>&nbsp;(prompt "\n 输入钢筋直径:")<br/>把\n后面的空格去掉应该可以,\n后面跟奇数个空格再跟汉字都会出现这种情况</p><p>可能是数据流问题,汉字显示到命令行时,有奇数个空格,双字节字符就会向前进一格,</p>
页: [1]
查看完整版本: [求助]LISP在2004和2006下反应不一样?