基于Solid Works的标准件库参数化建模系统开发
2014-03-22陈圣明
陈圣明
(广东工业大学 机电工程学院,广东 广州 510006)
0 引言
任何一个CAD系统都不可能完全符合用户的需求,因此工程师有必要对其进行专业化和本地化的二次开发,使CAD系统能更好地符合国标、行标和企标[1]。标准件库的参数化自动建模系统是CAD系统二次开发的典型应用,任何一个机械产品都需要许多诸如螺栓、螺钉、轴承之类的通用标准件,因此可以基于企业所用的CAD系统,对这些标准件进行参数化二次开发,建立其自动建模系统以减少重复劳动,进而提高产品设计效率。本文阐述了基于Solid Works的通用标准件库参数化建模系统的开发与应用。
1 系统总体分析与设计
1.1 总体分析
本系统要实现的功能是在Solid Works环境下,结合Toolbox的基础性资源实现标准件的自动化和系列化建模,给工程师提供一种直观、简便的标准件快速建模方法。目前,常用的方式是:CAD供应商对用户提供开放的可扩性接口(Application Programming Interface,API),设计人员采用可支持COM编程的开发工具,如VB、VC++、C#、Delphi等对其进行相关接口函数调用,通过这些函数来驱动CAD系统自动完成所需模型的建立[2]。
公司所使用的CAD平台是Solid Works。它提供了支持二次开发的应用程序接口,通过该接口可以开发嵌入式功能插件(*.dll)或独立的应用程序(*.exe)以扩充原Solid Works的功能,最终形成用户定制或用户驱动的参数化系统。开发工具我们选择VB.NET,开发环境为Visual Studio 2010,它拥有完善的图形用户界面(GUI)和快速应用程序开发系统(RAD),可以轻易的使用ADO.NET(Active Data Objects)连接和访问数据库,因而完全能够满足本参数化系统的开发。
1.2 设计思路
我们的设计思路是以面向对象的VB.NET为开发工具,基于Access建立标准件尺寸参数数据库,通过编程调用Solid Works API相关对象、属性和方法,结合ADO.NET数据库访问技术实现系统参数化建模功能。
CAD系统实现参数化的关键在于模型库的建立与尺寸驱动技术[3]。因此,首先得对需要参数化的标准件进行三维建模,获得标准件模型库。将这些源模型作为尺寸驱动模板,当程序运行的时候,根据用户的选择,更新模板文件即可自动建立所需零件的3D模型。在编程实现阶段,采用的是特征参数法和编程法相结合的方式,通过绘制模板文件先获得宏录制代码,然后将代码中的特征尺寸进行常量变量化,再将这些变量传递给API函数。这样做的优点是最大限度的将设计人员从众多的Solid Works API函数中解放出来,设计人员只需稍加修改相关API的参数,删减宏录制代码中一些无用代码即可。至于程序调用模式,我们选择将所编辑的程序以.exe格式保存,并将其添加至Solid Works的宏工具栏中以方便工程师调用。系统运作流程如图1所示。
图1 系统运作流程
2 系统开发关键技术
2.1 决定性要素
标准件包括螺栓、螺钉、轴承等大类,每个大类包括不同的型号,每个型号又包括不同的尺寸系列。通过对系统设计理论和应用方面的分析,我们确定了系统开发的决定性要素:
(1)需要建立完善的标准件模型库。可利用Toolbox自带的标准库模型文件,在Solid W-orks安装目录的“SOLIDWORKS DATArowser”文件夹下,找到标准件模型,我们只需将相应的模型修改为中文名称。
(2)明确各类标准件下不同型号的特征尺寸,建立尺寸参数数据表。
(3)设计友好的人机交互界面,添加响应功能函数并建立数据库访问机制实现系统功能。界面中提供参数输入接口,程序接受各种参数,按用户设计意图重建模型。
(4)编写完程序之后,需要进行反复测试以保证程序的正确性与建模的精确性。
2.2 关键技术
基于Solid Works平台二次开发的自动建模关键在于三个方面:Solid Works API、VB.NET编程和数据库技术。
(1)Solid Works API:它包括了数以百计的Solid Works内部功能函数,设计人员可以编写程序调用这些功能函数,来实现所需要的功能。
(2)VB.NET:(VB.NET 嵌入在 VS2010 环境下)作为本系统的开发工具,通过我们编写的代码操纵相关Solid Works API对象,控制其属性并调用相关方法实现系统参数化自动建模的要求。
(3)数据库访问技术:采用ADO.NET技术,它是一种和编程语言无关的COM组件系统,提供了访问各种数据类型的连接机制,通过其内部的属性和方法提供统一的数据访问接口[3]。通过它我们可以访问由Access建立的尺寸参数数据表,进而通过程序调用其中的数据来完成零件的参数驱动,实现自动建模功能。
3 参数化系统的具体实现
机械标准件可按层次分为标准、类型、子类型和零件[4]。以轴承为例,我们所面向的标准是GB和JB,轴承的类型包含深沟球轴承、圆柱滚子轴承等子类型,而这些子类型又分别包含不同规格、不同尺寸系列。由于同一子类型的零件结构和拓扑关系是相同的,它们的区别仅仅在于驱动尺寸的不同。因此整体标准件库的开发可针对不同类型不同型号的标准件进行尺寸驱动建模。系统开发的具体流程如下:①建立子类型的模板文件(*.prtdot);②建立驱动尺寸数据表(*.mdb);③编辑该子类型建模代码,实现尺寸驱动;④重复步骤1,2,3,完成其余类型;⑤系统整合在VS2010环境中,由VB.NET实现。
以下以深沟球轴承为例,详细介绍VB.NET对Solid Works进行常用标准件参数化二次开发的具体流程和实现方法,其余型号和类型的标准件采用完全类似的方法即可实现,最终完成标准件库参数化系统的构建。
3.1 深沟球轴承模板建模
查阅国标,以尺寸系列代号16001的深沟球轴承为例按照正确尺寸约束和设计意图在Solid Works中建立三维模型。将其作为模板文件,此型号的深沟球轴承标准件库的所有模型均基于此模板文件创建、修改和编辑。这里要完成的是:
(1)明确从动尺寸与驱动尺寸。深沟球轴承的造型由外圈外径DD、内圈内径d、轴承宽度B和倒圆角半径rs这四个参数唯一确定。因此,可选择这四个参数作为驱动尺寸,剩下的一些建模时的定位尺寸作为从动尺寸。如图2所示,尺寸前有∑表示从动尺寸,没有∑表示驱动尺寸。
图2 主动尺寸和从动尺寸
(2)定义关联关系。为利于编写代码与建立尺寸数据表实现对模型尺寸的赋值与重建,首先对驱动尺寸重命名,如上例中的DD、d、rs、B。此外,在绘图过程中有一些尺寸大小是相同的,而Solid Works系统自身不允许有相同尺寸名称,所以为了使相同的尺寸在名称不同的情况下具有同时更改的性能,需要定义尺寸间的关联关系。再者,要实现参数化实体造型,必须满足全尺寸约束与数据全相关这两个基本条件。因此,我们可以在Solid Works菜单栏,单击“工具”/“方程式”,添加从动尺寸和驱动尺寸之间的关联关系式。关系表如图3所示。
图3 尺寸方程式
3.2 建立尺寸数据表
采用Microsoft Access2010建立驱动尺寸数据表。首先要明确数据表的字段,根据上一步的内容可以知道深沟球轴承的造型由外圈外径DD、内圈内径d、轴承宽度B和倒圆角rs这4个参数唯一确定。因此,数据表的字段只需用这4个参数即可。查阅国标(GB/T276-1994)建立它的尺寸数据表如图4所示。每一种标准件的子类型需要对应一张数据表,建立过程完全与此相类似,整体标准件库的数据表整合在“gb.mdb”。
图4 尺寸数据表
3.3 界面设计与代码编写
完成以上步骤后,即可在VS2010环境下设计系统的界面,按照系统功能需求,我们选择Tree View、Data Grid View、Tool Strip、Splitter、Panel控件,分别设计相应的属性并进行合理的布局,具体界面见3.4节。
需要编写的代码包括数据处理与自动建模两部分,下面分别对其进行介绍:
(1)数据处理:核心是用户数据显示、查询。根据第一部分内容所述,我们选择的是ADO.NET技术访问Access数据库,它通过相关对象的属性、方法完成相应的数据库操作。一般而言,ADO.NET处理数据库的步骤:a.创建数据库连接对象;b.使用连接对象打开数据库;c.使用命令对象操作数据库;d.关闭数据库[5]。数据的显示相对简单,运用Tree View和Data Grid View控件,对其进行相应属性设置与代码编辑即能轻松实现。
数据查询是方便用户在种类繁多的标准件中快速找到所需的种类或型号。它的算法如下:当用户输入标准件的名称或代号后,点击查询按钮,系统自动查询Tree View控件中节点数据。
(2)数据的传递与自动建模
通过在程序界面中Text控件与用户进行人机交互,用户在数据表中选中某行或某行的一个单元后,Text控件组自动显示被选中行的各个参数,然后编写相应程序将Text控件组的Text属性值作为API函数的参数,这样既可实现尺寸驱动完成自动建模又能保证数据库和建模代码之间相对独立。
自动建模部分的代码(节选):
Dim PartAs Object
Dim SelMgrAs Object
Dim boolstatus As Boolean
Dim Feature As Object’ 定义对象
SetswApp=CreateObject("SldWorks.App
lication")
Set Part=swApp.NewDocument("E:标准件模板earings gb.SLDPRT",0,0,0)’打开标准件模板
SetPart=swApp.ActiveDoc
Set SelMgr=Part.SelectionManager
Boolstatus=Part.Extension.SelectByID2("d@Sketch2@bearings gb.SLDPRT","DIMENSION",0,0,0,True,0,Nothing,0)’根据打开的标准件模板,对特征尺寸重新赋值
Part.Parameter("d@Sketch2").SystemValue=Val(d.Text)/1000
……
boolstatus=Part.Extension.SelectByID2("r@Fillet1@bearingsgb.SLDPRT","DIMENSION",0,0,0,True,0,Nothing,0)
Part.Parameter("r@Fillet1").SystemValue=Val(r.Text)/1000
boolstatus=Part.EditRebuild3’重建特征建立模型
End Sub
3.4 定制应用程序菜单
最终的标准件库参数化原型系统如图5所示。运行时,在程序界面左侧检索到需要的标准件,在弹出的窗口中选择需要的型号和尺寸系列,即可自动生成所需的模型。
图5 系统最终界面
4 结论
通过对参数化系统的设计方案分析和二次开发具体工作的研究与实践,本文从理论和实例两个方面详细讨论了基于Solid Works的标准件库自动化建模技术,开发了在Solid Works环境下通用标准件库参数化建模系统,并以深沟球轴承为例,详细说明了建立参数化建模系统的具体设计流程和实现方法。整个原型系统的设计与开发,经企业测试可快速、稳定地实现标准件的自动化建模,对基于Solid Works进行标准件库、非标件库或产品参数化二次开发的用户具有一定的借鉴作用。
[1] 彭龑,李淇阳.基于Solid Works二次开发的自动建模技术与方法[J].制造业信息化.
[2] 刘庆立,曹巨江,姚素芬等.基于Solid Works二次打开技术[J].煤矿机械,2009,30(8):202-204.
[3] 肖丽雯等.参数化图库建立工具的开发与应用[J].计算机辅助设计与图形学学报,2001,14(5):444-448.
[4] 刘萍萍.面向企业应用的Solid Works软件开发[D].南京理工大学,2004.
[5] 高春艳,李艳,谷伟东编著.Visual Basic数据库开发关键技术与实例应用[M].北京:人民邮电出版社,20.