要求:
输入命令
框选图中所有的数字
选择(加/减/乘/除)
输入一个数字A
则图中所有的数字对A进行(加/减/乘/除)的运算
有这样的LISP吗?
网友答: 本帖最后由 yjwht 于 2025-11-26 17:02 编辑yxp 发表于 2008-10-3 19:16
试试俺的程序,支持加减乘除和开方,使用很简单,选择文本直接输入 +2 ,即可全部增加2,小数位在格式 ...
非常好用。描述有点小问题,是支持乘方,不是开方。我主要是用于电缆分段长度的计算,乘以1.025系数,非常实用!

网友答:
yxp 发表于 2008-10-3 19:16
试试俺的程序,支持加减乘除和开方,使用很简单,选择文本直接输入 +2 ,即可全部增加2,小数位在格式 ...
yxp大师这个计算器完美!感谢您分享!
网友答:
yxp 发表于 2008-10-3 19:16
试试俺的程序,支持加减乘除和开方,使用很简单,选择文本直接输入 +2 ,即可全部增加2,小数位在格式 ...
还可以呢,谢谢分享网友答: 函数c:cal或cal, 要先加载geomcal.arx网友答: 飞诗的程序有这功能.网友答:
试试俺的程序,支持加减乘除和开方,使用很简单,选择文本直接输入 +2 ,即可全部增加2,小数位在格式里设置
;;文本计算器
(defun C:tadd ( / sa k ss str yusf n shzi h hh)
(princ "\n 选择所有文字:")
(setq ss (ssget '((0 . "text")))
str (getstring "\n 输入四则运算及数值:")
yusf (substr str 1 1)
shzi (atof (substr str 2))
n (sslength ss) k 0 )
(while (< k n)
(setq names (ssname ss k)
sa (entget names)
h (assoc '1 sa)
hh (atof(cdr h)))
(if (= yusf "+")(setq str1 (rtos (+ hh shzi) 2)))
(if (= yusf "-")(setq str1 (rtos (- hh shzi) 2)))
(if (= yusf "*")(setq str1 (rtos (* hh shzi) 2)))
(if (= yusf "/")(setq str1 (rtos (/ hh shzi) 2)))
(if (= yusf "^")(setq str1 (rtos (expt hh shzi) 2)))
(setq h1 (cons 1 str1))
(setq sa (subst h1 h sa))
(entmod sa)
(setq k (+ k 1))
)(princ)
)
论坛搜索 四则
能搜索到你要的程序
网友答: 4楼的这个用着还不错网友答: 能否修改下,精确到小数点后几位,同时改颜色网友答: 四楼的方法有点用处谢谢网友答: 保留精度由 rtos 这个函数决定 ,可以根据自己需要修改网友答: 非常好!!!感谢楼主分享!!