《计算机辅助设计基础》作业课件.docx
《《计算机辅助设计基础》作业课件.docx》由会员分享,可在线阅读,更多相关《《计算机辅助设计基础》作业课件.docx(33页珍藏版)》请在冰豆网上搜索。
《计算机辅助设计基础》作业课件
作业一:
论述题。
计算机辅助机械设计
计算机辅助设计,顾名思义就是利用计算机及其图形设备帮助设计人员进行设计工作。
其简称CAD。
在工程和产品设计中,计算机可以帮助设计人员担负计算、信息存储和制图等项工作。
在设计中通常要用计算机对不同方案进行大量的计算、分析和比较,以决定最优方案;各种设计信息,不论是数字的、文字的或图形的,都能存放在计算机的内存或外存里,并能快速地检索;设计人员通常用草图开始设计,将草图变为工作图的繁重工作可以交给计算机完成;利用计算机可以进行与图形的编辑、放大、缩小、平移和旋转等有关的图形数据加工工作。
计算机辅助设计是人和计算机相结合、各尽所长的新型设计方法。
在设计过程中,人可以进行创造性的思维活动,完成设计方案构思、工作原理拟定等,并将设计思想、设计方法经过综合、分析,转换成计算机可以处理的数学模型和解析这些模型的程序。
在程序运行过程中,人可以评价设计结果,控制设计过程;计算机则可以发挥其分析计算和存储信息的能力,完成信息管理、绘图、模拟、优化和其他数值分析任务。
一个好的计算机辅助设计系统既能充分发挥人的创造性作用,又能充分利用计算机的高速分析计算能力,找到人和计算机最佳结合点。
20世纪50年代在美国诞生第一台计算机绘图系统,开始出现具有简单绘图输出功能的被动式的计算机辅助设计技术。
60年代初期出现了CAD的曲面片技术,中期推出商品化的计算机绘图设备。
70年代,完整的CAD系统开始形成,后期出现了能产生逼真图形的光栅扫描显示器,推出了手动游标、图形输入板等多种形式的图形输入设备,促进了CAD技术的发展。
80年代,随着强有力的超大规模集成电路制成的微处理器和存储器件的出现,工程工作站问世,cad技术在中小型企业逐步普及。
80年代中期以来,CAD技术向标准化、集成化、智能化方向发展。
一些标准的图形接口软件和图形功能相继推出,为CAD技术的推广、软件的移植和数据共享起了重要的促进作用;系统构造由过去的单一功能变成综合功能,出现了计算机辅助设计与辅助制造联成一体的计算机集成制造系统;固化技术、网络技术、多处理机和并行处理技术在CAD中的应用,极大地提高了cad系统的性能;人工智能和专家系统技术引入cad,出现了智能CAD技术,使CAD系统的问题求解能力大为增强,设计过程更趋自动化。
现在,cad已在电子和电气、科学研究、机械设计、软件开发、机器人、服装业、出版业、工厂自动化、土木筑、地质、计算机艺术等各个领域得到广泛应用。
现代CAD系统的功能包括:
(1)设计组件重用(Reuseofdesigncomponents)
(2)简易的设计修改和版本控制功能(Easeofdesignmodificationandversioning)
(3)设计的标准组件的自动产生(Automaticgenerationofstandardcomponentsofthedesign)
(4)设计是否满足要求和实际规则的检验(Validation/verificationofdesignsagainstspecificationsanddesignrules)
(5)无需建立物理原型的设计模拟(Simulationofdesignswithoutbuildingaphysicalprototype)
(6)装配件(一堆零件或者其它装配件)的自动设计
(7)工程文档的输出,例如制造图纸,材料明细表(BillofMaterials)
(8)设计到生产设备的直接输出
(9)到快速原型或快速制造工业原型的机器的直接输出
与传统的机械设计相比,无论在提高生产率、改善设计质量方面,还是在降低成本、减轻劳动强度方面,CAD技术都有着巨大的优越性。
主要表现在以下几个方面:
(1)CAD可以提高设计质量。
在计算机系统内存储了各种有关专业的综合性的技术知识,为产品设计提供了科学的基础。
计算机与人交互作用,有利于发挥人、机各自的特长,使产品设计更加合理化。
CAD采用的优化设计方法有助于某些工艺参数和产品结构的优化。
另外,由于不同部门可利用同一数据库中的信息,保证了数据的一致性。
(2)CAD可以节省时间,提高生产率。
设计计算和图样绘制的自动化大大缩短了设计时间。
CAD和CAM的一体化可显著缩短从设计到制造的周期,与传统的设计方法相比,其设计效率可提高3~5倍以上。
(3)CAD可以较大幅度地降低成本。
计算机的高速运算和绘图机的自动工作大大节省了劳动力。
同时,优化设计带来了原材料的节省。
CAD的经济效益有些可以估算,有些则难以估算。
由于采用CAD/CAM技术,生产准备时间缩短,产品更新换代加快,大大增强了产品在市场上的竞争能力。
(4)CAD技术将设计人员从繁琐的计算和绘图工作中解放出来,使其可以从事更多的创造性劳动。
在产品设计中,绘图工作量约占全部工作量的60%,在CAD过程中这一部分的工作由计算机完成,产生的效益十分显著。
作业二、三:
编制程序完成轴承的参数化绘图程序的设计。
源代码:
OptionBase1
Dimp(1To5,1To3)AsSingle
DimA,B,DAsSingle
PrivateSubCombo1_Click()
i=Combo1.ListIndex+1
A=p(i,1):
B=p(i,2):
D=p(i,3)
Text1.Text=A
Text2.Text=B
Text3.Text=D
Command1.Enabled=True
Command3.Enabled=True
EndSub
PrivateSubCommand1_Click()
DimuAsSingle
u=Val(Text5.Text)
A=A*u:
B=B*u:
D=D*u
Picture1.Cls
Picture1.AutoRedraw=True
Picture1.Height=Picture1.Width*3/4
Picture1.Scale(-80,60)-(80,-60)
Picture1.BackColor=RGB(222,222,222)
Picture1.ForeColor=RGB(0,0,0)
Picture1.DrawStyle=0
Picture1.DrawWidth=3
Picture1.FillStyle=4
Picture1.FillColor=RGB(0,0,0)
Picture1.Line(-B/2,D/2-A)-(B/2,D/2),,B
Picture1.FillStyle=0
Picture1.FillColor=RGB(222,222,222)'使用背景色填充
Picture1.Line(-B/2,D/2-A/2-A/4/2)-(B/2,D/2-A/2+A/4/2),,B
Picture1.Circle(0,D/2-A/2),A/4
Picture1.Line(-B/2,-D/2+A)-(B/2,D/2-A),,B
Picture1.Line(-B/2,-D/2)-(B/2,-D/2+A),,B
Picture1.DrawWidth=1'细实线
Picture1.Line(-B/2,-D/2)-(B/2,-D/2+A)
Picture1.Line(-B/2,-D/2+A)-(B/2,-D/2)
Picture1.DrawWidth=1
Picture1.DrawStyle=3'细虚线
Picture1.Line(-B/2-5,0)-(B/2+5,0)
Picture1.Line(0,-D/2-5)-(0,D/2+5)
EndSub
PrivateSubCommand2_Click()
End
EndSub
PrivateSubCommand3_Click()
FileName$="c:
\"&Text4.Text
OpenFileName$ForOutputAs#1'输出SCR文件
Print#1,"-osnapoff"
Print#1,"lwdisplayon"
Print#1,"ucsiconoff"
Print#1,"-layers0"
Print#1,"-layerLW0.4"
Print#1,"rectang"+LTrim(-B/2)+","+LTrim(-D/2)+""+LTrim(B/2)+","+LTrim(D/2)
Print#1,"line"+LTrim(-B/2)+","+LTrim(-D/2+A)+"@"+LTrim(B)+"<0"
Print#1,"line"+LTrim(-B/2)+","+LTrim(D/2-A)+"@"+LTrim(B)+"<0"'绘制图形
Print#1,"line"+LTrim(-B/2)+","+LTrim(D/2-A/2-A/4/2)+"@"+LTrim(B)+"<0"
Print#1,"line"+LTrim(-B/2)+","+LTrim(D/2-A/2+A/4/2)+"@"+LTrim(B)+"<0"
Print#1,"circle0,"+LTrim(D/2-A/2)+""+LTrim(A/4)
Print#1,"zoome"'图形的视觉缩放
Print#1,"trim"+"0,"+LTrim(D/2-A/2-A/4/2)+""'修剪多余线段
Print#1,"trim"+"0,"+LTrim(D/2-A/2+A/4/2)+""
Print#1,"-layerM1"
Print#1,"-bhatchPANSI310.500,"+LTrim(D/2-2)+""
Print#1,"-bhatchPANSI310.5900,"+LTrim(D/2-A+2)+""
Print#1,"line"+LTrim(-B/2)+","+LTrim(-D/2)+""+LTrim(B/2)+","+LTrim(-D/2+A)+""
Print#1,"line"+LTrim(-B/2)+","+LTrim(-D/2+A)+""+LTrim(B/2)+","+LTrim(-D/2)+""
Print#1,"-layerM2"
Print#1,"-layerLdashdot2"
Print#1,"-layerCblue2"
Print#1,"ltscale5"
Print#1,"line"+LTrim(-B/2-2)+",0"+LTrim(B/2+2)+",0"
Print#1,"line0,"+LTrim(-D/2-2)+"0,"+LTrim(D/2+2)+""'绘制中心线
Print#1,"line"+LTrim(-A/4-2)+","+LTrim(D/2-A/2)+"@"+LTrim(A/2+4)+"<0"
Print#1,"-layers1"
Print#1,"dimlinear"+LTrim(B/2)+",1"+"@7,0"'尺寸标注
Print#1,"dimlinear"+"1,"+LTrim(-D/2)+"@0,-7"
Print#1,"dimlinear"+LTrim(-B/2)+","+LTrim(D/2)+"@0,"+LTrim(-A/2)+"@-7,0"
Print#1,"zoome"
Close#1
EndSub
PrivateSubCommand4_Click()
Picture1.Cls'拭除当前图形
EndSub
PrivateSubForm_Load()
p(1,1)=12.5:
p(1,2)=11:
p(1,3)=35
p(2,1)=13.5:
p(2,2)=13:
p(2,3)=42
p(3,1)=16#:
p(3,2)=15:
p(3,3)=52
p(4,1)=21#:
p(4,2)=19:
p(4,3)=72
p(5,1)=25#:
p(5,2)=23:
p(5,3)=90
Combo1.Text=300
A=p(1,1):
B=p(1,2):
D=p(1,3)
Text1.Text=A:
Text2.Text=B:
Text3.Text=D
Combo1.AddItem"300"
Combo1.AddItem"302"
Combo1.AddItem"304"
Combo1.AddItem"306"
Combo1.AddItem"308"
EndSub
此题,根据题目给出的示例,按照其方式,绘制出深沟球轴承,并且可以通过选项选择不同的型号,以及可以按不同的比例放大、缩小。
在绘图完毕之后,可以拭除当前图形。
并且可以生成scr格式文件。
作业四:
编写程序,采用变换矩阵方法实现图形变换。
源代码:
'输入一个三角形的各个顶点坐标,绘制图形。
再根据需要,输入变换矩阵(数组),进行几何变换,
'显示变换后各个点的坐标,并绘制变换后的图形。
OptionBase1
Dimp(1To3,1To3)AsSingle'定义三角形的三个顶点的坐标数组
'可考虑使用REDIM定义动态数组,实现对任意多边形的绘制
Dimch(1To3,1To3)AsSingle'定义齐次变换矩阵的数组
PrivateSubCommand1_Click()
IfCommand1.Caption="自定义变换"Then
Combo1.Visible=False
Combo1.Text=""
Frame2.Visible=True
Command1.Caption="取消自定义"
Text3.Visible=False
Text4.Visible=False
Text5.Visible=False
Else:
Command1.Caption="取消自定义"
Command1.Caption="自定义变换"
Combo1.Visible=True
Combo1.Text="比例变换"
Frame2.Visible=False
EndIf
EndSub
PrivateSubCommand2_Click()
Text1
(1).Text="":
Text1
(2).Text="":
Text1(3).Text=0
Text1(4).Text="":
Text1(5).Text="":
Text1(6).Text=0
Text1(7).Text="":
Text1(8).Text="":
Text1(9).Text=0
EndSub
PrivateSubComok1_Click()
n=1'确定p数组
Fori=1To3
Forj=1To3
p(i,j)=Val(Text1(n).Text)
n=n+1
Nextj,i
'p1(i,j)=p(i,j)
Com计算.Enabled=True:
Com绘图.Enabled=True:
Comok1.Enabled=False
EndSub
PrivateSubComok2_Click()
SelectCaseCombo1.Text
Case"比例变换"
Label4.Visible=True
Label4.Caption="请输入比例系数"
Text5.Visible=True
Text5.Left=4680
Text5.Top=7200
Text5.SetFocus
x7=Val(Text5.Text)
Text2
(1).Text=x7:
Text2
(2).Text=0:
Text2(3).Text=0
Text2(4).Text=0:
Text2(5).Text=x7:
Text2(6).Text=0
Text2(7).Text=0:
Text2(8).Text=0:
Text2(9).Text=1
x7=0
Case"平移"
Text5.Visible=False
Text5.Text=""
IfText3.Text=""OrText4.Text=""Then
Text3.Visible=True
Text4.Visible=True
Label4.Visible=True
Label5.Visible=True
Label4.Caption="请输入X轴增量"
Label5.Caption="请输入Y轴增量"
Comok2.Enabled=False
Text3.SetFocus
Else
x1=Val(Text3.Text)
x3=Val(Text4.Text)
Text2
(1).Text=1:
Text2
(2).Text=0:
Text2(3).Text=0
Text2(4).Text=0:
Text2(5).Text=1:
Text2(6).Text=0
Text2(7).Text=x1:
Text2(8).Text=x2:
Text2(9).Text=0
EndIf
Case"旋转"
Text3.Visible=False
Text4.Visible=False
Label4.Visible=True
Label5.Visible=False
Text5.Visible=True
Label4.Caption="请输入旋转的角度"
Comok2.Enabled=False
Text5.Left=4680
Text5.Top=7200
Text5.SetFocus
IfText5.Text<>""Then
x3=Val(Text5.Text)
x4=Sin(x3*3.14/180)
x5=Cos(x3*3.14/180)
Text2
(1).Text=x5:
Text2
(2).Text=x4:
Text2(3).Text=0
Text2(4).Text=-x4:
Text2(5).Text=-x5:
Text2(6).Text=0
Text2(7).Text=0:
Text2(8).Text=0:
Text2(9).Text=1
x3=0
EndIf
Case"关于X轴对称"
Label4.Visible=False
Label5.Visible=False
Text3.Visible=False
Text4.Visible=False
Text5.Visible=False
Text5.Text=""
Text2
(1).Text=1:
Text2
(2).Text=0:
Text2(3).Text=0
Text2(4).Text=0:
Text2(5).Text=-1:
Text2(6).Text=0
Text2(7).Text=0:
Text2(8).Text=0:
Text2(9).Text=1
Case"关于Y轴对称"
Label4.Visible=False
Label5.Visible=False
Text3.Visible=False
Text4.Visible=False
Text5.Visible=False
Text5.Text=""
Text2
(1).Text=-1:
Text2
(2).Text=0:
Text2(3).Text=0
Text2(4).Text=0:
Text2(5).Text=1:
Text2(6).Text=0
Text2(7).Text=0:
Text2(8).Text=0:
Text2(9).Text=1
Case"关于原点对称"
Label4.Visible=False
Label5.Visible=False
Text3.Visible=False
Text4.Visible=False
Text5.Visible=False
Text5.Text=""
Text2
(1).Text=-1:
Text2
(2).Text=0:
Text2(3).Text=0
Text2(4).Text=0:
Text2(5).Text=-1:
Text2(6).Text=0
Text2(7).Text=0:
Text2(8).Text=0:
Text2(9).Text=1
Case"关于Y=X对称"
Label4.Visible=False
Label5.Visible=False
Text3.Visible=False
Text4.Visible=False
Text5.Visible=False
Text5.Text=""
Text2
(1).Text=0:
Text2
(2).Text=1:
Text2(3).Text=0
Text2(4).Text=1:
Text2(5).Text=0:
Text2(6).Text=0
Text2(7).Text=0:
Text2(8).Text=0:
Text2(9).Text=1
Case"关于Y=-X对称"
Label4.Visible=False
Label5.Visible=Fa