对CAD中的数字批量进行加减乘除以及乘方的运算的lisp
(defun C:tadd ( / sa k ss str yusf n shzi h hh)<BR> (princ "\n 选择所有文字:")<BR> (setq ss (ssget '((0 . "text")))<BR> str (getstring "\n 输入四则运算符及数值:")<BR> yusf (substr str 1 1)<BR> shzi (atof (substr str 2))<BR> n (sslength ss) k 0 )<BR> (while (< k n) <BR> (setq names (ssname ss k)<BR> sa (entget names)<BR> h (assoc '1 sa)<BR> hh (atof(cdr h)))<BR> (if (= yusf "+")(setq str1 (rtos (+ hh shzi) 2)))<BR> (if (= yusf "-")(setq str1 (rtos (- hh shzi) 2)))<BR> (if (= yusf "*")(setq str1 (rtos (* hh shzi) 2)))<BR> (if (= yusf "/")(setq str1 (rtos (/ hh shzi) 2)))<BR> (if (= yusf "^")(setq str1 (rtos (expt hh shzi) 2)))<BR> (setq h1 (cons 1 str1))<BR> (setq sa (subst h1 h sa))<BR> (entmod sa)<BR> (setq k (+ k 1))<BR> )(princ)<BR>)<BR> 不考虑一下支持多行文字吗?
页:
[1]