[工学]毕业设计说明书.doc_第1页
[工学]毕业设计说明书.doc_第2页
[工学]毕业设计说明书.doc_第3页
[工学]毕业设计说明书.doc_第4页
[工学]毕业设计说明书.doc_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

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

文档简介

目 录中文摘要.英文摘要.第一章 绪论.11.1 SolidWorks系统简介.11.2 系统开发的目的与意义.41.3论文的主要内容及要求.5第二章 SolidWorks的二次开发及其API函数简介6 2.1 SolidWorks API概述.62.2 SolidWorks API函数介绍.112.2.1 SolidWorks API对象模型概述.112.2.2 对象的属性和方法.122.3 SolidWorks的开发工具介绍.162.3.1 VB软件介绍.172.3.2 ACCESS数据库介绍.192.3.3联接和应用.21第三章 系统总体方案的选定.223.1 设计开发的目标.223.2 系统总体结构示意图及主要模块介绍.223.2.1 主程序包括了数据的查询与计算模块.23 3.2.2参数化标准件的实体模型库.233.2.3 GB数据库.233.2.4其他辅助类型文件.24第四章 建立系统的用户界面和主体程序.25第五章 建立螺纹数据库.345.1 建立螺纹联接标准件数据库.345.2 数据库的查询与使用.36第六章 建立标准件的模板文件.39设计总结 44参考文献 45致谢 46另附所有程序源代码以及运行结果附录A .1附录B .28附录C .30摘 要 SolidWorks是一种非常优秀的三维机械设计软件,功能强大。但是它缺少国家标准零件库,给国内的机械设计工作带来了不便。因此十分有必要对其进行适合国家标准的二次开发。Visual Basic是一种功能完善的高级编程语言,它简单易学,容易掌握。Access是Microsoft Office中的一个数据库管理软件,易学易用。由于SolidWorks提供了基于OLE自动化技术的API函数,可以用VB对它进行二次开发。螺纹连接的国家标准数据可以使用Access来管理。使用VB为SolidWorks开发螺纹联接国家标准零件的专用模块,配合Access管理的国家标准数据,就可以开发出针对SolidWorks的国家标准零件库模块,最后再将该模块编译成SolidWorks的插件挂到SolidWorks系统中。关 键 词: SolidWorks,Visual Basic,Access,标准零件,标准零件库,二次开发AbstractSolidWorks is a very good three-dimensional mechanical design software, with various powerful fuctions. However, the lack of national standards of parts base brings the inconvenience for domestic mechanical design. Therefore, it is essential to re-develop this software which fits for national standards. Visual Basic is a perfectly functional programming language, simple and easy to manage. Access is one of the database management software in Microsoft Office, which is easy to learn and use. As SolidWorks supplies the API function which based on OLE Automation Technology, so VB can be used for its secondary development. Access can manage the national standard data of Thread linking. Using the special module with the national standard part of Thread linking, which is invented for SolidWorks by VB, and national standards data which is controled by Access so as to develope the module of national standard parts base, which is in accordance with the SolidWorks. Finally, Compiler this module into the plugin of SolidWorks and stick into the system of SolidWorks.Keywords: SolidWorks, Visual Basic, Access, standard parts, standard parts base, secondary developmentI四川理工学院毕业设计第一章 绪论11 SolidWorks系统简介 在机械行业的传统设计方法中,设计者根据任务的要求,参考已有的经验和资料,经过构思设计方案、建立设计模型、计算、分析、绘图、反复修改等过程,最后设计出满足要求的方案,并且绘制出图样和编制设计文件。在这一设计过程中,有创造性的思维劳动,有综合的分析判断,也有复杂的计算及精密的绘图等,工作量很大而且有很多重复性的繁琐劳动,要由设计者来完成所有环节的工作,设计效率很低。自20世纪60年代计算机技术发展以来,该项技术在工程设计中得到了广泛的应用,并逐步替代了传统的手工设计。计算机辅助设计(Computer Aided Design,CAD)是用计算机软、硬件系统辅助人们对产品或工程进行设计、修改及显示输出的一种设计方法,同时它也是一门多学科的综合应用技术。在设计过程中,设计者可以进行创造性的思维活动,完成设计方案构思、工作原理拟订等,并将设计思想、设计方法经过综合分析,转换成计算机可以处理的数学模型和解析这些模型的程序。在程序运行过程中,设计者可以评价结果、控制设计过程;而计算机则可以发挥其分析计算和存储信息的能力,完成信息管理、计算、数据查询、绘图、模拟、优化和其他数值分析任务。目前,在我国的CAD市场上比较流行的三维CAD软件有SolidWorks、MDT、UG、Pro/ESolidEdge等。但就价位来讲,SolidWorks、MDT、SolidEdge是属于中低档价位的产品,UG、Pro/E等软件则是高中档价位的产品。SolidWorks是一套基于Windows的CAD/CAE/CAM/PDM桌面集成系统,是美国SolidWorks公司在总结和继承了大型机械CAD软件的基础上,在Windows环境下实现的第一个机械三维CAD软件,于1995年11月研制成功。而随着工程技术的不断发展和听取广大用户使用后反馈的修改建议后。该公司也在不断的推出功能更强,操作更加人性化的新版本Solidworks软件(本次设计使用的是Solidworks2006版本)。SolidWorks全面采用非全约束的特征建模技术,其设计过程全相关性,可以在设计过程的任何阶段修改设计。同时牵动相关部分的修改。也就是提供了一种自底向上的装配方法,同时还提供自顶向下的装配方法。自顶向下的装配方法使工程师能在装配环境中参考装配体的其他零件的位置及尺寸设计新的零件,更加符合工程习惯。它具有独创性的“封装”功能,可以分块处理复杂的装配体。具有产品配置功能,为用户设计不同构性的产品。它集成了设计、分析、加工和数据管理过程,所获得的分析和加工模拟结果成为产品模型的属性,在Solidworks的特征管理器中清晰的列出了详细的数据信息。它还可以动态模拟装配过程,进行静态干涉检查、计算质量特征,如质心、惯性矩等。它将2D造型绘图与3D造型技术融为一体,能自动生成零件尺寸、材料明细表(BOM)、具有指引线的零部件编号等技术资料,从而简化了工程图样的生成过程。同时有中英文两种界面可以选择,其先进的特征树结构使操作更加简便和直观。具有较好的开发性接口和功能扩充性。能轻松实现各种CAD软件之间的数据转换传送。但是,SolidWorks虽然拥有如此强大的功能,适当的价位,也并非十全十美。由于该软件是外国人写的,不适合中国的国标,如标题栏、明细表、放大图的标注、剖视图的标注、装配图的序号等。也没有适合我国国标的标准件库。不可能完全满足企业的特殊要求。因此,为了使之更加深入的融合到我国企业的实际生产当中,形成企业自己的特色,并有效的发挥作用,使常用的或是重复的任务自动化,提高效率,就必须对其进行本土化和专业化的二次开发工作。SolidWorks 系统具有如下的特点: (1) 具有独特的特征管理员,提供的特征管理员设计历史树同具体的实体模型是实时的动态联接; (2) 具有强大的实体建模功能和直观的Windows 用户界面; (3) 支持Windows 的DDE 机制和OLE 技术; (4) 支持Internet 技术,可以共享设计数据; (5) 双向关联的尺寸驱动机制; (6) 提供了VB ,VC + + 和其他支持OLE 的开发语言接口; (7) 给基于Windows 的桌面集成赋予了新的含义。它以Windows 为平台,集成了动态仿真软件(Motionworks) 、工程分析软(CosMo- SolidWorksorks) 、数控加工软件(SurfCAM) 、以及工程数据管理软件(SmarTeamWorks) 等,使它们成为SolidWorks 家族中的一员。这些软件的数据可以相互传递共享。而且SolidWorks 公司还设有网上站点,可方便用户快速了解此系统的最新发展情况,或获得最新的技术支持。 造型功能 SolidWorks 提供了新一代的造型功能,它包括了草图和实体,参数化特征造型技术。提供丰富的基本特征,并且提供用户自定义特征的功能。SolidWorks支持强大的三维参数化设计功能,可以方便地在设计的任何阶段修改零件. 绘图功能 工程绘图系统Drawing 主要用于三维模型的工程图纸绘制与输出,可同时编辑多张图纸。当设计人员建图纸文件时,可以将PART 文件上的特征历史树的总结点用鼠标点取移动到图纸文件上,图纸文件上自动生成三视图。绘制的图纸上可以自动标注尺寸信息。图纸与模型是相互关联的,当模型上的尺寸或造型变化时,图纸也相应改变。视图包括标准视图、投影视图、一般视图、局部视图以及剖面视图,是零件或装配体在图纸上的某种形式的投影。在视图上可以增加或删除符合国标的工程标注。系统可随时维护三维模型与二维绘图的一致性。注释及辅助线段、圆注释和辅助的线段、圆注释用于给图纸增加一些视图中未给出的信息,如加工注意点、材料选择等。 装配功能 SolidWorks 中装配的功能是由用户指定装配体中各零件之间的装配约束关系,将零件装配成装配体。装配系统不但可以将零件装配起来,也可以读入已经装配好的装配体,作为子装配体进行装配;子装配体在装配过程中可以视为一个整体,等效于一个零件。SolidWorks 可以模拟仿真装配的全过程。 二次开发 虽然SolidWorks 所提供的功能非常强大,但要使其在我国企业中真正发挥作用,就必须对其进行本地化、专业化的二次开发工作。为了方便用户进行二次开发,SolidWorks提供了几百个API函数,这些API是SolidWorks的OLE或COM接口.用户可以使用高级语言对其进行二次开发,建立适合用户需要的、专用的SolidWorks功能模块。SolidWorks 是一个非常开放的系统,提供了VB ,VC + + 和其他支持OLE 的开发语言接口。提供给用户必要的工具(宏语言、库函数等) 以开发个人化的应用模块,并且易于将它集成到系统中去。用VB 或VC + + 调用SolidWorks 的API 函数,可以完成零件的建造、修改;零件各特征的建立、修改、删除、压缩等各项控制;零件特征信息的提取,如特征尺寸的设置与提取,特征所在面的信息提取及各种几何和拓扑信息;零件的装配信息;零件工程图纸中的各项信息;还可在SolidWorks主菜单上增加按钮,将自己开发的应用模块嵌入到它的管理系统中。图1.1所示即为SolidWorks实际运行,创建零件时的窗体界面。可以看出,SolidWorks的窗体界面比较简洁,主菜单栏(第一行):这里包含有SolidWorks所有的操作命令;标准工具栏(第二行):该栏中的按钮主要用来对文件执行最基本的操作,如“新建”、“打开”、“保存”、“打印”等,其中以下几个工具为SolidWorks2006所特有:“重建模型工具”和“编辑颜色工具”。前者在建立模板文件时使用的较多。在界面左侧还有一个包括设计树、属性管理图标、和配置管理图标的控制区域,在设计中也是要进行频繁操作的区域。图1-1 SolidWorks软件界面1.2 系统开发的目的与意义 根据前面的介绍,SolidWorks确实是一款十分优秀的工程3D绘图软件,功能强大,价位适中。但其对于国内企业来说却并非十全十美,不能完全满足企业的各种特殊要求。具体表现在:作为一款国外开发的软件,其各种规范要求肯定不符合中国的国标,例如放大图的标注、剖视图的标注、装配图的序列号、标题栏、明细表等。当然更没有适合我国国标的标准件库。也正因为如此,为了使SolidWorks能够更好的融入各个企业自身不同的特色之中,满足企业的特殊使用要求,发挥出应有的作用,并使常用的或是重复的任务自动化,提高效率,就必须对其进行本土化和专业化的二次开发工作。要进行SolidWorks的二次开发,主要的方法就是利用SolidWorks系统提供的数据操纵接口函数API。该接口函数专门读写三维零件数据,并提供了一系列的Automation接口(包括对象、属性、方法),使用户进行二次开发变的更加容易。运用Automation技术使得在自己的应用程序中驱动三维CAD系统中的零件变的有可能而且容易。因此归纳起来,由于SolidWorks没有适合我国国家标准的标准件库,在机械设计中对标准件模型的需求量又是相当大的。而标准件是可重复利用的模型,在需要的时候可以实时建模,但是这样做显然是一种资源的浪费。耗费了大量的时间和人力,却只是在进行单调重复的劳动,而不能将更多的精力用在整体性能的改进和优化上面,使最终的成品得到进一步完善。因此,为了提高设计工作的效率,有效利用设计中的人力资源,同时也更加强化SolidWorks的本土化程度,为其开发GB标准件库有着非常重要作用,而这,也是本次系统开发的目的和意义所在。1.3 论文的主要内容及要求 本次设计的题目为基于SolidWorks的螺纹联接标准件库CAD系统开发,主要使用了SolidWorks2006工程绘图软件,VB编程工具和ACCESS数据库管理系统。利用VB编写程序为SolidWorks系统开发一个螺纹联接标准件系统。当然,在设计过程中需要熟悉并掌握以上三种软件的使用方法。毕业设计(论文)的主要内容及基本要求为: 学习掌握SolidWorks,Visual Basic,Access数据库的使用。SolidWorks的二次开发方法和API函数; 详细阐述基于SolidWorks的螺纹联接标准件库CAD系统开发的意义,设计方法及其功能; 开发基于SolidWorks的螺纹联接标准件库CAD系统; 就设计内容写12篇学术论文; 设计说明书。将设计结果(包括所有源程序)刻录成光盘。31第二章 SolidWorks的二次开发及其API函数简介2.1 SolidWorks API概述 为了方便用户进行二次开发,SolidWorks提供了几百个API(Application Program Interface,应用程序接口)函数,这些API函数是SolidWorks的OLE(Object Linking ang Embedding,对象链接或嵌入)或COM(Component Object Model,组件对象模型)接口,通过该接口用户可以开发嵌入式功能模块以扩充原SolidWorks的功能,形成客户化定制的SolidWorks软件系统。该开发接口支持ActiveX Automation Interface技术(即通常所说的ActiveX自动化界面技术),由于SolidWorks ActiveX技术是一种完全面向对象的技术,所以许多面向对象编程的语言(如VB,VC+)都可以通过Active与SolidWorks进行通信,也就是说,SolidWorks提供了一种机制,可通过编程手段从内部或外部来操纵SolidWorks,只要采用某种适当的方式,使隐藏的ActiveX“暴露”、“开放”出来,就可以使用各种面向对象编程的语言对其中的方法、属性进行引用,从而达到对SolidWorks实现编程的目的,也就是达到二次开发的目的在SolidWorks中有一个十分重要的工具宏命令。利用宏录制(Record Macro)命令可以在SolidWorks环境中录制SolidWorks的相关操作,并可以调用SolidWorks API接口提供的所有对象、方法及属性。然后使用 SolidWorks 宏重新执行这些操作。宏所包含的调用相当于使用用户界面执行操作时对 API 函数的调用。宏可以记录鼠标单击、菜单选择和键击,以便以后执行。宏工具条如下图所示 新 建编 辑运 行停 止录制/暂停图2-1宏工具条【运行】命令:当运行此命令时,SolidWorks将会弹出一个打开文件对话框,提示选择宏文件(后缀名为SWP),然后自动运行选择文件中的代码。【停止】命令:此命令在没有进行录制的状态下为不可用,只有在录制状态下才可用。运行此命令后,SolidWorks会自动停止程序代码的录制,并弹出存盘对话框,提示输入相应的文件,然后以输入的文件名保存录制的内容。【录制/停止】命令:可以利用此命令在SolidWorks环境中进行录制,同时在录制过程中也可停止录制或继续录制。【新建】命令:此命令表示不通过SolidWorks录制功能直接建立一个宏文件。该命令一般只针对了解SolidWorks API、VB或VBA的人员。【编辑】命令:此命令可以编辑或浏览选择的宏文件代码。在默认状态下,宏工具条是不可见的。打开的方法是将鼠标移动到任一工具按钮上面,单击右键,选择“宏(M)”,则宏工具条就会显示在SolidWorks环境中。在本次设计中,使用宏命令主要是为了获得VB连接SolidWorks的程序代码,方法为:首先打开SolidWorks软件,调出“宏”命令,然后点击“运行”按钮,开始录制。接下来选择“新建”“零件”,进入到零件创建窗体中,再点击“停止”,完成了代码的录制。当然,代码录制的起点也可以改到零件创建窗体下。而且在最终创建螺纹联接主程序时,也可以新建一个窗体,通过该段代码,直接在里面建立一个连接到SolidWorks的按钮,而不是象本次设计中这样,将代码加入到程序中并生成DLL文件后做成独立的插件菜单,使用时需要单独打开SolidWorks并手动添加进插件菜单。这样虽然操作稍多一点,但是代码却可以适当的简化。以下列出该段代码:Dim swApp As ObjectDim Part As ObjectDim SelMgr As ObjectDim boolstatus As BooleanDim longstatus As Long, longwarnings As LongDim Feature As Object创建或获取SldWorks对象Set swApp = CreateObject(SldWorks.Application) If swApp.Visible = False ThenswApp.Visible = TrueEnd If打开并激活模板文件Set Part = swApp.OpenDoc6(路径模板文件名.SLDPRT, 1, 0, , longstatus, longwarnings)Set Part = swApp.ActivateDoc2(模板文件名, False, longstatus) swApp.Visible = True代码详解:Dim boolstatus As Boolean boolstatus 声明为布尔值凡是这种Dim * As * 的形式的代码,即表示对对象的声明,只有进行声明后的对象才能在后面的程序中合法使用。Set swap = Application.SldWorks这是宏程序与SolidWorks程序建立连接的桥梁代码,得到的应用程序作为对象传送给swApp,这条代码是必不可少的。Set Part = swApp.ActivateDoc这条代码是宏程序与SolidWorks中的零件环境建立连接关系的桥梁代码,将所得到的当前工作环境作为对象传送给Part,这条代码也是不能缺少的。下面介绍几个基本术语,它们都是对SolidWorks进行二次开发前所必须要了解的。OLE技术OLE技术就是对象的嵌入与连接,它使得应用程序之间能够通过数据的嵌入或连接的方式来共享数据。含有嵌入或连接文档的应用程序被称为容器程序,提供文档数据编辑的应用程序被称为服务器程序。但是自从微软推出OLE2.0以后,OLE已经不再是对象的嵌入和连接的缩略词了。不妨认为ActiveX是3.0,事实上ActiveX是OLE在网络上的扩展,它使用了OLE技术并且超过了本地机器的范围。自动化技术Automation是OLE技术的一个重要内容。直到今天,自动化技术扩展和发展为ActiveX Automation,它适用于OLE对象和ActiveX对象。自动化技术由客户程序和服务器程序组成,客户程序是操纵者与控制者,服务器程序是被控制者,它包含了一系列的暴露对象。服务器应用程序通过自身对象的属性、方法、事件外显其功能;对象的服务器程序是简单而抽象的代表。而客户应用程序则通过操纵服务器应用程序所暴露的一系列对象来操纵服务器应用程序。只要服务器程序提供一定的接口,就可以使任何对象实现自动化。对象包含的一些外部接口,它们被称为方法与属性。方法是自动化对象的一些函数,它们是提供给客户程序的外部公共成员函数,属性是一个对象的一些命名特性,即对象的一些共有数据域。操纵程序被称为客户(Client),而被操纵程序称为服务器(Server),被操纵的对象是ActiveX对象。如果应用程序支持OLE技术,则在不同应用程序之间的切换由OLE自动完成。SlolidWorks支持OLE标准,完全实现了OLE自动化,如前面所述,SolidWorks具有开放的结构体系,它的这种开放性体现在它所提供的API对象上。API是一个SolidWorks的应用编程接口(Application Programming Interface),包含了几百个对象及其属性、方法和事件,这正是SolidWorks为用户提供的功能强大的二次开发接口,凡是支持OLE编程的开发工具,如Visual C+、Visual Basic、Dephi等均可从各自本身操作这些对象,从而直接行使SolidWorks的功能,如画一条直线,一个圆,拉伸一个凸台,螺旋扫描切除,或修改一个表面的参数等。利用这种方法可以完成SolidWorks的二次开发,创建出用户定制的、专用的SolidWorks功能模块。具体到本设计中,我们便是使用VB来控制SolidWorks提供的各种对象,即把VB作为客户程序,SolidWorks作为服务器程序。ActiveXActiveX是微软新近提出的一种技术,它以COM为基础,其中包括了OLE技术以及应用于internet的多种技术。它使得不同的进程,甚至是网络上的进程之间相互通信,并朝着多媒体方向发展。ActiveX是一种面向对象的组件系统,其中包括了组件软件的各个方面,有复杂文档、自定义控制、OLE自动化、交互应用程序脚本、数据传送及其他分布软件的相互作用。这些组件对象为用户提供了不同的功能,使得不同的软件供应商提供的组件可以在二进制之间进行相互的连接和通信。对象通过接口实现组件之间以及组件与系统之间的相互作用。在桌面系统进行软件交互时,除了系统提供的标准控制外,OLE控件也是一个重要的组成部分。ActiveX是一种标准,利用此标准可以使得通过不同的语言开发的软件构件在单机或网络环境中相互操作。同时,ActiveX也是以组件对象模型为基础的开放技术的集合,它代表了应用程序与internet的一种集成策略。OLE Automation 技术自动化技术(Automation)为软件之间的交互创造了条件,它允许多个应用程序或组件之间进行通讯和交互,而与他们的语言、分布和原始平台无关。在开发标准件库时,运用OLE(Object Linking and Embedding)Automation技术,无疑会减小开发的难度,图2-2 SolidWorks OLE的引用使系统更加稳定可靠。SolidWorks系统提供数据操纵接口函数API,专门读写三维零件数据,并提供了一系列的Automation接口(包括对象、属性和方法),使用户进行二次开发更加容易。运用Automation技术使得在自己的应用程序中驱动三维CAD系统中的零件变的有可能而且容易,如图2.2所示。尺寸驱动原理本次设计所采用的是对标准件模板模型采用尺寸驱动的原理,即标准件的生成也就是对相应标准件模板进行尺寸驱动的过程。尺寸驱动即在零件拓扑结构不变的情况下,把零件的尺寸参数定义为尺寸变量,并定义出变量间的关系,当给定不同的尺寸值,就可得到一组结构相同而尺寸不同的零件,每一类标准件对应一个模板文件,在模板文件中定义尺寸变量和变量间的关系。由于三维CAD都采用了参数化的设计方法,在开发标准件库时没有必要再做尺寸约束求解,所以零件的最后生成可以依靠系统参数化功能来实现,即用新的尺寸值对标准件模板进行尺寸驱动来生成一个新的标准件。在工程实践中用到的具有系列尺寸的标准件,其尺寸参数可分为独立参数和非独立参数,独立参数中包含了主驱动参数(称之为基本参数)和自定义特性参数。一般只要给定独立参数,即可唯一确定零件的全部几何参数(非独立参数可由主驱动参数从标准件特性参数库中取得)。例如 GB578286 六角头螺栓,其螺纹规格,螺杆长度,螺纹长度为三个独立参数,通过尺寸属性对话框便可对这些参数进行自定义,由用户根据自身。图2-3 驱动参数的设置需要进行选取。螺纹规格确定之后,螺栓的六角头厚度,扳手宽,倒角半径等尺寸即可从特性参数库中获得,从而可以对形状模型库中的对应的形状模型进行尺寸驱动,实现零件建模,如图2.3所示。2.2 SolidWorks API函数介绍2.2.1 SolidWorks API对象模型概述 面向对象的程序设计方法是按照现实世界的特点来管理复杂的事物,把它们抽象为对象,即具有自己的状态和行为,通过对消息的反映来完成一定的任务。一个对象就是变量和相关的方法的集合,其中变量表明对象的状态,方法表明对象所具有的行为。一个对象的变量构成这个对象的核心,包在它外面的方法使这个对象和其它对象分离开来。例如:我们可以把汽车抽象为一个对象,用变量来表示它当前的状态,如速度、油量、型号、所处的位置等,它的行为则可以有加速、刹车、换档等。当我们操纵汽车时,不用去考虑汽车内部各个零件如何运作的细节, 而只需根据汽车可能的行为使用相应的方法SldWorksSwAddinOther ObjectSWPropertySheetModelerAttributeDefFrameEnvironmentUserUnitCustomPropertyManagerererMathPointMathTransformMathUtilityMathVectorPropertyManager图2-4 SolidWorks2006接口关系图即可。实际上,面向对象的程序设计实现了对象的封装,使我们不必关心对象的行为是如何实现的这样一些细节。通过对对象的封装,实现了模块化和信息隐藏,有利于程序的可移植性和安全性,同时也利于对复杂对象的处理。概括起来说,对象类定义了具有相同结构和操作的一组对象,其最基本的特征是封装和继承。作为一种抽象数据,对象把实体的相关特性和操作封装在一起,允许人们以自然的方式去模拟外部实体的结构和行为;继承是对象类实现可复用性和可扩充性的重要特征。一个对象类可以定义为另一个更一般的特殊情形,这个对象类是特殊对象类的父类(SuperClass),或者说,特殊对象类是这个一般对象类的子类(SubClass),子类继承父类的所有属性和操作,除此以外子类还可以定义自己特有的属性和操作。继承是对象类的一种特例化关系,也就是集合包含关系,子类对象实例集合是父类对象实例集合的子集。ParameterEnumLoops2EntityEnumComponentsEnumBodies2EnumDrSectionsEnumCoEdgesEnumSketchHatchesEnumFaces2EnumSketchPointsEnumEdgesEnumSketchSegmentsEnumDocuments2EnumDisplayDimensions图2-5其他SolidWorks API应用程序对象图2.4是SolidWorks的API接口关系图的一部分组织结构关系,由图形可以看出,SolidWorks API是一个自上而下的多层次的树型网络结构,SolidWorks是根目录对象类,也就是最高级的对象类,它位于应用程序的底层,是访问SolidWorks API所有对象的入口。该对象中封装了很多方法(Methods),如OpenDoc2、ActivateDoc2、CloseDoc、ExitApp,下面又创建了许多子类,如ModelDoc、Environment、Frame。本次设计将重点介绍ModelDoc对象,这是因为大部分绘图操作都在该对象中,如SelectByID(选择)、CreateLine2(画直线)等;其余API对象见图2.5表格。编程时对SolidWorks API的调用实行逐级寻访,即先调用能实现所需功能的对象的父对象,然后调用与父对象相关的子对象,如果子对象所封装的属性和方法不能实现所需要的功能,则继续调用该子对象的下级子对象,如此逐级遍历,直到找到完成相应功能的属性和方法为止。2.2.2 对象的属性和方法 在SolidWorks创建的对象中,每个对象都有自己的属性和方法,通过调用API函数来实现,反过来,应用SolidWorks的每一步操作都体现在特定的对象类中。以下介绍一些在使用VB为开发平台时常用的API函数。1 连接SolidWorks当在使用SolidWorks API调用功能时,我们必须先要与SolidWorks API提供的程序对象建立连接关系,也就是首先创建SolidWorks的应用对象,用到的SolidWorks应用程序对象是:SldWorks。SolidWorks应用程序对象(在宏程序里面声明为swapp,当然也可以声明为其他变量)是宏程序调用其他对象的入口,是所有调用SolidWorks API功能的最顶层,要调用SolidWorks API的其他功能,必须先调用此对象。一般情况下,它在程序中的表现形式为:Dim swapp As Sldworks.SldworksSet swapp = Application.Sldworks变量swapp可以定义为Object或Sldworks.Sldworks(SolidWorks规定的对象)。在对SolidWorks进行二次开发时,首先要建立SolidWorks的连接,创建SolidWorks的应用对象:Dim swApp As ObjectSet swApp = CreateObject(“SldWorks.Application”)通过这个函数,就打开了SolidWorks的接口,可以调用它的API函数了。2 建立新的零件图 创建零件图: Dim Part As Object Set Part = swApp.newpart 使用该函数就能建立一个新的工作区,从而进行建模的操作。3 选择该命令在SolidWorks中使用的非常频繁,在实际操作当中,有很多的命令在使用时都要选择操作对象,调用的API是ModelDoc对象中的SelectByID函数:ModelDoc.SelectByID(objectName,object Type,x,y,z)该函数在应用时需要输入五个参数:objectName表示要选择对象的名称,这个名称是SolidWorks在创建对象时按先后顺序自动命名的,例如基准面1,基准面2,Line5,D1草图1Part2.SLDPRT等。而object Type则是要输入对象的类型,例如PLANE(面),SKETCHSEGMENT(草图上的对象),DIMENSION(尺寸标注);x,y,z是平面上任一点的坐标值。4 插入草图 在所选平面上插入草图,调用ModelDoc中的InsertSketch函数ModelDoc.InsertSketch ()5 基本草图绘制命令 画直线调用ModelDoc对象中的CreateLine2函数:ModelDoc.CreateLine2(xStart,yStart,zStart,xEnd,yEnd,zEnd).ConstructionGeometry = TruexStart、yStart、zStart、xEnd、yEnd、zEnd分别是直线的起点和终点坐标;ConstructionGeometry = True时表示画中心辅助线。6 基本实体建模命令 拉伸调用PartDoc中的FeatureExtrusion函数:Part.FeatureExtrusion(sd,flip,dir,t1,t2,d1,d2,dchk2,ddir1,ddir2,dang1,dang2,off setReverse1,off setReverse2)sd为True时表示单向拉伸,为False时表示双向拉伸,以0,1表示;dir为True时表示正向拉伸,为真时有效;dir为False时表示反向拉伸;t1,t2表示终止类型,可取下列值:0(给定深度),1(贯穿),2(为贯穿下一个),3(成形到一顶点),4(成形到一面),5(到离指定面指定的距离).6(两侧对称);d1,d2表示拉伸的深度;ddir1,ddir2为True时表示带拔模角拉伸;dang1,dang2为True时表示向内拔模,为False时表示向外拔模;off setReverse1, off setReverse2的作用是控制到离指定面指定的距离,在t1,t2为5时有效。其中d2,dchk2,ddir2,dang2, off setReverse2在双拉伸时有效。旋转调用PartDoc中的FeatureRevolve函数:PartDoc.FeatureRevolve(angel,reverseDir,angel2,revType)angel表示旋转的角度;reverseDir控制旋转的方向,为True时表示反向,revType为1时无效;angel2表示旋转的反向角度,仅当revTyp为2时有效;revTyp表示旋转类型,为0时单方向旋转,为1时双向等角度旋转。倒角调用ModelDoc中的FeatureChanfer2 Type函数:ModelDoc.FeatureChamferType(chamfer Type,width,angel,flip,otherDist,vertexChamDist1,vertexChamDist2, vertexChamDist3)chamfer Type控制倒角的类型,可取下列值:1(角度距离控制),2(距离距离控制),3(顶点倒角控制),4(两边等距离控制);width表示倒角边距,angel表示倒角角度,仅当chamfer Type1为1时有效;otherDist表示chamfer Type为2时是另一边距;vertexChamDist1, vertexChamDist2, vertexChamDist3表示chamfer Type为3时的三个距离。以上的实体建模命令是在下面进行二次开发中,建立模板模型时所经常使用到的重要命令,所以进行了详细的介绍,这些命令也是进行SolidWorks绘图时经常使用到的一些命令,所以一定要熟练掌握。7 添加菜单当使用VB开发建立了窗体界面和连接数据库的主程序以后,为了便于操作,就需要把生成标准件的功能挂到SolidWorks的主体环境的菜单和工具栏上,由SolidWorks程序进行管理。具体需要实现的内容是:在菜单上的提示为各标准件的名称,在工具条上的提示为图标,当用户进行操作,希望生成某个标准件时,只需要在菜单或工具条上进行选择,然后再由开发的程序调用相应的标准件功能模块。SolidWorks的SldWorks对象,为VB对SolidWorks工作环境进行访问处理提供了接口。通过此对象可以对SolidWorks工作环境添加菜单,删除菜单,添加工具条,打开文件,新建文件,退出SolidWorks系统等等的功能。在本次设计中,主要是通过使用SldWorks对象的Addmenu和Addmenuitem方法来在SolidWorks工作环境中添加菜单及功能模块的调用;通过使用SldWorks对象的Addtoolbar和AddToolbarCommand方法来完成在SolidWorks工作环境中添加工具条和完成对应标准件功能模块的调用,下面介绍一下创建SoliWorks插件的主要API:SwAddin.ConnectToSW该API是用户编制的程序连接到SolidWorks程序的入口函数,当插件加载时,SolidWorks运用此方法进行与程序的连接。SwAddin.DisconnectFromSW当插件需要卸载时,SolidWorks调用此方法卸载当前的插件,它是一个事件过程,卸载时必须清除与插件相关的内容(如菜单和工具条等)。SldWorks.CallBack此方法是外部的执行程序或SolidWorks的宏命令调用SolidWorks插件的功能。SldWorks.AddMenu对于DLL程序,这个方法在SolidWorks用户界面上增加一个下拉式菜单或子菜单。并且,一般来讲,加载的下拉式菜单位置应在“工具(Tools)”和“窗口(Window)”之间。SolidWorks.AddMenuItem2这个方法在SolidWorks用户界面的下拉式菜单上增加一个子菜单。而且如果主菜单不存在,程序会自动创建主菜单,然后才创建子菜单。使用该命令可以在SolidWorks的四个环境(主界面、零件、装配和工程图)的用户界面上创建菜单。注意:在调用SolidWorks AddMenuItemz时,必须运用相应的文档类型参数。SolidWorks.RemoveMenu这个

温馨提示

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

评论

0/150

提交评论