yugarden 发表于 2010-6-28 15:50:00

获取1文本数值,经过计算,写入另一文本的lisp,提示参数太少,新手不懂如何修改,

获取1文本数值,经过计算,写入另一文本的lisp,提示参数太少,新手不懂如何修改,各位高手帮忙看看!<font face="Verdana">(defun c:wss (/pa ws wstext)<br/>(setq pa (entsel "\n选择全压值文本 :"))<br/>(setq ws (/pa 1800))<br/>(setq wstext (car (entsel "\n&gt;&gt;选取写入结果的文字:")))<br/>(setq wstext ws)<br/>(princ)<br/>) </font>

yugarden 发表于 2010-6-28 16:09:00

<p>获取数值那部分对不对?</p>
<p>&nbsp;</p>
<p>写入那部分对不对?</p>
<p>&nbsp;</p>
<p>是不是主要这2部分有问题?</p>
<p>&nbsp;</p>
<p>问一下1个基本知识,我还不肯定:lisp需不需要转换参数类型,比如获取的是不是字符类型?要不要转换成数值类型这样的说法?我以前的VB就要这样!</p>

lsjj 发表于 2010-6-28 16:35:00

<p>1. entsel是選取物件,先查一下pa是什麼? !pa -&gt;再取得文字內容</p>
<p>2. 字串-&gt;數字</p>
<p>3. ws的處理,要注意整數實數問題</p>
<p>4. subst</p>

Andyhon 发表于 2010-6-28 18:31:00

<p>另外</p>
<p>(/pa&nbsp;&nbsp; ==&gt;&nbsp; (/ pa </p>

ZZXXQQ 发表于 2010-6-28 21:04:00

本帖最后由 作者 于 2010-6-30 19:25:51 编辑 <br /><br /> <p></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana"><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">(defun c:wss (/ pa ws wstext)<br/>&nbsp;(if (and (setq s1 (entsel "\n选择全压值文本 :"))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq ent (entget(car s1)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (= (cdr(assoc 0 ent)) "TEXT")) (progn<br/>&nbsp; (setq ws (/ (atof (cdr(assoc 1 ENT))) 1800))<br/>&nbsp; (if (setq s2 (entsel "\n&gt;&gt;选取写入结果的文字:")) (progn<br/>&nbsp;&nbsp; (setq ent (entget(car s2)))<br/>&nbsp;&nbsp; (setq ent (subst (cons 1 (rots ws 2)) (assoc 1 ent) ent))<br/>&nbsp;&nbsp; (entmod ent)<br/>&nbsp; ))<br/>&nbsp;))<br/>&nbsp;(princ)<br/>)<br/></font></font></p>

yugarden 发表于 2010-6-30 11:27:00

<p>提示输入的列表有缺陷!</p>
<p>。。。。。。</p>

ZZXXQQ 发表于 2010-6-30 19:27:00

5楼改了,再试试。

qingtao210 发表于 2010-7-5 22:12:00

我也用不起来啊

yugarden 发表于 2010-7-6 14:16:00

研究一下先,很多东西还不理解!

yugarden 发表于 2010-7-6 14:18:00

rots改为rtos可用!
页: [1] 2
查看完整版本: 获取1文本数值,经过计算,写入另一文本的lisp,提示参数太少,新手不懂如何修改,