获取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>>选取写入结果的文字:")))<br/>(setq wstext ws)<br/>(princ)<br/>) </font> <p>获取数值那部分对不对?</p><p> </p>
<p>写入那部分对不对?</p>
<p> </p>
<p>是不是主要这2部分有问题?</p>
<p> </p>
<p>问一下1个基本知识,我还不肯定:lisp需不需要转换参数类型,比如获取的是不是字符类型?要不要转换成数值类型这样的说法?我以前的VB就要这样!</p> <p>1. entsel是選取物件,先查一下pa是什麼? !pa ->再取得文字內容</p>
<p>2. 字串->數字</p>
<p>3. ws的處理,要注意整數實數問題</p>
<p>4. subst</p> <p>另外</p>
<p>(/pa ==> (/ pa </p> 本帖最后由 作者 于 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/> (if (and (setq s1 (entsel "\n选择全压值文本 :"))<br/> (setq ent (entget(car s1)))<br/> (= (cdr(assoc 0 ent)) "TEXT")) (progn<br/> (setq ws (/ (atof (cdr(assoc 1 ENT))) 1800))<br/> (if (setq s2 (entsel "\n>>选取写入结果的文字:")) (progn<br/> (setq ent (entget(car s2)))<br/> (setq ent (subst (cons 1 (rots ws 2)) (assoc 1 ent) ent))<br/> (entmod ent)<br/> ))<br/> ))<br/> (princ)<br/>)<br/></font></font></p> <p>提示输入的列表有缺陷!</p>
<p>。。。。。。</p> 5楼改了,再试试。 我也用不起来啊 研究一下先,很多东西还不理解! rots改为rtos可用!
页:
[1]
2