solidworks二次开发毕业论文 超好_第1页
solidworks二次开发毕业论文 超好_第2页
solidworks二次开发毕业论文 超好_第3页
solidworks二次开发毕业论文 超好_第4页
solidworks二次开发毕业论文 超好_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第- -页毕业设计摘要:SolidWorks是一种非常优秀的三维机械设计软件,但是它缺少国家标准零件库,为机械设计工作带来了不便。VB是一种简单易学,而且功能强大的高级编程语言,Access是一种容易使用,而且功能强大的数据库管理系统。SolidWorks提供了基于OLE自动化技术的API函数,可以使用VB为它进行二次开发。螺纹联接的国家标准数据可以使用Access来管理。使用VB为SolidWorks开发螺纹联接国家标准零件的专用模块,配合Access管理的国家标准数据,就可开发出针对SolidWorks的国家标准零件库模块。把模块编译成SolidWorks的插件,然后用菜单的方式挂到Sol

2、idWorks系统中,可以使螺纹联接国家标准零件模块的使用更加方便。关键词:标准零件标准零件库螺纹联接标准零件库二次开发SolidWorks毕业设计Abstract:TheSolidWorksisarealfair3Dmachinedesignsoftware,ButitbeindefectoftheLibofthenationalstandardparts,thatworkstobringformachinedesignveryinconvenient.VBisaeasilystudy,andpowerfulcomputerhighclasslanguage,Accessisaneasyus

3、age,andpowerfulDBMS.TheSolidWorksprovidedmassAPIfunctionsbasetheOLEAutomationtechnique,CanbeusetheVBtodevelopmenttwotimesforit.ThenationalstandarddataofthethreadlinkercanusetheAccesstomanage.CanbeusetheVBdeveloptheLibofthenationalstandardpartsofthreadlinkerforSolidWorks,andtheNationalstandarddatatha

4、tmanagebyAccess,CandeveloptheappropriationmoldsoftheLibofthenationalstandardpartsofthreadlinkerforSolidWorks.LettheappropriationmoldseditandtranslateitbetheAdd-insoftheSolidWorks,thenusethemenutohangintheSolidWorkssystem,andcanmaketheLibofthenationalstandardpartsofthreadlinkermoreconvenient.Keywords

5、:Thestandardparts;TheLibofthestandardpartsTheLibofthenationalstandardpartsofthreadlinker;Twotimesdevelopment;SolidWorks第一章绪论SolidWorks系统简介目前,在我国的CAD市场上比较流行的三维CAD软件有SolidWorks、MDT、UG、Pro/ESolidEdge等。但就价位来讲SolidWorks、MDT、SolidEdge是中低档价位的产品,UG、Pro/EIDEAS是高中档价位的产品。SolidWorks是一套基于Windows的CAD/CAE/CAM/PDM桌

6、面集成系统,是美国SolidWorks公司在总结和继承了大型机械CAD软件的基础上,在Windows环境下实现的第一个机械三维CAD软件,于1995年11月研制成功。它全面采用非全约束的特征建模技术,其设计过程全相关性,可以在设计过程的任何阶段修改设计。同时牵动相关部分的修改。它即提供自底向上的装配方法,同时还提供自顶向下的装配方法。自顶向下的装配方法使工程师能在装配环境中参考装配体的其他零件的位置及尺寸设计新的零件,更加符合工程习惯。它具有独创性的“封装”功能,可以分块处理复杂的装配体。具有产品配置功能,为用户设计不同构性的产品。它集成了设计、分析、加工和数据管理过程,所获得的分析和加工模拟

7、结果成为产品模型的属性,在SolidWorks的特征管理器中清晰的列出了详细的数据信息。它还可以动态模拟装配过程,进行静态干涉检查、计算质量特征,如质心、惯性矩等。它将2D造型绘图与3D造型技术融为一体,能自动生成零件尺寸、材料明细表(B0M)、具有指引线的零部件编号等技术资料,从而简化了工程图样的生成过程。同时有中英文两种界面可以选择,其先进的特征树结构使操作更加简便和直观。具有交好的开发性接口和功能扩充性。能轻松实现各种CAD软件之间的数据转换传送。目前,SolidWorks的全球用户超过20万,国外大多数制造公司招聘时都要求应聘人具备操作SolidWorks的能力。国际上很多一流的名校都

8、将SolidWorks定为大学本科学生的必修课,如麻省理工学院、英国剑桥大学等。95%的西方企业要求员工回运用SolidWorks软件,SolidWorks连续几年被美国一些杂志评为优秀的CAD软件。但是SolidWorks也并非十全十美,不可能满足特定企业的特殊要求。例如,由于该软件是外国人写的,不适合中国的国标,如标题栏、明细表、放大图的标注、剖视图的标注、装配图的序号等。也没有适合我国国标的标准件库。因此,为了适应特定企业的特殊要求,形成企业自己的特色,使SolidWorks在我国的企业中有效的发挥作用,并使常用的或是重复的任务自动化,提高效率,就必须对其进行本土化和专业化的二次开发工作

