VB开发SolidWorks实现机械产品参数化设计
2013-05-17 by:广州有限元分析、培训中心-1CAE.COM 来源:仿真在线
作者: 刘志海*鲁青*李桂莉*梁慧斌 来源: 万方数据
关键字: 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参数定义
在基于尺寸驱动的参数化图形设计中,一般是外形轮廓相对固定而只在尺寸上有数值差异的系列图形,因此对这些零部件图形的处理主要是定义各外形轮廓的尺寸变量名称,在定义过程中,对参数的命名应本着简化、形象、完整的原则,既不能有多余的尺寸而构成过约束,也不能有遗漏的尺寸而构成欠约束,过约束和欠约束的情况均无法实现图形的设计,位置尺寸需要由尺寸链进行求解。
2.2参数取值
在机械零部件的参数化设计中,对于尺寸参数的取值,一般都对应一系列的尺寸数值,而这些尺寸数值在有关的机械设计手册中一般表现为数据表格、图表曲线、图形以及计算公式的形式,有些表格样式比较复杂且存在部分交叉现象,在参数化设计过程中,若每次都要进行手工查询,需要花费一定的时间,且不能保证数据读取或计算的准确性。在进行参数化设计之前,引入比较成熟的工程数据库技术,将涉及到的有关表格进行简化或整理,构成一种关系型数据库表格,在设计过程中就可以按照要求,利用SQL(结构化查询语言)进行条件检索,能缩短检索时间、准确性高、并提高计算精度。常用的数据库系统有Microsoft Access、Microsoft SQL Server、Oracle等多种,由于桌面数据库Microsoft Access具有小巧灵活、支持SsQL语言、可以通过ODBC管理、存储多种数据类型、支持Windows的各种操作系统等优点,广泛应用于各种工程设计的数据存储处理中。
对于访问数据库表格数据内容的方法,通常可以采用ODBC、DAO、RDO、ADO等方式,ADO(Active Data Object)是Microsoft公司为在Intemet网络上发布数据库而推出的最新产品,建立在自动化基础上,能够访问任何兼容ODBC或OLEDB的数据库,具有高度的伸缩性、支持连接池、复杂的数据操作、断开的记录集及编程简单和方便的优点。ADO主要由Connection对象、Command对象、RecordSet对象、Fields集合与对象、Parameters对象与集合、Errors对象与集合等组成。在vB中使用ADO时,应先加载对ADO对象的引用,即点击执行菜单"工程"-"引用"-"Microsoft ActiveX Data Objects 2.5 Library"。由于计算机安装的应用程序中对应的ADO版本有差异,所以在出现的引用对话框中也可能有多个版本的ADO库文件,应根据需要以及有关的操作选用具体版本,并非版本越高越好,例如程序中若用到ADO的MoveComplete事件,则不同版本中的定义形式不同。
2.3实体生成与编辑
SolidWorks提供了拉伸、旋转等多种特征造型工具,用户重复或组合使用这些工具可以比较轻松地完成复杂零件的三维图形设计,但是在对其进行二次开发的过程中应该使用哪些API函数以及如何使用这些函数进行特征造型和视图切换,是编程开发中面临的难题,很多人感觉无从下手。由于VBA常用于录制宏代码,可提供一种便捷的途径,即按照零件的实际设计过程由用户预演的方式,通过启用"录制宏"的功能,具体是执行菜单命令"工具"一"宏操作"一"录制",在SolidWorks环境下使用拉伸、切除等特征造型工具完成整个设计过程,将本次零件设计全过程录制成宏代码(后缀是swp的文件),然后用VBA环境打开刚才录制的宏,将其中一些关键数据用参数名称进行替换,修改文档对象名称,最后将这些代码拷贝到VB环境下,即可得到该零部件参数化设计的源代码。
3设计实例
滚动轴承是一种应用非常广泛的标准零件,其结构主要由外圈、内圈、保持架和滚动体等组成。传统的轴承参数化设计一般采用分别建立各组成零件然后装配自底向上的建模方法,为减少文件操作,降低零件的装配复杂度,将其作为一个文件进行设计和管理。
(1)参数定义
轴承参数化标注如图2所示,定义的参数有轴承外径D、轴承内径d、滚动体直径尺、外圈壁厚召。以及内圈壁厚曰:。有关的计算A=(D-d)/2,Bl=3A/8,B2=3A/8,R=A/4。
(2)参数选择
根据对滚动轴承国家标准有关数据的研究,本着构建、查询方便的原则,筛选出本次参数化设计中有用的数据,采用Microsoft Access 2000桌面数据库系统,定义存储表格的字段类型、字段长度和表格名称等内容。
设计中以轴承中间孔的直径d作为查询的依据,在VB工程中引用"SldWorks 2004 Type Library"和"Microsoft ActiveX Data Objects 2.5 Library"类型库,定义ADO连接对象和记录集对象,参照如下代码可实现对数据库的访问,并获得轴承大径尺寸、轴承宽度、安装尺寸等数据。
根据前面查表得到的参数值,依次绘制轴承外圈、轴承内圈、滚道和滚动体等实体零件,最后对生成的滚动体进行圆周阵列。在设计过程中将会用到SelectByID(选择草图、基准轴等图形对象)、ClearSe lection2(清除选择)、CreateCircle(绘制圆)、ShowN.amedView2(显示视图)FeatureExtrusion(拉伸特征)、FeatureRevolveCut(旋转切除特征)、ActivateSelectedFeature(激活选中特征)、FeatureCirPattem(圆周阵列特征)等方法。生成的三维模型如图3所示。
相关标签搜索:VB开发SolidWorks实现机械产品参数化设计 SolidWorks培训课程 SolidWorks设计教程 SolidWorks视频教程 SolidWorks软件下载 SolidWorks在建筑室内设计工业设计的应用 SolidWorks基础知识 SolidWorks代做 Fluent、CFX流体分析 HFSS电磁分析 Ansys培训 Abaqus培训 Autoform培训