基于SolidWorks API的参数化设计及智能装配研究

2014-11-19 欧长劲 特种装备制造与先进加工技术教育

  对机械产品的参数化设计和智能装配技术进行了研究,在编程工具VisualC++6.0的开发环境下根据SolidWorksAPI实现对SolidWorks2007的二次开发,采用VisualC++6.0+SQL2001+SolidWorks的技术方案,开发了某扳手喷雾器各零部件的参数化建模和智能装配的插件。此插件提高了设计效率和质量,缩短了设计周期。

  机械产品三维模型的建立是成品设计和后续仿真优化的基础,为了研究机械产品的结构关系和运动特性,设计者需要创建一系列结构相似,尺寸不同的模型,采用传统的手动建模和人工装配,需要耗费大量的时间和精力,而采用三维软件SolidWorks提供的开发工具(API),用户可以建立适合自己需求的应用方案,从而实现参数化设计和自动装配的目的,有效地缩短设计周期。下面将采用VisualC++6.0+SQL2001+SolidWorks的技术方案,实现机械产品设计过程中参数化设计和智能装配技术。

  1、SolidWorks二次开发相关技术及实现思路

  1.1、OLE自动化技术

  SolidWorks是围绕OLE自动化技术设计的,同时它也是SolidWorksAPI构造的基础。SolidWorks的二次开发是通过OLE技术实现的,OLE自动化技术,是一种为Windows交互进程通信机制,它让1个应用程序驱动或自动完成另一个应用程序,实现不同应用程序间可以共享信息资源的技术,将OLE组建暴露出来使之可控制的应用程序,叫做OLE自动化服务器,利用OLE服务器提供的组件对该对象进行控制制作的应用程序,叫做OLE客户。SolidWorks本身就是OLE自动化服务器,而在SolidWorks提供接口进行开发得到的插件就是OLE客户。通过OLE自动化技术,许多面向对象的应用程序可以与SolidWorks链接,直接操控SolidWorks,编制用户化程序满足设计需要[4]。

  1.2、SolidWorksAPI

  SolidWorks的API又称为SolidWorks应用程序开发接口,是为设计人员提供开发使用的接口[5]34,SolidWorksAPI是1个多层次的树形网络结构,其主体结构如图1所示。SolidWorks提供了几百个API函数,调用这些基于OLE(对象的嵌入与链接)和COM(组件对象技术)的各类对象的方法和属性,用户可以使用VB,Delphi,VC等高级语言与其链接,建立合适用户需要的专用功能模块,这些专用模块可以生成Dll插件挂载在SolidWorks的菜单下,也可以作为exe程序独立于Solidworks独立使用。

  1.3、VisualC++6.0与SolidWorks的成功通信

  VisualC++6.0与SolidWorks通信成功与否,直接决定整个程序功能的实现。VisualC++6.0平台上对SolidWorks二次开发的向导是基于ATL技术构建的,ATL(ActiveXTemplateLibrary)是一套类似于MFC的C++模板,使用ATL能够快速开发出高效、简洁的代码。VisualC++6.0开发环境已集成ATL,方便开发者的调用。当在ATL的开发环境中可以看到SolidWorks的标志时,就证明两者通信成功。

  1.4、数据库的建立与链接

  由于程序需要处理大量的数据,例如存贮各类相关变量参数和零部件模型等数据,因此数据库提供的服务变得尤为关键。采用开发简单的SQL2001作为存储数据的数据库,建立零件模型库和关系型数据库,分别储存相关的零部件模型和相关的配合关系,然后VisualC++6.0可以通过相关数据控件与其相链接,采用ADO的方式来处理数据库中的相关数据[5]34。

  结语

  以上对SolidWorks的二次开发的原理及实现理论作出了简要论述,以某型号扳手喷雾器为例,设计开发了其相关零部件参数化设计建模以及零部件智能装配的程序,实际证明此开发思路简便易行,效果明显,此程序最大特点是实现了对整个产品设计过程的自动化,极大提高了设计者的工作效率,同时,有助于设计人员了解喷雾器的运动特性并根据工程的实际要求来确定设计参数,方便设计者对扳手喷雾器机构的结构、运动学关系、喷雾特性等基础性内容进行深入细致的研究。