9、。SolidWorks系统具有如下的特点:具有独特的特征管理员,提供的特征管理员设计历史树同具体的实体模型是实时的动态联接;具有强大的实体建模功能和直观的Windows用户界面;支持Windows的DDE机制和OLE技术;支持Internet技术,可以共享设计数据;双向关联的尺寸驱动机制;提供了VB,VC+和其他支持OLE的开发语言接口;给基于Windows的桌面集成赋予了新的含义。它以Windows为平台,集成了动态仿真软件(Motionworks)、工程分析软(CosMo-SolidWorksorks)、数控加工软件(SurfCAM)、以及工程数据管理软(SmarTeamWorks)等,使

10、它们成为SolidWorks家族中的一员。这些软件的数据可以相互传递共享。而且SolidWorks公司还设有网上站点,可方便用户快速了解此系统的最新发展情况,或获得最新的技术支持。造型功能SolidWorks提供了新一代的造型功能,它包括了草图和实体,参数化特征造型技术。提供丰富的基本特征,并且提供用户自定义特征的功能。SolidWorks支持强大的三维参数化设计功能,可以方便地在设计的任何阶段修改零件.绘图功能工程绘图系统Drawing主要用于三维模型的工程图纸绘制与输出,可同时编辑多张图纸。当设计人员建图纸文件时,可以将PART文件上的特征历史树的总结点用鼠标点取移动到图纸文件上,图纸文件

11、上自动生成三视图。绘制的图纸上可以自动标注尺寸信息。图纸与模型是相互关联的,当模型上的尺寸或造型变化时,图纸也相应改变。视图包括标准视图、投影视图、一般视图、局部视图以及剖面视图,是零件或装配体在图纸上的某种形式的投影。在视图上可以增加或删除符合国标的工程标注。本系统随时维护三维模型与二维绘图的一致性注释及辅助线段、圆注释和辅助的线段、圆用于给图纸增加一些视图中未给出的信息,如加工注意点、材料选择等。装配功能SolidWorks中装配的功能是由用户指定装配体中各零件之间的装配约束关系,将零件装配成装配体。装配系统不但可以将零件装配起来,也可以读入已经装配好的装配体,作为子装配体进行装配;子装配

12、体在装配过程中可以视为一个整体,等效于一个零件。SolidWorks可以模拟仿真装配的全过程。二次开发虽然SolidWorks所提供的功能非常强大,但要使其在我国企业中真正发挥作用,就必须对其进行本地化、专业化的二次开发工作。为了方便用户进行二次开发,SolidWorks提供了几百个API函数,这些API是SolidWorks的OLE或COM接口.用户可以使用高级语言对其进行二次开发,建立适合用户需要的、专用的SolidWorks功能模块。SolidWorks是一个非常开放的系统,提供了VB,VC+和其他支持OLE的开发语言接口。提供给用户必要的工具(宏语言、库函数等)以开发个人化的应用模块,

13、并且易于将它集成到系统中去。用VB或VC+调用SolidWorks的API函数,可以完成零件的建造、修改;零件各特征的建立、修改、删除、压缩等各项控制;零件特征信息的提取,如特征尺寸的设置与提取,特征所在面的信息提取及各种几何和拓扑信息;零件的装配信息;零件工程图纸中的各项信息;还可在SolidWorks主菜单上增加按钮,将自己开发的应用模块嵌入到它的管理系统中。系统开发的目的与意义如前所述,SolidWorks虽然拥有强大的功能,适当的价位,但是也分并非是十全十美。不可能满足特定企业的特殊要求。例如,由于该软件是外国人写的,不适合中国的国标,如标题栏、明细表、放大图的标注、剖视图的标注、装配

14、图的序号等。也没有适合我国国标的标准件库。因此,为了适应特定企业的特殊要求,形成企业自己的特色,使SolidWorks在毕业设计我国的企业中有效的发挥作用,并使常用的或是重复的任务自动化,提高效率,就必须对其进行本土化和专业化的二次开发工作。SolidWorks系统提供数据操纵接口函数API,专门读写三维零件数据,并提供了一系列的Automation接口(包括对象、属性和方法),使用户进行二次开发更加容易。运用Automation技术使得在自己的应用程序中驱动三维CAD系统中的零件变的有可能而且容易。综上,SolidWorks没有适合我国国家标准的标准件库,在设计工作中在机械设计中,对标准件模

15、型的需求量是相当大的。而标准件是可重用模型,每每需要时可以实时建模,但这显然是一种资源的浪费。为了提高设计工作的效率,有效利用设计人员人力资源,同时更加强化SolidWorks的本土化程度,为其开发GB标准件库将有着非常的意义。论文工作的主要内容本次设计的题目为螺纹联接CAD系统的标准件库开发,使用VB为SolidWorks系统开发了一个螺纹联接标准件系统。设计过程中需要熟悉VB、Access数据库管理系统以及SolidWorks系统和它的二次开发方法等。本次论文工作的主要内容如下:简要介绍SolidWorks系统;SolidWorks系统的二次开发及其API函数;VB对SolidWorks的

