第3章CADCAM软件开发基础(计算机辅助设计与制造)

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

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

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

资源描述

机械CAD/CAM技术第三章CAD/CAM软件开发基础本章主要介绍:1、CAD/CAM系统中的工程数据的程序化2、数据存储管理的数据结构,管理方法3、软件开发的基本规范。离散为数组设计数据数表线图常数数表普通线图列表函数程序化(数组)单个编程处理文件化数据库插值计算函数拟合直接应用公式折线图带有公式处理方法数据类型设计数据类型及常用处理方法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.95二维数表:工况系数KK[i][j]工作平稳中等冲击较大冲击j=0j=1j=2工作平稳I=01.001.251.75轻度冲击I=11.251.503.00中等冲击I=21.501.753.25齿轮传动工况系数KA用二维数组进行程序化floata[3][3]={{1.0,1.25,1.75},{1.25,1.5,3.0},{1.5,1.75,3.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]数表的文件化数表数组化表示存在的不足:1)使程序膨胀、累赘,仅适合于小型数表;2)数据的独立性较差数表文件化:–可使程序简练;–使数表与应用程序分离;–一个数表文件可供多个应用程序使用;–提高数据系统的可维护性。平键数表文件化建立数表文件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);}二、数据表格的公式计算法(1)线性插值122122))((xxxxyyyy例:表3.4蜗轮当量齿数Zv与齿形系数YF的关系表,表中所示当量齿数Zv与齿形系数YF无明显数学关系122122))((xxxxyyyYF2426)67.2526)(88.185.1(85.18549.1如计算的Zv=25.67,采用线性插值计算(2)、拉格朗日插值线性插值采用两点插值方法,如图3.5所示,当曲线较弯曲时,误差较大,因此,需要多点插值方法,拉格朗日插值就是采用多点插值方法,拉格朗日插值多项式为:niiixfxAxf1)()()())(())(()(1111iiiiiiixxxxxxxxxA线图的计算机处理技术线图一般处理方法:附有公式的线图:将公式直接编写到程序中;一般线图:先将线图离散为数表,进行程序化处理;复杂线图:分别编程处理。一般线图的处理当量齿数Zv121416182226304050齿形系数Y3.483.223.033.913.733.603.523.403.32x=0时渐开线齿轮当量齿数和齿形系数关系曲线分割离散原则:各分割点间的函数值不致相差很大。复杂线图的处理对数坐标直线边方程:CNylgCyN10222121NNNpPNPPlglglglglglglglg若给出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语言实现:三、线图程序化线图程序化是将曲线和图表使用数学方法拟合成函数或方程,最常用的方法为最小二乘法。原理是使拟合的方程的偏差平方和S(a,b)最小。nxbyaniniii11niniiinininiiiiinxxnyxxyb1212111/)(/21)(),(niiibxaybaS1、线性拟合设有n组实验数据(xi,yi),要拟合成一直线方程:y=a+bx,系数a,b由下式求得,线性拟合的参考程序见P302的程序3。2、对数拟合有n组实验数据(Xi,yi),要拟合成对数方程:y=a+blnX只要设x=lnX,就转换为线性拟合:y=a+bx根据线性拟合,求出系数a,b,就得到了对数拟合的解。niniiinininiiiiinxxnyxxyb1212111/)(/nxbyaniniii113、指数拟合有n组实验数据(Xi,Yi),要拟合成指数方程:Y=AXb方程两边取对数,得到:lnY=lnA+blnX设x=lnX,a=lnA,y=lnY,就转换为线性拟合:y=a+bx根据线性拟合的方法,求出系数a,b,计算A=ea,得到了指数拟合的方程Y=AXbniniiinininiiiiinxxnyxxyb1212111/)(/nxbyaniniii114、最小二乘法拟合举例:(1)、O型带长度系数KL和内周长Li之间的关系见表3.6,请使用最小二乘法拟合表3.6中O型带长度系数KL和内周长Li之间的关系曲线采用不同的方程加以拟合,求得曲线方程:iLLK410009.28352.0)ln(21168.040399.0iLLK20328.025873.0iLLK)109.1(48519.0iLLeK284108.91033.47221.0iiLLLK线性拟合:对数拟合:指数拟合:对数指数拟合:二次方程拟合:五种不同的拟合平方,由表3.7得出:二次方程拟合的偏差平方和最小,但是共有四组数据有偏差,而对数拟合,虽然偏差平方和比二次方程拟合略大,但是只有四组数据有偏差,而最大的绝对偏差与二次方程拟合的相同,均为最小值0.01。因此,表3.6中O型带长度系数KL和内周长Li之间的合适的拟合关系曲线为对数拟合方程:)ln(21168.040399.0iLLK(2).图3.7表示的是齿轮在不同角速度下影响动载荷的实验曲线,求拟合方程。对于图3.7所示的曲线,很难用典型曲线方程(例如:指数、对数)描述,若采用多项式拟合:205522.1226417.009894.1xxy87646734.34272.1119088.7xxx5434555.7182931.1044982.60xxx多项式的计算值与曲线的数据有较大的偏差,原因是曲线的前后趋势变化较大,很难用一个多项式拟合,因此,遇到这样情况,应该采用分段拟合的办法。3.线图程序化的总结(1)、线图的数据表示方法,注意读图和曲线。(2)、确定合理的精度,精度过高,拟合复杂,过低,不能满足要求(3)、正确运用分段拟合方法(4)、选择合适的曲线拟合方程(5)、将拟合的曲线方程,编写程序,便于今后调用。数据结构:是按某种逻辑结构组织起来,按一定的存储表示方式把组织好的数据存储到计算机中,并对之定义一系列操作运算的数据的集合。树结构顺序存储数据结构非线性结构数据存储结构数据运算数据逻辑结构线性结构线性表队列栈网状结构链式存储插入,删除,更新,检索,排序3.2CAD/CAM中的数据结构一、基本概念1、实体2、属性3、属性值4、域5、数据:可以分为字符、数值、组合、记录、文件、数据库等二、数据结构数据结构是指数据之间的结构关系。包括数据的逻辑结构和物理结构。1、数据的逻辑结构描述数据之间的逻辑关系,有线性结构和非线性结构两种。(1)线性结构:指按顺序简单进行排列。(2)非线性结构:无法按顺序简单进行排列,例如图3.9、3.112、数据的物理结构数据的物理结构指数据在计算机内部的存储方式,常用的有顺序存储结构和链接存储结构。(1)顺序存储结构:数据按一定的排列顺序进行存储,例如G[1]、G[2]、G[3]、….G[30]等(2)链接存储结构(图3.14):a.单向链:正向链(图3.14a)、反向链(图3.14b)和环链结构(图3.14c)b双向链:双向链(图3.14d)和双向环链(图3.14e)c多向链:(图3.14f)三、常见的数据结构1、线性表:(a1,a2,a3,…,an)2、栈与队列:(1)栈:具有后进先出特性(LIFO)(2)队列:具有先进先出特性(LIFO)3、数组:a(1,1),a(2,1),a(2,1),a(2,2)4、串:字符型线性表,A=“a1,a2…an”5、树与二叉树(1)树树的表示见图3.21(2)二叉树二叉树是树结构的一种重要形式,见图3.23A、二叉树的特点与形态,见图3.22B、二叉树的结构,见图3.23C、二叉树的遍历,见图3.24i、前序遍历(图3.24a):从上而下,先左后右ii、中序遍历(图3.24b):从左至上,先上后下iii、后序遍历(图3.24c):从左至右,先下后上表3.10为齿轮参数表,每一行构成一个记录,可以将齿轮零件号作为数据文件的关键词3.3CAD/CAM中的数据结构一、数据文件1、常用的文件组织方法(1)顺序文件

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

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

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

×
保存成功