机械CADCAM基础 实验报告

时间:2024.4.21

机械CAD/CAM基础

实验报告

实验名称:                                         

实验日期:                   

一、实验目的

二、实验设备

三、实验步骤

四、实验总结

实验名称:                                         

实验日期:                   

一、实验目的

二、实验设备

三、实验步骤

四、实验总结

实验名称:                                         

实验日期:                   

一、实验目的

二、实验设备

三、实验步骤

四、实验总结


第二篇:机械CADCAM实验报告


 .

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

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

一、实验目的

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

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

二、内容与设计思想

插值法

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

线性插值

   已知插值点P 的相邻两点             ,

                 ,则:

    拉格朗日插值

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

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

 

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

直线-直线插值

以构造曲面g(x,y)代替曲面f(x,y)。K为插值结果。如图1所示。

抛物线-直线插值

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

抛物线-抛物线插值

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


三、使用环境

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

四、核心代码及调试过程

一元函数C程序代码:  

#include<stdio.h>

#include<math.h>

void main()

{

   int i;

   int n=4;

   float xi,yi;

   float x[4]={1,2,3,4};

   float y[4]={3,6,4,8};

   scanf("%f",&xi);

   if((xi<x[0]) || (xi>x[n-1]))

             printf("%s\n","输入数据越界!");

   else

   {

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

          {

                     if(xi<=x[i])

                     {

                            i=i-1;

                            yi=(xi-x[i+1])*y[i]/(x[i]-x[i+1])+(xi-x[i])*y[i+1]/(x[i+1]-x[i]);

                            printf(" yi=%4.1f\n", yi);

                            break;

                     }

          }

   }

}

抛物线函数插值

#include<stdio.h>

#include<math.h>

void main()