16、二次开发方法;Access数据库管理系统在标准件库开发中的应用;螺纹联接标准件库的开发;SolidWorks系统插件菜单的开发;为完善标准件库系统的功能而为其开发的受力分析模块;第二章Solidworks的二次开发及其API函数简介相关术语为了方便用户进行二次开发,SolidWorks提供了几百个API函数,这些API是SolidWorks的OLE或COM接口,用户可以使用VB/VC等高级语言对其进行二次开发,建立适合用户需要的、专用的SolidWorks功能模块。要顺利对SolidWorks进行二次开发,以下的基本术语是需要知道的。OLE技术OLE就是对象的嵌入与连接,它使得应用程序之间能够

17、通过数据的嵌入或连接的方式来共享数据。含有嵌入或连接文档的应用程序被称为容器程序,提供文档数据编辑的应用程序被称为服务器程序。0LE2.0推出以后,OLE已经不再是对象的嵌入和连接的缩略词。不妨认为ActiveX是OLE3.0,事实上ActiveX是OLE在网络上的扩展,它使用了OLE技术并且超过了本地机器的范围。自动化技术Automation是OLE技术的一个重要内容。直到今天,自动化技术扩充和发展为ActiveXAutomation,它适用于OLE对象和ActiveX对象。自动化技术由客户程序和服务器程序组成,客户程序是操纵者与控制者,服务器程序是被控制者,它包含了一系列的暴露对象。服务器

18、应用程序通过自身对象的属性、方法、事件外显其功能;对象的服务器程序简单而抽象的代表。而客户应用程序则通过操纵服务器应用程序所暴露的一系列对象来操纵服务器应用程序。只要服务器程序提供一定的接口,可以使任何对象实现自动化。对象包含的一些外部接口,它们被称为方法与属性。方法是自动化对象的一些函数,它们是提供给客户程序的外部公共成员函数,属性是一个对象的一些命名特性,即对象的一些共有数据域。操纵程序被称为客户(Client),而被操纵程序称为服务器(Server),被操纵的对象是ActiveX对象如果应用程序支持OLE技术,则在不同应用程序之间的切换由OLE自动完成。SolidWoks支持OLE标准,

19、完全实现了OLE自动化,前已提及,SolidWoks具有开放的结构体系,它的这种开放性体现在它所提供的API对象上。API是一个对SolidWoks的应用编程接口(ApplicationProgrammingInterface),包含了几百个对象及其属性、方法和事件,这正是SolidWoks为用户提供的功能强大的二次开发接口,凡支持OLE编程的开发工具,如VisualC+、VisualBasic、Dephi等均可从各自本身操作这些对象,从而直接行使SolidWoks的功能,如画一条直线,拉伸一个凸台,或修改一个表面的参数等。利用这种方法可以完成SolidWoks的二次开发,仓U建出用户定制的、

20、专用的SolidWoks功能模块。在本课题中,我们用VB来控制SolidWoks提供的各种对象,即把VB作为客户程序,SolidWoks作为服务器程序。ActiveX技术ActiveX是微软新近提出的一种技术,它以COM为基础,其中包括了OLE技术以及应用于internet的多种技术。它使得不同的进程,甚至是网络上的进程之间相互通信,并朝着多媒体方向发展。ActiveX是一种面向对象的组件系统,其中包括了组件软件的各个方面,有复杂文档、自定义控制、OLE自动化、交互应用程序脚本、数据传送及其他分布软件的相互作用。这些组件对象为用户提供了不同的功能,使得不同的软件供应商提供的组件可以在二进制之间

21、进行相互的连接和通信。对象通过接口实现组件之间以及组件与系统之间的相互作用。在桌面系统进行软件交互时,除了系统提供的标准控制外,OLE控件是一个重要的组成部分。ActiveX是一种标准,利用这个标准可以使用通过不同的语言开发的软件构件在单机或网络环境中相互操作。同时,ActiveX也是以组件对象模型为基础的开放技术的集合,它代表了应用程序与internet的一种集成策略。OLEAutomation技术自动化技术(Automation)为软件之间的交互创造了条件,它允许多个应用程序或组件之间进行通讯和交互,而与它们的语言、分布和原始平台无关。在开发标准件库时,运用OLE(ObjectLinkin

22、gandEmbedding)Automation技术,无疑会减小开发的难度,使系统更加稳定可靠。SolidWorks系统提供数据操纵接口函数API,专门读写三维零件数据,并提供了一系列的Automation接口(包括对象、属性和方法),使用户进行二次开发更加容易。运用Automation技术使得在自己的应用程序中驱动三维CAD系统中的零件变的有可能而且容易。尺寸驱动原理本论文对标准件建模采用尺寸驱动原理,即标准件的生成也是对相应标准件模板进行尺寸驱动的过程。尺寸驱动即在零件拓扑结构不变的情况下,把零件的尺寸参数定义为尺寸变量,并定义出变量间的关系,当给定不同的尺寸值,就可得到一组结构相同而尺寸

