刘 方,刘 炜
(1.江苏联合职业技术学院 无锡交通分院,江苏 无锡 214151;2.江苏科技大学 能源与动力工程学院,江苏 镇江 212003)
柴油机作为应用最为广泛的内燃机,由于结构形状复杂,技术要求高,加工难度大,传统的设计和加工之间的信息传递多停留在二维的纸质文件上,导致企业的工作效率较低。随着数字化、信息化的高科技发展,计算机辅助设计和制造的引入,三维建模和虚拟仿真技术普遍应用于产品研发和设计领域。在研发的过程中,不同尺寸的产品需要重复大量的建模工作来进行仿真分析,不仅劳动强度大,工作效率低,还存在一定的失误率,浪费了人力、物力和财力。鉴于此,探索一种高效、简单的建模方法来提高产品的设计和制造水平是亟待解决的问题。本文以柴油机箱体为例,进行基于SolidWorks尺寸驱动参数化建模的二次开发,探讨一种简便的建模方法来提升建模效率。
SolidWorks是一款操作简单、功能强大的机械三维工程软件[1],是一个基于参数化特征的实体建模系统,提供了二次开发的环境和开放的数据结构,有上百个API(Application Program Interface,应用程序接口)函数,这些函数就是OLE或COM接口。OLE(Object Linking and Embedding)是指对象的嵌入与链接,应用程序之间可以通过OLE数据嵌入或链接的方法来共享数据;COM(Component Object Model)作为软件互相通信的一种方式,是组件对象模型接口,定义了标准的构件组建的方法。用户可应用VBVBAVCDelphi等编程语言对SolidWorks进行二次开发,建立适合自己需要的SolidWorks功能模块,实现产品的三维建模、装配检验、加工仿真、有限元分析、运动仿真、数控加工和加工工艺的制定,从而提高产品的设计效率和提升设计质量[2]。
参数化设计在当今CAD应用技术中占有重要地位[3],工作人员可以根据产品的形状和尺寸,通过参数化设计快速草拟出零件图。变量设计以参数化设计为前提,通过变量设计思路可以实现机构设计与动态设计的运动仿真模拟等。SolidWorks尺寸驱动的参数化建模是设计变量与编程技术相结合的方式,以SolidWorks环境中建立的典型结构模型为基础,用设计变量作为程序与模型的联系纽带。该方法通过少量的变量化参数来控制模型,从而实现快速、准确的图形设计。
尺寸驱动参数化建模方法在建好模型的基础上调用设置参数的函数实现尺寸修改。程序的修改只需要修改自定的尺寸,但如果这样直接修改,上面的孔的位置等细节特征都还在原有的位置,因此需要通过添加相关约束条件,使草图完全定义,实现尺寸联动。图1为尺寸驱动参数化建模的基本流程图。
使用尺寸驱动法参数建模的方法需要在事先建好的模型基础上进行,因此首先需要建立柴油机箱体的实体模型。以CZ 380型柴油机为例进行尺寸驱动参数化建模。打开SolidWorks软件,根据测绘得到的CZ 380柴油机箱体尺寸,利用软件建立该箱体的实体基础模型,如图2所示。
图1 尺寸驱动参数化建模的基本流程图
图2 CZ 380柴油机箱体模型图
打开VB.NET,以箱体底座的长、宽以及箱体高度为设计目标,分别创建以字母A、B、C为标识的Lable控件以及实参输入框的TextBox控件,以同样的方法再创建一组零件名输入框控件和一个Button控件并取名“OK”,最后插入模型照片。然后通过SolidWorks API函数将文本框与箱体的这三个参数尺寸相关联,改变文本框的输入数值,即可驱动SolidWorks改变模型的形状。注意零件重建窗体中三个初始值是建模时的尺寸值,作为重建模型输入值的参考。重建模型的尺寸不应与初始值相差太大,否则可能引起程序崩溃。零件的窗体界面如图3所示。
图3 创建零件对话框
在“A”“B”“C”文本框中分别输入数值310、350、180,定义新零件名称为“Xiangti1”,如图4所示。单击“OK”按钮,软件将驱动SolidWorks对模型进行重建,系统将自动生成与文本框中输入的数值一致、零件名为“Xiangti1”的模型,如图5所示。
图4 重建模型参数
图5 重建模型图
′引入SolidWorks、System相关模块(省略)
Public Class Form1
Dim swApp As New SldWorks′定义类型
...... ′省略一般变量声明
Sub initSW() ′初始化
Try
swModel=swApp.ActiveDoc
swModelDocExt=swModel.Extension
swFeatureMgr=swModel.FeatureManager
swMgr=swModel.SelectionManager
swSketchMgr=swModel.SketchManager
Catch ex As Exception
MsgBox("请先打开SolidWorks!")
End Try
End Sub
Sub createPart1(ByVal Name As String)
swApp.OpenDoc2(System.AppDomain.CurrentDomain.BaseDirectory+"createpart2016.SLDPRT", 1, True, False, False, 0) '打开相对目录下的零件
initSW()′初始化sw
swSetParameter()′修改尺寸
status = swModelDocExt.SaveAs("C:UsersAdministratorDesktop"+Name+".sldprt",swSaveAsVersion_e.swSaveAsCurrentVersion,SaveAsOptions_e.swSaveAsOptions_Silent, Nothing, 1, 1)
′另存为桌面上的零件
End Sub
Dim D1 As Dimension,D2 As Dimension,D3 As Dimension'定义目标修改尺寸为参数类型
Sub swSetParameter()
Try'定义D1,D2,D3为目标修改尺寸
D1=swModel.Parameter("D1@基准面3")
D2=swModel.Parameter("D1@草图1")
D3=swModel.Parameter("D2@草图1")
′获取录入的TextBox数值并赋值给形参
D1.Value=TextBoxA.Text
D2.Value=TextBoxB.Text
D3.Value=TextBoxC.Text′
Catch ex As Exception
MsgBox("请输入正的数值!")
End Try
End Sub
本文以柴油机箱体为例,对基于尺寸驱动参数化建模过程从建模思想流程、应用程序窗口设计、程序语言和模型展示等方面进行了详细说明,通过更改柴油机箱体相关尺寸,使建模过程得以简化。尺寸驱动的简化模型方法适合于批量修改零件尺寸需求,建模方法简单高效,可应用在更多零件的参数化修改工作,从而通过SolidWorks二次开发技术,标准化、参数化实现模型简化任务。