工程数据的处理

上传人:hy****d 文档编号:242867539 上传时间:2024-09-10 格式:PPT 页数:42 大小:216KB
返回 下载 相关 举报
工程数据的处理_第1页
第1页 / 共42页
工程数据的处理_第2页
第2页 / 共42页
工程数据的处理_第3页
第3页 / 共42页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,3,章 工程数据的处理,从总体上说,处理工程数据的方法有以下三种:,1,程序化处理:在编程时将数据以一定的形式直接放于程序中。,特点:程序与数据结合在一起。,缺点:数据无法共享,增大程序的长度。,2,文件化处理:将数据放于扩展名为,.DAT,的数据文件中,需要数据时,由程序来打开文件并读取数据。,特点:数据与程序作了初步的分离,实现了有条件的数据共享。,缺点:(,1,)文件只能表示事物而不能表示事物之间,的联系。,(,2,)文件较长。,1,(,3,)数据与应用程序之间仍有依赖关系。,(,4,)安全性和保密性差。,3,数据库管理:将工程数据存放到数据库中,可以克服文件化处理的不足。,特点:(,1,)数据共享。,(,2,)数据集中。,(,3,)数据结构化,既表示了事物,又表示了事物之间的联系。,(,4,)数据与应用程序无关。,(,5,)安全性和保密性好。,由于,CAD,作业的性质以及数据处理的规模大小的不同,因而必须根据实际情况选用上述三种数据处理方式的其中一种。方式的选择原则是:有利于提高,CAD,作业的效率,降低开发的成本。,2,3.1,数表的程序化处理,3.1.1,一维数表的处理,定义:只由一个已知变量查取所需数据的表格,称为一维数表。,例:表,3-1,为由小链轮齿数,Z,查取齿数系数,K,的一维数表,试对其进行程序化处理。,表,3-1,Z,9,11,13,15,17,19,21,K,0.446,0.555,0.667,0.775,0.893,1.00,1.12,Z,23,25,27,29,31,33,35,K,1.23,1.35,1.46,1.58,1.70,1.81,1.94,3,用,Turbo C,语言编程如下,(yyyy1.c),:,main(), int i,Z1,ip=20;,int Z14=9,11,13,15,17,19,21,23,25,27,29,31,33,35;,float K14=0.446,0.555,0.667,0.775,0.893,1.00,1.12,1.23, 1.35 ,1.46,1.58,1.70,1.81,1.94;,printf(“,请输入链轮齿数,Z1,:”,);,scanf(“%d”, ,for(i=0;i14;i+),if(Zi=Z1) ,ip=i;,i=15; ,if(ip20),printf(“n,当,Z=%d,时,,K=%f”, Zip,Kip);,else,printf(“n,输入错误!”,);,4,3.1.2,二维数表的处理,定义:需由二个已知条件才能确定一个未知数据的表格,称为二维数表。,例:表,3-2,用于链轮设计中,由节距,t,和链轮齿数,z,查取链轮轴孔最大直经,dkmax,和齿侧凸缘最大直经,dh,,试对其进行程序化处理。,表,3-2,节距,t,9.525,12.70,15.875,19.05,25.40,齿数,z,dh,dk,dh,dk,dh,dk,dh,dk,dh,dk,11,22,11,30,18,37,22,45,27,60,38,13,28,15,38,22,48,30,57,36,77,51,15,35,20,46,28,58,37,70,46,93,61,17,41,24,54,34,68,45,82,53,110,74,19,47,29,63,41,79,51,94,62,126,84,21,53,33,71,47,89,59,107,72,142,95,23,59,37,79,51,99,65,119,80,159,109,25,65,42,87,57,109,73,131,88,175,120,5,取变量: 齿数,zZi i=1,2,3,8,节距,t Ti i=1,2,3,10,dhDHi,j i=1,2,3,8 j=1,2,3,10,dkDKi,j i=1,2,3,8 j=1,2,3,10,节距,t,31.75,38.10,44.45,50.8,63.50,齿数,z,dh,dk,dh,dk,dh,dk,dh,dk,dh,dk,11,76,50,91,60,106,71,121,80,152,103,13,96,64,116,79,135,91,155,105,193,132,15,117,80,140,95,164,111,187,129,235,163,17,137,93,165,112,193,132,220,152,275,193,19,158,108,189,129,221,153,253,177,316,224,21,178,122,214,148,250,175,285,200,357,254,23,199,137,238,165,278,197,318,224,398,278,25,219,152,263,184,307,217,335,249,438,310,6,用,Turbo C,语言编程如下,(yyyy2.c),:,main(),int i,j,Z1,ip=20,jp=20;,float T1;,int Z8=11,13,15,17,19,21,23,25;,float T10=9.525,12.7,15.875,19.05,25.4,31.75,38.1,44.45,50.8,63.5;,int DH810=22,30,37,45,60,76,91,106,121,152, 28,38,48, 57,77,96,116,135,155,193,35,46,58,70,93,117,140,164, 187,235,41,54,68,82,110,137,165,193,220,275, 47, 63,79,94,126,158,189,221,253,316, 53,71,89,107, 142,178,214,250,285,357, 59,79,99,119,159,199, 238,278,318,398,65,87,109,131,175,219,263,307,315,438,;,int DK810=11,18,22,27,38,50,60,71,80,103, 15,22,30,36,51,64,79,91,105,132, 20,28,37,46,61,80,95,111,129, 163, 24,34,45,53,74,93,112,132,152,193,29,41,51,62,84,108,129,153,177,224,33,47,59,72,95,122,148,175,200,254, 37,51,65,80,109,137,165,196,224,278, 42,57,73,88,120,152,184,217,249,310;,7,printf(“,请输入链轮齿数,Z1,:”,);,scanf(“%d”, ,for(i=0;i8;i+),if(Zi=Z1) ,ip=i;,i=9; ,printf(“,请输入节距,T1,:”,);,scanf(“%f”, ,for(j=0;j10;j+),if(Tj=T1) ,jp=j;,j=11; ,if(ip20 & jp20),printf(“n,当,z=%d, t=%f,时,,dh=%d, dkmax=%d”,Zip,Tjp), DHipjp,DHipjp);,else printf(“n,输入错误!”,);,8,3.2,数表的文件化处理,1,用编辑软件产生顺序文件,2,用程序生成顺序文件,main(), int i;,int a10=1,2,3,4,5,60,70,80,90,100;,FILE *fp;,fp=fopen(,“,AA.DAT,”,“,w,”,);,for(i=0;i5;i+),fprintf(fp,“,%d,”,; ai);,fprintf(fp,“,n,”,);,for(i=5;i10;i+),fprintf(fp,“,%d,”,; ai);,fclose(fp);,9,3,文件的读取和检索,以表,3-1,由小链轮齿数,Z,查齿数系数,K,的文件化处理为例:,建立数据文件,ZK.DAT,如下:,9 11 13 15 17 19 21 23 25 27 29 31 33 35 38,0.446 0.555 0.667 0.775 0.893 1.0 1.12 1.23 1.35 1.46 1.58 1.70 1.81 1.94 2.12,用,Turbo C,语言编程如下,(yyyy3.c),:,10,main(), int i,z1,z15,jp=20;,float k15;,FILE *fp;,fp=fopen(“ZK.DAT”, “r”);,for(i=0;i15;i+),fscanf(fp, “%d”, ,for(i=0;i15;i+),fscanf(fp, “%f”, ,fclose(fp);,printf(“,请输入链轮齿数,z1,:”,);,scanf(“%d”, ,for(i=0;i15;i+),if(zi=z1) ,ip=i; i=16; ,if(ip20),printf(“n,当,z=%d,时,,k=%f”, zip,kip);,else,printf(“n,输入错误!”,);,11,3.3,一维数表的插值处理,由于一维数表只给出了结点,X1,,,X2,,,,,Xn,对应的函数值,Y1,,,Y2,,,,,Yn,,而对于非结点上的函数值,如对表,3-1,,欲取非结点,Z1=18,或,Z1=24,时的,K,值,则必须用插值法解决。,1,线性插值法:,已知:两点(,X1,,,Y1,),(,X2,,,Y2,),求: 位于,X1,,,X2,之间的,X,坐标对应的,Y,可用如下的线性插值公式:,Y=Y1+(Y2-Y1)(X-X1)/(X2-X1),12,仍以小链轮齿数,Z,查齿数系数,K,为例,具有线性插值功能的文件化处理程序如下,(yyyy4.c),:,main (), int i,z1,z15,x1,x2,ip=20,key1=0;,float y1,y2,kz,k15;,FILE *fp;,fp=fopen(zk.dat, r);,for(i=0;i15;i+),fscanf(fp, %d, ,for(i=0;i15;i+),fscanf(fp, %f, ,fclose(fp);,printf(Input z1: );,scanf(%d, ,for(i=0;i15;i+) ,if(zi=z1) ,13,kz=ki;,key1=1;,i=16; ,if(key1=0) ,for(i=0;i15;i+) ,if(ziz1) ,x1=zi-1;,y1=ki-1;,x2=zi;,y2=ki;,kz=y1+(y2-y1)*(z1-x1)/(x2-x1);,printf(n z=%d, k=%f, z1, kz);,14,2,拉格朗日二次插值(抛物线插值):,已知:三点(,X1,,,Y1,),(,X2,,,Y2,),(,X3,,,Y3,),求:位于,X1,,,X2,之间或,X2,,,X3,之间的,X,坐标对应的,Y,可用如下的抛物线插值公式:,Y=(X-X2)(X-X3)/(X1-X2)(X1-X3)*Y1+(X-X1)(X- X3)/(X2-X1)(X2-X3),*Y2+(X-X1)(X-X2)/(X3- X1)(X3-X2)*Y3,抛物线插值的,C,语言函数如下:,float larg(x1,y1,x2,y2,x3,y3,x0),int x1,x2,x3,x0; float y1,y2,y3;, int i,j,x3; float p,y0,y3;,x0=x1; y0=y1; x1=x2; y1=y2;,x2=x3; y2=y3; y0=0.0;,for(i=0;i3;i+) ,p=1.0;,for(j=0;j3;j+) ,if(i!=j),p=p*(x0-xj)/(xi-xj); ,y0=y0+p*yi; ,return(y0);,15,3.4,线图的处理,线图的处理方法有两种,一种是将其转换成表格,对非表格节点采用插值法求得;另一种方法是将其写成公式表示。,3.4.1,线图的表格化处理,如果能把线图转换成表格,那么就可以使用数表的处理方法对其进行处理。现有图,3.1,所示线图,下面对其进行表格化处理:,16,在图,3.1,所示线图上取,n,个节点(,X1,,,Y1,)(,X2,,,Y2,),(,Xn,Yn,),将其制成表格如表,3-3,所示。节点数取得越多,精度就越高。节点的选取原则是使各节点的函数值不致相差很大。,图,3.1,线图,17,X1,X2,X3,.,Xn,Y1,Y2,Y3,Yn,将线图表格化后,再参照数表处理方法,用程序化或文件化处理方法进行处理。,3.4.2,线图的公式化处理,上述线图的表格化处理方法,不仅工作量较大,而且还需占用大量的存储空间。因此,理想的线图处理方法是对线图进行公式化处理。,线图的公式化处理有两种方法。一种是找到线图原来的公式,另一种是用曲线拟合的方法求出描述线图的经验公式。曲线拟合的方法很多,常用的是最小二乘法。下面介绍曲线拟合的最小二乘法。,表,3-3,18,1,最小二乘法拟合的基本原理,已知:线图曲线,I,求:多项式,y=Pm(x),,它表示的曲线为,II,图,3-2,数据的曲线拟合,在曲线,I,上取,n,个点(,xi,,,yi,),i=1,,,2,,,3,,,,,n,设拟合公式为,因此每一结点处的偏差为,偏差的平方和为,19,2,最小二乘法的多项式拟合,设拟合的,m,次多项式为,则结点偏差的平方和为,因为是已知的一组数,它们在式中可看作常数,因此可以看作是的函数,即,求出为极小时的的值,并将它们代入式(,3-1,)中,所得的多项式即为所求的拟合曲线方程式。此时的问题是求偏差平方和的极值,欲使为极小,必须使,20,于是 的条件也就为,即,21,3.5,工程数据的数据库管理,3.5.1,数据库系统及管理,数据库系统是一种能够“管理大量的、持久的、可靠的、共享的数据的工具”,通俗地讲,数据库系统可把诸如表格、卡片、设备及零部件等数据有组织地集合在一起,输入到计算机,然后通过计算机处理,再按一定要求输出结果。,虽然数据库也是以文件方式存储数据,但它是数据的一种高级组织形式。在应用程序和数据库之间,有一个新的数据管理软件,DBMS,(,DataBase Management System,),即数据库管理系统。数据库管理系统是一组专门处理、访问数据库的程序,它可完成数据库的定义、管理、建立、维护等操作,是用户与数据库之间的接口。,22,每一种数据库管理系统都是基于某种数据模型的。数据模型是指数据库内部数据的组织方式,描述了数据之间的各种联系。现行数据库系统中,常用的数据模型有以下三种:,1,层次模型,用树形结构表示实体之间联系的模型称为层次模型,它能描述一对多的关系。,2,网状模型,这种模型是用网状数据结构来描述数据库的总体逻辑结构,它体现了事物之间“多对多”的关系。,23,3,关系模型,上述两种模型都是结构化模型,使用时,事先均需根据应用的需要,将数据之间的逻辑关系固定下来,所以缺乏柔性。,关系模型把实体与实体间的联系归结为二维表的组织结构,每一张二维表称为一个关系,其中表中的每行为一个记录,每列为数据项(称为字段)。,关系模型的特点是结构比较简单,但能够处理复杂的实体之间的联系,因此得到广泛的应用。目前国内普遍应用的,FoxBASE,,,FoxPro,都是关系数据库系统,24,3.5.2 FoxPro,关系型数据库系统,1,FoxPro,系统简介,(1),命令。在,FoxPro,语言中,对数据的操作都是由命令来完成的。命令相当于一般高级语言中的语句,但更精炼。,FoxPro,操作命令的一般形式为:,命令动词,FORWHILE,(2),函数。在,FoxPro,中提供了大量的内部函数,每个函数都有函数名。,FoxPro,提供了七大类函数,包括字符处理函数、数值函数、逻辑函数、日期和时间函数、数据库操作函数、系统函数和其他函数,。,(3),文件。,FoxPro,有多种文件类型,以扩展名不同,来区分。,25,(4),操作符。,FoxPro,提供了四种类型的运算,因而有四种操作符:,算术操作符,: +,、,-,、*、,/,、*、()、,%,关系操作符,: ,、,=,、,=,、,=,、, or #,逻辑操作符,: AND,、,OR,、,NOT or,!,字符串操作符,: +,、,-,(5),数据库结构。对数据库中每个字段的定义建立了数据库文件的数据结构。字段定义由三项组成:,字段名,:,字段名可达,10,个字符长,必须用一个字母打头,字段类型,: FoxPro,针对字段变量定义了五种数据类型:,C,字符型,N,数字型,D,日期型(月,/,日,/,年),L,逻辑型,M,明细型,字段宽度,:,指在字段中含有字符或数字的最大个数。,26,2,FoxPro,常用命令,FoxPro,数据库系统提供了,100,多种操作命令,包括数据库文件的建立、编辑、使用、检索、统计、多重数据库操作、报表输出及其他辅助功能等。下面介绍一些,FoxPro,的常用命令。,(1) CREATE,命令,CREATE,为建立数据库文件基本结构的命令,其一般格式为:,CREATE ,该命令将建立一个用户给定,的数据库文件,默认扩展名为,.DBF,。,(2) APPEND,命令,APPEND,命令用于向数据库“追加”数据记录。,27,(3) USE,命令,USE,命令用于打开数据库文件,其一般格式为:,USE ,(4) LIST,命令,LIST,命令常被用来显示数据库文件中的所有记录或显示数据库文件的结构。,(5) DISPLAY,命令,DISPLAY,命令与,LIST,命令的功能相似,但当没有指定范围时,,DISPLAY,命令只显示当前一条记录。,(6) GOTO,命令,GOTO,命令是将记录指针直接定位到指定的记录上,28,(7) SKIP,命令,SKIP,命令的一般格式为:,SKIP ,该命令用于将记录指针从当前位置向前或向后移动,移动的记录数等于,的值。,(8) EDIT,命令,EDIT,命令用于从当前记录开始顺序修改记录。,(9) LOCATE,命令,LOCATE,命令用来在无索引的数据库文件中查找满足条件的记录,它的一般格式为:,LOCATE FOR WHILE ,(10) SUM,命令,SUM,命令用来对有关数字型字段的表达式求和,它的一般格式为,:,SUM FOR WHILE ,29,3,FoxPro,常用函数:,在,FoxPro,中提供了大量的内部函数,以满足用户进行数据库编程的需要。下面分类介绍,FoxPro,中的常用函数。,(1),数学运算函数,* 取绝对值函数,ABS( ),*,指数函数,EXP( ),*,取整函数,INT( ),*,自然对数函数,LOG( ),*,平方根函数,SQRT( ),*,最大值函数,MAX( ),(2),字符函数,这里只介绍求子串函数,SUBSTR( ),,调用该函数的一般格式为:,SUBSTR,(,,, ,,,),30,(3),转换函数,* 小写转换大写函数,UPPER( ),*,大写转换小写函数,LOWER( ),*,数字型转换成字符型函数,STR( ),*,字符型转换成数字型函数,VAL( ),(4),测试函数,* 数据类型测试函数,TYPE( ),*,字符串长度测试函数,LEN( ),*,光标行坐标测试函数,ROW( ),*,光标列坐标测试函数,COL( ),*,文件结束测试函数,EOF( ),31,4,建立数据库和数据录入,数据库文件的建立包括两个步骤:首先是定义数据库结构,也就是要把数据库含有多少个字段,每个字段的特征(字段名、数据类型、字段宽度、小数点位数)告诉系统。其次是按照定义好的数据库结构输入每条记录的数据内容。,(1),定义数据库结构:,可用定义数据库结构的命令,CREATE,或利用,FoxPro,菜单系统定义一个新的数据库。,(2),数据的输入:,FoxPro,有多种数据输入方式,最常用的有以下三种:,* 立即方式输入数据,* 扩充方式追加新记录,* 使用,BROWSE,命令增加数据,32,5,程序设计,FoxPro,不仅提供了单命令的工作方式,还允许用户编写程序执行预定的操作,即可将,FoxPro,提供的命令、函数和程序控制语句组织成为有序的集合,并以文件的形式存放在磁盘上,这个有序的集合称之为,FoxPro,源程序,这个文件称之为源程序文件。在,FoxPro,中,源程序的扩展名为,.PRG,,程序文件可用任何一种编辑软件建立和修改。程序设计功能为用户在,FoxPro,系统的基础上开发各自所需的数据库应用软件提供了保证。,33,3.5.3,数表的数据库处理,我们可以用,FoxPro,数据库来处理表格数据。下面以表,3-2,二维数表为例来介绍数表的数据库处理方法:,1,建立数据库文件:,确定数据结构:,字段名 类型 宽度 小数,1,齿数,Z N 2 0,2,节距,T N 6 3,3,凸缘直径,DH N 6 1,4,轴孔直径,DK N 6 1,34,建立,TABP.DBF,库文件,并输入记录的内容:,记录号 齿数,Z,节距,T,凸缘直径,DH,轴孔直径,DK,1 11 9.525 22 11,2 13 9.525 28 15,3 15 9.525 35 20,. . . . .,. . . . .,. . . . .,8 25 9.525 65 42,9 11 12.70 30 18,10 13 12.70 38 22,. . . . .,. . . . .,. . . . .,80 25 63.50 438 310,共有,80,个记录,35,2,数据库检索:,建立后缀为,.PRG,的数据库命令组文件进行数据库检索。现编写数据库程序(取名,TABP.PRG,)如下:,SET HEADING OFF,(不显示栏标题),SET SAFETY OFF,(不显示提示信息来询问已存在的,文件是否重写),USE TABP,CLEAR,SET TALK OFF,(不显示命令的执行信息),SET DEVICE TO SCREEN,(或,PRINT,),STORE 1 TO ZZ,6,2 SAY ,请输入齿数:,GET ZZ PICT 99,READ,STORE 1.0 TO TT,8,2 SAY ,请输入节距:,GET TT PICT 99.999,36,READ,DO WHILE .NOT. EOF(),IF,齿数,Z=ZZ .AND.,节距,T=TT,CLEAR,DISPLAY,GOTO BOTTOM,SKIP 1,ENDIF,SKIP,ENDDO,SET TALK ON,RETURN,程序文件建好后,可在,FoxPro,命令窗口使用,DO,命令执行如下:,DO TABP,37,3.5.4 FoxPro,与高级语言的接口,FoxPro,与高级语言之间的数据通信是以文本文件为媒介的,其过程如图,3.10,所示。,图,3.10 FoxPro,与高级语言之间的数据通信,38,1,FoxPro,向高级语言传送数据,FoxPro,与高级语言交换数据可以通过系统数据格式文件(,SDF,)和通用格式文件实现。,FoxPro,建立文本文件(扩展名为,.TXT,)的命令为:,COPY TO TYPE ,该命令是由当前打开的数据库文件生成指定,的文本格式文件,而生成文件的类型由,指定。文件类型可以为:,SDF,系统数据格式文件,又称标准格式文件。,DELIMITED,通用格式文件,也称带定界符的格,式文件。,39,2,FoxPro,接收由高级语言传递的文本文件的数据,如果高级语言按照系统数据格式文件和通用格式文件的格式生成文本文件,就可将数据追加到数据库文件中去。,APPEND FROM TYPE,命令是将已有的系统数据格式文件和通用格式文件追加到当前打开的数据库文件中,该命令的一般格式为:,APPEND FROM TYPE ,其中,为文本格式文件名,,为,SDF,或,DELIMITED,。,40,3.5.5,工程数据库简介,CAD,是一个十分复杂的系统,具有十分复杂的数据类型和联系以及大量的工程数据。采用一般的事物管理数据库系统并不能完全满足,CAD,作业的需要,因而出现了工程数据库管理系统,EDBMS,(,Engineering Data Base Management System,)。,1,工程设计中的数据,在事物型管理领域中,数据类型较单一,主要是文字型。而在工程领域中,数据种类多、结构复杂。工程设计中的数据类型主要有以下,4,种:,(1),管理型数据。主要包括产品设计和制造中所用到的数据资料,如标准、规范、材料、产品目录等。,41,(2),设计型数据。指在工程设计与制造中产生的数据,如设计的产品结构数据、中间变量以及各子系统间信息交流的数据等。,(3),图形数据。包括各种工程图表、二维工程图形、三维几何造型等数据。,(4),各种软件包。进行工程计算及图形处理的软件,如有限元分析、优化设计、强度校核、动力分析、三维图形显示等。,2,对工程数据库系统的要求,(1),支持复杂的数据类型,反映复杂的数据结构。,(2),支持反复建立、评价、修改并完善模型的设计过程。,(3),工程数据模型必须支持层次性的设计结构。,(4),支持多用户的工作环境并保证在这种环境下各类数据,语义的一致性。,(5),具有良好的用户界面。,42,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!