{

   int i;

   int n=4;

   float xi,yi;

   float x[4]={1,2,3,4};

   float y[4]={3,6,4,8};

   scanf("%f",&xi);

   if((xi<x[0]) || (xi>x[n-1]))

             printf("%s\n","输入数据越界!");

   else

   {

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

          {

                     if(xi<=x[i])

                     {

                            if(i==1)                       

                            {

                                   yi=(xi-x[i+1])*(xi-x[i])*y[i-1]/((x[i-1]-x[i])*(x[i-1]-x[i+1])) + (xi-x[i-1])*(xi-x[i+1])*y[i]/((x[i]-x[i-1])*(x[i]-x[i+1]))+ (xi-x[i-1])*(xi-x[i])*y[i+1]/((x[i+1]-x[i-1])*(x[i+1]-x[i]));

                                   printf(" yi=%4.1f\n", yi);

                                   break;

                            }

                            else

                            {

                                   if((xi-x[i-1])<(x[i]-xi))

                                          i=i-1;

                                   yi=(xi-x[i+1])*(xi-x[i])*y[i-1]/((x[i-1]-x[i])*(x[i-1]-x[i+1])) + (xi-x[i-1])*(xi-x[i+1])*y[i]/((x[i]-x[i-1])*(x[i]-x[i+1]))+ (xi-x[i-1])*(xi-x[i])*y[i+1]/((x[i+1]-x[i-1])*(x[i+1]-x[i]));

                                   printf(" yi=%4.1f\n", yi);

                                   break;

                            }

                     }

          }

二元函数插值:

#include "stdio.h"

#include "math.h"

float line(float xi,float yi,float xj,float yj,float x)

{

          float y;

          y=(x-xi)*(yj-yi)/(xj-xi)+yi;

          return y;

}

float parabolic(float xm,float ym,float xi,float yi,float xk,float yk,float x)

{

          float y;

          y=(x-xi)/(xm-xi)*(x-xk)/(xm-xk)*ym + (x-xm)/(xi-xm)*(x-xk)/(xi-xk)*yi + (x-xm)/(xk-xm)*(x-xi)/(xk-xi)*yk;//公式3-3;

          return y;

}

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 x[6]={0.04,0.10,0.15,0.20,0.25,0.30};

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

        

         float xk,yk,zk;

         float xa,xb,xc,xd,ya,yb,yc,yd;

         float za,zb,zc,zd,ze,zf;

         int i,j;

         while(1)

         {

                   printf("请输入r/d\n");

                   scanf("%f",&xk);

                   if(xk>=x[0] &&xk<=x[5]) 

                            break;

                   else

                            printf("越界\n");

                           

         }

         while(1)

         {

                   printf("请输入D/d\n");

                   scanf("%f",&yk);

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

                            break;

                   else

                            printf("越界\n");

         }

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

         {

                   if(xk<=x[i])

                   {

                            xa=xc=x[i-1];

                            xb=xd=x[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(xa,za,xb,zb,xk);

         zf=line(xc,zc,xd,zd,xk);

         zk=line(ya,ze,yc,zf,yk);

    printf("%4.2f\n ", zk);

}

五、总结

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

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

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

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

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

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

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

(3)若X1<=X<=X2, 即X靠近表头,则选X1,X2,X3。

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

4.实验体会:

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

更多相关推荐:
机械基础实验报告集

机械基础实验报告集机类胡培钧陈元斌编写浙江理工大学机械基础实验教学示范中心20xx年1月目录实验一典型机械认知实验报告1实验二机构运动简图的测绘和分析实验报告2实验三机械运动参数测定实验报告5实验四齿轮范成原理...

机械基础实验报告

机构现场认识实验报告一平面连杆机构1根据机构中移动副数目的不同平面四杆机构可分为三种类型2根据连架杆是否能整周转动平面铰链四杆机可分为3在平面四杆机构中由主动件的转动转换为从动件的移动的机构有二凸轮机构1凸轮机...

《机械设计基础》本科实验报告汇总

实验一平面机构认知实验一实验目的和要求目的通过观察机械原理陈列柜认知各种常见运动副的组成及结构特点认知各类常见机构分类组成运动特性及应用加深对本课程学习内容及研究对象的了解要求1认真观察陈列柜仔细揣摩分析2结合...

机械基础实验报告(现场教学)

机械基础实验报告唐山学院机械原理课题组实验一平面机构组装及运动参数测定实验报告姓名班级成绩实验日期教师签字一绘制所测试的两个机构的机构运动简图1曲柄摇杆机构2偏心式曲柄滑块机构1实验二轴系结构设计班级姓名学号成...

机械基础实验报告(非机类)

机械基础实验报告(非机类)中南大学机械基础实验教学中心20##年8月目录训练一机构运动简图测绘1实验二机构创意组合实验3实验三螺栓联接静动态实验4实验四带传动实验5实验五液体动压轴承实验6实验六机械传动设计及多…

机械设计基础实验报告

河北工程大学机电学院机械设计基础实验报告专业班级姓名学号机构运动简图绘制一实验名称二实验原理三实验目的四实验仪器及设备五实验步骤六简要回答下列问题1平面连杆机构有哪些类型曲柄存在的条件是什么哪些四连杆机构能由转...

机械基础实验报告四

机械零件陈列室参观报告一实验目的1初步了解机械基础课程所研究的各种常用零件的结构类型特点及应用2了解各种标准零件的结构形式及相关的国家标准3了解各种传动的特点及应用4了解各种常用的润滑剂及相关的国家标准5增强对...

机械基础实验报告(同济大学版)(零件测绘)

91零件测绘的方法和步骤实验报告姓名学号班级日期年月日1徒手测绘轴类零件草图1图中只标注名义尺寸公差与配合除外问题1从左至右第一段外径用量具测量实测值为mm轴向尺寸用量具测量实测值为mm2徒手测绘盘类零件草图2...

安工机械设计基础实验指导书 - 副本

机构运动简图测绘一实验目的1学会根据各种机械实物或模型绘制机构运动简图2分析和验证机构自由度进一步理解机构自由度的概念掌握机构自由度的计算方法二实验设备和工具1各类机构模型及实物机械如内燃机模型油泵模型等2钢皮...

实验13 实验报告重庆大学机械基础实验报告

实验13机电流体传动综合控制

机械基础实验报告

螺栓联接静动态特性实验报告专业班级姓名日期20xx1107指导教师成绩一实验条件1试验台型号及主要技术参数螺栓联接实验台型号主要技术参数螺栓材料为40Cr弹性模量E20xx00Nmm2螺栓杆外直径D116mm螺...

实验11 实验报告重庆大学机械基础实验报告

实验11实验报告23456789

机械基础实验报告(33篇)