CAD课程设计说明书.docx
《CAD课程设计说明书.docx》由会员分享,可在线阅读,更多相关《CAD课程设计说明书.docx(38页珍藏版)》请在冰豆网上搜索。
CAD课程设计说明书
1绪论
计算机辅助设计(CAD-ComputerAidedDesign)指利用计算机及其图形设备帮助设计人员进行设计工作。
CAD技术着重于设计,它利用计算机的快速数据处理技术以及大量的存储能力与人类特有的逻辑判断能力、综合分析能力相结合,从而加快产品的开发速度,缩短产品的设计和制造周期。
未来的机械制造需要CAD系统来维持或获得竞争优势,降低风险和提高生产力和活力。
1.1课程设计性质及目的
本次设计是在我们学完了大学的全部基础课、技术基础课以及专业课之后进行的课程设计。
此次的设计是对大学期间所学各课程及相关的应用绘图软件的一次深入的综合性的总复习,也是一次理论联系实际的训练。
其目的在于:
(1)巩固我们在大学里所学的知识,也是对以前所学知识的综合性的检验。
(2)加强我们查阅资料并且自主学习的能力,熟悉有关。
(3)树立正确的设计思想,掌握设计方法,培养我们的实际工作能力。
1.2设计工作简介
VBA的全称是VisualBasicforApplication,它有着与VB几乎相同的语法和开发环境。
本次课程设计利用VBA技术,以ADO(ActiveX数据对象-ActiveXDataObjects)数据库开发技术为基础,基于VBA的参数化编程允许用户对AutoCAD进行二次开发,由用户输入或选择参数值,程序自动绘制相应的图形。
其编程的一般步骤是先由用户输入一个基准点,然后根据基准点计算出其它各点的位置,调用AutoCAD命令进行绘图,最后还要对绘制的图形进行编辑修改,达到最终的效果,实现AutoCAD环境下的直接参数修改与驱动。
1.3机械CAD常用软件简介
目前市场上CAD软件有很多种,目前使用最多的有SiemensPLMSoftware公司旗下的UGNX(UnigraphicsNX);PTC公司的Pro∕Engineer软件;Solidworks公司的SolidWorks软件。
(1)UG的开发始于1969年,它是基于C语言开发实现的。
UGNX是一个在二和三维空间无结构网格上使用自适应多重网格方法开发的一个灵活的数值求解偏微分方程的软件工具。
其设计思想足够灵活地支持多种离散方案。
因此软件可对许多不同的应用再利用。
目前已经成为模具行业三维设计的一个主流应用。
2012年10月SiemensPLMSoftware发布了UG8.5版本。
(2)Pro/∕Engineer是采用参数化设计的、基于特征的模型化系统,工程设计人员采用具有智能特性的基于特征的功能去生成模型,如腔、壳、倒角及圆角,你可以随意勾画草图,轻易改变模型。
这一功能特性给工程设计者提供了在设计上从未有过的简易和灵活。
2012-11-30发布Creo_Elements/Pro_5.0_M160(Pro/E-Creo之间的过度版)。
(3)SolidWorks软件是世界上第一个基于Windows开发的三维CAD系统,配置管理是SolidWorks软件体系结构中非常独特的一部分,它涉及到零件设计、装配设计和工程图。
配置管理使得你能够在一个CAD文档中,通过对不同参数的变换和组合,派生出不同的零件或装配体。
2011年9月20日,DSSolidWorks推出SolidWorks2012新品
1.4参数化设计简介
参数化设计是基于变异几何思想进行零件产品计算机辅助设计的一种方法。
参数化设计使用约束来定义和修改几何模型。
约束包括尺寸约束、拓扑约束和工程约束(如应力、性能等),实现参数化的那些参数与约束保持一定的关系,初始设计的形体自然满足这些约束,而当这些参数赋以新值时,将获得一个新的几何模型并满足原有的约束关系。
这样,设计人员在更新或修改图形时,可以专心于零件或产品的设计,无需为保持约束条件而耗费精力。
目前常用的参数化设计CAD软件中,主流的应用软件有Pro/Engineer、UGNX、CATIA和Solidworks四大软件,四大软件各有特点并在不同的领域分别占据一定的市场份额。
Pro/Engineer是参数化设计的鼻祖,参数化设计的实现最先就是由Pro/Engineer实现,而Pro/Engineer也因为参数化的特点在横空出世后迅速抢占了传统CAD软件巨头UG和CATIA的部分市场份额,目前主要应用于消费电子、小家电和日用品、发动机设计等行业;UG和CATIA两个传统的软件巨头也不甘落后,紧随Pro/Engineer之后加入了参数化设计的功能,目前在传统的制造行业比如汽车、航空航天等行业上两个软件占据绝对的市场份额。
2任务分析
2.1课程设计任务
本次课程设计任务是利用VBA技术,以ADO数据库开发技术为基础,基于VBA的参数化编程允许用户对AutoCAD进行二次开发。
2.1.1课程设计的内容
参数化设计是CAD技术应用中解决系列化产品设计的常用技术手段,通用机械设计软件AutoCAD支持利用VBA(VisualBasicforApplication)技术对其进行二次开发。
本课程设计利用通用二维CAD软件AutoCAD2004,建立典型零件参数化模型,基于Access数据库及ADO技术实现AutoCAD环境下零件系列化模型的建立。
完成该课程设计,有利于学生理解典型设计环境下参数化建模的构建原理及数据库开发,有利于学生掌握参数化设计的原理、实现方法与手段,。
2.1.2具体零件参数化设计的基本要求
按照随课程设计任务书下达的典型系列零件技术资料,在AutoCAD环境下完成给定零件参数化模型的构建并实现参数驱动:
(1)查阅资料,熟悉参数化绘图的研究现状,了解各种建模环境下的开发工具;
(2)结合课程学习中对AutoCAD二次开发的介绍,学习基于VBA的开发技术以及ADO数据库开发原理,掌握AutoCAD环境下参数化绘图的步骤;
(3)研究与分析给定典型零件的结构特点,明确零件参数化模型的结构参数构成、相互关联关系,绘制点图及点表;
(4)利用VBA技术,以ADO数据库开发技术为基础,编程实现图层设置以及典型零件的参数化绘图,实现AutoCAD环境下的直接参数修改与驱动;
(5)完成1张典型零件图纸,其应包含该零件的参数表和二维视图;
(6))撰写0.8~1万字的说明书(内容要求见课程设计说明书格式模板)。
2.2参数化建模零件结构与参数构成特点
2.2.1零件结构特点
如果零件结构具有对称性,对称性、重复性、循环性,在编程中只需绘出一个单元图,其余通过镜像、复制、循环语句即可绘出,这在编程中也是很重要的,它可以大大降低编程的工作量,提高程序的质量;如果零件结构复杂,应该找出其相似的部分,单独编成函数,这样可以减少程序的代码量。
2.2.2参数构成特点
参数构成特点主要有参数取舍、图形简化和重新命名等:
(1)参数取舍:
有些参数比较多,像化工上用的法兰或螺钉标准件,编程的参数太多,使得其工作量增加很多,有些参数对于设计人员来说是不重要的,此时将其适当简化是应该的,比如倒角半径、螺纹内外直径差、一些非常小的无关尺寸,当然一定是不重要的尺寸可以简化,重要的尺寸决不能采用这种方法,由此达到尽可能简化参数的数量,降低编程的工作量。
(2)图形简化:
有些图形真实的结果是非常复杂的,甚至有时用编程方法绘制相当麻烦,比如螺栓的头部圆角,法兰的各个侧面的倒角,此时应该将图形的圆角或倒角忽略,适当的忽略在参数化编程中是允许的,只要标注正确即可。
(3)重新命名:
在设计手册常用件、标准件的参数化尺寸表中,通常有些不同参数名称是一样的,例如D、d、R、r,这些参数指代的不是同一内容,此时需要重新命名这些变量,比如用D1、D2、R1、R2等名称重新命名,因为程序中这些变量不分大小写,所以尺寸参数表和手册中的标准参数表的变量名称有时是不一样的,编程者务必注意这样的事情。
2.3实现方案
(1)绘制图形并确定点图
①交互绘制:
拿到一个图形,首先要进行分析,这是必不可少的步骤。
先要交互将图形绘制出来。
②确定基点和其它点名:
基点就是用户绘图的插入点,要根据实际情况确定,例如圆的基准点一般选择圆心,螺钉类图形通常选其结合面的中心点等。
用文字命令将点名写到交互绘制图形上,例如0、1、2…n以便后面编程用到时候方便。
③复杂图形:
如果图形复杂,应该找出其相似的部分,单独编成函数,这样可以减少程序的代码量。
④特点分析:
对称性、重复性、循环性是某些编程图形的特点,符合这种特点的图形,在编程中只需绘出一个单元图,其余通过镜像、复制、循环语句即可绘出,这在编程中也是很重要的,它可以大大降低编程的工作量,提高程序的质量。
(2)确定参数和尺寸参数表
①独立参数:
参数化编程必须有参数,注意有些参数是独立的,需要由用户交互式输入,有些参数是不独立的,可能与某些独立参数相关,只需保留独立参数,不独立参数通过计算得到即可;
②尺寸参数表:
此外通常标准件在手册上给出了图形各个尺寸参数的表格,技术人员需要根据表格中的参数及数据,将其输入使得计算机或CAD软件能够应用它们。
③参数取舍:
有些参数比较多,像化工上用的法兰或螺钉标准件,编程的参数太多,使得其工作量增加很多,有些参数对于设计人员来说是不重要的,此时将其适当简化是应该的,比如倒角半径、螺纹内外直径差、一些非常小的无关尺寸,当然一定是不重要的尺寸可以简化,重要的尺寸决不能采用这种方法,由此达到尽可能简化参数的数量,降低编程的工作量。
④图形简化:
有些图形真实的结果是非常复杂的,甚至有时用编程方法绘制相当麻烦,比如螺栓的头部圆角,法兰的各个侧面的倒角,此时应该将图形的圆角或倒角忽略,适当的忽略在参数化编程中是允许的,只要标注正确即可。
⑤重新命名:
在设计手册常用件、标准件的参数化尺寸表中,通常有些不同参数名称是一样的,例如D、d、R、r,这些参数指代的不是同一内容,此时需要重新命名这些变量,比如用D1、D2、R1、R2等名称重新命名,因为程序中这些变量不分大小写,所以尺寸参数表和手册中的标准参数表的变量名称有时是不一样的,编程者务必注意这样的事情。
(3)列出编程点表
基准点和参数确定后,下面就需要列表计算其它各点的坐标位置,所有这些点都是根据基点和各个已知参数计算出来的,注意为了编程过程中不乱并便于检查程序,应该将其以文本表格形式列出,其具体形式请参见后面实例中的编程点表。
(4)初步编程
有了点图、尺寸参数表、编程点表,就可以用进入VisualBasic编辑器,开始编程。
点击AutoCAD环境中的【工具】|【宏】|【VisualBasic编辑器】菜单,进入VBA编辑环境。
可以在VBA环境中插入窗体,设计VB风格的界面。
将上述点图、尺寸参数表、编程点表作为重要依据,进行点和参数语句的编程,有时为了输入数据的简单,先提前赋值给某些变量,或调用数据库中的参数,直至最后能够用程序绘制出该图形。
这里一定要熟悉在VBA环境中调用CAD命令的格式,避免出错。
(5)调试
任何一位编程人员也不敢保证他所编的程序一点错误也没有,出错是在所难免的,这就需要调试,试运行程序。
设置断点、跟踪变量都是调试程序的助手。
此外还有可能需要在程序中加入尺寸参数表数据,再进一步调试,这一步调通意味着程序运行可以实现多组数据绘图。
如果有必要,AutoCAD可对源代码进行工程级加密的功能,保护编程者的劳动。
注意:
三维参数化编程除了要遵循上述主要步骤之外,还需要注意以下几点:
①编程中计算点的时候,尽量不要变换坐标系,除非万不得已不动;
②安排好空间点的位置,注意其变化;
③尽量多用三维旋转Rotate3d、移动Move等命令。
3法兰盘参数化的实现
3.1编程前的准备
在化工管道中,法兰连接的使用十分广泛,法兰连接是化工制图中常用图形。
环连接面整体钢制管法兰的剖面图见图1,该图是左右对称的结构,可以先绘制右侧部分,然后使用镜像命令复制出左侧部分。
其点图、尺寸参数表、点表如下所示:
图1环连接面整体钢制管法兰图图2法兰点图
表1环连接面整体钢制管法兰尺寸参数表
dn
d
dd
k
L
nn
th
p
e
f
c
n
s0
s1
xx
15
20
25
32
40
50
65
80
100
125
150
200
250
300
350
400
105
55
75
14
4
"M12"
35
6.5
9
20
45
10
15
75
130
68
90
18
4
"M16"
45
6.5
9
20
50
10
15
90
140
78
100
18
4
"M16"
50
6.5
9
24
61
10
18
100
155
86
110
22
4
"M20"
65
6.5
9
24
68
10
18
110
170
102
125
22
4
"M20"
75
6.5
9
26
82
10
21
125
180
112
135
22
4
"M20"
85
8
12
26
90
10
22
135
205
136
160
22
8
"M20"
110
8
12
26
105
10
20
160
215
146
170
22
8
"M20"
115
8
12
28
122
11
21
170
250
172
200
26
8
"M24"
145
8
12
30
146
12
23
200
295
208
240
30
8
"M27"
175
8
12
34
177
13
26
240
345
245
280
33
8
"M30X2"
205
8
12
36
204
14
27
280
415
306
345
36
12
"M33X2"
265
8
12
42
264
16
32
345
470
362
400
36
12
"M33X2"
320
8
12
46
320
19
35
400
530
422
460
36
16
"M33X2"
375
8
12
52
378
21
39
460
600
475
525
39
16
"M36X3"
420
8
12
56
434
23
42
525
670
540
585
42
16
"M39X3"
480
8
12
60
490
26
45
585
我们以p0点为该图形的起点(插入点),xx,S0,SL,l,n,f,p,d,k,dd,e,c为参数,确定p0~p17各点的坐标为:
表2法兰点表
计算点
相对点
相对角度
相对长度
计算点
相对点
相对角度
相对长度
p0
p10
p9
1.5pi
xx
p1
p0
1.5pi
xx
p11
p5
pi
(d-k+l)/2
p2
p0
0
0.5n-(sl-s0)
p12
p11
1.5pi
c
p3
p2
1.5pi
(xx-c-e)/3
p13
p11
0
l
p4
p0
p0x+0.5n
p0y-(xx-c-e)
p14
p12
0
l
p5
p4
0
(d-n)/2
p15
p1
0
(p-f)/2
p6
p5
1.5pi
c
p16
p15
p15x+0.5f
p15y+f
p7
p6
pi
(d-dd)/2
p17
p15
0
f
p8
p7
1.5pi
e
p18
p2
pi
n-2(sl-s0)
p9
p0
0
0.5n-sl
p19
p5
pi
d
3.2构建Access数据库
为了使用方便,首先在D盘根目录下构建名为“falanpan.mdb”的Access数据库,在库中创建一个名为“csb”的表格,存放各个参数数据,构建各个字段(注意顺序不能改变,否则后面的程序按字段顺序提取数据时会出错。
),然后将表1中各个参数输入到数据库中。
3.3VBA参数化编程
3.3.1编程开始添加控件
启动AutoCAD,点击【工具】|【宏】|【VisualBasic编辑器】菜单,进入VBA编辑环境。
在右侧“工程”项中点击鼠标右键,选择【插入】|【用户窗体】在VBA环境中插入一个用户窗体,过程如图3所示。
接下来,在出现的“工具箱”中,单击鼠标右键,选择“附加控件”,向工具箱中添加“MicrosoftADODataControl6.0(SP4)(OLEDB)”控件,以备用ADO方式访问参数库,如图4所示。
图3在VBA环境中插入用户窗体
图4向工具箱添加ADO控件
3.3.2添加Adodc控件
向用户窗体添加该Adodc控件,并将其“Visible”属性设为“False”以隐藏该控件。
同时添加一个列表框、几个标签控件和几个文本框控件,为文本框命名与标签对应的名字(参见图5以及后面的ListBox1_Click函数),添加图像控件和两个按钮控件,并调整位置,然后向图像控件引入法兰图片,设置窗体和按钮“Caption”属性,如图5所示。
图5窗体控件示意图
3.3.3编辑窗体代码
双击用户窗体,进入代码界面,首先在代码的最上端声明通用变量(其中,Falanpan_Con和Falanpan_Rec,分别作为数据库对象和数据集对象。
):
DimFalanpan_ConAsADODB.Connection
DimFalanpan_RecAsADODB.Recordset
选择窗体的“Initialize”响应函数,该函数负责连接数据库,向列表框添加数据库中法兰盘的各参数数据。
Initialize函数代码如下:
PrivateSubUserForm_Initialize()
'以ADO方式打开数据库
SetFalanpan_Con=NewADODB.Connection
SetFalanpan_Rec=NewADODB.Recordset
DimSQLAsString
SQL="provider=Microsoft.Jet.OLEDB.4.0;DataSource=d:
\falanpan.mdb"'数据库的路径不同则这里需要修改
Falanpan_Con.OpenSQL
Falanpan_Rec.Open"csb",Falanpan_Con,adOpenDynamic,adLockBatchOptimistic
'计算打开的数据表中有几条记录
OnErrorResumeNext
Dimcount1AsInteger
count1=0
Falanpan_Rec.MoveFirst
DoWhileNotFalanpan_Rec.EOF
count1=count1+1
Falanpan_Rec.MoveNext
Loop
'数据库的指针指向第一条记录
Falanpan_Rec.MoveFirst
'向列表框添加记录
ListBox1.ColumnCount=6
ListBox1.AddItem
ListBox1.List(0,0)="型号"
ListBox1.List(0,1)="D"
ListBox1.List(0,2)="d"
ListBox1.List(0,3)="K"
ListBox1.List(0,4)="L"
ListBox1.List(0,5)="n"
Fori=1Tocount1
ListBox1.AddItemFalanpan_Rec(0)
ListBox1.List(i,0)=Falanpan_Rec
(1)
ListBox1.List(i,1)=Falanpan_Rec
(2)
ListBox1.List(i,2)=Falanpan_Rec(3)
ListBox1.List(i,3)=Falanpan_Rec(4)
ListBox1.List(i,4)=Falanpan_Rec(5)
ListBox1.List(i,5)=Falanpan_Rec(6)
Falanpan_Rec.MoveNext
Next
'初始选择确定按钮
CommandButton1.SetFocus
'默认选择第一条记录
ListBox1.Selected
(1)=True
EndSub
3.3.4编辑列表框代码
在窗体上双击列表框,编写列表框的点击响应函数,实现选择不同类型法兰盘时,文本框显示数据的改变,如下所示:
PrivateSubListBox1_Click()
'点击listbox框的首行,不能绘图
IfListBox1.ListIndex=0Then
CommandButton1.Enabled=False
ExitSub
Else
CommandButton1.Enabled=True
EndIf
OnErrorResumeNext
Falanpan_Rec.MoveFirst
Fori=1ToListBox1.ListIndex-1'注意:
首行已经用于显示字段名,所以,下标为1为第一个记录
Falanpan_Rec.MoveNext
Next
TxtD.Text=Falanpan_Rec
(2)'falanpan_rec(0)和
(1)分别为ID号和型号
Txtd2.Text=Falanpan_Rec(3)
TxtK.Text=Falanpan_Rec(4)
TxtL.Text=Falanpan_Rec(5)
Txtn.Text=Falanpan_Rec(6)
Txtth.Text=Falanpan_Rec(7)
Txtp.Text=Falanpan_Rec(8)
Txte.Text=Falanpan_Rec(9)
Txtf.Text=Falanpan_Rec(10)
Txtc.Text=Falanpan_Rec(11)
Txtn2.Text=Falanpan_Rec(12)
Txts0.Text=Falanpan_Rec(13)
Txts1.Text=Falanpan_Rec(14)
Txtxx.Text=Falanpan_Rec(15)
EndSub
3.3.5编辑绘制法兰盘的代码
回到窗体界面,双击,出现代码窗口。
在这个函数中,要分别创建粗实线层、中心线层、剖面线层并设置其颜色、线型和线宽。
在绘图过程中,首先提示输入基点,然后根据点表2计算法兰盘右半侧的各点坐标;接下来调用绘图命令绘制图形。
在绘制过程中,用到了绘制直线命令和镜像命令。
剖面线的绘制要先绘制边界直线,然后在边界直线围成的区域内调用打剖面线命令绘制剖面线。
PrivateSubCommandButton1_Click()'绘制法兰盘
'隐藏窗体,以显示绘图区
M