研究探讨利用VB和SolidWorks的调节阀参数化设计

发布时间:2011-11-21  点击数:2314

    三维参数化设计方法由于其高效、简单、可移植性强等特点,正受到越来越多的研究设计人员的关注。利用VB对SolidWorks进行二次开发便是实现三维参数化设计方法常用的手段之一。SolidWorks为用户对其进行二次开发提供了内嵌的应用程序接口(API),任何支持OLE和COM的编程语言都可以作为开发工具,如Delphi、C++、VisualC++、VisualBasic等。

图1 调节阀组装图

    调节阀又称控制阀(如图1所示),是过程控制系统中用动力操作去改变流体流量的装置,随着工业自动化程度的不断提高,已广泛应用于冶金、电力、化工、石油、轻纺、造纸、建材等工业部门  。调节阀产品品种、规格繁多,人工设计周期较长、效率低。因此,研究Solid-Works二次开发技术在调节阀参数化设计中的应用,对于缩短调节阀产品研发周期,提高设计效率和质量,具有重要意义。

一、开发原理与思路

    对SolidWorks进行二次开发主要是通过该软件自身提供的API接口来实现的,该接口提供了大量的OLE对象(对象体系结构如图2所示)。用户可以借助高级编程语言作为开发平台,在设计友好界面的同时,利用程序调用OLE对象对SolidWorks进行访问和操作,从而实现Solid-Works的参数化建模。

图2 SolidWorks 对象体系结构

    关于开发平台的选择问题,可以结合开发人员的实际情况选用。对于非计算机专业的工程技术人员而言,使用VisualBasic语言作为SolidWorks的二次开发平台比较理想。该语言规则简单、开发效率高,所具备功能已能满足开发要求。此外,SolidWorks宏录制功能的VBA环境与VisualBasic语言环境完全相同,便于开发人员快速上手。

    在采用VisualBasic6.0对SolidWorks进行二次开发过程中,通过VB编写的应用程序为客户端,SolidWorks为服务端,VB编写的应用程序驱动SolidWorks完成指定的设计工作。其基本开发思路是在SolidWorks环境中,任意选择某一型号的调节阀产品,按正确的设计关系绘制出零件模型,同时利用SolidWorks宏录制功能获取相关代码,然后根据零件设计需要分析并确定模型的参数变量,通过VB编程环境设计应用程序操作界面,以尺寸驱动方式实现对调节阀零件的设计。由于调节阀多为系列化产品,零件结构相似程度较高,因此VB应用程序在设计时,可以通过建立Access数据库,为用户提供零件设计时所需参数。该开发思路的工作流程如图3所示。

图3 二次开发工作流程图     

二、应用实例

    下面结合调节阀阀座的参数化设计,阐述基于VB和SolidWorks的二次开发技术在调节阀参数化设计中的应用。

    1、模型特征绘制

    SolidWorks是一套基于特征建模的三维软件,它以草图的形状和尺寸为基础,通过“拉伸”、“旋转”、“扫描”、“放样”命令将2D草图转换为3D实体模型,然后在上述模型的基础上进行“切除”、“圆角”、“倒角”、“钻孔”等操作,完成单个零件的制作。

    电动调节阀零件结构大多数具有回转体特征,在绘制模型时常用“拉伸”、“旋转”命令。绘制调节阀阀座零件模型如图4所示。


    