23、不同的零件,每一类标准件对应一个模板文件,在模板文件中定义尺寸变量和变量间的关系。由于三维CAD都采用了参数化的设计方法,在开发标准件库时没有必要再做尺寸约束求解,所以零件的最后生成可以依靠系统参数化功能来实现,即通过用新的尺寸值对实现准备好标准件模板进行尺寸驱动来生成一个新的标准件。在工程实践中用到的具有系列尺寸的标准件,其尺寸参数可分为独立参数和非独立参数,独立参数中包含了主驱动参数(称之为基本参数)和自定义特性参数。一般只要给定独立参数,即可唯一确定零件的全部几何参数(非独立参数可由主驱动参数从标准件特性参数库中取得)。例如GB5780-86,其螺纹规格,螺杆长度,螺纹长度为三个独立参数

24、,由用户根据自身需要进行选取。螺纹规格确定之后,螺栓的六角头厚度,扳手宽,倒角半径等尺寸即可从特性参数库中获得,从而可以对形状模式库中的对应的形状模型进行尺寸驱动,实现零件建模。SolidWorks的API函数介绍SolidWorks的对象模型相关术语对象类定义了具有相同结构和操作的一组对象,其最基本的特征是封装和继承。作为一种抽象数据,对象把实体的相关特征和操作封装在一起,允许人们以自然的方式去模拟外部实体的结构和行为;继承是对象类实现可复用性和可扩充性的重要特征。一个对象类可以定义为另一个更一般的特殊情形,这个对象类是特殊对象类的父类(SuperClass),或者说,毕业设计特殊对象是这个

25、一般对象的子类(SubClass),子类继承父类的所有属性和操作,除此以外子类还可以定义自己特有的属性和操作。继承是对象类的一种特例化关系,亦即集合包含关系,子类对象实例集合是父类对象实例集合的子集。对象模型SolidWorks的对象模型是一个多层次的对象网络,如图2.1所示。最高级别的对象类是SldWorks,该对象中封装了很多方法(Methods),女如0penDoc2、ActivateDoc2、CloseDoc、ExitApp,下面又创建了许多子类,如ModelDoc、Environment、Frame。本文将重点介绍ModelDoc对象,因为大部分绘图操作都在ModelDoc对象中,女

26、如SelectBylD(选择)、CreateCircle2(画圆)、CreateLine2(画直线)。ModelDoc中又创建了PartDoc、AssemblyDoc、DrawingDoc等子类。其中大部分实体建模操作都在PartDoc对象中,如FeatureExtrusion(拉伸)、FeatureRevolve(旋转);而相关的装配操作如AddComponent(插入零部件)、AddMate(插入配合)等都在AssemblyDoc对象中。对象的属性和方法在SolidWorks创建的对象中,每个对象都有自己的属性和方法,通过调用API函数实现,反过来,应用SolidWorks的每一步操作都体

27、现在特定的对象类中。下面以VB为开发平台介绍其一些常用的API函数。连接SolidWorks在对SolidWorks进行二次开发时,首先要建立SolidWorks的连接,创建SolidWorks的应用对象:DimswAppAsObjectSetswApp=CreateObject(“SldWorks.Application)通过这个函数,就打开了SolidWorks的接口,可以调用它的API函数了。建立新的零件图、装配图创建零件图:DimPartAsObjectSetPart=swApp.newpart创建装配图:DimAssemAsObjectSetAssem=swapp.NewAssemb

28、ly这两个函数创建了一个新的工作区,使我们能够进行建模和装配。选择“选择”可以说是在使用SolidWorks时用得最多的一个命令,有很多命令在使用时都要选择操作对象,通过调用ModelDoc对象中的SelectBylD函数来实现:ModelDoc.SelectByID(objectName,objectType,x,y,z)这个函数在应用时需要输入五个参数:objectName表示要选择对象的名称,该名称是SolidWorks在创建对象时按先后顺序自动命名的,如基准面1、基准面2、Arcl、Line3、D1草图1Part1.SLDPRT;objectType要输入对象的类型,如PLANE(面)

29、、SKETCHSEGMENT(草图上的对象如直线、圆弧等)、DIMENSION尺寸标注);x,y,z是平面上任一点的坐标值。插入草图在所选平面上插入草图,调用ModelDoc中的InsertSketch函数:ModelDoc.InsertSketch()基本草图绘制命令画直线调用ModelDoc对象中的CreateLine2函数:ModelDoc.CreateLine2(xStart,yStart,zStart,xEnd,yEnd,zEnd).ConstructionGeometry=TruexStart、yStart、zStart、xEnd、yEnd、zEnd分别是直线的起点和终点坐标;Co

30、nstructionGeometry二True时表示画中心辅助线。画圆调用ModelDoc对象中的CreateCircle2函数:ModelDoc.CreateCircle2(xc,yc,zc,xp,yp,zp)xc、yc、zc、xp、yp、zp分别是圆心和圆上一点的坐标值。标注尺寸先通过SelectBylD函数选择要标注的对象,再调用ModelDoc中的AddDimension函数:ModelDoc.AddDimension(x,y,z)x、y、z为尺寸文本所要放的位置的坐标值。基本实体建模命令拉伸调用PartDoc中的FeatureExtrusion函数:PartDoc.FeatureEx

