您的位置:网站首页 > Solidworks

基于SolidWorks的三次开发方法研究

时间:2010-06-02 08:00:00 来源:
副标题#e#    CAD 软件在国内生产制造企业中的应用越来越广泛,大量二次开发的需求随之产生,根据企业产品特点开发出一套专业设计软件成为众多企业设计部门的迫切要求。

    PRO/ E,AutoCAD,SolidWorks 和SolidEdge 等著名CAD 设计软件都提供了良好的二次开发平台,基于这些软件的二次开发产品满足了各种企业和行业的设计需求,然而这样的软件产品却往往会遇到以下几个方面的问题:

    (1)专业性强

    企业往往无法在现有CAD 软件中找到适合自己行业的零件库,在此情况下便产生了二次开发的需求,因此二次开发产生的零部库一般都是针对某个设计行业。这样的零部件库日后很难从软件市场上得到升级和补充,例如空气分离设备行业,全国只有近百家专业生产厂商,现在CAD 厂商通常不会为这样的专业领域企业设计完善的零部件库。

    (2)保密性高

    企业的设计软件充分体现了企业的技术特点和技术优势,这样的二次开发软件具有很强的保密性。为了防止技术资料泄漏并保持同行业内的竞争优势,企业往往非常慎重地选择软件开发伙伴,这样就为日后维护带来很大的困难。以空气分离设备行业为例,该行业准入门槛低,拥有核心技术的人员可以很容易地组建新的生产企业,因此资料的保密是关系到企业生存的大事。如何在保密的情况下,长期维护和升级软件成了企业面临的新问题。

    (3)设计变动频繁

    企业产品要更新换代,进而带动零部件库的更新和程序设计流程的变化。从企业需求角度而言,创新设计是企业赖以生存的基石,设计变动将频繁发生;而从软件的角度来说,涉及变动严重威胁了软件的寿命,任何改动都可能导致既有软件功能完全丧失。如果对每次设计变动都要联系软件设计企业,必然造成无谓的二次投资,而对于软件企业更改原有软件带来的开销往往是惊人的。

    如何解决这些问题成了企业发展创新道路上的新困难,由此产生了企业三次开发的需求———企业在有限的软件开发能力之下,不必支付大量的维护升级成本就能自主进行三次开发,让软件适应企业日益增长的设计需求。

    将以SolidWorks 为例,结合实际工程项目经验,探讨在二次开发过程中充分考虑用户三次开发需求而进行的若干改进和尝试,从而保证用户在软件交付使用后仍然能够自行升级和维护该软件。


1 SoIidWorks三次开发的四种方法

    SolidWorks 的二次开发通常是利用SolidWorks 公司提供的功能齐全的API 函数库,使用Visual C ++ 或者Visual Basic 语言设计完成的。这样的工作对于软件开发企业来说比较简单,而一旦二次开发软件交付用户使用,理解和修改代码的工作对于用户来说将变得十分困难。下面的讨论就是基于用户只具有基本的计算机操作能力,没有软件开发能力的前提之下,如何绕开代码修改,仍能够对二次开发软件进行补充和升级的四种方法,以满足企业创新和发展的需要。

    这四种方法分别是:

    (1)使用配置的方法建立零部件库;

    (2)使用和解除约束方程;

    (3)使用压缩的方法处理不同拓扑结构问题;

    (4)使用Access 数据库便于用户修改。

    1.1 使用配置的方法建立零部件库

    二次开发中建立零部件库有两种方法:

    (1)编程实现

    SolidWorks 提供了完整的API 函数,调用接口函数可以实现各种绘图功能。以实现一个圆柱系列化为例,其步骤如下:

    ①使用ModelDoc 对象中的CreateCircle2 函数即可按照制定的圆心和圆周上一点绘制圆形。使用PartDoc 对象中的FeatureExtrusion3函数进行拉伸,得到一个圆柱。

    ②在数据库(如SQLServer)中建立一组不同规格的圆的直径表。

    ③使用ODBC 或者JDBC 建立程序和数据库的连接,调用不同的直径值在SolidWorks 中生成不同尺寸的圆柱形。

    这样就完成了对一组圆柱零件库的程序驱动。

    (2)使用配置实现

    配置(Configurations)是SolidWorks 中实现零部件库的一个重要方法,它可以在单一的文件中对零件或装配体生成多个设计变化。配置提供了简便的方法来开发与管理一组有着不同尺寸、零部件或其他参数的模型,它是通过插入系列零件设计表实现的,SolidWorks 内嵌Excell 表以支持此功能。

    如图1 所示,对于“管子”零件有两个参数是系列化的,即管子外径和管子壁厚。对于每一个公称通径,如当前配置DN57,都有一组管子外径57mm(管子外径@ 草图1)和管子壁厚3. 50mm(管子壁厚@ 拉伸-薄壁1)与之对应。如此形成一组DN10-DN400 的配置就形成了管子的零件库。

 

    与方法一相比,这样生成的零件库可以巧妙地绕开程序,用不同的配置代替了程序对绘图参数的控制,用Excell 表代替了数据库存储。在软件交付使用后,工厂设计人员可以很方便地通过简单的修改Excell 表来增加和减少库中零件数量,有效地保证了零件库的可维护性。

    除此之外,一个更突出的优点是:增加或者减少配置参数的操作简便。如在图1 表格中增加一列“ 管子长度”,即对应每个配置都增加一个相应的管子长度数据,这样的操作在方法一中必须通过修改程序代码来实现,而在方法二中则直接对Excell 表进行简单的鼠标和键盘操作即可完成。

    1.2 使用和解除约束方程

    零部件在绘制过程中经常会有一些数学上的约束关系,仍然以图1 管道为例。该段管路中有两个弯头,按照设计要求,弯头的半径应该是管道直径的1. 5 倍,如图2 所示,管道当前配置为DN50,对应的管道直径为57mm,相应弯头半径为85. 5mm。