陈晨 李华 曾毅
(江苏省特种设备安全监督检验研究院镇江分院)
SolidWorks二次开发在压力容器法兰参数化建模中的应用
陈晨*李华 曾毅
(江苏省特种设备安全监督检验研究院镇江分院)
以压力容器法兰参数化建模为例,研究基于VB语言的SolidWorks软件二次开发技术。在经设计的人机交互界面中,用户可以自定义法兰的参数值,只需要输入相关设计参数,便可自动生成法兰的三维模型。采用二次开发技术建模能加快SolidWorks的响应速度,缩短产品的设计周期,并且可以改善传统建模过程中效率低、操作繁琐的问题。
压力容器 法兰 二次开发 参数化 建模 SolidWorks
压力容器的可拆密封装置形式很多,如中低压容器中的螺纹连接、承插式连接和螺栓法兰连接等,其中以结构简单、装配方便的螺栓法兰连接用得最普遍。压力容器法兰是压力容器设计中的重要内容,也是决定压力容器能否可靠运行的关键部件,所以提高法兰设计效率和质量是非常必要的。
SolidWorks软件是世界上第一个基于Windows系统开发的三维CAD软件,它通常应用于产品的机械设计,设计工程师按照设计思想绘出草图,然后生成模型实体及装配体[1]。SolidWorks软件是一套完全参数化建模软件,全面采用了非约束的建模特征技术,其设计过程具有完全相关性,可以在设计过程的任何阶段修改设计,同时牵动相关部分的改变。SolidWorks软件自带应用程序接口(API),在API中提供了二次开发所需要的所有接口函数说明,而且支持Visual Basic、Visual C++或任何支持对象连接与嵌入(OLE)的程序语言来做二次开发[2]。
本文以压力容器法兰参数化建模为例,研究基于VB语言的SolidWorks软件二次开发技术。采用二次开发技术建模能加快SolidWorks的响应速度,缩短产品的设计周期,并且可以改善传统建模过程中效率低、操作繁琐的问题。
1.1 二次开发工具
Visual Basic 6.0是微软公司推出的Windows环境下源于BASIC语言的应用程序设计语言,是一个包含了程序设计、运行、调试和发布等功能的集成开发系统。它采用面向对象的程序设计技术,使得开发Windows应用程序更快速、更简捷,具有易学、易用、程序开发周期短、可视化界面好等优点[3]。基于Visual Basic的这些优点,本文采用该语言进行二次开发。
1.2 二次开发方法
SolidWorks二次开发有两种方法,一是完全编程开发,要求用户利用API函数对需要表达的所有对象进行程序编写,这样可以由编写的程序完全驱动三维模型,能模拟造型复杂的形体。但是完全编程开发方法需要设计人员对编程语言比较熟悉,这对初学者来说有一定难度。二是利用SolidWorks中的宏命令辅助开发。首先利用SolidWorks中的宏录制命令录制相关操作,然后再将宏录制过程中产生的代码作为编写程序时的基础代码,对其进行编辑修改,最后添加到程序中。本文采用后者,就是利用宏命令进行辅助开发。
1.3 二次开发基本步骤
利用宏命令进行SolidWorks二次开发基本步骤如下:
(1)打开SolidWorks,新建一个零部件文件。
(2)开始宏文件的录制。
(3)打开录制好的宏文件,修改代码。
(4)设计窗体,添加控件并编写控件代码。
(5)在菜单栏添加快捷按钮。
本文以JB/T 4703—2000《长颈对焊法兰》为标准,设计人机交互界面,实现自动创建五种密封面的法兰模型的功能。
2.1 利用宏命令录制代码
SolidWorks宏文件可以记录用户每次鼠标点击、菜单选择和键盘按键的操作,并且可以重放这一过程[2]。一个宏包含对应用程序接口 (API)的调用,这和使用用户接口进行操作是等效的。以平密封面法兰为例,录制宏文件的步骤如下:
(1)右击菜单栏,选择 “宏”,调出宏工具栏。
(2)点击宏工具栏上的 “录制”按钮,即开始宏文件的录制。
(3)利用 “草图绘制”、 “旋转凸台/基体”、“拉伸切除”等命令建立法兰三维模型,如图1所示[1]。
图1 平密封面法兰三维模型
(4)点击宏工具栏上的 “停止”按钮,将录制好的宏保存。
按照以上步骤录制其他密封面的法兰宏文件,这里不再一一赘述。
在录制宏的过程中要注意:(1)在录制前要计划好步骤。
(2)由于视图变换和缩放相关代码都会添加到宏中,而这些代码又是不必要的,所以录制时宜尽量减少视图变换和缩放的次数。如果无法避免,可以选择宏工具栏上的 “暂停”按钮,缩放和变换操作之后再按 “录制”按钮继续录制。
2.2 修改宏代码
SolidWorks宏录制器返回的代码需要进行修改和整理。点击宏工具栏上的 “编辑”按钮,打开之前录制的宏文件 (后缀名.swp)。修改代码后按F5键调试程序,确认无误后点击宏工具栏中的 “执行”按钮测试代码,程序就可以自动画出法兰三维模型[3]。
在修改代码时应注意:
(1)如果在录制时进行了变换或缩放视图,就需要删除多余的代码行。例如:Part.ActiveView(),RotateAboutCenter。
(2)如果在 SelectByID调用之后紧接着有ClearSelection调用,那么删除该 ClearSelection调用。任何刚好在 ClearSelection之前的 SelectByID调用都是没有作用的。
(3)在测试代码之前一定要删除当前所有的零件和草图,或者选择新建一个零件文件。这是为了避免在新零件创建过程中受已有文件中零件特征重叠的影响。
(4)尽量使用早绑定。早绑定可以使代码更加容易理解,并且也会使程序运行速度更快。早绑定还会在编译期检查代码中的错误。当编译器检查一个对象时,会检查这个对象是否支持从其调用的成员。如果使用后绑定,直到运行代码时才会发现错误。一般录制宏自动产生的代码是后绑定,需要将其改为早绑定。实现早绑定,只需要将其声明为其所属类型库中定义的类型即可。例如:Dim swApp AsSldWorks.SldWorks, Dim PartAsSldWorks. ModelDoc[2]。
2.3 向宏中添加窗体
选择一个宏文件,通过在宏中添加用户窗体,创建人机交互界面。在VB操作平台中,将工具箱组件板上的Label(标签)、CommandButton(命令按钮)、TextBox等控件添加到用户窗体中,并定义所有控件的caption属性值。不同的窗体用于不同密封面的法兰数据输入,创建的窗体如图2~图5所示。
图2 自定义法兰窗体
图3 平密封面法兰窗体
图4 凹凸密封面法兰窗体
图5 榫槽密封面法兰窗体
2.4 编写控件代码
此时,共编制有五个宏文件。最终使用的是其中添加窗体的宏文件。将其他四个未添加窗体的宏文件中的代码剪切到各个窗体的 “生成法兰模型”按钮的单击事件中,并删除这些宏文件。在添加窗体的宏文件的模块代码处输入Form1.Show,将之前生成的代码剪切到相应的按钮单击事件中。
接下来补充程序代码实现最终功能:用户可以在图2所示的窗体中选择密封面形式,在相应的密封面窗体中输入自定义法兰设计参数,点击 “生成模型”按钮,则程序自动创建相应密封面的法兰三维模型。
编写代码应特别注意:在SolidWorks中创建一个新的零件时,都是以mm作为默认单位,而应用程序接口 (API)函数则是以m为单位,因此在程序中要注意单位的转换,即尺寸参数都要除以1000。例如:DN=Val(txt1.Text)/1000。
2.5 添加自定义宏按钮
点击 [工具]—[自定义]—[命令]—[宏],将“自定义宏按钮”拖拽至菜单栏上,在对话框中选择刚才调试好的宏文件,即可生成 “自定义宏按钮”。用户可以通过点击菜单栏的 “自定义宏按钮”直接进行法兰的参数化建模。
在压力容器法兰设计过程中,设计人员往往需要多次对法兰的各种设计参数进行修改。若采用传统建模方法,整个修改过程时间长,会大大影响设计效率,而且操作比较繁琐。本文采用VB语言对SolidWorks进行二次开发,设计出参数化建模窗体,实现了整个法兰建模过程的自动化。设计人员只需在相应窗体中改变设计参数,便可快速得到相应的法兰模型。该建模方法具有一定的通用性,利于设计人员掌握和利用。
[1]陈志民,游新娥.SolidWorks 2009中文版从入门到精通 [M].北京:机械工业出版社,2009.
[2]SolidWorks公司.SolidWorks高级教程:二次开发与API[M].北京:机械工业出版社,2009.
[3]牛又奇,孙建国.新编 Visual Basic程序设计教程[M].苏州:苏州大学出版社,2002.
Application of SolidWorks Secondary Development in the Parametric Modeling of Flange for Pressure Vessel
Chen Chen Li Hua Zeng Yi
Taking the parametric modeling of the flange for pressure vessel as an example,the secondary development technology of SolidWorks based on VB language was studied.In the designed human-computer interaction interface,the parameter values of flange could be defined by users,and the 3D model of the flange could be automatically generated by inputting the relevant design parameters.By using the secondary development technology,the response speed of SolidWorks was accelerated and the design cycle of product was shortened,and the problems of low efficiency and complicated operation in the traditional modeling process were solved.
Pressure Vessel;Flange;Secondary development;Parameterization;Modeling;SolidWorks
TP 391.7
10.16759/j.cnki.issn.1007-7251.2017.04.008
2016-08-18)
*陈晨,女,1986年生,硕士。镇江市,212000。