VB开发SolidWorks实现机械产品参数化设计

发表时间: 2008-8-26 作者: 刘志海*鲁青*李桂莉*梁慧斌 来源: 万方数据

关键字: VB SolidWorks 参数化设计 ActiveX自动化 

SolidWorks是流行的三维设计软件,介绍了SolidWorks三维设计软件的特点和二次开发方法,研究了利用VB基于ActiveX Automation技术对SolidWorks软件进行二次开发实现参数化设计的过程,以及开发过程中用到的工程数据库访问技术,最后以滚动轴承为例进行了验证,实现了机械产品的参数化设计。

    1 SolidWorks软件的开发方法
   
    SolidWorks软件是世界上第1个基于Windows开发的三维CAD系统,是目前市场上所见到的三维CAD解决方案中设计过程最简便、最方便的三维机械产品设计软件。SolidWorks提供了几百个功能强大、免费的API,应用程序接口)函数,以方便用户根据需要进行二次开发。API函数是OLE(对象链接或嵌人)和COM(组件对象模型)的接口,SolidWorks API是一个自上而下多层次的树形网络结构,每一层又包括若干个对象,其部分组织结构如图l所示,最顶层是应用程序级对象SldWorks,该对象中封装了很多方法和属性,在sldWorks对象下面又定义了若干个子类,如Environment、Frame,每个对象又有自己的属性、方法和事件。在这些接口对象中封装的有关方法和属性,涵盖了全部的SolidWorks数据模型,用户通过客户应用程序对这些API对象及其方法和属性的操作,实现对SolidWorks的功能定制与扩展。在Solidworks中加入ActiveX自动化服务功能(ActiveX Automation Server Capability),用户可以通过支持ActiveX的可视化编程工具如Visual Basic、Visu.al Basic for Applications(VBA)、Visual Basic.NET、Visual C++.NET、Visual C++ 6.0、Visual C++.NET、Delphi、SolidWorks宏文件等进行快速开发,实质是通过客户端应用程序来控制服务端的对象、方法和属性,实现某种功能,在利用VB语言开发SolidWorks的过程中,VB开发的应用程序是客户端,而SolidWorks则是服务器端。VBA是VB开发语言的子集常嵌套于支持Acfive Automation技术的应用程序中,如Microsoft Office、AutoCAD、SolidWorks等,其功能是实现应用程序的自动化、增强系统的功能以及满足用户的需求。由于必须依赖于应用程序而不能生成可执行文件,所以不能独立发布程序,但其快速的开发过程和卓越的开发能力使其他语言无法比拟。VB作为功能强大的面向对象开发工具,可以创建标准应用程序、动态链接库、ActiveX控件等,许多应用程序均基于该种语言进行开发,本文中滚动轴承的参数化设计实例就是基于这种工具进行的。
   
    2参数化图形设计
   
    所谓参数化设计是指设计图形的拓扑关系不变,尺寸形状由一组参数进行约束,参数与图形的控制尺寸有显式的对应。参数化设计与传统设计相比,最大的特点是它储存了整个设计过程,使工程技术人员可以通过更改某些约束参数的数值即可快速获得不同的零件。SolidWorks环境下参数化设计一般有2种形式:①由软件本身提供的特征造型功能而实现的参数化设计,如拉伸的深度、截面圆的半径大小等,可以编辑修改,这种方法不需要用户编程,只要熟练掌握特征造型功能即可;②基于ActiveX Automation技术由内嵌的VBA或其他二次开发语言编程实现的参数化设计,通过定义的若干参数进行驱动绘图,这种方法对编程人员的综合能力要求较高,既要有较强的编程能力,还要熟练掌握SolidWorks的零件设计过程。在利用Visual Basic开发SolidWorks参数化设计的过程中,一般应遵循的步骤是:①参数定义;②参数取值;③实体生成与编辑。
   
    2.1参数定义
   
    在基于尺寸驱动的参数化图形设计中,一般是外形轮廓相对固定而只在尺寸上有数值差异的系列图形,因此对这些零部件图形的处理主要是定义各外形轮廓的尺寸变量名称,在定义过程中,对参数的命名应本着简化、形象、完整的原则,既不能有多余的尺寸而构成过约束,也不能有遗漏的尺寸而构成欠约束,过约束和欠约束的情况均无法实现图形的设计,位置尺寸需要由尺寸链进行求解。
   



本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。


<<首页 <上一页  1  2  3  下一页>  末页>>  
责任编辑:童伟