模具CADCAM实验报告Word文档下载推荐.docx
- 文档编号:19498892
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:17
- 大小:256.16KB
模具CADCAM实验报告Word文档下载推荐.docx
《模具CADCAM实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《模具CADCAM实验报告Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
5、绘制下模
6、绘制爆炸图
7、绘制三维装配图
实验二数据资料的程序化处理
一、实验目的:
在进行模具CAD/CAM过程中,常常会遇到数表问题。
通常我们都要进行数表程序化操作。
数表程序化就是用程序完整、准确的描述不同函数关系的数表,以便在运行过程中迅速、有效的检索和使用数表中的数据。
本实验的目的就是编写一段程序,解决键的查表问题,具体如下:
将平键和键槽与轴径的尺寸关系数表程序化。
要求在程序中输入轴径后,能输出相应的键和键槽的剖面尺寸。
注:
在满足传递所需要转矩条件下,允许用较小剖面的键,但应使键侧与轴槽及轮槽接触高度各为h/2。
二、实验步骤:
1、问题分析
从上表中可以看出数据有如下特点:
1)项目多、确定而无规律。
2)每组键槽尺寸要适应一定范围尺寸的轴径使用。
3)标准附注功能应在程序中予以体现。
为此,编程前需要推导出小一挡键的剖面尺寸b、h、与轴径d的几何关系,从而计算出t和t1。
根据上图所示的平键和键槽尺寸参数示意图,可以推导出以下关系:
设t'
和t1'
为满足键侧与轴槽及轮槽接触高度各为h/2条件时键槽的尺寸参数,则有:
其中,t'
为正常档次标准键槽尺寸参数。
2、编程思路
根据上述分析,可采用定义多个一维数组或一个二维数组的办法存储数据,程序运行时,判断选取。
至于是否选用小档键,应根据传递转矩的大小来决定,下图为程序流程图。
3、编写程序
#include<
iostream>
//#include<
iomanip>
string>
math.h>
stdio.h>
stdlib.h>
usingnamespacestd;
classAx_bond//轴键Axletree_bond建立一个轴键参数的类
{
intd;
intb;
inth;
doublet;
doublet1;
doublet_next;
doublet1_next;
public:
Ax_bond(intD,intB,intH,doubleT,doubleT1,doubleT_n=0,doubleT1_n=0)
{
d=D;
b=B;
h=H;
t=T;
t1=T1;
t_next=T_n;
t1_next=T1_n;
}
Ax_bond()
d=0;
b=0;
h=0;
t=0;
t1=0;
t_next=0;
t1_next=0;
voidinsert(intD,intB,intH,doubleT,doubleT1,doubleT_n=0,doubleT1_n=0)
t_next=T_n;
voidshow()
cout<
<
"
d(直径)="
d<
b(键宽)="
b<
h(键高)="
h<
t(槽深)="
t<
t1="
t1<
endl;
voidnext()
t_next=t-(t+t1-h);
t1_next=t1+(t+t1-h);
voidshown(intdia)
{
cout<
dia<
t_next<
t1_next<
}
intdia()
returnd;
~Ax_bond()
};
//voidinsertItem(Ax_bond*&
head,Ax_bond*&
tail,Ax_bond*&
temp);
//structnode
//{
//Ax_bondc;
//node*next;
//
//};
intmain(intargc,char*argv[])
intd=0;
Ax_bondarray[12];
//存储数据
array[0].insert(22,6,6,3.5,2.8);
array[1].insert(30,8,7,4.0,3.3);
array[2].insert(38,10,8,5.0,3.3);
array[3].insert(44,12,8,5.0,3.3);
array[4].insert(50,14,9,5.5,3.8);
array[5].insert(58,16,10,6.0,4.3);
array[6].insert(65,18,11,7.0,4.4);
array[7].insert(75,20,12,7.5,4.9);
array[8].insert(85,22,14,9.0,5.4);
array[9].insert(95,25,14,9.0,5.4);
array[10].insert(110,28,16,10.0,6.4);
array[11].insert(130,32,18,11.0,7.4);
cout<
Let'
sbegin!
输入轴径(d):
;
cin>
>
d;
while(d>
130)
轴径过大——d>
130"
请重新输入:
cin>
inti;
for(i=0;
i++)
if(d<
=array[i+1].dia()&
&
d>
array[i].dia())
array[i+1].show();
boolchange=true;
想减小一档吗:
(想——输入1、不想——输入0):
cin>
change;
if(change)
{
array[i+1].next();
array[i+1].shown(d);
break;
}
else
}
三、实验结果:
120
d(直径)=130,b(键宽)=32,h(键高)=18,t(槽深)=11,t1=7.4
1
d(直径)=120,b(键宽)=32,h(键高)=18,t(槽深)=10.6,t1=7.8
实验三图形变换程序设计
一.实验目的:
在模具CAD中,经常会遇到非基本变换的情况,需要相对于任意点或任意轴来进行变换。
为了做到这一点,可通过计算多个基本变换矩阵的乘积来得到总的变换矩阵或称为复合变换矩阵,从而实现任意顺序的组合变换。
本实验的目的是就是利用课程中所学到的各种基本变换方法,编写一个程序,对一个简单图形进行复合变换,使得大家深入的了解图形变换的方法和技巧。
二.实验任务:
需要变换的图形如下图所示:
图中三角形的三个角点的坐标分别为:
顶点(10,20),左角点(7,10),右角点(13,10),旋转中心点(10,14)
要求图中的三角形绕旋转中心点逆时针旋转60°
。
三.问题分析:
根据图形复合变换的方法,对整个变换进行基本变换分解,具体步骤如下:
步骤1:
(将选择中心点通过平移变换移动到坐标原点)
步骤2:
(利用旋转变换,将图形绕坐标原点逆时针旋转60°
)
步骤3:
(利用平移变换,将图形的旋转中心点平移回初始点,变换结束)
用统一的变换矩阵表示如下:
四.实验提示:
程序编写可以采用两种方式来编写:
1.由于是进行同样形式的矩阵乘法,所以在编写程序是可以单独编写一个3x1矩阵与3x3矩阵相乘的函数,在主程序中调用三次即可。
该方法的好处是可以看到每一个变换步骤。
2.直接按照统一变换矩阵进行计算,可以一步到位的进行变换。
五.实验要求:
大家可采用任何语言进行编程,最后运行出结果,计算出变换后的三角形的三个顶点的坐标,并写出实验报告(附上源程序清单)。
六.编写程序:
voidmatrix(double*,double*,double**);
//矩阵(matrix);
IER(乘数);
被乘数(faciend);
voidshow_dot(double*aim);
//声明坐标输出函数
intmain(intargc,char*argv[]){
doubleacme[3]={10,20,1};
//acme(顶点);
doubledot_left[3]={7,10,1};
//dot_left(左角点);
doubledot_right[3]={13,10,1};
//dot_right(右角点);
-------变换前!
--------------"
左角点:
show_dot(dot_left);
右角点:
show_dot(dot_right);
顶点:
show_dot(acme);
----------------------------"
.................................."
............转换中................."
doubleAcme[3]={0};
//目标顶点);
doubleDot_left[3]={0};
//目标(左角点);
doubleDot_right[3]={0};
//目标(右角点);
doubletran_matrix[3][3]={{0.5,0.866,0},{-0.866,0.5,0},{17.124,-1.66,1}};
//transformationmatrix(变换矩阵);
//double*A=Acme;
//double*a=acme;
double*t[3]={tran_matrix[0],tran_matrix[1],tran_matrix[2]};
matrix(Acme,acme,t);
matrix(Dot_left,dot_left,t);
matrix(Dot_right,dot_right,t);
-------变换后!
show_dot(Dot_left);
show_dot(Dot_right);
show_dot(Acme);
-----------结束!
----------\n"
voidmatrix(double*aim,double*faciend,double*ier[3])//矩阵乘法
for(inti=0;
i<
3;
doubletemp_sum=0;
for(intj=0;
j<
j++)
temp_sum+=faciend[j]*ier[j][i];
aim[i]=temp_sum;
voidshow_dot(double*aim)//坐标输出函数
X="
aim[0];
Y="
aim[1];
结果:
--------------
X=7Y=10
X=13Y=10
X=10Y=20
----------------------------
..................................
............转换中.................
X=11.964Y=9.402
X=14.964Y=14.598
X=4.804Y=17
----------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模具 CADCAM 实验 报告