CAD中数据统计方法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

CAD中统计数字的方法:(1)使用CAD中的快捷键TT,但是需要先进行加载,加载方法是:打开CAD,选择菜单栏---工具---加载应用程序---选择窗口中全部文件---加载(即可)。然后就可以用这个快捷键了。在CAD中选择需要计算的数据,然后TT快捷键,点下空格后就会出现一个对话框了。(2)在绘图过程中,经常会对数字文本进行四则运算,或者统计数字,在现有的CAD命令中没有直接命令与之相关,用计算器又麻烦。所以可以用一个小程序来解决。我觉得挺好的。快捷键TJ。用法:1、先加载程序,首先会提示你如何用这个程序。2、然后你输入计算结果的精度,即小数点位数:这个只要在开始的时候输入就可以了,以后的命令你不用输入精度,如果你要调整精度,随时输入命令JD.3、下面为它的具体用法,你可以选择多个文字,如果是除法,劝你最好不要选择0数字,否则会出错。而且命令可以连用,直到你空输入(没有选择或者取点)为止。+-*/命令不用多说。..命令为对所选文字同时加减乘除某个数。4、统计的命令为TJ。其速度是很快的,我曾对十万级的数字验证,求结果既快又准。5、这个程序适用于各个版本,我甚至觉得可以用于DOS的CAD版本。原程序:;;;说明(alert提醒:\n请首先设置好输精度小数点位数,在绘图的过程中可随时用命令JD设置精度。\n命令\+-*/\分别代表对所选择的数字求和差积商。\n其中\-/\则是以你第一个选到的数字文本为被减数和被除数。\n命令\..\(点点)代表对所选择的数字文本统一加减乘除某个数,默认为1。\n命令\TJ\代表对所选择的数字文本进行数学统计。\n所有生成的新文本均与第一个选到的数字文本的样式相同(除角度外)。);;;定义了一个全局变量为精度(defunC:JD(/)(prompt\n请输入精度,直接回车则为系统精度:)(initget4)(if(setqPRECISION(getint))(princ)(setqPRECISION(getvarLUPREC))))(C:JD);;;加(defunC:+(/keyselinsfirstnumlstresult)(while(common1)(setqresult(apply'+(cadrnumlst)))(common2))(princ));;;减(defunC:-(/keyselinsfirstnumlstresult)(while(common1)(setqresult(apply'-(cadrnumlst)))(common2))(princ));;;乘(defunC:*(/keyselinsfirstnumlstresult)(while(common1)(setqresult(apply'*(cadrnumlst)))(common2))(princ));;;除(defunC:/(/keyselinsfirstnumlstresult)(while(common1)(setqresult(apply'/(cadrnumlst)))(common2))(princ));;;所有数字都加减乘除某个数(defunC:..(/keyopselinsfirstnumlstresult)(while(setqsel(ssget'((0.TEXT))))(setqfirst(ssnamesel0))(setqNumlst(sel-listsel))(initget1+-*/)(setqkey(getkword\n请输入加减乘除符号+-*/:))(initget2)(if(null(setqop(getreal\n请输入操作数默认为1:)))(setqop1.0))(all-calnumlstkeyop))(princ));;;(defunall-cal(resultsymop/lstoldnew)(foreachn(carnumlst)(setqlst(entgetn))(setqold(atof(cdr(assoc1lst))))(setqnew(eval(cons(readsym)(listoldop))))(setqnew(cons1(rtosnew(getvarLUNITS)PRECISION)))(setqlst(substnew(assoc1lst)lst))(entmodlst)));;;选择和插入点(defuncommon1()(and(setqsel(ssget'((0.TEXT))))(null(initget0YesNo))(if(setqkey(getkword\n是否保留原数字Yes,No?默认不保留:))(setqkeyYes)(setqkeyNo))(setqfirst(ssnamesel0))(setqNumlst(sel-listsel))));;;做文字或者更新文字(defuncommon2()(setqresult(rtosresult(getvarLUNITS)PRECISION))(if(=keyNo)(if(setqins(getpoint\n请输入插入点:))(make-textfirstresultins))(update-textfirstresult)));;;选择集合转化成数字列表(defunsel-list(sel/ientlstnumElsnls)(setqi0)(repeat(sslengthsel)(setqent(ssnameseli))(setqlst(entgetent))(setqnum(atof(cdr(assoc1lst))))(setqEls(consentEls))(setqNls(consnumNls))(setqi(1+i)))(list(reverseEls)(reverseNls)));;;创建新文字,在指定点插入(defunmake-text(firststringinspt/removetxtlstlst)(setqremove(list-133051101150))(setqtxtlst(entgetfirst))(foreachntxtlst(if(not(member(carn)remove))(setqlst(consnlst))))(setqlst(cons(cons1string)lst))(setqlst(cons(cons10inspt)lst))(setqlst(cons(cons11inspt)lst))(setqlst(reverselst))(cdr(assoc40(entmakelst))));;;保留文字,仅更新内容(defunupdate-text(entstring/txtlst)(setqtxtlst(entgetent))(setqtxtlst(subst(cons1string)(assoc1txtlst)txtlst))(entmodtxtlst));;;统计数字文本(defunC:tj(/unselinstollstnumlstfirstdatalenangHIGjnm)(setqun(getvarLUNITS))(while(and(setqsel(ssget'((0.TEXT))))(setqins(getpoint\n请输入插入点:)))(princ\n统计正在进行......)(setqtollst(sel-listsel))(setqnumlst(cadrtollst))(setqfirst(caartollst))(setqdata(STATnumlst))(setqlen(strcat(caardata)(itoa(cdardata))))(setqHIG(*(make-textfirstlenins)1.5))(setqang(*Pi-0.5))(setqj1)(repeat4(setqn(nthjdata))(setqm(strcat(carn)(rtos(cdrn)unPRECISION)))(make-textfirstm(polarinsang(*jHIG)))(setqj(1+j)))(princ\n统计已经完成!))(princ));;;统计函数(defunSTAT(numlst/lensumavevarsqrstd)(setqlen(lengthnumlst));样本数目(setqsum(apply'+numlst));和(setqave(/sumlen));均值(setqvar(mapcar'(lambda(x)(*(-xave)(-xave)))numlst));差平方(setqsqr(/(apply'+var)len));方差variance(setqstd(sqrtsqr));标准差(list(cons样本数......len)(cons总和........sum)(cons平均值......ave)(cons方差........sqr)(cons标准差......std)))复制代码

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功