12在机械设计过程中,往往需要从有关的工程手册或设计规范中查找各种系数或数据传统方法:设计人员手工查取,费时、繁琐现代设计方法:计算机处理中心问题在:如何将这种人工查找转变成在CAD进程中的高效、快速处理。第三章工程手册的数据处理3概述如何处理工程设计资料?1.41.8…5.41.82.5…9轮壳t1轴t轴经D34…1434…22hb键8~1010~12…75~854学习目标:学会利用计算机,针对工程设计中不同形式的数据,采用适当的方式进行处理;掌握经验公式的建立方法;了解几种数据管理方法的特点;了解数据库与工程数据库的基础知识;第三章工程数据的处理技术5第三章工程数据的处理技术学习内容:3.1工程数据的程序化处理数值程序化数表程序化线图的程序化3.2工程数据的文件化处理3.3工程数据的数据库管理学习重点:工程数据的程序化方法学习难点:线图的程序化6CAD软件系统处理工程数据的方法有以下三种:1.程序化处理2.文件化处理3.数据库管理7CAD软件系统处理工程数据的方法有以下三种:1.程序化处理:在编程时将数据以一定的形式直接放于程序中。处理方法有四种:第一种是将数表中的数据或线图经离散化后存入一维、二维或三维数组,用查表方法检索所需数据;第二种是将数表中的数据或线图经离散化后存入一维、二维或三维数组,用插值方法计算出所需数据;第三种是将数表或线图拟合成公式,编入程序计算出所需数据。第四种是屏幕直观输出法:将整个表格可视化地显示在屏幕上,由用户凭经验自行选定。8程序化处理特点:程序与数据结合在一起。缺点:数据无法共享,增大程序的长度。92.文件化处理:将数据放于扩展名为.DAT的数据文件中,需要数据时,由程序来打开文件并读取数据。特点:数据与程序作了初步的分离,实现了有条件的数据共享。缺点:(1)文件只能表示事物而不能表示事物之间的联系。(2)文件较长。(3)数据与应用程序之间仍有依赖关系。(4)安全性和保密性差。103.数据库管理:将数表及线图(经离散化)中的数据按数据库的规定进行文件结构化,存放在数据库中。如确定字段名、字段类型、字段宽度等数据独立于应用程序,又能为所有应用程序提供服务,这是大规模工程数据的主要处理方法。(需借助专业的数据库管理系统)11特点:(1)数据共享。(2)数据集中。(3)数据结构化,既表示了事物,又表示了事物之间的联系。(4)数据与应用程序无关。(5)安全性和保密性好。方式的选择原则是:有利于提高CAD作业的效率,降低开发的成本。12概述设计数据数表线图常数数表普通线图列表函数程序化(数组)单个编程处理文件化数据库离散为数组插值计算函数拟合直接应用公式折线图带有公式处理方法数据类型设计数据类型及常用处理方法13数值程序化线图的程序化数表程序化3.1工程数据的程序化方法14定义:数值程序化是将要使用的各个参数或者其函数关系,用一种合理编制的程序存入计算机,以便运行使用。3.1.1数值程序化用数组形式存储数据数值程序化用数学公式计算数据151.用数组形式存储数据数据特点:数据是单一、严格、无规律可循的数列。程序化的方法:用一维数组形式存储数据,程序运行时,直接检索使用。floatm[12]={4,5,6,7,8,9,10,12,14,16,18,2024,30};公称尺寸M456789101214161820243016例1:将表中的齿轮标准模数值编入程序。要求:程序运行时,输入计算模数值后,能输出适合的标准模数值。第一系列22.5345第二系列2.252.75(3.25)3.5(3.75)4.5第一系列681012第二系列5.56.579(11)1417解题分析:考察表中数据及实际使用情况,有如下特点:所列齿轮标准模数是一组取值严格,而从总体上看又无统一规律的的数列。标准规定:第一系列为优先采用模数;第二系列中不带括号的数值为可以采用的模数;而带括号的为尽可能不采用的模数,程序中应能反映这一标准规定。通常,模数的计算值取较大的标准值选取。但对于比标准值大得有限的一类计算值(如:计算值为3.005mm,标准值为3mm),应选用本档的标准值。18程序流程图如下:YN读标准模数M[I]开始输入计算值Mc2MC﹥14?I=1~12ACBD19NNYYMC/1.02M[I]?选取标准模数M[I]显示模数系列满意?结束CBDA20数据特点:数据是一组单一、严格、但能找到某种规律的数列。程序化的方法:将反映这种规律的数学公式编入程序,通过计算即可快速、准确地达到目的。例2:将60,70,80,90,100,110,120这一标准直径系列编入程序。解题分析:这组数值是按10递增的,可导出数学公式公式:D=INT((Dc/10.02)*10)+102.用数学公式计算数据213.1.2数表的程序化方法数表的分类:按照数表中的数据间有没有函数关系,数表分为:简单数表和列表函数数表。简单数表记录着研究对象各自独立的常数,表中的数据没有函数关系,只能检索,不能插值。如:齿轮传动强度计算中的使用系数KA数原动机工作特性工作机械载荷特性平稳中等冲击较大冲击平稳1.001.251.75轻度冲击1.251.502.00或更大中等冲击1.501.752.25或更大22普通v带型号及截面尺寸。23列表函数数表:表中的数据间存在函数关系,Yi=f(Xi),i=1,2,3…。将相应的数据Xi和Yi列成表格表示参数间的关系,这样的数表为列表函数数表。对于列表函数数表我们可以用插值法来查取数据。设计带传动中包角系数包角708090100…150160…220K0.560.620.680.73…0.920.95…1.224按照数表中的数据相关的变量的个数,我们可以将数表分为一元数表,二元数表,三元数表等。一元数表中的数据是独立的,或者只与一个因素有关,这种数表可以用一个一维数组来表示。二元数表的数据与两个因素有关,可以用二维数组表示。三元数表中的数据与三个因素有关,可以用三维数组表示。25数表的程序化方法1.屏幕直观输出法2.数组存储法3数表的文件化4数表的公式化处理261.屏幕直观输出法数据特点:1)数表幅面不大;2)数据为实验取得或长期经验积累的有限个离散数值;3)实际使用中经常允许根据情况综合考虑,选取中间数值,仅凭程序中简单的条件判断难以正确选取。程序化的方法:将整个表格可视化地显示在屏幕上,由用户凭经验自行选定。27例3:将齿轮传动强度计算中的使用系数KA数表程序化。要求根据原动机工作特性和工作载荷特性确定适宜的使用系数KA。使用系数KA原动机工作特性工作机械载荷特性平稳中等冲击较大冲击平稳1.001.251.75轻度冲击1.251.502.00或更大中等冲击1.501.752.25或更大283.1.2数表程序化解题分析:1)表格幅面不大、数据有限;2)KA是经验值,实际应用允许根据情况综合考虑,选取中间数值;3)仅凭程序中的简单的条件判断难以正确选取。此时,可采用屏幕直观显示整个数表的方法,让用户凭经验自行选取KA。292.数组存储法数据特点:如果表格中的数据项目略多、确定而无规律,要解决的问题就是数据的存储与检索;程序化的方法:采用定义多个一维数组或二维数组的办法存储数据,程序运行时,判断选取。3.1.2数表程序化301)一维数表的处理定义:只根据一个已知变量查取所需数据的表格,称为一维数表。3.1.2数表程序化例4:普通v带型号及截面尺寸。31程序段(c语言),用i代表型号。将三个函数值存放在三个一维数组中。编程序的目的:快速查到所需参数值。Inti;floatb[7]={6.0,10.0,13.0,17.0,22.0,32.0,38.0};floath[7]={4.0,6.0,8.0,10.5,13.5,19.0,23.5};floatbp[7]={5.3,8.5,11.0,14.0,19.0,27.0,32.0};32htttthdsdwtdds12/例5将平键和键槽与轴径的尺寸关系表程序化。要求:输入轴径后,能输出相应的键和键槽的剖面尺寸ds,dw。33平键和键槽的剖面尺寸(部分)轴径d键键槽bhtt117-22663.52.822-30874.03.330-381085.03.338-441285.53.344-501496.03.850-5816106.54.358-6518117.04.465-7520127.54.975-8522149.05.485-9525149.05.495-110281610.06.4110-130321811.07.4解题分析:表中数据有如下特点:项目多、确定而无规律。每组键槽尺寸要适应一定范围尺寸的轴径使用。34输入计算直径:dj定义数组:d[12],b[12],h[12],t[12],t1[12]并初始化各数组djd[i]越界i=0~11dj130ordj17结束i=i+1NYYN35输出:dj,b,h,t,t1计算:ds,dw;输出:ds,dw显示:dj,b[i],h[i],t[i],t1[i]满意i=i-1读取:t[i],t1[i]将数据:dj,b[i],h[i],t[i],t1[i],ds,dw存入数据文件“zkey.txt”结束N36main(){floatdgiven,b,h,t,t1;/*dgiven为已知直径值*/floatD[12]={22.0,30…,95.0,110.0};/*存放表中D的上限值*/floatkb[12]={6.0,8.0,…,28.0,32.0};/*存放表中的b值*/floatkh[12]={6.0,7.0,…,16.0,18.0};/*存放表中的h值*/floatkt[12]={3.5,4.0,…,10,11.0};/*存放表中的t值*/floatkt1[12]={2.8,3.2,…,6.4,7.4};/*存放表中的t1值*/37printf(“enterthediameterofaxisdgiven=”);scanf(“%f”,&dgiven);if((dgiven17.0||(dgiven130.0))printf(“轴径D数值越界”);elsefor(i=0;i12;i++){if(dgiven=D[i]){b=kb[i];h=kh[i];t=kt[i];t1=kt1[i];printf(“b=%f,h=%f,t=%f,t1=%f\n”,b,h,t,t1);break;}}查询程序382)二维数表:定义:需由二个已知条件才能确定一个未知数据的表格,称为二维数表。例6:齿轮传动工况系数KA工况系数KK[i][j]工作平稳中等冲击较大冲击j=0j=1j=2工作平稳i=01.001.251.75轻度冲击i=11.251.503.00中等冲击i=21.501.753.2539解题分析:如表所示,决定齿轮工况系数KA的值有两个自变量,即原动机的载荷特性和工作机的载荷特性。这两个特性原本无数值概念,现用及分别代表原动机和工作机的载荷特性,用一个二维数组kk[3][3]表示表中的系数KA。floatkk[3][3]={{1.0,1.25,1.75},{1.25,1.5,3.0},{1.5,1.75,3.25}};4041检索齿轮传动工况系数C语言程序:#includestdio.hmain(){inti,j;floatkk[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,”,kk[i][j])