基于 So1idworks专用夹具通用件库的开发及应用

上传人:QQ40****828 文档编号:442656 上传时间:2018-10-02 格式:DOC 页数:43 大小:2.47MB
返回 下载 相关 举报
基于 So1idworks专用夹具通用件库的开发及应用_第1页
第1页 / 共43页
基于 So1idworks专用夹具通用件库的开发及应用_第2页
第2页 / 共43页
基于 So1idworks专用夹具通用件库的开发及应用_第3页
第3页 / 共43页
点击查看更多>>
资源描述
第 1 页 共 36 页毕 业 论 文基于 So1idworks专用夹具通用件库的开发及应用学生姓名: 学号: 学 院: 专 业: 指导教师: 年 6 月机械工程与自动化学院机械设计制造及其自动化第 2 页 共 36 页基于 So1idworks专用夹具通用件库的开发及应用摘要夹具在机械加工中起着重要的作用,它直接影响着机械加工的质量、生产效率和成本。要加工结构和尺寸都比较特殊的工件就必须设计专用夹具。在产品相对稳定、批量较大的生产中,采用专用夹具可获得较高的生产率和加工精度。随着现代多品种、中小批量生产的发展,传统的夹具设计方式己成为企业中产品快速上市的瓶颈,企业迫切需要提高夹具设计的效率。为构建一个能支持产品快速制造的生产准备系统,夹具设计要从全局自动化的高度进行变革。计算机辅助夹具设计正是为了适应这一要求而产生的,而且已经成为国际上竞相研究的热点。本文结合国内外机床夹具设计的现状,广泛研究了国内外 CAFD 系统,针对国内制造业中存在的问题,以实用性、高效性为指导思想,以建立机床夹具通用件库为切入点,提出了设计专用夹具 CAD 系统((Computer Aided Special Fixture Design,CASFD)的新观点,并付诸实现。通过调查、比较和分析各类 CAD 软件在国内的应用现状,从开发的难易程度、可移植性、易维护性等方面考虑,SolidWorks 是一种非常优秀的三维机械设计软件,但是它缺少国家标准零件库,为机械设计工作带来了不便。VB 是一种简单易学,而且功能强大的高级编程语言,Access 是一种容易使用,而且功能强大的数据库管理系统。SolidWorks 提供了基于 OLE 自动化技术的 API 函数,可以使用 VB 为它进行二次开发,专用夹具通用件的标准参数可以用 Access 来管理。所以选定以三维设计软件 SolidWOrks 作为开发平台,综合运用 VisualBasic 编程技术和 Aeeess 数据库管理技术,利用 SolidWOrksAPI 强大的二次开发功能,开发完成了基于特征造型、参数化驱动生成零部件的机床夹具三维通用件库。基于此,本文主要研究了以下几个方面:第 3 页 共 36 页1.介绍了计算机辅助夹具设计系统的发展概况和研究现状。2.分析快速设计、模块化、并行设计等现代设计方法对 CAFD 系统的影响,研究了参数化技术、数据管理技术及数据库技术在 CAFD 系统中的应用。3.利用 Solidwoks 三维绘图软件绘制了大量的夹具通用件三维模型,建立了CASFD 系统的数据库和图形库。4.应用 VB 和 Solidworks API 函数对 Solidworks 进行二次开发,生成了Solidworks 插件,创建了人机交互参数化界面,并实现了插件与 Solidworks 的无缝连接。关键词:参数化驱动;特征造型;机床夹具通用件库 ; Solidworks;CAFDBased So1idworksGeneral Parts Library for special fixtures and Application DevelopmentABSTRACTFixture is Playing a very important role in machining,which influence the quality of machining,Production efficiency and cost direetly.SPecial fixture must be designed when workpiece with complex strueture and size is proeessed.With the development of modern multi-variety and small batch production, traditional fixture design has become the bottleneck of rapid Production coming-into-the-market.So enterprises cry for promoting the effieieney of designing fixture.In order to build a production preparation system supporting rapid manufacturing of production,fixture design must be reformed based on global automation. CAFD is generated for adapting to the requirement and has beeome the focus of intemational study.第 4 页 共 36 页Through investigating,comparing,analyzing the variable CAD software and thinking about the degree of difficulty,transportability and maintainability. The SolidWorks is a real fair 3D machine design software, But it be in defect of the Lib of the national standard parts, that works to bring for machine design very inconvenient. VB is a easily study, and powerful computer high class language, Access is an easy usage, and powerful DBMS. The SolidWorks provided mass API functions base the OLE Automation technique, Can be use the VB to development two times for it, the special fixture parts common standard parameters can use the Access to manage.So the 3D CAD software SolidWorks is seleeted as the developing Platform and VisualBasie6.0 program technique and database management technique of Aceess is utilized.By the seeondary development function of Solidwbrks API, a feature- based and paramete- driven parts library for machine tool fixture are developed.Based on that,such main works are studied in this Paper.1.The development and research statement of CAFD are introduced.2.The effeetion on CAFD system exerted by modem design methods isanalyzed,such as RaPid Design, Coneurrent Design etc.The apPlieation in CAFD of Parametrie,DataManagement and Data Base is studied. 3.Many drawings of the standardized Parts and components hav been drawn and the Data Base and GraPhic Base are created for CASFD.4.Describing the seeondary development of Solidworks based on VB andSolidworks API funetion, Generating Solidworks menu Plug- in andHuman-comPuter interaction dialog box, and seamless conneetion between Solidwbrks and general standard Parts library is realized at last.KcyWords:Parameter Driving; Feature Modeling; Machine Fixture Genera1 Parts Solidworks API;CAFD.第 5 页 共 36 页目 录1、引言 11.1 设计目的和意义11.2 机床夹具的现状和发展方向 21.2.1 机床夹具的现状 21.2.2 机床夹具的发展方向 31.3 论文各部分主要内容 32solidworks 二次开发及其 API 函数的简介 32.1 相关术语 42.2SolidworksAPI 函数介绍 6 2.2.1 Solidworks 的对象模型 62.2.2 对象的属性和方法 62.2.3 更多的 Solidworks 的 API 函数介绍 92.3 VB 开发 Solidworks 的基本原理 92.4 VB 开发 Solidworks 的一般步骤112.5 开发方式选择方法122.6 Solidworks 的 API 函数语法 123. 简单标准件的开发与实现 143.1 十字垫圈的设计 133.1.1 建立垫圈对话框 133.1.2 程序的设计 133.1.3 建立数据库14第 6 页 共 36 页3.1.4 程序运行及结果 163.2 定向键的设计 163.2.1 定向键对话框的建立173.2.2 程序的设计 183.2.3 建立数据库 18324 程序的运行及结果 203.3 固定式定位销的设计 213.3.1 定位销对话框的建立 213.3.2 程序的设计 223.3.3 建立定位销数据库 233.4 圆形对刀块的设计243.4.1 对刀块对话框的建立 243.4.2 程序的设计 253.4.3 建立对刀块数据库 263.4.4 程序运行及结果 284.设计的具体实现 294.1 在 Solidworks 软件下添加菜单及子菜单 294.2 程序的运行及结果 325.结论 32致谢 34参考文献35第 7 页 共 36 页1. 引言1.1 课题研究的目的及意义机床夹具是机械制造过程中最常用的一种工艺装备,其主要作用是保证加工精度,提高劳动生产率,扩大机床的使用范围和保证生产安全,因此机床夹具在机械制造中占有很重要的地位。机床专用夹具是为完成某一工件的某工序而专门设计的工艺装备。在传统的专用夹具设计过程中,由于工艺装备尤其是夹具零部件的标准化、系列化、规格化程度差,传统的设计方法在资料检索、绘图、编制技术文件等方面均由人工完成,这不仅需要大量的人力、物力和较长的周期,且由于人为因素使设计精度和质量受到影响 。因此快速实现夹具设计己成为企业的迫切要求。将计算机辅助1设计技术(Computer Aided Fixture Design,CAFD)应用到夹具设计的过程也就成为解决这一问题的必然选择。夹具可分为通用夹具、组合夹具、专用夹具等几类。通用夹具己完全标准化,由专业厂家生产、市场有售。组合夹具和专用夹具要满足生产要求,在设计时需要进行一系列的定位、夹紧、装配设计,成为制造企业面广量大且繁重的工作。组合夹具是由一套预先制造好的标准元件组成,可针对不同的加工对象进行装配以获得可满足要求的夹具。使用完毕后,可拆散成元件和组件 ,且夹具元件的2第 8 页 共 36 页配合尺寸具有完全互换性,可以重复使用。组合夹具的设计主要是拟定组装方案、进行装配设计。CAFD 首先在组合夹具设计上得到较多的研究 ,采用先进的计算3机拼装方法和手段提高拼装效率和质量,进行组合夹具的设计和元件管理,这使得组合夹具 CAD 的研究及开发取得了较快的发展。对于加工结构和尺寸都比较特殊的工件,组合夹具很难满足其要求,必须设计专用夹具。而且大批量生产时,专用夹具是最经济的选择。专用夹具是为完成某一工件的某一工序而专门设计的工艺设备。与组合夹具相比,专用夹具具有以下特殊的优点:(l)能确保工件的加工精度;(2)总体方案与生产纲领相适应;(3)操作方便,能减轻工人的劳动强度;(4)便于排屑,有良好的结构工艺性。传统的专用夹具设计需要耗费大量的时间进行设计计算,需要经验丰富的夹具设计人员来完成,劳动量大,效率低 。4由于机床专用夹具结构依赖于产品的结构特征和企业的工艺水平,因而使其结构设计变得复杂和不确定,长期以来一直是企业制造过程中提高生产效率的瓶颈环节 。专用夹具作为一种特殊的产品,需要丰富的设计经验,设计人员的经5验与技能将直接影响着设计结果。而现有的一些通用 CAD 软件只能完成一些诸如绘图,三维建模等方面的工作,计算机对设计人员的辅助作用非常有限,设计的自动化程度也很低,据统计仅标准件建模就占设计工作量的 50%以上,仅标准件建模一项,就需花费工程技术人员大量的宝贵时间。然而,国内外在对机床夹具的研究方面,大多是集中在对组合 和柔顺拼装夹具 ,基于 AuToCAD 二维环境6 7下开发的,而对占夹具总量 60%以上的机床专用夹具则研究较少 。目前迫切需8要开发专用夹具 CAD 系统(Computer Aided Special Fixture Design,CASFD)。1.2 机床夹具的现状及发展方向1.2.1 机床夹具的现状机床夹具是由定位元件(或组件)、对刀元件、导向元件(或组件)、夹紧元件(或组件)及夹具体等几个基本单元组成。机床夹具的设计的特点主要体现在:夹具的各个组成部分可以分别进行设计。与一般的产品设计相比,夹具设计的重构性还是比较强的。国际生产研究协会的统计表明,目前中、小批多品种生产的工件品种已占工件种类总数的 85%左右。现代生产要求企业所制造的产品品种经常更新换代,以第 9 页 共 36 页适应市场激烈的竞争。然而,一般企业仍习惯于大量采用传统的专用夹具。另一方面,在多品种生产的企业中,约隔四年就要更新 80%的专用夹具,而夹具的实际磨损量仅为 15%左右 。特别是近几年来,数控机床(NC)、加工中心(MC)、成9组技术(GT)、柔性制造系统 (FMS)等新技术的应用,对机床夹具提出了如下新要求:(1)能迅速而方便地装备新产品的投产,以缩短生产准备周期,降低生产成本。(2)能装夹一组具有相似特征的工件。(3)适用于精密加工的高精密机床夹具。(4)适用于各种现代化制造技术的新型机床夹具。(5)采用液压或气压夹紧的高效夹紧装置,以进一步提高劳动生产率。(6)提高机床夹具的标准化程度。1.2.2 现代机床夹具的发展方向现代机床夹具的发展方向主要表现为精密化、高效化、柔性化、标准化四个方面:精密化 随着产品精度的日益提高,势必相应提高了对夹具的精度要求。高效化 高效化夹具主要用来减少工件加工的基本时间和辅助时间,以提高劳动生产率,减轻工人的劳动强度。常见的高效化夹具有:自动化夹具、高速化夹具、具有夹紧动力装置的夹具等。柔性化 机床夹具的柔性化与机床的柔性化相似,它是指机床夹具通过调整、拼装、组合等方式,以适应可变因素的能力。具有柔性化特征的新型夹具种类主要有:组合夹具、通用可调夹具、成组夹具、拼装夹具、数控机床夹具等。标准化 机床夹具的标准化与通用化是相互联系的两个方面。在制定典型夹具结构的基础上,首先进行夹具元件和部件的通用化,建立类型尺寸系列或变型,以减少功能用途相近的夹具元件和部件的形式,摒除一些功能低劣的结构。1.3 论文各部分主要内容SolidWorks 作为机械类的三维 CAD 软件,对于具体的用户可能有不同的应用。客户自己建立相关的软件,使得 SolidWorks 能更好的成为开发管理方面的优秀应用软件。第 10 页 共 36 页论文的第二章介绍了本次设计的相关知识,并对 SolidWorks 的使用作了简明的介绍。第三章阐述了简单标准件的设计,对系统设计作了具体的分析。第四章介绍了本次设计的具体实现,即菜单的加入和调试。第五章是对这次设计的总结。最后是谢词,参考文献。当然,设计中还存在很多的不足和漏洞,希望广大的老师和同学能帮助我找出并加以改进,本人在此感激不尽。2 Solidworks 的二次开发及其 API 函数简介2.1 相关术语为了方便用户进行二次开发,SolidWorks 提供了几百个 API 函数,这些API 是 SolidWorks 的 OLE 或 COM 接口,用户可以使用 VB/VC 等高级语言对其进行二次开发,建立适合用户需要的、专用的 SolidWorks 功能模块。要顺利对SolidWorks 进行二次开发,以下的基本术语是需要知道的。OLE 技术OLE 就是对象的嵌入与连接,它使得应用程序之间能够通过数据的嵌入或连接的方式来共享数据。含有嵌入或连接文档的应用程序被称为容器程序,提供文档数据编辑的应用程序被称为服务器程序。OLE2.0 推出以后,OLE 已经不再是对象的嵌入和连接的缩略词。不妨认为 ActiveX 是 OLE3.0,事实上 ActiveX 是OLE 在网络上的扩展,它使用了 OLE 技术并且超过了本地机器的范围。自动化技术 Automation 是 OLE 技术的一个重要内容。直到今天,自动化技术扩充和发展为ActiveX Automation,它适用于 OLE 对象和 ActiveX 对象。自动化技术由客户程序和服务器程序组成,客户程序是操纵者与控制者,服务器程序是被控制者,它包含了一系列的暴露对象。服务器应用程序通过自身对象的属性、方法、事件外显其功能;对象的服务器程序简单而抽象的代表。而客户应用程序则通过操纵服务器应用程序所暴露的一系列对象来操纵服务器应用程序。只要服务器程序提供一定的接口,可以使任何对象实现自动化。对象包含的一些外部接口,它们被称为方法与属性。方法是自动化对象的一些函数,它们是提供给客户程序的外部公共成员函数,属性是一个对象的一些命名特性,即对象的一些共有数据域。操纵程序被称为客户(Client),而被操纵程序称为服务器(Server),被操纵的对象是ActiveX 对象如果应用程序支持 OLE 技术,则在不同应用程序之间的切换由 OLE自动完成。SolidWoks 支持 OLE 标准,完全实现了 OLE 自动化,前已提及,第 11 页 共 36 页SolidWoks 具有开放的结构体系,它的这种开放性体现在它所提供的 API 对象上。API 是一个对 SolidWoks 的应用编程接口(Application Programming Interface),包含了几百个对象及其属性、方法和事件,这正是 SolidWoks 为用户提供的功能强大的二次开发接口,凡支持 OLE 编程的开发工具,如 Visual C+、Visual Basic、Dephi 等均可从各自本身操作这些对象,从而直接行使 SolidWoks 的功能,如画一条直线,拉伸一个凸台,或修改一个表面的参数等。利用这种方法可以完成 SolidWoks 的二次开发,创建出用户定制的、专用的 SolidWoks 功能模块。在本课题中,我们用 VB 来控制 SolidWoks 提供的各种对象,即把 VB 作为客户程序,SolidWoks 作为服务器程序。ActiveX 技术ActiveX 是微软新近提出的一种技术,它以 COM 为基础,其中包括了 OLE技术以及应用于 internet 的多种技术。它使得不同的进程,甚至是网络上的进程之间相互通信,并朝着多媒体方向发展。ActiveX 是一种面向对象的组件系统,其中包括了组件软件的各个方面,有复杂文档、自定义控制、OLE 自动化、交互应用程序脚本、数据传送及其他分布软件的相互作用。这些组件对象为用户提供了不同的功能,使得不同的软件供应商提供的组件可以在二进制之间进行相互的连接和通信。对象通过接口实现组件之间以及组件与系统之间的相互作用。在桌面系统进行软件交互时,除了系统提供的标准控制外,OLE 控件是一个重要的组成部分。ActiveX 是一种标准,利用这个标准可以使用通过不同的语言开发的软件构件在单机或网络环境中相互操作。同时,ActiveX 也是以组件对象模型为基础的开放技术的集合,它代表了应用程序与 internet 的一种集成策略。OLE Automation 技术自动化技术(Automation)为软件之间的交互创造了条件,它允许多个应用程序或组件之间进行通讯和交互,而与它们的语言、分布和原始平台无关。在开发标准件库时,运用 OLE(Object Linking and Embedding)Automation 技术,无疑会减小开发的难度,使系统更加稳定可靠。SolidWorks 系统提供数据操纵接口函数 API,专门读写三维零件数据,并提供了一系列的 Automation 接口(包括对象、属性和方法),使用户进行二次开发更加容易。运用 Automation 技术使得在自己的应用程序中驱动三维 CAD 系统中的零件变的有可能而且容易。第 12 页 共 36 页尺寸驱动原理本论文对标准件建模采用尺寸驱动原理,即标准件的生成也是对相应标准件模板进行尺寸驱动的过程。尺寸驱动即在零件拓扑结构不变的情况下,把零件的尺寸参数定义为尺寸变量,并定义出变量间的关系,当给定不同的尺寸值,就可得到一组结构相同而尺寸不同的零件,每一类标准件对应一个模板文件,在模板文件中定义尺寸变量和变量间的关系。由于三维 CAD 都采用了参数化的设计方法,在开发标准件库时没有必要再做尺寸约束求解,所以零件的最后生成可以依靠系统参数化功能来实现,即通过用新的尺寸值对准备好的标准件模板进行尺寸驱动来生成一个新的标准件。在工程实践中用到的具有系列尺寸的标准件,其尺寸参数可分为独立参数和非独立参数,独立参数中包含了主驱动参数(称之为基本参数)和自定义特性参数。一般只要给定独立参数,即可唯一确定零件的全部几何参数(非独立参数可由主驱动参数从标准件特性参数库中取得)。2.2 SolidWorks 的 API 函数介绍2.2.1 SolidWorks 的对象模型相关术语对象类定义了具有相同结构和操作的一组对象,其最基本的特征是封装和继承。作为一种抽象数据,对象把实体的相关特征和操作封装在一起,允许人们以自然的方式去模拟外部实体的结构和行为;继承是对象类实现可复用性和可扩充性的重要特征。一个对象类可以定义为另一个更一般的特殊情形, 这个对象类是特殊对象类的父类( SuperClass) ,或者说, 特殊对象是这个一般对象的子类(SubClass) ,子类继承父类的所有属性和操作,除此以外子类还可以定义自己特有的属性和操作。继承是对象类的一种特例化关系,亦即集合包含关系,子类对象实例集合是父类对象实例集合的子集。对象模型SolidWorks 的对象模型是一个多层次的对象网络,如图2.1所示。最高级别的对象类是SolidWorks ,该对象中封装了很多方法 (Methods) , 如OpenDoc2 、ActivateDoc2 、CloseDoc、ExitApp,下面又创建了许多子类, 如ModelDoc、Environment 、Frame。本文将重点介绍 ModelDoc 对象,因为大部分绘第 13 页 共 36 页图操作都在ModelDoc 对象中, 如SelectByID (选择) 、CreateCircle2 ( 画圆) 、CreateLine2 ( 画直线)。ModelDoc 中又创建了PartDoc、AssemblyDoc、DrawingDoc 等子类。其中大部分实体建模操作都在PartDoc 对象中,如FeatureExtrusion (拉伸) 、FeatureRevolve (旋转);而相关的装配操作如AddComponent (插入零部件) 、AddMate (插入配合) 等都在AssemblyDoc 对象中。2.2.2 对象的属性和方法在SolidWorks 创建的对象中,每个对象都有自己的属性和方法,通过调用API 函数实现,反过来,应用SolidWorks 的每一步操作都体现在特定的对象类中。下面以VB 为开发平台介绍其一些常用的API 函数。连接SolidWorks在对SolidWorks 进行二次开发时,首先要建立SolidWorks 的连接,创建SolidWorks 的应用对象:Dim swApp As ObjectSet swApp = CreateObject (SldWorks.Application)通过这个函数,就打开了SolidWorks 的接口,可以调用它的API 函数了。选择“选择”可以说是在使用SolidWorks 时用得最多的一个命令,有很多命令在使用时都要选择操作对象,通过调用ModelDoc 对象中的SelectByID 函数来实现:ModelDoc.SelectByID(objectName ,object Type ,x , y , z)这个函数在应用时需要输入五个参数:objectName 表示要选择对象的名称,该名称是SolidWorks在创建对象时按先后顺序自动命名的,如基准面1 、基准面2 、Arc1 、Line3 、D1 草图1 Part1.SLDPRT;object Type 要输入对象的类型,如PLANE (面) 、SKETCHSEGMENT (草图上的对象如直线、圆弧等) 、DIMENSION (尺寸标注);x , y , z 是平面上任一点的坐标值。插入草图在所选平面上插入草图,调用ModelDoc 中的InsertSketch 函数: ModelDoc.InsertSketch ()基本草图绘制命令第 14 页 共 36 页画直线调用ModelDoc 对象中的CreateLine2 函数:ModelDoc.CreateLine2 (xStart ,yStart ,zStart ,xEnd , yEnd , zEnd ).Const ructionGeomet ry =True xStart 、yStart 、zStart 、xEnd、yEnd、zEnd 分别是直线的起点和终点坐标; Const ructionGeomet ry =True 时表示画中心辅助线。画圆调用ModelDoc 对象中的CreateCircle2函数:ModelDoc.CreateCircle2 (xc ,yc ,zc ,xp ,yp ,zp)xc、yc、zc、xp 、yp 、zp 分别是圆心和圆上一点的坐标值。标注尺寸先通过SelectByID 函数选择要标注的对象 ,再调用ModelDoc 中的AddDimension 函数:ModelDoc.AddDimension ( x , y , z)x、y、z 为尺寸文本所要放的位置的坐标值。基本实体建模命令拉伸调用PartDoc 中的FeatureExtrusion 函数:PartDoc.FeatureExtrusion(sd,flip,dir,t1,t2,d1 ,d2 ,dchk1 ,dchk2 ,ddir1,ddir2 ,dang1 ,dang2 ,off setReverse1 ,off setReverse2)sd 为TRUE 时表示单向拉伸,为FALSE 时双向拉伸,以0 、1 表示;dir 为TRUE 时表示正向拉伸,为真时有效;dir 为TRUE 时表示反向拉伸,为真时有效; t1 、t2 表示终止类型,可取下列值: 0 (给定深度) 、1 (贯穿) 、2 (为贯穿下一个) 、3 (成形到一顶点) 、4 (成形到一面) 、5 (到离指定面指定的距离) 、6 (两侧对称) ; d1 , d2 表示拉伸的深度; ddir1 、ddir2 为TRUE 时表示带拔模角拉伸;dang1 、dang2 为TRUE 时表示向内拔模,为FALSE 是向外拔模;off setRe2verse1 , off setReverse2 控制到离指定面指定的距离,在t1 、t2 为5 时有效。其中d2 、dchk2 、 ddir2 、dang2 、off setReverse2 在双向拉伸时有效。旋转调用PartDoc 中 FeatureRevolv函数:PartDoc.FeatureRevolve (angle ,reverseDir ,angle2 ,revType)angle 表示旋转的角度;reverseDir 控制旋转的方向,为TRUE 时表示反向, revTyp 为1 时无效; an2gle2 表示旋转的反向角度,仅当revTyp 为2 时有效 ;revTyp 表示旋转类型,为0 时单方向旋转 ,为1 时双向等角度旋转,为2 时双向旋转。倒角调用ModelDo中的FeatureChamfer2Type 函数:ModelDoc.FeatureChamferType(chamfer Type,width ,angle ,flip ,otherDist ,vertexChamDist1 ,vertexChamDist2 ,vertexChamDist3)chamfer Type 控制倒角的类型,可取下列值: 1(角度- 距离控制) 、2 (距离- 距离控制) 、3 (顶点-第 15 页 共 36 页倒角控制) 、 4 (两边等距离控制 ) ;width 表示倒角边距 ;angle 表示倒角角度,仅当chamfer Type1 为1 时有效;otherDist 表示chamfer Type 为2 时的另一边距; vertexChamDist1、vertexChamDist2 、vertex2ChamDist3 表示chamfer Type 为3 时的三个距离添加菜单为了操作方便,把生成标准件的功能挂到Solidworks 装配环境的菜单和工具栏上,在菜单上的提示为各标准件的名称,在工具条上的提示则为图标,用户要插入某个标准件时,只需在菜单或工具条上进行选择,然后由开发的程序调用相应的标准件功能模块。Solidworks 的SldWorks 对象,为 VB 对Solidworks 工作环境进行访问处理提供了接口。关于菜单插件的具体具体实现方法将在后面谈到。2.2.3 更多的SolidWorks的API函数介绍在这里只是简要的介绍SolidWorks的API函数,不可能作到全面的认识或是图2.1熟悉这些API要了解更多的API知识可以查看SolidWorks的API和插件帮助主题,如图2.1。第 16 页 共 36 页2.3 VB开发SolidWorks的基本原理SolidWorks支持ActiveX Automation技术,VB 环境下建立的客户程序可以直接访问SolidWorks中的对象。ActiveX Automation是Microsoft公司提出的一个基于COM( Componet Object Model)的技术标准,是以前的OLE( Object Linking and Embeding)技术的更高层次的发展,ActiveX Automation被开发出来的原因就是需要协调不同的应用程序。Windows 本身准许同时运行多个应用程序,ActiveX Automation准许这些应用程序互相通讯。每个应用程序可以决定哪些信息和功能可以公布或者暴露给系统上的其它应用程序。虽然ActiveX Automation总是在两个应用程序之间安排对话,但是这个对话不是双向的,也是不平等的。ActiveX Automation程序的每一块都包括两个程序,起不同的作用,客户机是开始对话的应用程序,服务器是响应客户机的应用程序。代码在客户机上运行,而这个代码所控制的动作由服务器执行。在这里我们将SolidWorks理解为一个服务程序,把二次开发工具的VB 程序作为客户程序,它们之间是服务器与客户的关系。用户只要在VB 上进行操作,VB 就驱动SolidWorks完成相应的工作。SolidWorks为二次开发提供了大量的API 对象,这些对象涵盖了全部的SolidWorks的数据模型,通过对这些对象属性的设置和方法的调用,就可以在用户自己开发的DLL 中实现与SolidWorks相同的功能。 SolidWorks中常用的主要ActiveX Automation 对象有SolidWorks 的Body Parameter、Sldworks、Part、Face 和Feature 对象等。Sldworks对象为VB 对SolidWorks工作环境进行访问处理提供了接口。通过此对象可以对SolidWorks工作环境添加菜单、删除菜单、添加工具条、打开文件、新建文件、退出SolidWorks系统。用VB 调用SolidWorks中的API 函数,还可以完成零件的建造和修改;零件各特征的建立、修改、删除和压缩等各项控制;零件特征信息的提取,如特征尺寸的设置与提取,特征所在面的信息提取及各种几何和拓扑信息;零件的装配信息;零件工程图纸中的各项信息等。 第 17 页 共 36 页对SolidWorks进行二次开发。开发方法主要有两种方法:一是用人机交互形式建立模型,设置合理的设计变量,再通过V B 程序驱动设计变量实现模型的更新,这种方法编程较简单,通用性好;二是完全用程序实现三维模型的参数化设图 2.2计以及模型的编辑,这种方法编程较前者复杂,但可以实现对具有复杂形体的零件造型,如生成精确的渐开线齿轮齿廓。开发过程首先针对要建立的实体分析结构,在SolidWorks中创建实体并标注参数尺寸,主要是各特征的驱动尺寸,标注尺寸的大小是建立实体时的实际尺寸,SolidWorks会自动读取,一般不要修改它,但SolidWorks自动标注的尺寸名字( 如:D 1,D 2)在程序中难以识别,所以尺寸的名字可在标注时修改,使尺寸的名字尽量表达出特征。通过菜单,如图2.2,为V B 添加SolidWorks引用。本设计为标准件库的一般开发方法,对致力于SolidWorks二次开发的人员,具有一定的参考价值。2.4 用Visual Basic 6.0开发Solidworks的一般步骤(1) 安装 Solidworks 和 Visual Basic 6.0。(2) 启动 Visual Basic 6.0,新建一个工程,编写代码。在任何情况下,第 18 页 共 36 页你写的代码应该类似于由 Solidworks 的宏工具所产生的代码。在 Solidworks 中,应用记录宏(【工具】【宏操作】【录制】 )来获得程序头部和应用程序的代码是十分有益的。为了查看 Visual Basic 会话中的每个对象,可单击【视图】【对象浏览器】菜单命令,右键单击对象浏览器的“类”或“成员”窗口。在出现的弹出菜单中,单击【显示隐含成员】命令。此时可以浏览每个 Solidworks API 对象及相关的属性和 Visual Basic 安全数组传递的方法。 1(3) 在 Visual Basic 里,选择文件,生成.EXE 文件即可。用 Visual Basic 写的应用程序能够在许多地方运行。若在 Solidworks 中运行,则选择【工具】【宏操作】【运行】菜单命令,选择源文件即可;若作为.EXE 文件运行,直接运行即可。如果 Solidworks 已经运行,你的程序将附加于它;否则,Solidworks 打开一个新的会话;也可以创建一个宏文件来运行Visual Basic。2.5 开发方式选择分析即程序载入方式的选取。关于Solidworks API,在不同情况下使用有不同的使用方法。下图表示的是各种情况下的数据传递情况,Solid works 数据指的是零件,装配体,工程图等等此软件中涉及的各种元素。考虑到建立参数化模型需要用户自行选择零件种类,并由用户手动输入各种参数,且要给用户提供一个友好的界面,因此可以 DLL 动态链接库形式动态在菜单上添加按钮,按钮的驱动函数实现的功能就是提供给用户所需的界面。2.6 SolidWorks API函数语法1 .常用的 API 函数语法如下:return_value Object : Function ( Parameters )所有的 API 函数均支持执行程序界面。如果你正在使用可执行程序,SolidWorks API 函数返回 HRESULT 和一些其他变量的参数值。 132. 含多个变量函数的语法例:下面的函数用 ModelDoc2:SelectByID 返回一个布尔值。在该函数中使用了五个变量。第 19 页 共 36 页boolean ModelDoc2:SelectByID(BSTR objectName, BSTR objectType, double x, double y, double z)VB 语法: Dim result As Booleanresult = ModelObj.SelectByID(“Point1“,“SKETCHPOINT“, .2, .3, 0)3. 无变量函数的语法下面用嵌入草图函数作为例子,该函数无返回值,同时也没有输入变量,它将在当前文件(ModelDoc2)中插入一个草图。void ModelDoc2:InsertSketch( )VB 语法:ModelObj.InsertSketch4. 含返回值函数语法下面的语法用 ModelDoc2:GetType 函数为例,该函数不含输入变量,返回一个长整型值,该值为当前文件的类型。Long ModelDoc2:GetType( )VB 语法:Dim docType As LongdocType = ModelObj.GetType同样,下面的例子得到所选表面的边数,将该值作为长整型返回。long Face2:GetEdgeCount( )VB 语法:Dim edgeCount As LongedgeCount = FaceObj.GetEdgeCount5. 同一函数的不同接口一些函数可能有不同的实现方法。如果需要还可能含有多个接口。IDispatch *Body2:GetFirstFace( ) (OLE Automation)HRESULT Body2:IGetFirstFace( LPFACE* retval ) (COM Object)VB 语法: Dim FaceObj As ObjectSet FaceObj = BodyObj.GetFirstFace 注意:所调用的接口(对象自动连接标签)返回一个调用指针,而执行程序接口返回一个 LPFACE2 指针。可执行程序界面用对象指针代替调用指针,用指针代替不同的。因此,变量类型不同,一些 API 函数用不同的接口处理对象和数据,一个用于执行,一个用于连接调用。在上面的例子中,调用和执行接口分别是第 20 页 共 36 页GetFirstFace 和 IgetFirstFace。 173 简单标准件的开发与实现3.1 十字垫圈的设计3.1.1 建立垫圈对话框建立对话框如下:图 3.13.1.2 程序的设计首先我们要绘制一个十字垫圈.SLDPRT 作为模型,设置文件的保存路径。要根据数据来绘制不同尺寸的零件图,首先我们要通过 solidworks 的 API 接口来获取模型的尺寸值,然后建立变量来驱动模型尺寸,使其得到我们所需要的零件图。其关键代码如下:Dim modelTitle As StringDim longstatus As LongSet sldApp = GetObject(“, “SldWorks.Application“)Set model = sldApp.ActiveDocIf model Is Nothing ThenSet model = sldApp.OpenDoc4(“C:Documents and SettingsAdministrator桌面第 21 页 共 36 页王艳军毕设数据库solidworks十字垫圈-零件 16“, 1, 0, “, longstatus)ElsemodelTitle = model.GetTitlesldApp.CloseDoc modelTitleSet model = sldApp.OpenDoc4(“C:Documents and SettingsAdministrator桌面王艳军毕设数据库solidworks十字垫圈-零件 16“, 1, 0, “, longstatus)End IfIf model Is Nothing Then Exit Submodel.Parameter(“D1草图 1“).SystemValue = Text1.Text / 1000 Dmodel.Parameter(“D1草图 5“).SystemValue = Text2.Text / 1000 dmodel.Parameter(“D2圆角 1“).SystemValue = Text6.Text / 1000 圆角大小 r1model.EditRebuildEnd Sub3.1.3 建立数据库数据库技术是计算机应用技术中的一个主要部分,对于大量的数据,使用数据库来存储数据比通过文件来存储有更高的效率,Visual Basic 的数据控件(data)及相关的网格控件等提供了访问数据库的方法。 3(1)应用 Microsoft Access 建立十字垫圈的数据库,如下图: 6(2)VB 与数据库之间的连接第 22 页 共 36 页图 3.23.1.4 程序运行及结果当我们运行上述程序时,程序会自动打开 solidworks 软件打开我们所建立的模型,然后根据我们选择的尺寸来生成我们需要的新零件图,而且新的零件图是可以编辑和保存的。第 23 页 共 36 页图 3.33.2 定向键的设计3.2.1 定向键对话框的建立建立对话框如下:第 24 页 共 36 页图 3.43.2.2 程序的设计定向键的尺寸的参数化变化主要通过以下关键代码来实现:Private Sub Command3_Click()Dim swAppTitle As StringDim longstatus As LongSet sldApp = GetObject(“, “SldWorks.Application“)Set swApp = sldApp.ActiveDocIf swApp Is Nothing ThenSet swApp = sldApp.OpenDoc4(“C:Documents and SettingsAdministrator桌面王艳军毕设数据库solidworks定向键-零件4.SLDPRT“, 1, 0, “, longstatus)第 25 页 共 36 页ElseswAppTitle = swAppl.GetTitlesldApp.CloseDoc swAppTitleSet swApp = sldApp.OpenDoc4(“C:Documents and SettingsAdministrator桌面王艳军毕设数据库solidworks定向键-零件4.SLDPRT“, 1, 0, “, longstatus)End IfIfswApp Is Nothing Then Exit SubAssem.Parameter(“直线 2草图 1“).SystemValue = Val(Text1.Text) / 1000 基本尺寸 BAssem.Parameter(“直线 5草图 1“).SystemValue = Val(Text2.Text) / 1000 h1Assem.Parameter(“直线 1草图 1“).SystemValue = Val(Text3.Text) / 1000 HAssem.Parameter(“直线 3草图 1“).SystemValue = Val(Text4.Text) / 1000 B1 Assem.EditRebuildAssem.EditRebuildEnd Sub3.2.3 建立定向键数据库(1)应用 Microsoft Access 建立定向键的数据库,如下图所示:第 26 页 共 36 页图 3.5(2)进行数据库的连接第 27 页 共 36 页图 3.63.2.4 程序运行及结果当我们运行上述程序时,程序会自动打开 solidworks 软件打开我们所建立的模型,然后根据我们选择的尺寸来生成我们需要的新零件图,而且新的零件图是可以编辑和保存的。第 28 页 共 36 页图 3.73.3 固定式定位销的设计3.3.1 定位销对话框的设计第 29 页 共 36 页图 3.83.3.2 程序的设计Dim swAppTitle As StringDim longstatus As LongSet sldApp = GetObject(“, “Sld
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!