您的位置:网站首页 > Solidworks

利用Delphi进行SolidWorks二次开发

时间:2011-01-19 20:04:23 来源:未知

SolidWorks软件是在总结和继承了大型机械CAD软件的基础上,在Windows环境下实现的第一个机械CAD软件。各企业在实际的产品设计中大多要对通用CAD软件进行二次开发,建立适合自己的专用模块。SolidWorks的突出特点是:三维参数化特征造型,特征管理员功能,全相关的数据管理,它功能丰富、操作简单、维护方便、学习周期短、应用开发方便,与多家CAM、CAE软件有紧密接口。本文通过运用Delphi对SolidWorks进行二次开发来实现复杂的高速主轴三维成型及虚拟装配体的过程,使用ACESS数据库对高速主轴的相关参数进行传递和管理,提高了设计的效率与正确率。

  1 SolidWorks的二次开发技术

  1.1 SolidWorks API

  SolidWoks为用户提供了几百个二次开发接口(SolidWorks API),凡支持COM编程的开发工具,如Visual C++、Visual Basic、Delphi等均可用于SolidWorks的二次开发。SolidWorks API是SolidWorks的OLE编程接口,为程序员提供了完全面向对象的类体系,程序员可以在自己的程序中,派生这些类的子类,生成这些类的对象,对对象进行操作,运行对象的方法,设置或修改对象的属性,从而访问SolidWorks的数据库、图形系统和系统界面。SolidWorks的API对象涵盖了全部的SolidWorks的数据模型,进行二次开发时,调用SolidWorks中的API函数,可以完成零件各特征的建立、修改、删除和压缩等各项控制,零件特征信息的提取,如特征尺寸的设置与提取,特征所在面的信息提取及各种几何和拓扑信息,零件的装配信息,零件工程图纸中的各项信息等。图1所示为SolidWorks API的部分对象体系。

  1.2 COM技术

  组件对象模型(Component Object Model,COM)是由Microsoft公司在Windows操作系统中创建的一种二进制的网络标准,是组件(即应用程序)间的接口。它允许两个组件互相通信,而不论其运行于任何计算机(只要联网),采用任何操作系统(只要支持COM)以及该组件隶属于任何语言。另外,COM还引用了面向对象的思想,对象链接与嵌入(Object Linking and Embedding,OLE2)是第一个用COM架构的软件系统。

   

 

  图1 SolidWorks API部分对象体系

  1.3开发工具

  本文使用面向对象语言Delphi对SolidWorks进行二次开发。Delphi是Bodand公司开发的一种可视化应用程序开发工具,其基础语言为对象Pascal。它提供了一种快速的编译器,它具有高性能的32位本地优化代码编译器,其应用程序可以直接运行,能够最终生成可单独执行的DLL与EXE文件。另一方面,使用Delphi可方便迅速地建立强大的数据库应用程序。Delphi的数据库应用程序可以和Paradox Sybase、Microsoft SQL Server、Informix、InterBase和ODBC数据源等一起使用。

  1.4开发方法

  (1)在Delphi编程环境下,单击菜单栏中的“Project(工程)”、“Import Type Library”命令,弹出“Import Type library”对话框。

  (2)在“Import Type library”对话框中选择“SldWorks 2007 Type Liaray(Version f.0)”选项,单击“Create Unit”按钮,Delphi将在其import子目录下生成该类型库Object Pascal文件SldWorks_TLB.pas,然后就可以利用此文件进行二次开发了。

  (3)在Delphi环境下新建一个工程,加入相关代码,生成.exe文件或.dll文件,然后编译运行即可。注意要将第二步中生成的SldWorks_TLB.pas文件添加到工程中。

  2 Delphi对SolidWorks二次开发实例

  2.1主轴参数化系统结构

  主轴参数化系统结构如图2所示。首先需要对主轴进行设计并计算出所有相关尺寸参数存人数据库,以备以后对solidworks进行二次开发时调用。用户在主程序界面,通过相应的操作,程序即可自动从数据库中取出相关尺寸数据,调用相关SolidWorks API生成实体并调用零件库在的零件生成虚拟装配图。

   

 

  图2 主轴参敦化系统结构

  2.2数据库的选择与建立

  本文选用ACESS数据库对高速主轴的相关参数进行传递和管理。图3为数据库显示和本例的设计界面。其中namei为尺寸的名称,datai为尺寸的数值。在应用程序中通过数据控件和数据库建立连接,根据需要得到相应的数据信息来进行主轴三维图形的绘制。

   

 

  图3 应用程序设计界面

  2.3主要的建模过程

  在Delphi环境下,创建如图3所示的窗口,主要有三个控件:DBGridl、Buttonl、Button2。主轴参数表DBGridl中存放经过计算得到的主轴相关尺寸参数,当用户单击“生成三维图形”按钮时,主程序就会启动SolidWorks软件,并从表中提取主轴相关参数进行三维图形的绘制,单击“查看装配图”按钮可以查看进行虚拟装配后的图形。

  ButtonlClick过程的作用是启动SolidWorks绘图平台,并设置好绘图环境;DrawPart过程的作用是引用数据库中的数据记录,以及调用SolidWorks API函数功能进行零件图的绘制。Button2的作用是从标准零件库零件三维图形中找到相应的零件进行虚拟装配。

  Buttonl Click过程的代码和DrawPart过程的部分代码如下:

  

 

  

 

  

 

  用户单击“生成三维图形”按钮后程序运行结果如图4所示。用户单击“查看装配图”按钮后系统自动从标准零件库零件三维图形中找到相应的零件进行装配,装配体如图5所示。

   

 

  图4 主轴三维造型

   

 

  图5 主轴装配图

  3结语

  介绍了在Delphi的集成开发环境下,通过调用SolidWorks API函数进行二次开发,实现机械零件参数化设计的方法。可以参考该方法对SolidWorks进行其他较为复杂的二次开发,建立适合用户需要的、专用的SolidWorks功能模块。通过实例表明,用户通过对SolidWorks的二次开发可以提高产品的设计和开发效率。