您好,欢迎来到客趣旅游网。
搜索
您的当前位置:首页机械CADCAM实验报告

机械CADCAM实验报告

来源:客趣旅游网

机械CADCAM实验报告

大学实验报告(计算机类)

开课学院及实验室:机械工程与自动化专业实验中心实验时间:年月日

一、实验目的

1、了解CAD中对设计资料的程序化处理方法;

2、编程实现一元函数插值法查询工程数据,增加对工程手册的数据处理的感性认识。

二、内容与设计思想

设法构造某个简单的函数Y=P(_)作为列表函数f(_)的近似表达式,然后计算P(_)值以得到f(_)的近似值。并且使f(_i)-P(_i)=0I=1,2,…,n成立。P(_)就称为f(_)的插值函数,点_1,_2,…,_n称为插值节点。

线性插值Y

yf(_)已知插值点P的相邻两点,11

y2f(_2),则:y

(yyi1)(_i_)yyii

y(_i_i1)

拉格朗日插值y

为多次插值公式,考虑进其他节点位置,可提高插值精度。

二次插值多项式为(抛物线插值):

f2(_)Ai(_)f(_i)

Ai(_)

二元列表函数的插值,从几何意义上讲是在三维空间内选定几个点,通过这些点构造一块曲面g(_,y),用它近似地表示在这区间内原有的曲面f(_,y),从而得插值后的函数值为zkg(_k,yk)。根据插值函数g(_,y)的构造方法分为:

直线-直线插值

以构造曲面g(_,y)代替曲面f(_,y)。K为插值结果。如图1所示。抛物线-直线插值

将AB和CD改为抛物线,k为插值结果K在_oy平面上的投影。如图2所示。抛物线-抛物线插值

u,v,w三点的取得均由抛物线插值而来,k为插值结果K在_oy平面上的投影,要得到k点还需进行一次抛物线插值。如图2所示。

图1直线-直线插值几何示意图

三、使用环境

能运行C等高级语言或面向对象程序设计语言的计算机平台,具体参数以实验室所配置计算机为准。

四、核心代码及调试过程一元函数C程序代码:

includeinclude

voidmain(){inti;intn=4;float_i,yi;

float_[4]={1,2,3,4};

floaty[4]={3,6,4,8};

scanf("%f",_i);

if((_i<_[0])||(_i>_[n-1]))

else

}printf("yi=%4.1f ",yi);break;for(i=1;i

抛物线函数插值:

include

include

voidmain()

inti;

intn=4;

float_i,yi;

float_[4]={1,2,3,4};

floaty[4]={3,6,4,8};

scanf("%f",_i);

if((_i<_[0])||(_i>_[n-1]))

else

for(i=1;i

}else{if((_i-_[i-1])<(_[i]-_i))i=i-1;+printf("yi=%4.1f ",yi);break;yi=(_i-_[i+1])(_i-_[i])y[i-1]/((_[i-1]-_[i])(_[i-1]-_[i+1]))

(_i-_[i-1])(_i-_[i+1])y[i]/((_[i]-_[i-1])(_[i]-_[i+1]))+(_i-_[i-1])(_i-_[i])y[i+1]/((_[i+1]-_[i-1])(_[i+1]-_[i]));

}printf("yi=%4.1f ",yi);break;4

二元函数插值:

include"stdio.h"

include"math.h"

floatline(float_i,floatyi,float_j,floatyj,float_)

floaty;

y=(_-_i)(yj-yi)/(_j-_i)+yi;

returny;

floatparabolic(float_m,floatym,float_i,floatyi,float_k,floatyk,float_)

floaty;

y=(_-_i)/(_m-_i)(_-_k)/(_m-_k)ym+(_-_m)/(_i-_m)(_-_k)/(_i-_k)yi+(_-_m)/(_k-_m)(_-_i)/(_k-_i)yk;/公式3-3;

returny;

main()

float

D[6][10]={{2.59,2.40,2.33,2.21,2.09,2.00,1.88,1.80,1.72,1.01},{1.88,1.80,1.73,1.68,1.62,1.59,1.53,1.49,1.44,1.36},{1.64,1.59,1.55,1.52,1.48,1.46,1.42,1.38,1.34,1.26},{1.49,1.46,1.44,1.42,1.39,1.38,1.34,1.31,1.27,1.20},{1.39,1.37,1.35,1.34,1.33,1.31,1.29,1.27,1.22,1.17},{1.32,1.31,1.30,1.29,1.27,1.26,1.25,1.23,1.20,1.14}};

float_[6]={0.04,0.10,0.15,0.20,0.25,0.30};

floaty[10]={6,3,2,1.5,1.2,1.1,1.05,1.03,1.02,1.01};

float_k,yk,zk;

float_a,_b,_c,_d,ya,yb,yc,yd;

floatza,zb,zc,zd,ze,zf;

inti,j;

while(1)

}printf("请输入r/d ");scanf("%f",_k);if(_k>=_[0]_k<=_[5])break;elseprintf("越界 ");5

while(1)

printf("请输入D/d ");scanf("%f",yk);

if(yk>=y[9]yk<=y[0])break;

else

printf("越界 ");}

for(i=1;i<6;i++)

if(_k<=_[i])

_a=_c=_[i-1];_b=_d=_[i];

break;

for(j=1;j<10;j++)

if(yk>=y[j])

ya=yb=y[j-1];yc=yd=y[j];

break;

za=D[i-1][j-1];

zb=D[i][j-1];

zc=D[i-1][j];

zd=D[i][j];

ze=line(_a,za,_b,zb,_k);zf=line(_c,zc,_d,zd,_k);zk=line(ya,ze,yc,zf,yk);

printf("%4.2f ",zk);}

五、总结

1.一元函数插值法适合查询哪类数据

答:一元函数插值法适合查询二维平面的离散型数据。

2.二元函数插值法适合查询哪种数据

答:二元函数插值法适合查询三维空间内选定的几个点。

3.抛物线插值时对节点的选择有何要求

(1)若︱_-_i-1︱<=︱_-_i︱,即_靠近_i-1点,则选_i-2,_i-1,_i。

(2)若︱_-_i-1︱>︱_-_i︱,即_靠近_i点,则选_i-1,_i,_i+1。

(3)若_1<=_<=_2,即_靠近表头,则选_1,_2,_3。

(4)若_n-1<=_<=_n,即_靠近表尾,则选_n-1,_,_n。

4.实验体会:

机械CAD上机实验总体而言难度较大,虽然当时我选修了C语言编程,但是由于是选修的,就没太过认真的了解和分析,于是在CAD上机的过程中就遇到了非常大的困难。但是在老师的帮助指导下,在同学的耐心帮助下,程序这个问题也慢慢就好些了。而在深入学习机械CAD的过程中,发现CAD系统可以与其他系统集成,成为更有效的计算机辅助系统,让人们的生产生活更加的方便和准确。

Copyright © 2019- kqyc.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务