31、trusion(sd,flip,dir,t1,t2,d1,d2,dchk1,dchk2,ddir1,ddir2,dang1,dang2,offsetReversel,offsetReverse2)sd为TRUE时表示单向拉伸,为FALSE时双向拉伸,以0、1表示;dir为TRUE时表示正向拉伸,为真时有效;dir为TRUE时表示反向拉伸,为真时有效;t1、t2表示终止类型,可取下列值:0(给定深度)、1(贯穿)、2(为贯穿下一个)、3(成形到一顶点)、4(成形到一面)、5(到离指定面指定的距离)、6(两侧对称);d1,d2表示拉伸的深度;ddir1、ddir2为TRUE时表示带拔模角拉伸;da

32、ng1、dang2为TRUE时表示向内拔模,为FALSE是向外拔模;offsetRe2verse1,offsetReverse2控制到离指定面指定的距离,在t1、t2为5时有效。其中d2、dchk2、ddir2、dang2、offsetReverse2在双向拉伸时有效。旋转调用PartDoc中FeatureRevolve函数:PartDoc.FeatureRevolve(angle,reverseDir,angle2,revType)angle表示旋转的角度;reverseDir控制旋转的方向,为TRUE时表示反向,revTyp为1时无效;an2gle2表示旋转的反向角度,仅当revTyp为2

33、时有效;revTyp表示旋转类型,为0时单方向旋转,为1时双向等角度旋转,为2时双向旋转。倒角调用ModelDoc中的FeatureChamfer2Type函数:ModelDoc.FeatureChamferType(chamferType,width,angle,flip,otherDist,vertexChamDist1,vertexChamDist2,vertexChamDist3)chamferType控制倒角的类型,可取下列值:1(角度-距离控制)、2(距离-距离控制)、3(顶点-倒角控制)、4(两边等距离控制);width表示倒角边距;angle表示倒角角度,仅当chamferTy

34、pe1为1时有效;otherDist表示chamferType为2时的另一边距;vertexChamDist1、vertexChamDist2、vertex2ChamDist3表示chamferType为3时的三个距离。基本装配命令零件的建模完成后,即可进行零件的装配,先调用swApp中的NewAssembly函数新建一个空白装配文档,再通过调用AssemblyDoc中的AddComponent函数插入零部件:AssemblyDoc.AddComponent(compName,x,y,z)compName表示要加入组件的路径及名称;x,y,z表示组件在装配文档中放置的位置。插入配合调用Asse

