您的位置:网站首页 > Solidworks

基于SolidWorks的参数化设计

时间:2010-06-02 08:00:00 来源:

    0 引言
   
    由于通用CAD软件注重功能的全面性,几乎涵盖了制造业的方方面面,但是专业针对性差,并不能很好地满足特定企业的设计要求,所以在通用CAD软件的基础上,结合企业实际需要进行二次开发、已经成为CAD取得实效的关键环节,甚至可以说,没有进行二次开发,实现用户化、本地化的CAD就不能在真正意义上发挥效能。通用CAD的二次开发性能优劣,已经成为评价该CAD软件的重要指标,二次开发已经被视为第4代CAD系统的一个特色。
   
    CAD二次开发的目的,在于提高通用 CAD的针对性,以便更好地满足企业设计要求,更好地发挥CAD的效能。通过对CAD软件的二次开发,可使CAD软件实现专业化、本地化。
   
    1 SolidWorks简介
   
    SolidWorks是美国SolidWorks公司开发的出色的三维参数化特征造型CA])软件,其技术内核基于先进的Parasolid图形语言平台。SolidWorks自从1995年11月问世以来,已成为微机平台上的三维机械设计CAD软件的主流产品,在企业中得到了广泛的应用。本文选用SoildWorks作为系统开发平台,主要是基于SolidWorks在以下几方面的突出优点:
   
    ·强大的参数化特征造型功能。SolidWorks的参数化和特征造型技术,能方便、快捷地创建几乎任何复杂形状的实体,可以满足绝大部分的工程设计的需要;SolidWorks采用统一的内部数据库,全数据相关,任何一个功能模块中对零件的修改都会自动反映到其他模块中;
   
    ·界面友好,操作简便。SolidWorks采用典型的Windows软件风格,在所有的国外三维CAI)软件中提供了最优秀的中文支持;
   
    ·拥有开放的体系结构。SolidWorks拥有丰富的第三方支持软件,提供了开放的数据结构和方便的二次开发环境,为企业今后广泛的工程应用提供了良好的基础平台;
   
    ·优异的性能价格比。SolidWorks是一款中端CAD系统,企业使用SolidWorks可以花较小的投人满足设计的要求,因此SolidWorks特别适合于中小企业的产品设计。
   
    2 VB开发SolidWorks的参数化程序编制
   
    根据特定的设计要求,用VB对SolidWorks进行二次开发,创建SolidWorks插件的一般方法是:在 VB中创建ActiveX DLL工程,根据开发的具体功能要求编制相应的程序代码和设计用户界面,并在工程中添加对SolidWorks类库的引用,将应用程序编译连接为DLL文件。该文件在注册过以后,就可以作为SolidWorks的插件使用了。用户可以根据具体的设计要求开发出若干插件,每一个插件的功能又由至少一个菜单条嵌人到SolidWorks系统中,每一个菜单条包括若干菜单项,每个菜单项对应一个功能模块。这样的层次体系反映了二次开发程序编制的过程,也是一个自顶向下和自底而上结合的过程,先根据功能要求分析确定总体结构,再从底层各功能模块的程序编制开始实施。
   
    参数化程序的编制,就是要实现特定零部件的参数化设计,并在SolidWorks中建立专用设计环境。编程实现零部件参数化的方式有尺寸驱动法和程序驱动法两种,在基于SolidWorks的二次开发中其程序编制方法是不同的。
   
    尺寸驱动法程序编制:由于尺寸驱动法通过修改CAD系统建模时自动生成的设计变量来驱动零件,所以程序的代码非常简捷。SolidWorks在零件建模时,将根据建模的过程自动创建设计变量,并给每个变量赋以相应的名称,尺寸驱动程序只需修改这些变量的值。这种程序的算法流程如图1所示。
   
    以下是一段尺寸驱动法参数化程序的代码:
   


    尺寸驱动参数化通常处理形状结构相同但尺寸不同的零件,运行速度快,效率高,但一般缺乏变型设计能力,零件如有局部结构差异,则需另建模型进行驱动,对于系统无法生成设计变量的参数也不能处理,而且这种方法对建模过程有严格的要求,必须生成与零件实际参数相应的设计变量,并且建模方法需与零件的设计要求相吻合。
   
    程序驱动法程序编制:程序驱动法直接通过程序调用API对象绘制图形,图形完全由程序生成,所以代码量大,程序编制难度较大,而且每次生成零件时都需运行一次程序,速度不如尺寸驱动法快。但由于它可以处理非设计变量的参数,具备变型设计的能力,所以往往用作尺寸驱动法的辅助手段。
   
    一个采用程序驱动法的程序,实际上就是一个绘图程序。其参数化的途径是根据用户指定的值或程序计算出的值作为API对象的函数变量的值,并按该值绘制出图形。理论上这种方法可以进行所有零件的参数化驱动,对于尺寸驱动法无法处理的问题可以用该方法解决。以下是一段程序驱动法的程序代码:
   


    由上可见,这种方法程序的代码相当长,虽然SolidWorks有宏录制功能,减轻了编程的负担,但仍不如尺寸驱动法简捷。但这种程序具备一定的变型设计能力,如上述程序,若程序给 i赋0值或非0值,将决定是否执行cutl子例程,构造的零件也就会不同,如图2所示。
   
    3 小结
   
    以SolidWorks为平台,阐述了SolidWorks参数化设计的相关技术,并且以VB作为编程语言,详细说明了尺寸驱动法和程序驱动法两种参数化设计的程序编制方法。