引言
_h#I}uJ~ ej}S{/<*n SolidWorks是基于
Windows平台、采用Parasolid图形核心的一套三维
CAD软件,它支持参数化和特征造型技术,能够使用户方便、快捷地创建任何复杂形状的实体,并且可以实现实体的参数化驱动。由于其界面友好、操作方便、简单易学,目前已成为微机平台上流行的三维设计软件。更为重要的是SolidWorks提供了大量的API(Application Program Interface,应用程序接口)函数用于
二次开发,这些API函数是SolidWorks的OLE(Object Linking and Embedding,对象的嵌人与链接)或COM (Component Object Model,组件对象模型)接口,使用户能够直接访间SolidWorks,并可以使用多种高级语言,如VB,VBA、VC等对其进行二次开发。由于VB(Visual Basic)是运行在Windows环境下的可视化
编程语言,具有语言规则简单、功能齐全、使用简捷的优点,已有很多科研工作者利用VB语言对SolidWorks进行了二次开发,但大多停留在介绍开发的使用方法上,对于SolidWorks在箱体类零件二次开发应用方面的研究鲜有报道。箱类零件一般多用于支撑和装置其它零件,结构形状复杂,并且种类繁多,结构差异很大,其结构以箱壁、筋板和框架为主,工作表面以平台和凸台为主。作者根据箱类零件特点,用SolidWorks对其进行三维建模,并采用高级语言VB等进行编程,达到参数化驱动的目的,实现箱体类零件的参数化设计,使箱体设计更加规范、便捷和高效。
AnX<\7bc} M+VWAh#uD 1 SolidWorks二次开发关键技术及方法
yj_> G UQ0<sI= 本文主要通过编写Visual Basic程序来对SolidWorks软件进行二次开发,采用的技术方案是:Visual Basic+Access+SolidWorks API,其主要过程如下:
EZ|v,1`e MomHSv Q\ (1)在Microsoft Access中建立箱体类零件设计中所需的表格数据库,供在箱体类零件设计中程序查询用。
LOi}\O8 .S-) (2)在SolidWorks中实现对箱体类零件的造型。用SolidWorks创建箱体类零件三维模型时,把建模的全过程录制成宏文件,找出宏文件中与模型生成有关的关键函数,并确定其中的关键常数,弄清关键常数的变化对实体建模的影响,将关键常数用变量代替,这样就建立了SolidWorks中的箱体类零件的参数化模型。
n }A!aC (oX!D(OI (3)使用VB语言编制应用程序界面,当进行箱体类零件设计时,设计者通过应用程序界面录入初始参数,程序将自动计算出上述宏文件中所需相关参数,编译程序并生成可执行程序供SolidWorks程序调用。
ZGR5"el!
HrsG^x (4)完成可执行应用程序后,使用SolidWorks中的宏操作命令将应用程序嵌人SolidWorks中,实现二者的链接。
bz#]>RD Rb0I7~Z%'d 通过以上四步就完成了SolidWorks的二次开发。以下是作者就二次开发中所用到的关键技术和方法进行的归纳与总结。
lcm[l KsOWTq"uj 1.1OLE和COM
y-bUVw!Y 8vR_WHsL SolidWorks的二次开发分为两种:一种是基于OLE技术的,可以开发exe形式的程序;另一种是基于COM的,可以生成* . dll格式的文件,作为SolidWorks的插件在SolidWorks中被加载运用。能够通过数据嵌人或链接的方式来共享数据。含有嵌人或链接文档数据的应用程序,称之为容器程序;提供文档数据编辑的应用程序,称之为服务器程序。通过OLE技术,许多面向对象的应用程序可以与SolidWorks通讯,从而直接操纵SolidWorks,编制用户化程序满足设计需要。COM技术,即组件对象模型,定义了标准的构建组件的方法,是软件组件互相通讯的一种方式。它是一种二进制的网络标准,允许任意两个组件互相通讯。COM不是一个特殊类型的应用程序,而是一个可以用来为任何类型的应用程序构建组件的普遍的模型。
J,CwC) q{Z#}|km# 1.2SolidWorks API函数
&LAXNk2 / 'qoKof SolidWorks API是SolidWorks的OLE应用程序开发接口,为用户提供了完全面向对象的类体系。它包括以下几个方面:①对象的类型;②对象的属性;③对象的方法。开发者通过操纵对象的属性和调用对象的方法建立自己的应用程序,开发者可以在通用的开发平台如VB, VBA, VC等上开发使用这些类的程序,也可以在自己的程序中派生这些类的子类,生成这些类的对象,对对象进行操作,设置或修改对象的属性,从而访问SolidWorks的数据库、图形系统和系统界面。
-%yrs6 -g2l-N{& 1.3 VB程序与SolidWorks接口的实现VB程序与SolidWorks接口的实现是箱体类零件参数化建模的关键。将箱体类零件建模的过程录制成宏文件,将宏复制到VB中,在VB环境中对宏文件进行修改编辑,加人如下语句,并将其中的路径修改为SolidWorks的安装路径:
Is7BJf I6f/+;E .nrllVG%` %k1Pyv;] 这样就实现了VB与SolidWorks的链接,在VB中编写的程序就可以在SolidWorks环境中运行了。
'{jr9Vh pCh v; 1.4数据库的建立与读取
[TFJb+N& (n*:LS=0 数据库所提供的服务是整个系统的关键,本文是以VB默认的Access数据库来存储各种相关变量参数的。将复杂多样的数据用嵌人和链接的方式内置于数据库中,建立一个关系型数据库,然后在VB应用程序中通过数据控件和数据库相链接,采用ADO的方式读取数据库。
s||" } l .M^[/! ADO是Microsoft数据库应用程序开发的新接口,是建立在OLE nB之上的高层数据库访问技术。使用Ano技术在vB中检索和读写数据的程序如下:
s4"OsgP+ PT6]qS'1 BtC*]WB"_' b[<RcM{r} 2 箱体类零件的三维建模
\4>,L_O '&![h7B 在应用程序的开发中,为了让设计者能够根据自身经验更好地实时控制整个箱体类零件设计过程和进度,采用了对话框的形式来完成计算机和人之间的信息交流。
pqfX}x Ck
Nl;g l 3 结论
?FAI@4 |R0f--; 阀体三维实体的成功建立表明用VB对Solid Works的二次开发在箱体类零件参数化设计的应用是行之有效的。从上述设计过程可以看出,参数化设计与传统设计相比,其最大的特点是实现了整个设计过程的自动化,更为重要的是它能够设计出一族而非单一的零件模型,这样大大提高了工作效率,也使得操作更加简单方便。