图4 阀座零件模型绘制流程

    2、确定变量参数与约束

    为了使后续程序能够方便地调用、修改模型参数,应结合模型的设计要求选择和命名参数变量,添加必要的尺寸约束关系。调节阀阀座设计变量参数及约束关系如下:

    Extrude1——顶部特征圆直径:D1、顶部特征圆长度:H1;

    Extrude2——退刀槽直径:D2;

    Extrude3——外螺纹公称直径:D3,外螺纹长度:H2;

    Cut-Extrude1——中心孔直径:D4,中心孔长度:H;

    Cut-Extrude2——工艺孔直径:D5,工艺孔孔深:HD,工艺孔孔距:L;

    Cut-Revolve1——工艺孔锥体部分。

    对于绘制工艺孔锥体部分的草图,需要为其添加约束条件“HoleRadius@Sketch6”=“Exclude2_Sketch5”/2,使工艺孔锥体底部半径与工艺孔孔径成1:2的关系。

    具体操作为:打开绘制好的阀座模型,在工艺孔草图中将孔径名称命名为Exclude2_D1,在工艺孔锥体草图中将锥体底部半径命名为HoleRadius,然后在菜单栏“Tools”选择“Equations”,在弹出的对话框中加入上述约束条件即可。

    3、建立动态链接

    启动VisualBasic6.0新建标准exe工程,在“工程”→“引用”中选择需要加载的类型库文件,主要包括:SldWorks 2007 Type Library、SolidWorks 2007 Constant Type Library、SolidWorks2007 Commands Type Library和SolidWorks 2007 Exposed Type Libraries for add-inuse。加载类型库文件后,初步建立了VB与SolidWorks之间的通信连接,使得VB能够调用SolidWorks的对象、方法和属性。

    4、设计用户访问界面

    根据上面所确定的变量参数,设计阀座参数,定义用户界面,如图5所示。

图5 阀座参数输入界面

    5、模型更新程序

    要使变量参数能够驱动模型库中的模型,实现模型的自动更新,在完成上述步骤,还需要通过模型更新程序来驱动。部分调节阀阀座模型自动更新程序如下。

    SetswApp=CreateObject(″SldWorks.Application″) '打开SolidWorks接口为调用其API函数做准备

    swApp.Visible(True)   '启动SolidWorks,使其窗口可视

    Set Part=swApp.OpenDoc(MyPath+″\Class_阀座.SLDPRT″,swDocPART)   '调用零件库模型

    If Part Is Nothing Then

      ExitSub

    Else

    Set Part=swApp.ActivateDoc(″Class_阀座.SLDPRT″)   '激活模型,使模型可修改

    End If

    Part.Parameter(Sketch1″).SystemValue=Class_Top   '顶圆直径D1

    Part.Parameter(″D1@Extrude1″).SystemValue=Class_Extrude1_D1  '顶部长度H1

    Part.Parameter(″MidDiameter@Sketch2″).SystemValue=Class_Mid   '退刀槽直径D2

    Part.Parameter(Extrude2″) .SystemValue=Class_Extrude2_D1 '退刀槽长度H-H1-H2

    Part.Parameter(″DownDiameter@Sketch3″).SystemValue=Class_Down '外螺纹公称直径D3

    Part.Parameter(Extrude3″) .SystemValue=Class_Extrude3_D1 '外螺纹长度H2

    Part.Parameter(″Exclude1_D1@Sketch4″).SystemValue=Class_Exclude1_D1   '中心孔直径D4

    Part.Parameter(″Exclude2_D1@Sketch5″).SystemValue=Class_ScrewHoleDia   '工艺孔直径D5

    Part.Parameter(″HoleDistance@Sketch5″).SystemValue=Class_ScrewHoleDis   '工艺孔孔距L

    Part.Parameter(″D1@Cut-Extrude2″).SystemValue=Class_ScrewHoleDepth     '工艺孔孔深

    HDPart.EditRebuild                 '重新建立模型

    Part.ShowNamedView2 ″*Trimetric″,8  '调整模型视角

    Part.ViewZoomtofit2

    MsgBox″三维造型结束″,vbOKOnly,″提示″'显示模型更新完毕信息

    注:此程序在WindowsXp SolidWorks 2007 EN下调试通过。

    6、建立尺寸参数数据库

    根据前面所确定的调节阀阀座零件变量参数,利用Access建立符合要求的数据库。数据库建立后,在程序中通过数据控件与特定的数据表相连接,为用户提供可选择的零件设计参数。

三、结论

    用VB6.0对SolidWorks软件平台进行二次开发,实现了设计变量与编程语言相结合的调节阀零件参数化设计,其自动化程度高,能够方便快捷地设计出一系列结构相似的零件参数化模型,简化了零件设计过程,提高了设计工作效率。因此,该方法在机械零件设计领域具有广阔的应用前景。