基于3种开发工具的SolidWorks二次开发对比编程实践

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于3种开发工具的SolidWorks二次开发对比编程实践

2009年08月12日 e-works

1 前言

随着计算机技术与网络技术的迅速发展,越来越多的企业已经加大对于企业数字化信息化的建设,购买了相应的三维设计软件及其相关产品,这无疑对加速企业产品开发进程,缩短产品制造周期,提高产品质量,增强企业市场竞争力与创新能力发挥着重要作用。然而在工程实践中,其专业针对性不强。为此,人们通常通过对CAD软件的二次开发,开发符合国家标准、适合企业实际应用的功能模块,以极大地提高这一通用系统的附加值,更好地满足企业设计要求,更好地发挥CAD的效能。

SolidWorks软件是一款基于Windows平台开发的著名的全参数化三维实体造型软件,其设计过程全相关性,可以在设计过程的任何阶段修改设计,同时牵动相关部分的改变。同时SolidWorks具有良好的开放性和兼容性。基于这些优点,本文着重对SolidWorks的二次开发进行分析与研究。通过对该软件的二次开发,使其实现专业化、本地化,更大程度上发挥软件的价值,为制造业信息化与快速化服务。

2 SolidWorks二次开发的大体思路与一般方法

SolidWorks通过COM(Component Object Model,组件对象模型)技术为用户提供了强大的二次开发接口(SolidWorks API),凡支持COM编程的开发工具,如Visual Basic, Delphi等均可用于SolidWorks的二次开发。SolidWorks中常用的API对象如图1所示。SldWorks对象为对SolidWorks工作环境进行访问处理提供了接口。通过此对象可以对SolidWorks工作环境添加菜单、删除菜单、添加工具条、打开文件、新建文件、退出SolidWorks系统。SolidWorks的API对象涵盖了全部的SolidWorks的数据模型,通过对这些对象属性的设置和方法的调用,就可以在用户自己开发的DLL中实现与SolidWorks相同的功能。进行二次开发时,调用SolidWorks中的API函数,可以完成零件的造型和修改,零件各特征的建立、修改、删除和压缩等各项控制,零件特征信息的提取,如特征尺寸的设置与提取,特征所在面的信息提取及各种几何和拓扑信息,零件的装配信息,零件工程图纸中的各项信息等[1]。

图1 SolidWorks API对象层次图

SolidWorks开发系统图如图2所示。其基本工作流程为:基于OLE技术的SolidWorks API将SolidWorks的各种功能封装在SolidWorks对象之中供编程调用,开发者使用二次开发编程语言通过调用SolidWorks的对象体系结构,操纵对象的属性和调用对象的方法便可以建立自主的应用程序,实现二次开发[2-3]。

图2 SolidWorks开发系统框图

随着计算机技术与网络技术的迅速发展,越来越多的企业已经加大对于企业数字化信息化的建设,购买了相应的三维设计软件及其相关产品,这无疑对加速企业产品开发进程,缩短产品制造周期,提高产品质量,增强企业市场竞争力与创新能力发挥着重要作用。然而在工程实践中,其专业针对性不强。为此,人们通常通过对CAD软件的二次开发,开发符合国家标准、适合企业实际应用的功能模块,以极大地提高这一通用系统的附加值,更好地满足企业设计要求,更好地发挥CAD的效能。

3 运用3种开发工具进行SolidWorks二次开发编程对比

为更好地帮助新人快速入门,笔者以一个简单的圆台参数化交互式调用为例,分别使用VBA语言、VB语言及Delphi这三种不同的开发语言对其进行开发实现[4],接下来详细对比分析这几种语言二次开发时的优缺点及需注意的关键问题。文中所使用的软件版本依次为SolidWorks 2007企业版,Visual Basic 6.0企业版及Delphi企业版软件。

3.1 编程准备

在程序编制前,首先是针对具体的开发工具,进行一些相关的应用或是设置工作。

3.1.1 类型库的导入

因为在使用VB语言及Delphi语言这两种开发工具进行SolidWorks二次开发时一般采用的是DLL动态链接库方式,必须导入相关的类型库,接下来才能调用SolidWorks的对象、方法与属性。而对于采用VBA语言,即采用宏录制实现solidworks二次开发的方式,由于宏是内嵌于SolidWorks的编程语言,不需要导入相关类型库。

对于VB而言,添加引用的步骤是:单击菜单栏中【工程】【引用】命令,选择“SolidWorks exposed Type Libraries For add-in Use”(SolidWorks插件库文件)、“SolidWorks 2007 Type Libray”(SolidWorks库文件)和“SolidWorks Consant Type library”(SolidWorks常数库),如图3所示。

对于Delphi而言,导入类型库的步骤是:单击主窗口中“Project”“Import Type Library”命令,在弹出的如图4所示的“Import Type Library”对话框中对SolidWorks类型库进行注册,将类型库文件SldWorks.tlb装载到Delphi中。选中“SolidWorks 2007 Type Library(Version f.0)“,单击“Creat Unit”按钮,Delphi 将在其Import子目录下生成该类型库的Object Pascal文件

Sldworks_TLB.Pas,该文件包括SolidWorks提供的所有API函数。接下来单击主窗口中“Project”“Add to Project”菜单命令,在弹出的“Add to Project”对话框中,选择Delphi的Import子目录下Solidworks类型库单元文件

Sldworks_TLB.pas,将其添加入工程中。

图3 VB中引用SolidWorks类型库对话框

图4 Delphi中导入SolidWorks类型库对话框

3.1.2 编辑窗体界面

在编辑窗体一栏,三者的区别不大。其中VB语言与宏因为基于同一语言,编辑窗体时操作一致,Delphi语言的窗体编辑业余前两者相似,只是组件名的稍微区别(如文本编辑组件在Delphi中使用Edit控件,而在VB中使用TextBox控件)。三种语言下编辑好的窗体界面如图4所示,接下来便是设置相应控件属性。

相关文档
最新文档