本帖最后由 lincctw_ccl 于 2011-6-16 13:20 编辑
请问
如
文字
3.123 得出群码为
(1 . 3.123) 该用何函数可得知
3.123 为小数点3位 下列
lsp为文字数字进行加减计算, 如何可省略下面这两行,达到被计算的文字结果
小数点位数不产生变化
(if (not (setq uni (getreal "\n小数点位数<3>:")))(setquni 3))(setvar "LUPREC" uni)
谢谢!!
如
选3.123
3.123-1=2.123 如选3.12345
3.12345 -1=3.12345
以下为程序 ;;;;;;;;;数字文字加减改文字 (defun c:txtcal1 (/ uni en en_data onum_list old_num onum val new_num nnum_listnew_data) (setvar "osmode" 0) (setvar "cmdecho" 0) (setvar "blipmode" 0) (if (not (setq uni (getreal "\n小数点位数<3>:")))(setquni 3)) (setvar "LUPREC" uni) (while (setq en(entsel "\n选取须计算更改的数字:")) (setq en_data(entget (car en)));;取出全组码 (setq onum_list(assoc 1 en_data));;取出组码1 (setq old_num (cdr onum_list));;去除组码1 的第一个数字 (setq onum(distof old_num));;将文字转化成可计算的纯数值 (setq val (getreal "\n+ 或
- 数值:")) (setq new_num (rtos(+ onum val)));;加rtos为将纯数值转问字符串 (setq nnum_list (cons 1 new_num)) (setq new_data(subst nnum_list onum_list en_data)) (entmod new_data) (command "chprop" (entlast) "" "C" "1""") )) (setvar "cmdecho" 1) (prin1) |