1、原程序:;说明(alert 提醒: n请首先设置好输精度,在绘图的过程中可随时用命令JD设置精度。 n命令+ - * /分别代表对所选择的数字求和差积商。 n其中- / 则是以你第一个选到的数字文本为被减数和被除数。.(点点)代表对所选择的数字文本统一加减乘除某个数,默认为1。TJ代表对所选择的数字文本进行数学统计。 n所有生成的新文本均与第一个选到的数字文本的样式相同(除角度外)。)定义了一个全局变量为精度(defun C:JD (/ ) (prompt n请输入精度,直接回车则为系统精度: (initget 4) (if (setq PRECISION (getint) (princ) (
2、setq PRECISION (getvar LUPREC) ) (C:JD) 加+ (/ key sel ins first numlst result) (while (common1) (setq result (apply + (cadr numlst) (common2) )减- (/ key sel ins first numlst result)- (cadr numlst)乘* (/ key sel ins first numlst result)* (cadr numlst)除/ (/ key sel ins first numlst result) (while (comm
3、on1) / (cadr numlst)所有数字都加减乘除某个数. (/ key op sel ins first numlst result) (while (setq sel (ssget (0 . TEXT) (setq first (ssname sel 0) (setq Numlst (sel-list sel) (initget 1 + - * / (setq key (getkword n请输入加减乘除符号: (initget 2) (if (null (setq op (getreal n请输入操作数) (setq op 1.0) (all-cal numlst key op)
4、 (defun all-cal (result sym op / lst old new) (foreach n (car numlst) (setq lst (entget n) (setq old (atof (cdr (assoc 1 lst) (setq new (eval (cons (read sym) (list old op) (setq new (cons 1 (rtos new (getvar LUNITS) PRECISION) (setq lst (subst new (assoc 1 lst) lst) (entmod lst)选择和插入点(defun common1
5、 () (and (setq sel (ssget ) (null (initget 0 Yes No (if (setq key (getkword n是否保留原数字Yes,No? (setq key YesNo做文字或者更新文字(defun common2 () (setq result (rtos result (getvar ) PRECISION) (if (= key (if (setq ins (getpoint n请输入插入点: (make-text first result ins) (update-text first result)选择集合转化成数字列表(defun se
6、l-list (sel / i ent lst num Els nls) (setq i 0) (repeat (sslength sel) (setq ent (ssname sel i) (setq lst (entget ent) (setq num (atof (cdr (assoc 1 lst) (setq Els (cons ent Els) (setq Nls (cons num Nls) (setq i (1+ i) (list (reverse Els) (reverse Nls) 创建新文字,在指定点插入(defun make-text (first string insp
7、t / remove txtlst lst) (setq remove (list -1 330 5 1 10 11 50) (setq txtlst (entget first) (foreach n txtlst (if (not (member (car n) remove) (setq lst (cons n lst) (setq lst (cons (cons 1 string) lst) (setq lst (cons (cons 10 inspt) lst) (setq lst (cons (cons 11 inspt) lst) (setq lst (reverse lst)
8、(cdr (assoc 40 (entmake lst)保留文字,仅更新内容(defun update-text (ent string / txtlst) (setq txtlst (entget ent) (setq txtlst (subst (cons 1 string) (assoc 1 txtlst) txtlst) (entmod txtlst)统计数字文本tj (/ un sel ins tollst numlst first data len ang HIG j n m) (setq un (getvar (while (and (setq sel (ssget (setq
9、ins (getpoint (princ n统计正在进行. (setq tollst (sel- (setq numlst (cadr tollst) (setq first (caar tollst) (setq data (STAT numlst) (setq len (strcat (caar data) (itoa (cdar data) (setq HIG (* (make-text first len ins) 1.5) (setq ang (* Pi -0.5) (setq j 1) (repeat 4 (setq n (nth j data) (setq m (strcat (
10、car n) (rtos (cdr n) un PRECISION) (make-text first m (polar ins ang (* j HIG) (setq j (1+ j)n统计已经完成!统计函数(defun STAT (numlst / len sum ave var sqr std) (setq len (length numlst) ;样本数目 (setq sum (apply + numlst) ;和 (setq ave (/ sum len) ;均值 (setq var (mapcar (lambda (x) (* (- x ave) (- x ave) numlst) ;差平方 (setq sqr (/ (apply + var) len) ;方差 variance (setq std (sqrt sqr) ;标准差 (cons 样本数. len)总和. sum)平均值. ave)方差. sqr)标准差. std)复制代码
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1