毕业设计论文复印件1.docx
《毕业设计论文复印件1.docx》由会员分享,可在线阅读,更多相关《毕业设计论文复印件1.docx(34页珍藏版)》请在冰豆网上搜索。
![毕业设计论文复印件1.docx](https://file1.bdocx.com/fileroot1/2023-2/3/94e8bf6a-85cb-42cd-9e1f-2e3a34b23cf5/94e8bf6a-85cb-42cd-9e1f-2e3a34b23cf51.gif)
毕业设计论文复印件1
学校代码:
11517
学号:
200806111108
HENANINSTITUTEOFENGINEERING
毕业设计
题目基于CATIA的圆柱齿轮参数化设计
学生姓名
专业班级机械设计制造及其自动化0844
学号
系(部)机械工程系
指导教师(职称)王新莉(教授)孟凯(助教)
完成时间2012年5月15日
基于VB的圆柱齿轮参数化设计
摘要
圆柱齿轮在机械行业设计中应有相当广泛,雷同率高,每次设计都需要根据不同尺寸重复性绘制,使设计人员大部分精力集中在绘图上,设计周期较长。
而利用vb设计的参数化绘制系统,可以加速齿轮的绘制过程,从而使设计人员的精力集中在机构和整体性能的设计。
基于VB开发一个对表达式进行自动计算的控件,以实现通过表达式的方式自动采集齿轮的传动比要求;基于模块设计方法搭建了系统框架,然后用数值计算方法,开发不同要求下圆柱齿轮节曲线的设计模块,从而生成圆柱齿轮图形。
并经过反复测试了程序,使所开发的插件能够完成常用圆柱齿轮的自动设计。
关键词vb语言程序/catia二次开发/齿轮/表达式计算。
THEPARAMETRICDESIGNOF
GEARBASEDONTHECATIA
ABSTRACT
Gearisoneofthemostimportanttransmissionsinthemechanicaldrivewithitsextensiveformanditiswideuse.Thispaperusesparameterized3DSoftwareCATIAforinvolutegearstoprocesstheparameterized3Dmodeling.WiththehelpofthefogofGSDmodule,parameterequationinvoluteisgenerated;through“mirror”,“cut”,“characteristicsofarrays”etc.,itcommandstoestablishatoothprofile;Throughstretching,multi-sectionssoliddesign,grooving,entitycircumferencearrays,athree-dimensionalmodeloftheinvolutegearisestablished.Thisachievestheaimofachangeinthebasicparameterscangettheinvolutegearofthethree-dimensionalmodelofparameterized-drivendesignimmediately,improvingtheefficiencyofinvolutegearthree-dimensionalmodel.
KEYWORDSVBprogramminglanguage,Involute,Gear,Parametricdesign.
第一章绪论
CATIA作为CAD/CAE/CAM/PDM一体化的软件,广泛用于航空航天、汽车、船舶及电子工业,尤其在航空航天业,有八成以上厂商使用CATIA的市场[11]。
然而由于使用习惯和使用的侧重点不用,功能再强大的软件也不可能同时满足各类用户的需求,因此,对CATIA进行二次开发已经受到国内外许多科研院所及高校的重视。
CATIA二次开发的过程和意义可用图3-1来表示。
通过第三方开发工具对CATIA进行二次开发,可以开发出针对某一行业,甚至针对某一用户的特定模块,以方便该行业用户使用,是对CATIA功能的深入挖掘和拓展。
图1.1CATIA二次开发的过程和意义
CATIA二次开发主要有两种方法,一种是采用CAA C++技术,另一种是采用Automation技术。
CAA(ComponentApplicationArchitecture)是CATIA的一套C++函数库,该函数库在CATIA运行时加载,用户可通过RADE模块在VC++编程环境下编写程序,与CATIA进行通信。
这种方法可进行最有效率的程序开发,但入门困难,在国内这方面的技术资料比较少见。
Automation技术是建立在COM基础之上,其核心技术是允许一个应用程序操作另一个应用程序。
Automation技术并不是直接获取及处理数据,而是间接的通过暴露的对象和属性,利用对象的方法和属性来获取、设置及处理数据。
这种方法功能限制比较大,但入门比较容易。
基于上述两种开发方法的特点和本次毕业设计任务难度,我选择使用Automation方法对CATIA进行二次开发。
由于CATIA宏录制生成的VBScript代码稍做修改就能在VB环境下运行,为编程提供了很大的方便,所以选用的开发环境是VisualBasic6.0。
第二章课题的选题依据和主要的研究任务
第一节选题依据
圆柱齿轮在机械设计当中应用广泛,雷同率高,每次设计都需要根据不同尺寸重复性绘制使设计人员精力大部分集中在绘图上,设计周期较长。
而利用VB设计的参数化绘制系统,可以加速齿轮的绘制过程,减少设计人员的重复性劳动,使设计人员的精力集中于机构和成体性能的设计。
程序版本及运行环境分别为CATIAV5R20、MicrosoftVisualBasic6.0中文版、Windowxp。
第二节研究任务
1.圆柱齿轮的设计计算
2.圆柱齿轮三维参数化建模
3.用VB语言对CATIA零件实体设计的语言描述
4.用CATIA编程实现齿轮的实体建模
第三章VB6.0应用简介
VB6.0全称为VisualBasic6.0,是微软公司于1998年推出的可视化编程工具之一,是目前世界上使用最广泛的程序开发工具之一。
结构简单,编写程序对系统的资源占有极低,是程序编写者编写小型程序的第一选择!
VisualBasic,简称VB,是Microsoft公司推出的一种Windows应用程序开发工具。
是当今世界上使用最广泛的编程语言之一,它也被公认为是编程效率最高的编程方法之一。
无论是开发功能强大、性能可靠的商务软件,还是编写能处理实际问题的实用小程序,VB都是最快速、最简便的方法。
VisualBasic中的“Visual”指的是采用可视化的开发图形用户界面(GUI)的方法,一般不需要编写大量代码去描述界面元素的外观和位置,而只要把需要的控件拖放到屏幕上的相应位置即可;“Basic”指的是BASIC语言,因为VB是在原有的BASIC语言的基础上发展起来的,至今包含了数百条语句、函数及关键词,其中很多和WindowsGUI有直接关系。
专业人员可以用VisualBasic实现其它任何Windows编程语言的功能,而初学者只要掌握几个关键词就可以建立实用的应用程序。
VB提供了学习版、专业版和企业版,用以满足不同的开发需要。
学习版使编程人员很容易地开发Windows和WindowsNT的应用程序;专业版为专业编程人员提供了功能完备的开发工具;企业版允许专业人员以小组的形式来创建强健的分布式应用程序。
VisualBasic的功能十分强大,它是一种强大的语言,即您所能想到的编程任务,它基本都能完成。
从设计新型的用户界面到利用其它应用程序的对象;从处理文字图象到使用数据库;从开发个人或小组使用的小工具,到大型企业应用系统,甚至通过Internet的遍及全球分布式应用程序,都可在VisualBasic提供的工具中各取所需。
VB是微软公司的一种通用程序设计语言,包含在MicrosoftExcel、MicrosoftAccess等众多Windows应用软件中的VBA都使用VB语言,以供用户二次开发;目前制作网页使用较多的VBScript脚本语言也是VB的子集。
VB在目前各种编程语言共存的时代仍然以其出色的性能和长久以来积累下的大量用户而在同行业中占据重要地位。
VB从1991年诞生之日起到现在已经有七个版本了(最新.NET版)这么高的更新率,不外乎说明两个问题:
用户对VB的热衷,微软对VB的重视。
不可否认微软对市场的预测能力是极为高明的,而它强大的技术、财力支持也使它在许多以前未进入的领域,在不长的时间内有成为最有力的竞争对手。
VB语言在学习上更是有其独特的优势,特别是对初学电脑编程或者这是利用编程做一些其他工作的辅助工作。
如果你是一个对编程一无所知,而又迫切希望掌握一种快捷实用的编程语言的初学者,那选择VisualBasic没错的。
它的快捷的开发速度,简单易学的语法,体贴便利的开发环境,是初学者的首选。
VB的语法的和QBASIB语言是基本相同的,也就是说它的语法是最容易被初学者所接受的。
另外VB提供的是可视化的开发环境,我们可以象搭积木一样构建出程序的界面,而且VB提供了丰富的控件组,省去了我们自己写代码实现这些效果的麻烦,这样我们就能把更多的精力放在程序功能的实现上,所以VB学起来简单,用起来方便。
CAD软件的二次开发对工程师的综合能力要求很高,但是通常具备CAD应用经验的工程师往往不具备软件开发经验和软件开发语言,这也是现在CAD软件二次开发方面发展多集中在少数高校和研究所的原因。
而VB的简单易学,以及其可视化的开发界面对参与CAD二次开发的人士而言是个很不错的选择。
第一节VisualBasic的特点
VisualBasic极大地简化了界面的设计,它使程序员可以直观地设计应用程序的用户界面。
通过事件驱动机制,用户在界面上的任何操作都自动被映射到了相应的处理代码上。
这样,程序员可以将精力集中在程序功能的实现上,无须像以前那样需要耗费大量的精力为界面编写代码。
例如:
当用鼠标单击一个按钮时,用户并不需要知道这个过程是怎样发生的,或者这个过程的代码是什么,而只需写一段代码来告诉计算机单击按钮时要执行什么命令。
因此,在程序设计中VisualBasic比以往的各种工具都简便,快速。
VisualBasic还提供了OLE(ObjectLinkingandEmbedding,对象的链接与嵌入)功能。
也就是在应用程序里,可以通过控制其它应用程序中的对象来借用他们的某些功能。
例如,建立一个VisualBasic应用程序,在这个程序中,可以使用MicrosoftExcel建立一个计算器,用MicrosoftWord建立一个报表。
另外,VisualBasic6.0中的数据访问特性,允许对SQLServer和其他企业数据在内的大部分数据库格式和前端应用程序,以及可调整的服务器端软件。
VisualBasic是一种基于对象的程序设计语言。
一个VisualBasic程序由众多的对象以及各种事件的代码组成。
当用户对对象进行操作时,就产生特定的事件。
对象在某些特定的条件下也会自动产生事件。
当事件产生时,VisualBasic程序就自动调用相应的代码来处理。
可以说,应用程序在运行的过程当中,始终在等候事件的产生并做出响应,直到用户结束整个程序为止。
VisualBasic程序的主体是众多的对象,也就是窗体、控件、菜单等。
当用户在某个对象上进行某些操作时,比如在命令按钮上进行单击鼠标,就会在这个命令按钮的对象上激发一个鼠标单击事件。
一般来说,用户的操作都是有目的的,应用程序该响应用户的操作,也就是说,程序员应该编写代码处理这些事件。
第二节VB语言应用程序界面的显示
VisualBasic极大地简化了界面的设计,它使程序员可以直观地设计应用程序的用户界面。
通过事件驱动机制,用户在界面上的任何操作都自动被映射到了相应的处理代码上。
这样,程序员可以将精力集中在程序功能的实现上,无须像以前那样需要耗费大量的精力为界面编写代码。
例如:
当用鼠标单击一个按钮时,用户并不需要知道这个过程是怎样发生的,或者这个过程的代码是什么,而只需写一段代码来告诉计算机单击按钮时要执行什么命令。
因此,在程序设计中VisualBasic比以往的各种工具都简便,快速。
VisualBasic还提供了OLE(ObjectLinkingandEmbedding,对象的链接与嵌入)功能。
也就是在应用程序里,可以通过控制其它应用程序中的对象来借用他们的某些功能。
例如,建立一个VisualBasic应用程序,在这个程序中,可以使用MicrosoftExcel建立一个计算器,用MicrosoftWord建立一个报表VisualBasic是一种基于对象的程序设计语言。
一个VisualBasic程序由众多的对象以及各种事件的代码组成。
当用户对对象进行操作时,就产生特定的事件。
对象在某些特定的条件下也会自动产生事件。
当事件产生时,VisualBasic程序就自动调用相应的代码来处理。
可以说,应用程序在运行的过程当中,始终在等候事件的产生并做出响应,直到用户结束整个程序为止。
VisualBasic程序的主体是众多的对象,也就是窗体、控件、菜单等。
当用户在某个对象上进行某些操作时,比如在命令按钮上进行单击鼠标,就会在这个命令按钮的对象上激发一个鼠标单击事件。
一般来说,用户的操作都是有目的的,应用程序该响应用户的操作,也就是说,程序员应该编写代码处理这些事件
用户界面是window应用程序最重要的部分,它是最直接的现实世界,对用户而言,界面就是应用程序。
就是评判应用程序好坏的根据。
因而我们在开发应用程序的过程中,精力主要集中在用户界面设计上。
利用VisualBasic可视化开发工具,使用户界面的设计变得更容易。
但是在保证设计的用户界面美观、实用的同时,还应考虑到与设备的无关性。
也就是开发的应用程序应该能够在不同类型的显示器上运行就象windows一样。
在不同显示分辨率与颜色浓度的计算机中运行,都能显示出漂亮的用户界面。
为达到这一点,我们在用VisualBasic设计应用程序的用户界面时。
应考虑到窗体及控件元素的安排受显示器分辨率和颜色显示能力的影响。
第四章CATIA二次开发技术概述及研究与应用
CATIAV5版本是IBM和达索系统公司长期以来在为数字化企业服务过程中不断探索的结晶。
围绕数字化产品和电子商务集成概念进行系统结构设计的CATIAV5版本,可为数字化企业建立一个针对产品整个开发过程的工作环境。
在这个环境中,可以对产品开发过程的各个方面进行仿真,并能够实现工程人员和非工程人员之间的电子通信。
产品整个开发过程包括概念设计、详细设计、工程分析、成品定义和制造乃至成品在整个生命周期中的使用和维护。
本文运用参数化三维软件CATIA对渐开线齿轮进行参数化三维建模。
通过GSD模块中的fog方式生成参数方程建立渐开线;通过镜像、剪切、特征阵列等命令建立齿形轮廓,通过拉伸、多面实体设计、开槽、实体圆周阵列等命令建立渐开线齿轮三维模型,从而达到了改变基本参数立即得到相应的渐开线齿轮三维模型的参数化驱动化设计,提高渐开线圆柱齿轮三维建模的效率。
第一节国内外研究现状
目前,国内CAD技术的应用已逐步进入高级阶段,许多用户都针对本行业的特点对CAD进行二次开发,CAD二次开发技术几乎在各个行业中都有一应用实例,并已有一些商品化软件问世。
但各行业CAD二次开发技术的发展水平存在较大差距,机械、电子、建筑、航空航天等最早应用二次开发技术,其二次开发程度也最高。
开发出的CAD系统能够集计算、参数化绘图、数据管理为一体,并直接与计算机辅助制造(CAM)和计算机辅助工艺设计(CAPP)有机结合。
目前国内已开发成功一批符合工程需要的应用软件,逐渐形成了一批具有一较高素质的研究开发队伍。
另外各高校和相关研究机构也在CAD二次开发方面作了很多成功的工作,如:
在北京航空航天大学教授成传贤、李天的指导下,其硕士研究生进行了UG系统二次开发的研究,以实现飞机复杂型面在UG中的提取;华南理工大学赖朝安博士、北京航空航天大学张景赛博士都曾进行过Pro/E二次开发关键技术研究,运用Pro/E提供的二次开发工具Pro/TOOLKIT实现由程序动态地、自动地进行特征建模的功能,所建模型能由程序自动加入较为丰富的非几何特征,并存入模型统一的数据库、特征库中,该用户定义特征的方法适用于所有的模型的程序自动建模,对其它所有的产品模型有很大的借鉴意义,其研究并开发的Pro/E与MFC的接口,突破了Pro/TOOLKIT的局限,克服了在Pro/E上进行二次开发的技术难题;辽宁工学院的李卫民、刘淑芬以及淮安市广播电视大学的张莉分别探讨了“基于SolidWorks平台的二次开发技术”等。
其他行业的CAD二次开发技术则相对落后,有的仅仅是一小部分工程技术人员的个人行为,还没有形成专门从事CAD二次开发的研究队伍。
虽然也出现了一些CAD应用软件,但大多数仅仅针对某一类型的产品或产品的一部份而开发的小型应用系统,解决的问题也比较有一限。
国外成功的CAD技术开发企业为了加快CAD技术开发步伐,都选择了高起点的CAD技术开发战略,即利用已有的技术成果,在此基础上二次开发自己的CAD技术,而不是将人力物力浪费在低水平的重复开发上,这样既可以提高效率,又能保证自己的产品具有一较高的技术含量和水平。
第二节CATIA二次开发的几种方式
作一般而言,对CAD产品的二次开发工具主要有两火类:
(1)是基于OLEAutomation的工具,即第三方工具,如开发AutoCAD的VBA和autolisp技术;
(2)是CAD软件本身所提供的开发平台。
同样CATIA接口也通过这两种方式与外部程序通信:
进程内应用程序(In—ProcessApplication)方式和进程外应用程序(Out—ProcessApplication)方式。
我们所说的二次开发大部分都是指的进程外开发方式。
在此方式下,CATIA提供了多种二次开发的接口,最主要的有两种方法,一种是开放的基于构件的应用编程接口CAAV5技术,另一种是自动化对象编程CATIAAutomation技术。
前者是基于CATIA已有组件的定制开发,后者是交互方式的定制开发。
两者的共同特点是程序脚本均由第三方软件开发,通过CATIA提供的连接组件实现两者之间的通信。
CATIAAutomation技术-CATIA自动化是一种在解释环境下执行,在COM基础上文现的技术,继承了COM的与语言无关、进程透明特点,简化了COM的底层细节,应用更加广泛。
COM是一种二进制兼容规范,使不同语言开发的组件在二进制可执行代码级基础相互通信,增强了代码的重用性,提高了编程效率。
这一技术的主要思想就是用一种程序去控制另一种程序,Automation并不能直接地获取和处理数据,只能间接地通过开放的对象、方法和属性,来获取、设置和处理数据。
在进行CATIA的二次开发之前,还应清楚两个问题。
(1)选择合适的开发语言。
(2)对CATIA编程的整体流程有一个清晰的思路。
CATIA的几种二次开发方式中主要用到的是后四种,它们对开发人员的要求层次大致如图4.1所示:
图4.1CATIA不同二次开发方法
第三节AutomationAPI二次开发
可以用于自动化(Automation)组件,使用VBScript作为编辑工具,这是一种交互方式的定制。
可以记录用户的操作过程,自动生成代码。
CATIA提供了AutomationAPI用于VBScript对CATIA的二次开发,AutomationAPI具备了与任何OLE所兼容的平台进行通讯能力。
自动化应用接口可以调用“InputBox”和“MsgBox”函数获取用户输入信息和进行输出,而对于NT用户则可以应用VisualBasic来定义更为复杂的输入输出面板。
运行的时候可以给宏关联一个图标,并置入CATIA显示框架。
这种方式的开发流程如图4.2中所示。
图4.2CATIAAPI方式开发流程
Application主要对象:
要对CATIA进行操作,首先是要连接它的com接口,一般是要用到GetObject,当然这种方法必须是在CATIA已经运行的前提下,如果CATIA没有运行,那么就要用到CreatObject启动CATIA。
为了避免发生问题通常将2种方法合用,即:
DimCATIA'AsObject
OnErrorResumeNext
SetCATIA=GetObject(,"CATIA.Application")
IfErr.Number<>0Then
SetCATIA=CreateObject("CATIA.Application")
CATIA.Visible=True
EndIf
OnErrorGoTo0
Documents和Document对象:
在CATIA中,文档有很多的类型,包括零件(Part),产品(Product),工程图(Drawing)等,这些不同的文档格式基于Microsoft的多文档标准。
它去除了传统的V4会话,模型和EXP文件格式。
一般可以通过Add的方法新增一个文档,程序如下所示:
DimoPartDocAsDocument
SetopartDoc=CATIA.Document.Add(“Part”)
其中Add的参数可以是Part,Product,Drawing三种,分别对应的是零件文档,产品文档和工程图文档。
当然对于已经存在的文档可以用open的方法打开,代码程序如下:
DimOpartDocAsDocument
SetOpartDoc=CATIA.Documents.Open(FileName)
而对于FileName参数必须加上完整的路径。
采用ActiveDocument属性来获取当前活动的文档,这时要加上一定的错误控制,因为CATIA不一定有当前打开的文件。
下面是典型的代码程序:
OnErrorRusumeNext
SetOpartDoc=CATIA。
ActiveDocument
IfOpartDocIsNothingThen
Err.clear
SetOpartDoc=CATIA.Documents.Add(“Part”)
EndIf
OnErrGoTo0
在获取Document对象后,就可以对它进行各种各样的操作,比如保存,另存为,关闭。
在保存文档时,另存为不能把文档保存为另一种格式。
例如把当前的文档以IGESDoc为名称,在当前的目录输出为IGES格式:
程序代码OpartDoc。
ExportData(“IGESDoc”,“igs”)
Cameras和Camera对象
主要是针对零件文档和产品文档来说的,对与工程图没有这个概念。
Cameras和Camera对象的关系就像Documents和Document对象关系一样,Cameras对象可以包含Camera2D和Camera3D两种对象。
可以用Count属性得知当前文档中视点个数,这其中也包含自定意义视点。
程序代码:
DimmyCam3dAsCamera3D
MsgBoxOpartDoc.Cameras.Count
Fori=1toOpartDoc.cameras.count
SetmyCam3d=OpartDoc.Camera.Item(i)
MsgBoxmycam3d.Name
Next
Windows和Window对象
一个