35、mblyDoc中的AddMate函数:AssemblyDoc.AddMate(mateType,align,flip,dist,angle用mateType控制配合类型,可取下列值:0(重合)、1(同轴心)、2(垂直)、3(平行)、4(相切)、5(距离)、6(角度);align控制两配合面的方向,0(同向对齐)、1(反向对齐)、2(最近处);flip为TRUE时表示延缓配合;dist控制mateType为5时的距离;angle控制mateTyp为6时的角度。添加菜单为了操作方便,把生成标准件的功能挂到Solidworks装配环境的菜单和工具栏上,在菜单上的提示为各标准件的名称,在工具条上的提示

36、则为图标,用户要插入某个标准件时,只需在菜单或工具条上进行选择,然后由开发的程序调用相应的标准件功能模块0Solidworks的SldWorks对象,为VB对Solidworks工作环境进行访问处理提供了接口。通过此对象可以对Solidworks工作环境添加菜单、删除菜单、添加工具条、打开文件、新建文件、退出Solidworks系统等功能,这里主要是通过使用SldWorks对象的Addmenu和Addmenuitem方法来在Solidworks工作环境中添加菜单和下拉子菜单及功能模块的调用;通过使用SldWorks对象的Addtoolbar和AddToolbarCommand方法来完成在Sol

37、idworks工作环境中添加工具条和完成对应标准件功能模块的调用。ImplementsSWPublished.SwAddinDimiSldWorksAsSldWorks.SldWorksDimiCookieAsLongbRet=iSldWorks.SetAddinCallbackInfo(App.hInstance,Me,iCookie)bRet二iSldWorks.AddMenu(swDocNONE,螺纹联接(&L),3)bRet二iSldWorks.AddMenultem2(swDocN0NE,iCookie,螺栓库(&S)螺纹联接(&L),-1,LS_Item,LS_ItemUpdate

38、,螺栓标准件库)毕业设计bRet二iSldWorks.AddMenuItem2(swDocPART,iCookie,螺栓库(&S)螺纹联接(&L),-1,LS_Item,LS_ItemUpdate,螺栓标准件库)关于菜单插件的具体具体实现方法将在后面谈到。更多的SolidWorks的API函数介绍在这里只是简要的介绍SolidWorks的API函数,不可能作到全面的认识或是熟悉这些API要了解更多的API知识可以查看SolidWorks的API和插件帮助主题,如图2.2。图2.2VB开发SolidWorks基本原理SolidWorks支持ActiveXAutomation技术,VB环境下建立的

39、客户程序可以直接访问SolidWorks中的对象。ActiveXAutomation是Microsoft公司提出的一个基于C0M(ComponetObjectModel)的技术标准,是以前的OLE(ObjectLinkingandEmbeding)技术的更高层次的发展,ActiveXAutomation被开发出来的原因就是需要协调不同的应用程序。Windows本身准许同时运行多个应用程序,ActiveXAutomation准许这些应用程序互相通讯。每个应用程序可以决定哪些信息和功能可以公布或者暴露给系统上的其它应用程序。虽然ActiveXAutomation总是在两个应用程序之间安排对话,但是

40、这个对话不是双向的,也是不平等的。ActiveXAutomation程序的每一块都包括两个程序,起不同的作用,客户机是开始对话的应用程序,服务器是响应客户机的应用程序。代码在客户机上运行,而这个代码所控制的动作由服务器执行。在这里我们将SolidWorks理解为一个服务程序,把二次开发毕业设计工具的VB程序作为客户程序,它们之间是服务器与客户的关系。用户只要在VB上进行操作,VB就驱动SolidWorks完成相应的工作。SolidWorks为二次开发提供了大量的API对象,这些对象涵盖了全部的SolidWorks的数据模型,通过对这些对象属性的设置和方法的调用,就可以在用户自己开发的DLL中实

41、现与SolidWorks相同的功能。SolidWorks中常用的主要ActiveXAutomation对象有SolidWorks的BodyParameter、Sldworks、Part、Face和Feature对象等。Sldworks对象为VB对SolidWorks工作环境进行访问处理提供了接口。通过此对象可以对SolidWorks工作环境添加菜单、删除菜单、添加工具条、打开文件、新建文件、退出SolidWorks系统。用VB调用SolidWorks中的API函数,还可以完成零件的建造和修改;零件各特征的建立、修改、删除和压缩等各项控制;零件特征信息的提取,如特征尺寸的设置与提取,特征所在面的

42、信息提取及各种几何和拓扑信息;零件的装配信息;零件工程图纸中的各项信息等。图2.3对SolidWorks进行二次开发。开发方法主要有两种方法:一是用人机交互形式建立模型,设置合理的设计变量,再通过VB程序驱动设计变量实现模型的更新,这种方法编程较简单,通用性好;二是完全用程序实现三维模型的参数化设计以及模型的编辑,这种方法编程较前者复杂,但可以实现对具有复杂形体的零件造型,如生成精确的渐开线齿轮齿廓。开发过程首先针对要建立的实体分析结构,在SolidWorks中创建实体并标注参数尺寸,主要是各特征的驱动尺寸,标注尺寸的大小是建立实体时的实际尺寸,SolidWorks会自动读取,一般不要修改它,

43、但SolidWorks自动标注的尺寸名字(女口:D1,D2)在程序中难以识别,所以尺寸的名字可在标注时修改,使尺寸的名字尽量表达出特征。通过工程/引用菜单,如图2.3,为VB添加SolidWorks引用。本设计为标准件库的一般开发方法,对致力于SolidWorks二次开发的人员,具有一定的参考价值。第三章系统的总体设计标准件库系统规划设计思想与开发目标随着现代化生产不断发展,机械设计中标准件的数量日益增多,这主要的因为采用标准件,给产品的设计、制造、装配带来了很大的方便。在使用CAD进行设计的过程中,如果设计人员可以从标准件库中获得满足设计要求的标准件,则会大大减少重复劳动,提高设计效率,缩短

44、新产品的研制周期。但是,由于三维CAD系统在我国的研究起步较晚,三维标准件库的研究和开发工作相对国外也有差距,大多数商品化CAD系统并未提供标准件库,包括著名的外国产品如UG,SolidEdge等。有少数商品化系统提供了标准件库,打算其数据格式是开发商自己定义的专用格式,不能满足集成的需要。综上所述,在SolidWorks中有必要添加这样一个三维标准件库:它具有常用的标准件、通用件;具有建库、扩展标准件的能力;标准件库的代码少而精干,采用的技术应便于实现与其他系统的继承;具有良好的人机交互界面,易学易用。专门应用领域的用户可用它扩充自己所需要的标准件和通用件,既可减少开发费用,又可提高开发效率

45、和质量。标准件的系列化,通用化和标准化程度高,对具体的某一类标准件来说,它们的结构都是固定不变的,所不同只是产品的结构尺寸。为此可以设想,我们用有关标准件的所有信息包括几何特征信息和其他信息建立一个标准件数据库,当需要用到标准件时,由CAD系统自动查询图形数据库或由相应的软件计算出绘图所需要的全部数据,并自动完成标准件的实体建模。即标准件库的设计基于这样一个前提:查询与绘制工作为后台服务,对用户透明,其目的是让用户进行最简单的操作即可得到由系统生成的标准件,并可查询到与标准件有关的信息。3.1.2标准件库的总体结构SolidWorks环境下标准件库的系统结构,其中有系统主体和用户界面、Soli

46、dWorks菜单标准件GB数据库、标准件模板零件文件库三个部分。其核心部分为系统主体和用户界面,下面分析各个部分的功能。1、系统主体和用户界面:用户与标准件库进行交互的窗口,可以从中输入所需要的标准件的主参数,进行实体建模或查询;2、SolidWorks菜单:通过SolidWorks菜单直接调用标准件库模块,使之和SolidWorks融为一体,更加方便操作;3、标准件GB数据库:为标准件的生成提供具体的尺寸信息;4、标准件模板零件文件库:为标准件的生成提供模板文件,文件中完整定义了标准件的几何约束。标准件模板零件文件配合标准件GB数据就可以生成用户需要的特定类型和尺寸的标准零件。毕业设计系统功

47、能分解系统主体数据查询与计算模块该部分是系统的数据处理核心。用户作出了适当的操作后,智能判断操作的顺序和要求。用户选择了特定的零件与参数后,系统首先运行该模块,利用ADO技术与数据库交互,查询到满足用户要求的特定数据记录,然后根据情况,完成计算任务,生产造型必须的最终数据。用户的操作或是选择有时候也最终数据的一部分。在造型前,用户还有一次机会对数据进行必要的修改,但是不建议进行该项操作。实体造型模块数据处理成功完成后,接着就应该运行该模块了。在这里首先是创建SolidWorks的对象变量,加载几个SolidWorks的库文件,利用OLE技术,让VB与SolidWorks取得联系。让SolidW

48、orks打开模板文件,修改模板零件尺寸为用户选择或是最终修改后的尺寸值。SolidWorks重新建模,并生产新的文件后保存这就是最终零件文件受力分析校核模块该部分是系统功能的扩展,在这里首先要求选择受力的情况,接要求输入选定受力情况下的工作载荷或是力的大小,然后选择材料,强度级别,安全系数等,最后该模块就可以计算出螺栓或是螺柱或是螺钉的小径,并完成校核。根据小径查询数据库确定公称直径d完成了受力分析和校核计算后,系统将引导至数据查询与计算模块。数据库GB数据库是系统数据存储和管理中心,GB标准体现为数据表格,为了简约表达数据间的复杂关系,其表格往往都不是简单的二维表格。而现在流行的关系性数据库

49、管理系统都是以简单的二维数据表基础。将GB数据成功导入数据库,并体现数据间的关系,是本次设计成功的关键,也是研究重点未来扩展的GB库在现行系统中其实并不存在该库,这是对数据库中的现有数据组织上的要求。优秀的数据组织方式和存储结构,可以降低程序代码的难度,优化程序的结构。同时使将来数据的扩充或是修改成为可能。资源文件图片文件作为Windows系统下的图形用户界面应用程序,适当的图形图象说明是必须的。该部分是独立于程序主体的,以文件的形式存储在特定的目录里,当系统运行时自动调用。模板文件生成标准模型并不需要每次实时造型,而应该是为每种零件生成模板文件,最后选择需要的零件型号数据,驱动模板文件重新建

50、模。生成模型文件与模板文件几何约束相同,尺寸约束相似。该部分是独立于程序主体的,以文件的形式存储在特定的目录里,当系统运行时自动调用。SolidWorks和最终零件文件系统通过OLE技术,和SolidWorks通信,SolidWorks打开指定的模板零件文件,并按照系统传递的参数修改模板零件文件的尺寸,最后重新建模,生产新的零件文件。综上,本螺纹联接标准件库系统将分解成以下几个部分:1、系统主体和用户界面,包括标准应用程序和SolidWorks菜单;2、标准件GB数据库,包含了螺纹联接标准件的GB数据;3、标准件模板零件文件库,包含了每个类型的标准零件的模板文件。以上几个部分的具体设计将在后面

51、谈到。到此,系统完成了全部规划过程。第四章系统主体和用户界面的建立本设计是用VB开发螺纹联接标准件零件库,并使用Access数据库管理系统管理数据。用VB开发界面,生成标准应用程序,同时生成SolidWorks插件,将各模块的界面挂在SolidWorks软件的主菜单上,使两个系统融为一体,应用方便快捷。本次螺纹连接标准件库公建立了包括螺栓、螺柱、螺钉、螺母以及垫圈五大类,共八小类,20项标准件。每项标准件的数据查询工作和实体造型过程是基本一致的。每个小类的标准件零件只是部分参数不同而大部分程序语句可以通用。这就要求设计统一的用户界面。同时应该在操作习惯上符合一般的操作习惯。标准EXE应用程序用

52、户界面在一个应用程序的使用过程中,由于使用者接触到的始终是用户界面,他只需要按照界面的引导来达到自己目的,并不需要了解具体的实现方法,所以,一个良好的操作界面对于一个应用程序来说至关重要的。本设计中,标准件库的界面采用窗口模式和SolidWorks菜单来实现。gSSKSSltMFORSoildWo系统(日螺栓螺拄螺钉(为在本次设计过成中,大量使用菜单,包括标准菜单和方便的弹出菜单,如图4.1。启动SolidWorks匚trl+O关闭SolidWorksCtrl+E退出系统Ctrl+X图4.1在界面设计过程中,尽可能遵循以下几个原则:提供给用户一个美观,使用简单,直观的界面;提供尽可能多的保护措

53、施,使输入信息符合标准;尽量符合不同操作人员的操作习惯;尽量将相似标准件信息在相同界面下输入,以减少截面多余。采用包含标准件的数据下拉列表框,如图4.2。让用户从中选取,而不是自己输入这样保证了用户的信息完全符合国家标准。摞栓规格:图4.24.2SolidWorks菜单的使用SolidWorks的工具菜单中选择插件,如图4.3。图4.3本次设计不但开发了标准的EXE程序,同时为了使用方便,又将工程加以改进,为Solidworks开发了菜单插件,既DLL程序。生成SolidWorks插件,将各模块的界面挂在SolidWorks软件的主菜单上,如图4.3。使两个系统融为一体,应用更加方便快捷。把生

54、成标准件的功能模块挂到Solidworks装配环境的菜单和工具栏上,在菜单上的提示为各标准件的名称,在工具条上的提示则为图标,用户要插入某个标准件时,只需在菜单或工具条上进行选择,然后由开发的程序调用相应的标准件功能模块。Solidworks的SldWorks对象,为VB对Solidworks工作环境进行访问处理提供了接口。通过此对象可以对Solidworks工作环境添加菜单、删除菜单、添加工具条、打开文件、新建文件、退出Solidworks系统等功能,这里主要是通过使用SldWorks对象的Addmenu和Addmenuitem方法来在Solidworks工作环境中添加菜单和下拉子菜单及功能

55、模块的调用;通过使用SldWorks对象的Addtoolbar和毕业设计第- -页AddToolbarCommand方法来完成在Solidworks工作环境中添加工具条和完成对应标准件功能模块的调用。本次的DLL与EXE程序功能上基本没有区别,但是DLL与EXE确实有实质上的区别。动态链接程序库,全称:DynamicLinkLibrary,简称:DLL,作用在于为应用程序提供扩展功能。应用程序想要调用DLL文件,需要跟其进行“动态链接”;从编程的角度,应用程序需要知道DLL文件导出的API函数方可调用。由此可见,DLL文件本身并不可以运行,需要应用程序调用。正因为DLL文件运行时必须插入到应用

56、程序的内存模块当中,所以要运行DLL就必须要用Solidworks来加载DLL。具体方法就是象打开文件一样用Solidworks“打开”DLL,只是在加载DLL时要选择Add-Ins文件类型。如图4.4。图4.4菜单的具体实现方法如下:在VB中新建ActiveDLL工程,如图4.5,并把标准EXE程序的窗体文件和其他模块等添加到ActiveDLL工程,然后为工程添加一个类模块,内容如下:Makesurethatareferencetotheswpublished.tlbtypelibraryexists同图2.3一样,为ActiveDLL工程引用swpublished.tlb库文件,TellV

57、BthatyouaregoingtoprovidefunctionalityfortheSwAddininterface为ActiveDLL工程获得SolidWorks对象,ImplementsSWPublished.SwAddinDimiSldWorksAsSldWorks.SldWorksDimiCookieAsLongImplementationmethodsoftheSwAddininterfacePrivateFunctionSwAddin_ConnectToSW(ByValThisSWAsObject,ByValCookieAsLong)AsBooleanDimbRetAsBool

58、eanstorereferencetoSWsessionSetiSldWorks=ThisSWstorecookiefromSWiCookie=CookieInformSWabouttheobjectthatcontainsthecallbacksbRet=iSldWorks.SetAddinCallbackInfo(App.hInstance,Me,iCookie)AddamenuitemontheframewhennodocumentsarepresentbRet=iSldWorks.SetAddinCallbackInfo(App.hInstance,Me,iCookie)Addamen

59、uitemontheframewhennodocumentsarepresentbRet二iSldWorks.AddMenu(swDocNONE,螺纹联接(&L),3)没有文档的时候显示的菜单,使用AddMenuItem2方法,其中,LS_Item,LS_ItemUpdate,是两个函数,见后面,bRet二iSldWorks.AddMenuItem2(swDocN0NE,iCookie,螺栓库(&S)螺纹联接(&L),-1,LS_Item,LS_ItemUpdate,螺栓标准件库)打开或是新建零件文档的时候显示的菜单,bRet二iSldWorks.AddMenuItem2(swDocPART,

60、iCookie,螺栓库(&S)螺纹联接(&L),-1,LS_Item,LS_ItemUpdate,螺栓标准件库)后面还有螺柱、螺钉、螺母和垫圈,和螺栓一样,故省略。SwAddin_ConnectToSW=TrueEndFunction图4.5卸载插件时删除菜单,主要使用RemoveMenu方法。PrivateFunctionSwAddin_DisconnectFromSW()AsBooleanDimbRetAsBooleanRemoveanyUIthatwasaddedearlier删除先前添加的菜单,bRet二iSldWorks.RemoveMenu(swDocNONE,螺纹联接(&L),)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论