CAD中数据统计方法.docx

上传人:b****6 文档编号:4989503 上传时间:2022-12-12 格式:DOCX 页数:7 大小:16.71KB
下载 相关 举报
CAD中数据统计方法.docx_第1页
第1页 / 共7页
CAD中数据统计方法.docx_第2页
第2页 / 共7页
CAD中数据统计方法.docx_第3页
第3页 / 共7页
CAD中数据统计方法.docx_第4页
第4页 / 共7页
CAD中数据统计方法.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

CAD中数据统计方法.docx

《CAD中数据统计方法.docx》由会员分享,可在线阅读,更多相关《CAD中数据统计方法.docx(7页珍藏版)》请在冰豆网上搜索。

CAD中数据统计方法.docx

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(getvar"LUPREC"))

(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(getvar"LUNITS")PRECISION)))

(setqlst(substnew(assoc1lst)lst))

(entmodlst)

 

;;;选择和插入点

(defuncommon1()

(and

(setqsel(ssget'((0."TEXT"))))

(null(initget0"YesNo"))

(if(setqkey(getkword"\n是否保留原数字Yes,No?

<默认不保留>:

"))

(setqkey"Yes")

(setqkey"No")

(setqfirst(ssnamesel0))

(setqNumlst(sel->listsel))

;;;做文字或者更新文字

(defuncommon2()

(setqresult(rtosresult(getvar"LUNITS")PRECISION))

(if(=key"No")

(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(getvar"LUNITS"))

(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)

复制代码

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1