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

更新时间:2023-05-16 12:13:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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

基于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]。

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

图1 SolidWorks API对象层次图

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

[2-3]。

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

图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种开发工具的SolidWorks二次开发对比编程实践

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

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

3.1.2 编辑窗体界面

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

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

图4 编辑后窗体界面

3.2 程序编制

3.2.1 接口相关文件编制

在调用solidworksAPI函数进行零部件建模之前,首先编写接口相关文件,设置好绘图环境。相关的源代码如下如图5所示:

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

Delphi 7.0中

图5 接口相关文件编制源代码

从上述源代码中可以分明看出,语句简洁的是宏语言和VB语言,从定义变量直到获取solidworks接口并新建一个零件文件只需要简单的几句语句即可实现,速度最高。而Delphi需要的语句最多,同时对于程序中的变量需要预先定义,其接口相关文件编制较为繁琐。但特别之处的一点就是Delphi语言的自动化程度较高,如添加一个组件的话,在“type”中会自动添加该组件的类型和过程的声明。

3.2.2 零部件建模命令的实现

完成接口相关文件编制及环境设置之后,接下来的任务就是绘制图形。使用三种开发工具绘制圆台的源代码如图6所示:

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

宏中

VB 6.0中

Delphi 7.0中

图6 绘制圆台的源代码

通过对比上述源代码,可以看出,宏语言和VB语言中绘制圆台程序一致(仅有变量参数不同)。Delphi与上述二者的差别较大,主要是API函数内参数形式与内容的不同,语句的格式及所使用的API函数相同,参照Delphi语言格式要求可以很方便地对宏录制的相关源码进行修改与完善,以提高Delphi语言编程速度与效率。

4 结论

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

本文使用VBA语言、VB语言及Delphi这三种不同的开发语言实现了一个简单的圆台参数化交互式绘制程序,对二次开发过程中的相关问题做了详细的对比分析。通过实际编程过程,对于上述三种开发工具的优缺点有了更加明确的认识:

(1)使用VBA进行二次开发(即通过宏录制及编辑实现二次开发),优点在于:操作简便;可使得重复的任务自动化;定制和扩展客户应用程序功能;将客户应用程序及数据集成到其他应用程序中;最大的优点在于可以便捷高效地实现工作任务。但其缺点在于使用VBA开发的程序不能脱离他的宿主程序,可移植性不好,必须在“父”环境中才可以得以实现;且录制的代码混乱,必须经过修改与调试才能最终得以实现。

(2)使用VB进行二次开发,优点在于:代码简洁,易于编辑,可读性很强;简单易学,学习过程中很容易上手;功能齐全,程序员可以轻松的使用VB提供的组件进行二次开发,快速建立属于自己的应用程序,在其各项高效强大集成功能的支持下,最终可方便快速地完成二次开发任务,是一个最为理想的二次开发工具。

(3)使用Delphi进行二次开发,优点在于:Delphi同时兼备了VC功能强大和VB简单易学的特点,学习过程中很容易上手,自动化程度很高且集成了强大的数据库功能,也是用于二次开发的一个强大而高效的工具。但其缺点在于接口相关文件编制较为繁琐,且不能较为直接地利用宏录制这一高效的参考工具,因此开发效率稍逊于与宏录制同一“语系”的VB语言。

通过对CAD软件的二次开发,开发符合国家标准、适合企业实际应用的功能模块,以极大地提高这一通用系统的附加值,更好地满足企业设计要求,已经成为信息化、数字化时代的客观需要与必然发展趋势。希望本文的论述能够为新人入门及迅速掌握SolidWorks二次开发的思想与技巧提供帮助,共同提升CAD/CAE等通用软件的附加值,为制造业信息化、数字化与快速化服务。

[参考文献]

[1](美) SolidWorks公司.SolidWorks API二次开发[M ].生信实维公司编译.北京:机械工业出版社, 2005.

[2]殷国富,尹湘云,胡晓兵.SolidWorks二次开发实例精解[M].北京:机械工业出版社, 2006.

[3]江洪, 魏峥, 王涛威等.SolidWorks二次开发实例解析[M].北京:机械工业出版社, 2004.

[4]田民格,卢昌荆.Delphi程序设计[M].北京:清华大学出版社, 2007.

本文来源:https://www.bwwdw.com/article/fgc4.html

Top