XIAOFEILONG 发表于 2008-7-13 22:21:00

[求助]求一比较大小的LISP

<p>图形中有文字“100”和“200”<br/>现在想对图形中文字进行判断</p><p>选取文字,如果文字大于50小于150,则此文字内容变成“A”<br/>如果文字大于150,则此文字内容变成“B”</p><p>请问如何把字符串“A”和“B”赋值到文字“100”和“200”中去?</p>

dinosaurhxe2 发表于 2008-7-13 22:27:00

(read "100")或(atoi "100"),即可与50或者150比较大小了。<br/>

XIAOFEILONG 发表于 2008-7-14 00:25:00

<p>能否按我的要求写个完整的LISP?<br/>XIEXIE</p>

caoyin 发表于 2008-7-14 09:29:00

<p>(read "100")或(atoi "100"),即可与50或者150比较大小了</p><p>read 和 atoi 是不行的,假如数字为 50.2</p><p>用 atof 比较好</p><p>(defun c:tt (/ e a b)<br/>&nbsp; (while (setq e (car (entsel "\n选择文字: ")))<br/>&nbsp;&nbsp;&nbsp; (setq e (entget e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a (atof (cdr (assoc 1 e)))<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (cond ((&gt; 150 a 50)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq b "A")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((&gt; a 150)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq b "B")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (entmod (subst (cons 1 b) (assoc 1 e) e))<br/>&nbsp; )<br/>)</p>

byghbcx 发表于 2008-7-14 09:56:00

少个判断a&lt;50,怎么处理,否则接着上次的b值更新

caoyin 发表于 2008-7-14 11:10:00

<p>少个判断a&lt;50,怎么处理,否则接着上次的b值更新</p><p>此言极是</p><p>(defun c:tt (/ e a b)<br/>&nbsp; (while (setq e (car (entsel "\n选择文字: ")))<br/>&nbsp;&nbsp;&nbsp; (setq e (entget e)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a (atof (cdr (assoc 1 e)))<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (cond ((&gt; 150 a 50)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq b "A")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ((&gt; a 150)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq b "B")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(T (setq b nil))<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (if b (entmod (subst (cons 1 b) (assoc 1 e) e)))<br/>&nbsp; )<br/>)</p><p></p>
页: [1]
查看完整版本: [求助]求一比较大小的LISP