第三章设计数据的处理技术3.0概述3.1数表的计算机处理3.2线图的计算机处理3.3数表的公式化处理3.4数据库的基本原理与应用3.0概述设计数据数表线图常数数表普通线图列表函数程序化(数组)单个编程处理文件化数据库离散为数组插值计算函数拟合直接应用公式折线图带有公式处理方法数据类型设计数据类型及常用处理方法3.1数表的计算机处理技术3.1.1数表的数组化一维数表例:由三角胶带包角α查取修正系数kα用2个一维数组进行程序化。floatalfa[8]={90.0,100.0,110.0,120.0,130.0,140.0,150.0,160.0};floatkalfa[8]={0.68,0.74,0.79,0.83,0.86,0.89,0.92,0.95};α90100110120130140150160kα0.680.740.790.830.860.890.920.953.1.1数表的数组化二维数表:齿轮传动工况系数KA用二维数组进行程序化floata[3][3]={{1.0,1.25,1.75},{1.25,1.5,3.0},{1.5,1.75,3.25}};工况系数KK[i][j]工作平稳中等冲击较大冲击j=0j=1j=2工作平稳I=01.001.251.75轻度冲击I=11.251.503.00中等冲击I=21.501.753.25检索齿轮传动工况系数C语言程序:#includestdio.hmain(){inti,j;floatka[3][3]={{1.0,1.25,1.75},{1.25,1.5,3.0},{1.5,1.75,3.25}};while(1){printf(“输入原动机载荷特性(0,1,2):”);scanf(“%d”,&i);if(i=0&&i=2)break;}while(1){printf(“输入工作机载荷特性(0,1,2):”);scanf(“%d”,&j);if(j=0&&j=2)break;}printf(“得到的齿轮工况系数为%f,”,ka[i][j]);}多维数表:齿形公差ff用三维数组表示ff[4][6][12]多维数表:控制量个数大于2的数表,可用多维数组表示。如齿轮齿形公差表的三维组:floatff[4][6][12]={{{3.1,3.6,…,90},{3.4,3.0,…,125},{3.5,3.4,…,140}},{{3.4,3.0,…,112},{3.5,3.2,…,140},{…},{…},{3.4,…,280}},{{3.6,3.4,…,160},{3.8,3.8,…,180},{…},{…},{…},{4.5,…,450}},{{3.0,4.2,…,224},{3.2,4.5,…,250},{…},{…},{…},{5.0,…,500}}};3.1.2数表的文件化数表数组化表示存在的不足:1)使程序膨胀、累赘,仅适合于小型数表;2)数据的独立性较差;3)数组占用内存。数表文件化:–可使程序简练;–使数表与应用程序分离;–一个数表文件可供多个应用程序使用;–提高数据系统的可维护性。平键数表文件化建立数表文件C语言程序:#includestdio.h#definenum=12structkey_GB{floatd1,d2,b,h,t,t1;}key;voidmain(){inti;FILE*fp;If((fp=fopen(“key.dat”,”w”))==NULL){printf(“Cannotopenthedatafile”);exit();}for(i=0;inum;i++){printf(“record%d:d1,d2,b,h,t,t1=”,i;scanf(“%f,%f,%f,%f,%f,%f”,&key.d1,&key.d2,&key.b,&key.h,&key.t,&key.t1);fwrite(&key,sizeof(structkey_GB),1,fp);}fclose(fp);}给定轴径d尺寸,从“key.dat”文件检索键槽尺寸,#includestdio.h#definenum=12structkey_GB{floatd1,d2,b,h,t,t1;}key;voidmain(){inti;FILE*fp;while(1){printf(“Inputtheshaftdiameterd=”);scanf(“%f”,&d);if(d8&&d=130)break;elseprintf(“Thediameterdisnotinrange,inputagain!”);}for(i=0;inum;i++){fseek(fp,i*sizeof(structkey_GB),0);fread(&key,sizeof(structkey_GB),1,fp);if(dkey.d1&&d=key.d2){printf(“Thekey:b=%f,h=%f,t=%f,t1=%f”,key.b,key.h,key.t,key.t1);break;}}fclose(fp);}3.2线图的计算机处理技术线图一般处理方法:•附有公式的线图:将公式直接编写到程序中;•一般线图:先将线图离散为数表,进行程序化处理;•复杂线图:分别编程处理。一般线图的处理当量齿数Zv121416182226304050齿形系数Y3.483.223.033.913.733.603.523.403.32x=0时渐开线齿轮当量齿数和齿形系数关系曲线分割离散原则:各分割点间的函数值不致相差很大。复杂线图的处理对数坐标直线边方程:CNylgCyN10222121NNNpPNPPlglglglglglglglg若给出Px值,可求得lgNy。可得:V型皮带选型折线图voidbelt(intn,floatp,int*k){floatc;c=log10(490.0)+(log10(p)-log10(0.8))*(log10(4900.0)-log10(490.0))/(log10(3.8)-log10(0.8))if(n=4900||n=10**c)*k=0;O型带else{c=log10(100.0)+(log10(p)-log10(1.0))*(log10(3400.0)-log10(100.0))/(log10(10.5)-log10(1.0))if(n=3400||n=10**c)*k=1;A型带else{……}}}C语言实现:3.3数表的公式化处理21211212)(yxxxxyxxxxxg)()(112121xxxxyyyxg改写成为:可见,g(x)是两个基本插值多项式的线性组合。线性插值(两点插值)Xx1x2x3……….xnYy1y2y3……….yn列表函数线性插值C语言函数程序floatinter(floatx,floatx1,floatx2,floaty1,floaty2){floaty;y=y1+(y2-y1)/(x2-x1)*(x-x1);return(y);}抛物线插值(三点插值)3231321232121311312132))(())(())(())(())(())(()(yxxxxxxxxyxxxxxxxxyxxxxxxxxxg拉格朗日插值(多点插值)knknkkkkkkknkkyxxxxxxxxxxxxxxxxxxxxxg111211121))...()()...()(())...()()...()(()(knkjkjkjjyxxxx11)(3.3.3函数拟合:函数插值存在的不足:①严格通过每个结点,复印了原有的结点误差;②仍需将各结点数据进行存贮,占用存贮空间。函数拟合:曲线不要求通过已知结点,仅反映数据变化趋势。1、拉格朗日插值曲线2、函数拟合曲线最小二乘法函数拟合:曲线到各结点误差平方和最小。步骤:1)在坐标纸上绘出各结点,根据其趋势绘制曲线图形;2)确定近似函数,可为多项式、对数函数或指数函数等;3)用最小二乘法求出待定系数。0a0b0)(2iiybxa0).(2.xiiiybxaxbya)()(xxxyyxbiiiiniiiniiiniiybxayxfe121212)())((误差函数:求导数:解方程求得方程系数a,b:例:直线段f(x)=a+bx的拟合:指数函数最小二乘法拟合:y=abx对上式两边取对数,转化为线性函数:lgy=lga+xlgb令:y’=lgy,u=lga,v=lgb,则:y’=u+vx求出线性方程系数u和v,再根据u,v求出a和b,可得:y=abx3.4数据库在CAD/CAM作业中的应用VisualFoxPro数据库管理系统•是一种关系型模式,为目前应用最广泛的微机型系统,被称之为大众型数据库管理系统;•提供友好的集成环境,具有Windows窗口功能;•可通过系统菜单、工具条或命令窗口进行数据库的创建、维护和各种应用操作,包括数据记录的输入、修改、插入、删除、剪切、拷贝、粘贴等作。•有较强的数据管理功能、丰富的开发工具,用户可利用编辑器、设计器、项目管理器等工具,开发功能齐全的应用程序。FoxPro数据类型—字符型(character):用于表示包括汉字和各类字符在内的字符型变量数值,一个字符占用一个字节,字符型变量最多为254个字节。—数字型(numeral):用于表示包括正号、负号、小数点及0-9的数字型变量的数值,占用8个字节的内存。—日期型(Data):用于表示月、日、年的日期型变量的数值,占8个字节。—逻辑型(logical):用于表示由逻辑真或逻辑假构成的逻辑型变量的数值,只用1个字节。—备注型(Memory):用于存放由可变长度的ASCⅡ码组成的字段的数值,用10字节引用备注文件。—货币型(Current):用于表示货币值的变量数值,占用8个字节。—通用型(General):用于存放OLE对象的数值,占用10字节。数据库的应用实例支承块(GB2235-80)数据库表文件数据库的应用实例表3-9深沟球轴承轻(2)系列轴承型号尺寸/mm安装尺寸mm额定动负荷kN额定静负荷kN极限转速r/minDDBD1D32001030915254.702.702600020112321017274.802.702400020215351120306.003.552200020317401222357.504.5020000204204714264110.006.3018000205255215314611.007.1016000206306216365615.2010.2013000207357217426520.1013.9011000208408018477325.6018.1010000209458519527825.6018.109000210509020578327.5020.208500深沟球轴承数据库结构定义:数据记录输入:APPEND或:EDIT或:BROWSE轴承型号:内径d:外径D:宽度B:轴肩D1:孔径D3:动负荷: