机械工程学院机械CAD作业及答案.docx
《机械工程学院机械CAD作业及答案.docx》由会员分享,可在线阅读,更多相关《机械工程学院机械CAD作业及答案.docx(17页珍藏版)》请在冰豆网上搜索。
机械工程学院机械CAD作业及答案
机械工程学院
CAD大作业
学生姓名:
王波
专业班级:
过程装备与控制工程10902班
班级序号:
24
学生学号:
200903453
日期:
2012年3月20日
目录
第一次cad作业线图的程序化处理
解题思路-3-
程序运行过程-4-
语言源程序代码-6-
学习心得-9-
第二次作业深沟球轴承数据库的建立
解题步骤-11-
学习心得-15-
第三次作业三次Bezier曲线的绘制
解题思路-16-
程序绘制结果如下-16-
C语言程序代码-17-
学习心得-18-
第一次cad作业线图的程序化处理
线图表:
解题思路
本线图为分区域线图,对功率(power)和转速(revolution)均分段讨论,采用C语言编程功能,实用if语句实现区域分段,而各个斜线可以利用坐标值求出转速与功率的关系式。
具体解题过程如下:
找出功率的分段范围0.8~1,1~2.6,2.6~6,6~6.8,6.8~18,18~22,22~45,45~70,70~220,200~370,370~800,然后根据所给线图,利用坐标值计算出每条斜线的解析式,再讨论出不同取值范围的转速所对应的V带型号。
即可实现线图程序化处理
程序运行过程:
(截图)
验算一
验算二
C语言源程序代码:
voidmain()
{floata,b;
printf("pleasescanfthepower\n");
scanf("%f",&a);
printf("pleasescanftherevolution\n");
scanf("%f",&b);
printf("when");
printf("power=%f,revolution=%f\n",a,b);
if(a<=0.8||b<=100)printf("thedatayouscanfiserror");
elseif(a>=0.8&&a<=1)
{
if(b>=100&&b<=(1406.25*a-625))
printf("thebesttypeisA");
else
if(b<=7000)printf("thebesttypeisO");
elseprintf("thedatayouscanfiserror");}
elseif(a>=1&&a<=2.6)
{if(b>=100&&b<=(291.667*a-291.667))printf("thebesttypeisB");
elseif(b<=(1406.25*a-625))
printf("thebesttypeisA");
elseif(b<=7000)printf("thebesttypeisO");
elseprintf("thedatayouscanfiserror");
}
elseif(a>2.6&&a<=6)
{
if(b>=100&&b<=(114.634*a-286.585))printf("thebesttypeisC");
elseif(b<=(291.667*a-291.667))
printf("thebesttypeisB");
elseif(b<=(1406.25*a-625)&&b<=5000)
printf("thebesttypeisA");
elseif(b<=7000)printf("thebesttypeisO");
elseprintf("thedatayouscanfiserror");
}
elseif(a>6&&a<=6.8)
{
if(b<=50*a-300)printf("thebesttypeisD");
elseif(b<=(114.634*a-286.585))printf("thebesttypeisC");
elseif(b<=(291.667*a-291.667&&b<=3500))printf("thebesttypeisB");
elseif(b<=5000&&b>=(291.667*a-291.667))printf("thebesttypeisA");
elseif(b<=6000)printf("thebesttypeisO");
elseprintf("thedatayouscanfiserror");
}
elseif(a>6.8&&a<=18)
{
if(b<=50*a-300)printf("thebesttypeisD");
elseif(b<=(114.634*a-286.585))printf("thebesttypeisC");
elseif(b<=(291.667*a-291.667&&b<=3500))printf("thebesttypeisB");
elseif(b<=5000)printf("thebesttypeisA");
elseprintf("thedatayouscanfiserror");
}
elseif(a>=18&&a<=22)
{
if(b<=16.667*a-300.006)printf("thebesttypeisE");
elseif(b<=50*a-300)printf("thebesttypeisD");
elseif(b<=(114.634*a-286.585))printf("thebesttypeisC");
elseif(b<=3500)printf("thebesttypeisB");
elseif(b<=5000)printf("thebesttypeisA");
elseprintf("thedatayouscanfiserror");
}
elseif(a>22&&a<=45)
{
if(b<=16.667*a-300.006)printf("thebesttypeisE");
elseif(b<=50*a-300)printf("thebesttypeisD");
elseif(b<=(114.634*a-286.585)&&b<=2450)printf("thebesttypeisC");
elseif(b<=3500)printf("thebesttypeisB");
elseprintf("thedatayouscanfiserror");
}
elseif(a>45&&a<=70)
{if(b<=4*a-180)printf("thebesttypeisF");
elseif(b<=16.667*a-300.006)printf("thebesttypeisE");
elseif(b<=1500)printf("thebesttypeisD");
elseif(b<=2450)printf("thebesttypeisC");
elseprintf("thedatayouscanfiserror");
}
elseif(a>70&&a<=220)
{if(b<=4*a-180)printf("thebesttypeisF");
elseif(b<=16.667*a-300.006&&b<=1100)printf("thebesttypeisE");
elseif(b<=1500)printf("thebesttypeisD");
elseprintf("thedatayouscanfiserror");
}
elseif(a>220&&a<=370)
{
if(b<=700)printf("thebesttypeisF");
elseif(b<=1100)printf("thebesttypeisE");
elseprintf("thedatayouscanfiserror");
}
elseif(a>370&&a<=800)
{if(b<=700)printf("thebesttypeisF");
elseprintf("thedatayouscanfiserror");
}
elseprintf("thedatayouscanfiserror");
getch();
}
学习心得
通过本次练习,加强了对CAD课程的认识,不在像以往对它的认识仅仅局限于cad软件,它更像是一个系统的计算机信息处理体系。
同时,也反映了我个人专业知识能力亟待提高的现状!
!
第二次作业深沟球轴承数据库的建立
解题思路:
利用microoffice中access数据库软件建立数据库,主要是以下几个步骤:
a)从机械手册中找到深沟球轴承的参数表,根据表格10个名称,选择其中23个轴承代号的数据作为该数据库数据。
b)在输入23组数据后,编辑10个字段名称,并设置数据类型为文本类型,然后保存,即完成数据库建立的基本操作。
c)实现数据的查询功能。
设置查询参数,即查询满足的条件,如“轴承代号”。
d)制作查询窗体,实现对应一组数据的显示。
e)创建该查询功能的快捷方式,点击快捷方式即可出现查询对话框,输入轴承代号就可以查询。
解题步骤(截图演示):
1.首先在access中创建的表格中输入数据生成名为轴承表的表格。
如:
2.打开轴承表的设计图输入相应字段名称,数据类型
3.点击左侧对象下查询。
在设计图中创建查询命名为轴承代号查询,添加表格,再选择字段,如下图
4.点击菜单查询/参数设置好要实现查询功能的参数并选择合适数据类型,最后在第一列字段下方条件处输入查询条件。
即完成查询参数的设置
5.建立窗体查询文件。
点击左侧对象下窗体,双击使用向导创建窗体选择查询表建立查询窗体
6.完成窗体创建网弹出来的对话框里输入轴承代号即可实现相关参数查询。
学习心得:
通过本次练习加深了对数据库的认识,并学会了数据管理的基本操作收益很大!
第三次作业三次Bezier曲线的绘制
解题思路:
Bezier曲线绘制方法是用N+1个顶点(控制点)的N根折线来定义一根N阶曲线。
设三次Bezier曲线有4个顶点为P0,P1,P2,P3,那么对于曲线上各个点(x,y)满足下列关系:
x=x0*(1-t)*(1-t)*(1-t)+x1*3*t*(1-t)*(1-t)+x2*3*t*t*(1-t)+x3*t*t*t
y=y0*(1-t)*(1-t)*(1-t)+y1*3*t*(1-t)*(1-t)+y2*3*t*t*(1-t)+y3*t*t*t
所以只要确定控制点的坐标,该曲线可通过编程即可绘制出来。
程序绘制结果如下
控制点:
x0=50,y0=50,x1=100,y1=100,
x2=400,y2=200,x3=350,y3=50
C语言程序代码:
#include"graphics.h"
main()
{
floati,dt,t,n=100;
floatx0=50,y0=50,x1=100,y1=100,x2=400,y2=200,x3=350,y3=50;
intx,y;
intgraphdriver=DETECT,graphmode;
initgraph(&graphdriver,&graphmode,"");
setbkcolor(RED);
setcolor(WHITE);dt=1/n;
for(i=0;i{t=i*dt;
x=x0*(1-t)*(1-t)*(1-t)+x1*3*t*(1-t)*(1-t)+x2*3*t*t*(1-t)+x3*t*t*t;
y=y0*(1-t)*(1-t)*(1-t)+y1*3*t*(1-t)*(1-t)+y2*3*t*t*(1-t)+y3*t*t*t;
if(i==0)
moveto(x,y);
lineto(x,y);
}
line(x0,y0,x1,y1);line(x1,y1,x2,y2);line(x2,y2,x3,y3);getch();
closegraph();
}
学习心得:
通过本次作业的学习初步了解了曲线构造的原理,以及复杂几何曲线的数学表达原理。
以上全部是机械cad三次作业,谢谢老师的真诚付出和传道授义!
!
2012-3-20