论文部分内容阅读
【摘 要】介绍SolidWorks中的二次开发工具,并以实例叙述了Visual Basic 6.0对SolidWorks的二次开发技术,解决了用VB语言对SolidWorks进行二次开发的接口难题,并为以后VB程序员进行SolidWorks的二次开发提供了基础。
【关键词】SolidWorks Visual Basic 6.0 API函数
SolidWorks是一套基于windows的CAD/CAM/CAE/PDM桌面集成系统,它有着易用和友好的界面,其灵活的操作方式和面向对象的操作特点,得到了业界广大工程师的一致认可。该软件可以最大限度地满足设计者的设计意图,操作简单,功能强大,容易上手,但是对于企业的一些特殊要求,利用SolidWorks现有的功能模块还不能实现,所以有必要对其进行二次开发。
另外由于SolidWorks是美国人写的,不符合中国的国标(如基准符号、放大图的标注、剖视图的标注、装配图的序号、标题栏等),也没有适合我国国标的标准件库,因此为了适应特定企业的特用,就必须对其进行本地化和专业化的二次开发工作,对SolidWorks进行必要的补充,以满足用户的需要。
1 SolidWorks二次开发工具
任何支持OLE(Object Linking and Embedding,对象的链接与嵌入)和COM(Component Object Model,组件对象模型)的编程语言都可以作为SolidWorks的开发工具。SolidWorks二次开发分为两种,一种是基于自动化技术的,此种技术只能开发EXE形式的程序;另一种开发方式是基于COM的,这种技术可以使用最多的SolidWorks API(Application Programming Interface,运用程序界面)。API可控制SolidWorks会话的方式 ,生成*.dll格式的文件,也就是SolidWorks的插件。SolidWorks的二次开发工具较多,如Delphi、C语言、C 、Visual C 6.0、C#、Visual Basic 6.0、Visual Basic.NET等,本文是用Visual Basic 6.0对SolidWorks进行的二次开发。具体来说,也就是程序员可以通过Visual Basic 6.0调用SolidWorks的API函数来派生子类、生成类对象、定义对象、对对象进行属性访问、运行对象方法等,完成零件各特征的建立、修改、删除、压缩等控制;零件特征信息、装配信息以及零件工程图纸中的各项信息的提取,比如零件特征尺寸的设置与提取,特征所在面的信息提取及各种几何和拓扑信息;此外,还可以在SolidWorks主菜单上增加按钮,将自己开发的应用模块嵌入到它的管理系统中,建立适合用户需要的、专用的SolidWorks功能模块。
2 VisuaI Basic 6.0对SolidWorks二次开发的方法
Visual Basic语言规则简单,不象其它高级语言(如C 、Delphi等)那么复杂,但其功能很全、使用简捷、许多类型转换能自动识别,使程序员开发难度大大降低,容易被初学者掌握。SolidWorks又提供了宏录制功能。其特点是通过宏录制可以记录SolidWorks用户整个产品设计过程,把用户的界面菜单操作所用到的SolidWorks对象、方法都一一记录下来,并且语法完全符合Visual Basic。例如:用户通过SolidWorks软件设计一个零件,并用宏录制设计过程,开发人员根据宏文件中的对象和方法在自己的应用程序中合理组织,作较少的修改,对具体参数用变量代替,这样通过对变量的控制就可实现产品的参数化设计。在二次开发过程中,宏录制文件中的许多对象、方法可以直接在Visual Basic应用程序中应用,这就简化了开发人员的开发过程。以下介绍其开发方式:
(1) Visual Basic 6.0中引入SolidWorks的对象库。启动Visual Basic 6.0新建工程,选择"工程一引用",在可引用对象中选择"Sldworks 2003 Type Library"。
(2) 编写自己的应用程序代码。程序代码可以参考SolidWorks的宏录制代码,并进行必要修改。
(3) 在Visual Basic 6.0中选择生成文件,生成工程.exe文件即可。
3 Visual Basic 6.0开发SolidWorks的实例
本文以标准件螺母为例来说明VB对SolidWorks的二次开发。
(1)在SolidWorks中对GY103螺母建模,同时将整个过程用宏命令录制下来,然后把整个建模过程的程序拷贝到VB中。
(2)在VB的窗体中进行参数化设置,即把GY103螺母的各个参考尺寸根据图示在窗体中进行设置,这些值是跟程序直接联系的,故若改变这些值对应的GY103螺母的大小也会改变。
(3)建立插件,即在SolidWorks的环境建立菜单与子菜单,由SolidWorks的API函数开实现。所用的连接代码如下:
Implements SW Published.SwAddin
Dim iSldWorks As SldWorks.SldWorks’ 定义变量
Dim iCookie As Long
Dim iToolbarID As Long
Dim swApp, ModelDoc, Feature As Object
Private Function SwAddin_ConnectToSW(ByVal ThisSW As Object, ByVal Cookie As Long) As Boolean Dim bRet As Boolean
Set iSldWorks = ThisSW ’与SW建立连接
iCookie = Cookie ’从SW得到cookie
bRet = iSldWorks.SetAddinCallbackInfo(App.hInstance, Me, iCookie)
bRet = iSldWorks.AddMenu(swDocNONE, "气压机夹具三维参数化设计模块(
【关键词】SolidWorks Visual Basic 6.0 API函数
SolidWorks是一套基于windows的CAD/CAM/CAE/PDM桌面集成系统,它有着易用和友好的界面,其灵活的操作方式和面向对象的操作特点,得到了业界广大工程师的一致认可。该软件可以最大限度地满足设计者的设计意图,操作简单,功能强大,容易上手,但是对于企业的一些特殊要求,利用SolidWorks现有的功能模块还不能实现,所以有必要对其进行二次开发。
另外由于SolidWorks是美国人写的,不符合中国的国标(如基准符号、放大图的标注、剖视图的标注、装配图的序号、标题栏等),也没有适合我国国标的标准件库,因此为了适应特定企业的特用,就必须对其进行本地化和专业化的二次开发工作,对SolidWorks进行必要的补充,以满足用户的需要。
1 SolidWorks二次开发工具
任何支持OLE(Object Linking and Embedding,对象的链接与嵌入)和COM(Component Object Model,组件对象模型)的编程语言都可以作为SolidWorks的开发工具。SolidWorks二次开发分为两种,一种是基于自动化技术的,此种技术只能开发EXE形式的程序;另一种开发方式是基于COM的,这种技术可以使用最多的SolidWorks API(Application Programming Interface,运用程序界面)。API可控制SolidWorks会话的方式 ,生成*.dll格式的文件,也就是SolidWorks的插件。SolidWorks的二次开发工具较多,如Delphi、C语言、C 、Visual C 6.0、C#、Visual Basic 6.0、Visual Basic.NET等,本文是用Visual Basic 6.0对SolidWorks进行的二次开发。具体来说,也就是程序员可以通过Visual Basic 6.0调用SolidWorks的API函数来派生子类、生成类对象、定义对象、对对象进行属性访问、运行对象方法等,完成零件各特征的建立、修改、删除、压缩等控制;零件特征信息、装配信息以及零件工程图纸中的各项信息的提取,比如零件特征尺寸的设置与提取,特征所在面的信息提取及各种几何和拓扑信息;此外,还可以在SolidWorks主菜单上增加按钮,将自己开发的应用模块嵌入到它的管理系统中,建立适合用户需要的、专用的SolidWorks功能模块。
2 VisuaI Basic 6.0对SolidWorks二次开发的方法
Visual Basic语言规则简单,不象其它高级语言(如C 、Delphi等)那么复杂,但其功能很全、使用简捷、许多类型转换能自动识别,使程序员开发难度大大降低,容易被初学者掌握。SolidWorks又提供了宏录制功能。其特点是通过宏录制可以记录SolidWorks用户整个产品设计过程,把用户的界面菜单操作所用到的SolidWorks对象、方法都一一记录下来,并且语法完全符合Visual Basic。例如:用户通过SolidWorks软件设计一个零件,并用宏录制设计过程,开发人员根据宏文件中的对象和方法在自己的应用程序中合理组织,作较少的修改,对具体参数用变量代替,这样通过对变量的控制就可实现产品的参数化设计。在二次开发过程中,宏录制文件中的许多对象、方法可以直接在Visual Basic应用程序中应用,这就简化了开发人员的开发过程。以下介绍其开发方式:
(1) Visual Basic 6.0中引入SolidWorks的对象库。启动Visual Basic 6.0新建工程,选择"工程一引用",在可引用对象中选择"Sldworks 2003 Type Library"。
(2) 编写自己的应用程序代码。程序代码可以参考SolidWorks的宏录制代码,并进行必要修改。
(3) 在Visual Basic 6.0中选择生成文件,生成工程.exe文件即可。
3 Visual Basic 6.0开发SolidWorks的实例
本文以标准件螺母为例来说明VB对SolidWorks的二次开发。
(1)在SolidWorks中对GY103螺母建模,同时将整个过程用宏命令录制下来,然后把整个建模过程的程序拷贝到VB中。
(2)在VB的窗体中进行参数化设置,即把GY103螺母的各个参考尺寸根据图示在窗体中进行设置,这些值是跟程序直接联系的,故若改变这些值对应的GY103螺母的大小也会改变。
(3)建立插件,即在SolidWorks的环境建立菜单与子菜单,由SolidWorks的API函数开实现。所用的连接代码如下:
Implements SW Published.SwAddin
Dim iSldWorks As SldWorks.SldWorks’ 定义变量
Dim iCookie As Long
Dim iToolbarID As Long
Dim swApp, ModelDoc, Feature As Object
Private Function SwAddin_ConnectToSW(ByVal ThisSW As Object, ByVal Cookie As Long) As Boolean Dim bRet As Boolean
Set iSldWorks = ThisSW ’与SW建立连接
iCookie = Cookie ’从SW得到cookie
bRet = iSldWorks.SetAddinCallbackInfo(App.hInstance, Me, iCookie)
bRet = iSldWorks.AddMenu(swDocNONE, "气压机夹具三维参数化设计模块(