(defun C:wzadd () (princ "\n将所选择的文字(文字中的数字)对象统一加上或减去某个数值") (setq val (getreal "\n输入要统一加的数值(要减去该数值则在数据前加负号):")) (setq ss (ssget ' ((-4 . "<OR") (0 . "MTEXT") (0 . "TEXT") (-4 . "OR>"))));ss为选择集名称 (setq nn (sslength ss));nn为选择集长度 (setq i 0) (repeat nn (setq ti(cdr(assoc 1(setq si (entget (ssname ss i)))) ) ) (setq txt (cdr (assoc 1 si));获得对象的文字信息 ) ;计算表达式. (if (distof txt) (progn (setq txt (+ (distof txt) val)) (entmod (setq si (subst (cons 1 (rtos txt)) (assoc 1 si) si)));修改第i个文本图元列表的数值并更新 ) ) (setq i (1+ i)) (princ) ) ) 比较仓促,没有加入控制精度! |