资源预览内容
第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
第9页 / 共11页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
CAD 中统计数字的方法: 1) 使用CAD中的快捷键TT,但是需要先进行加载,加载方 法是:打开 CAD选择菜单栏一工具一加载应用程序 - 选择窗口中全部文件 - 加载 (即可) 。 然后就可以用这个快捷键了。在CA并选择需要计算的数据,然后 TT 快捷键,点下空格后就会出现一个对话框了。 2) 2)在绘图过程中, 经常会对数字文本进行四则运算, 或者统计数字,在现有的CAM令中没有直接命令与之相关,用计算器又麻烦。所以可以用一个小程序来解决。我觉得挺好的。快捷键TJ。用法:1、 先加载程序,首先会提示你如何用这个程序。2、然后你输入计算结果的精度,即小数点位数:这个只要在开始的时候输入就可以了, 以后的命令你不用输入精度, 如果你要调整精度,随时输入命令JD.3 、 下面为它的具体用法, 你可以选择多个文字,如果是除法,劝你最好不要选择 0 数字,否则会出错。而且命令可以连用,直到你空输入(没有选择或者取点)为止。+ - * / 命令不用多说。. 命令为对所选文字同时加减乘除某个数。4 、统计的命令为 TJ 。其速度是很快的,我曾对十万级的数字验证,求结果既快又准。5、这个程序适用于各个版本,我甚至觉得可以用于DOS勺CAD版本。原程序:; 说明(alert 提醒 :n 请首先设置好输精度, 在绘图的过程中可随时用命令JD设置精度。n 命令 + - * / 分别代表对所选择的数字求和差积商。n 其中 - / 则是以你第一个选到的数字文本为被减数和被除数。n 命令 .(点点 )代表对所选择的数字文本统一加减乘除某个数,默认为 1。n命令 TJ 代表对所选择的数字文本进行数学统计。n所有生成的新文本均与第一个选到的数字文本的样式相同 ( 除角度外 ) 。 ); 定义了一个全局变量为精度(defun C:JD (/ )(prompt n 请输入精度, 直接回车则为系统精度:)(initget 4)(if (setq PRECISION (getint)(princ)(setq PRECISION (getvar LUPREC)(C:JD); 加(defun C:+ (/ key sel ins first numlst result)(while (common1)(setq result (apply + (cadr numlst)(common2)(princ); 减(defun C:- (/ key sel ins first numlst result)(while (common1)(setq result (apply - (cadr numlst)(common2)(princ); 乘(defun C:* (/ key sel ins first numlst result)(while (common1)(setq result (apply * (cadr numlst)(common2)(princ); 除(defun C:/ (/ key sel ins first numlst result)(while (common1)(setq result (apply / (cadr numlst)(common2)(princ); 所有数字都加减乘除某个数(defun C:. (/ 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 1:)(all-cal numlst key op)(princ);(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 ()(and(setq sel (ssget (0 . TEXT)(null (initget 0 Yes No)(if (setq key (getkword n是否保留原数字 Yes,No:)(setq key Yes)(setq key No)(setq first (ssname sel 0)(setq Numlst (sel-list sel); 做文字或者更新文字(defun common2 ()(setq result (rtos result (getvar LUNITS)PRECISION)(if (= key No)(if (setq ins (getpoint n请输入插入点 :)(make-text first result ins)(update-text first result); 选择集合转化成数字列表(defun sel-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 inspt / 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)(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)len ang; 统计数字文本(defun C:tj (/ un sel ins tollst numlst first dataHIG j n m)(setq un (getvar LUNITS)(while (and (setq sel (ssget (0 . TEXT)(setq ins (getpoint n请输入插入点 :)(princ n 统计正在进行)(setq tollst (sel-list sel)(setq numlst (cadr tollst)(setq first (caar tollst)(setq data (STAT numlst)(setq len (strcat (caar data) (itoa (cdar data)(setq j 1)(repeat 4(setq n (nth j data)(setq m(strcat (car n) (rtos (cdr n) un PRECISION)(make-text first m (polar ins ang (* j HIG)(setq j (1+ j)(princ n 统计已经完成!)(princ); 统计函数(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);标准差(list(cons 样本数 len)(cons 总和 sum)(cons 平均值 ave)(cons 方差 sqr)(cons 标准差 std) )复制代码
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号