#种开发工具的SolidWorks二次开发对比编程实践
- 格式:doc
- 大小:235.50 KB
- 文档页数:9
基于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而言,添加引用的步骤是:单击菜单栏中【项目】【引用】命令,选 对于Delphi而言,导入类型库的步骤是:单击主窗口中 “Project” “Import Type 图3 VB中引用SolidWorks类型库对话框 图4 编辑后窗体界面 Delphi 7.0中 图5 接口相关文件编制源代码 3.2.2 零部件建模命令的实现 VB 6.0中 Delphi 7.0中 通过对比上述源代码,可以看出,宏语言和VB语言中绘制圆台程序一致<仅有 4 结论 <1)使用VBA进行二次开发<即通过宏录制及编辑实现二次开发),优点在 <2)使用VB进行二次开发,优点在于:代码简洁,易于编辑,可读性很强; <3)使用Delphi进行二次开发,优点在于:Delphi同时兼备了VC功能强大和 通过对CAD软件的二次开发,开发符合国家标准、适合企业实际应用的功能模 [参考文献] [2]殷国富,尹湘云,胡晓兵.SolidWorks二次开发实例精解[M].北京:机械工业 [3]江洪, 魏峥, 王涛威等.SolidWorks二次开发实例解读[M].北京:机械工业 [4]田民格,卢昌荆.Delphi程序设计[M].北京:清华大学出版社, 2007. 申明:
择“SolidWorks exposed Type Libraries For add-in Use”(SolidWorks插件库文
件>、“SolidWorks 2007 Type Libray”
Library”命令,在弹出的如图4所示的“Import Type Library”对话框中对
SolidWorks类型库进行注册,将类型库文件SldWorks.tlb装载到Delphi中。
选中“SolidWorks 2007 Type Library
Sldworks_TLB.Pas,该文件包括SolidWorks提供的所有API函数。接下来
单击主窗口中 “Project” “Add to Project”菜单命令,在弹出的 “Add to Project”
对话框中,选择Delphi的Import子目录下Solidworks类型库单元文件
Sldworks_TLB.pas,将其添加入项目中。
图4 Delphi中导入SolidWorks类型库对话框
3.1.2 编辑窗体界面
在编辑窗体一栏,三者的区别不大。其中VB语言与宏因为基于同一语言,编
辑窗体时操作一致,Delphi语言的窗体编辑业余前两者相似,只是组件名的稍
微区别<如文本编辑组件在Delphi中使用Edit控件,而在VB中使用TextBox
控件)。三种语言下编辑好的窗体界面如图4所示,接下来便是设置相应控件
属性。
3.2 程序编制
3.2.1 接口相关文件编制
在调用solidworksAPI函数进行零部件建模之前,首先编写接口相关文件,设
置好绘图环境。相关的源代码如下如图5所示:
6 / 9
从上述源代码中可以分明看出,语句简洁的是宏语言和VB语言,从定义变量
直到获取solidworks接口并新建一个零件文件只需要简单的几句语句即可实
现,速度最高。而Delphi需要的语句最多,同时对于程序中的变量需要预先定
义,其接口相关文件编制较为繁琐。但特别之处的一点就是Delphi语言的自动
化程度较高,如添加一个组件的话,在“type”中会自动添加该组件的类型和过程
的声明。
完成接口相关文件编制及环境设置之后,接下来的任务就是绘制图形。使用三
种开发工具绘制圆台的源代码如图6所示:
宏中
图6 绘制圆台的源代码
变量参数不同)。Delphi与上述二者的差别较大,主要是API函数内参数形式
与内容的不同,语句的格式及所使用的API函数相同,参照Delphi语言格式要
求可以很方便地对宏录制的相关源码进行修改与完善,以提高Delphi语言编程
速度与效率。
本文使用VBA语言、VB语言及Delphi这三种不同的开发语言实现了一个简单
的圆台参数化交互式绘制程序,对二次开发过程中的相关问题做了详细的对比
分析。通过实际编程过程,对于上述三种开发工具的优缺点有了更加明确的认
识:
于:操作简便;可使得重复的任务自动化;定制和扩展客户应用程序功能;将
客户应用程序及数据集成到其他应用程序中;最大的优点在于可以便捷高效地
实现工作任务。但其缺点在于使用VBA开发的程序不能脱离他的宿主程序,可
移植性不好,必须在“父”环境中才可以得以实现;且录制的代码混乱,必须经
过修改与调试才能最终得以实现。
简单易学,学习过程中很容易上手;功能齐全,程序员可以轻松的使用VB提
供的组件进行二次开发,快速建立属于自己的应用程序,在其各项高效强大集
成功能的支持下,最终可方便快速地完成二次开发任务,是一个最为理想的二
次开发工具。
VB简单易学的特点,学习过程中很容易上手,自动化程度很高且集成了强大的
数据库功能,也是用于二次开发的一个强大而高效的工具。但其缺点在于接口
相关文件编制较为繁琐,且不能较为直接地利用宏录制这一高效的参考工具,
因此开发效率稍逊于与宏录制同一“语系”的VB语言。
块,以极大地提高这一通用系统的附加值,更好地满足企业设计要求,已经成
为信息化、数字化时代的客观需要与必然发展趋势。希望本文的论述能够为新
人入门及迅速掌握SolidWorks二次开发的思想与技巧提供帮助,共同提升
CAD/CAE等通用软件的附加值,为制造业信息化、数字化与快速化服务。
[1](美> SolidWorks公司.SolidWorks API二次开发[M ].生信实维公司编
译.北京:机械工业出版社, 2005.
出版社, 2006.
出版社, 2004.
所有资料为本人收集整理,仅限个人学习使用,勿做商业用