基于SolidWorks的通用双梁桥式起重机小车参数化设计
2015-12-13姚峰林
银 行,马 卓,姚峰林,王 深,张 雷,张 瑶
(太原科技大学机械工程学院,山西 太原 030024)
引言
目前我国起重机在设计时需要进行大量的计算,尤其是在设计同系列不同型号时需要进行大量的重复计算,十分繁琐[1]。随着时代的发展,这种设计方法已经严重限制了工作效率的提高,无法满足如今系列化生产的需求,所以开发一种辅助设计系统很有必要。
本研究以通用双梁起重机小车为例,应用了VB编程、SolidWorks二次开发、Access数据库技术等技术,采用模块化设计方法,将理论计算方法通过VB编程变为可视化的计算界面,输入特定参数便可完成计算,并在SolidWorks里边创建三维模型,可较为快速地完成通用双梁起重机小车的参数化设计。
1 SolidWorks二次开发方法简介
1.1 SolidWorksAPI对象介绍
SolidWorks是一个十分强大的三维CAD 软件,除了三维建模功能外,还带有丰富的API接口,供开发者进行功能方面的拓展。这些接口主要为OLE 或COM 接口,用户可以使用VC、VB、Delphi等高级编程语言工具对其进行二次开发,以实现自己需要的功能[2]。本文以VB开发为例,若使用其他语言开发过程也是类似的。
1.2 SolidWorks二次开发一般过程
1.2.1 录制宏
SolidWorks提供了录制宏的功能,宏是一系列命令的集合,录制宏可以记录设计人员在设计三维模型时的每一条命令,并以类似VB编程语言的代码记录下来,因此应用VB 对SolidWorks进行二次开发有着得天独厚的优势。如果使用VB语言编程的话,可以直接将SolidWorks自动生成的宏代码复制到VB中,稍加修改便可使用[3]。所以使用宏可以大大简化程序开发过程。当然,不使用宏只需要记忆大量的SolidWorks API命令即可,但编程时较为复杂且容易出错,然而使用这种方法却可提高开发人员对SolidWorks的控制,可以使编写的代码高效简洁。对于通用桥式起重机二次开发来说录制宏是一种高效的编程方法,值得推广使用。
1.2.2 宏代码在VB中的修改
1)VB链接SolidWorks零件图。
例如VB 只有在链接SolidWorks后才能对SolidWorks进行各种操作。
对录制的宏代码:
替换为:
即可链接SolidWorks,开始自动设计零件。
1.2.3 删除冗余语句
SolidWorks宏程序录制的代码掺杂各种对制图产生干扰的命令和操作,而且有些代码是不必要的。那些冗余代码在运行时虽然不报错,可是会占用大量内存空间,影响阅读和调试工作。所以最后录制的宏程序必须要进行人为的整理,删除或者注释掉没用的代码,使程序简化。
1.2.4 模型参数化
在录制的宏代码中的模型都是固定数值的,但程序开发要求模型的的特征必须是变量,因此需要对模型进行特征的参数化设计。
Retval=SketchManager.CreateCircleByRadius(XC,YC,ZC,Radius)‘在草图中创建一个以(XC,YC,ZC)为原点,radius为半径的圆。
Retval=SketchManager.CreateCenterRectangle(X1,Y1,Z1,X2,Y2,Z2)’在草图中创建一个中心坐标为(X1,Y1,Z1),其中一个直角点为(X2,Y2,Z2)的矩形。
Retval=SketchManager.CreateLine(X1,Y1,Z1,X2,Y2,Z2)‘在草图中创建一条以(X1,Y1,Z1)与(X2,Y2,Z2)为端点的直线。
Set myFeature=Part.FeatureManager.Feature-Extrusion2(True,False,False,0,0,0.01,0.01,False,False,False,False,0.017 453 292 519 94,0.017 453 292 519 94,False,False,False,False,True,True,True,0,0,False)’将所选择的草图进行拉伸。
若要使模型实现参数控制,只需将这些命令中一些函数参数改为变量,并在用户界面设计相应的输入框或对数据库中进行读写,这样设计人员只需修改这些变量的值便可使程序生成尺寸不同但结构基本相同的模型[4]。
1.2.5 自动装配
自动装配及通过VB操纵SoildWorks的API函数实现各个零件的自动定位、配合、遍历面等功能,在SolidWorks自动装配过程中,依然采用宏录制的方法。可以在装配体中的各个零件上建立基准面与基准轴,然后设置基准面与基准轴之间的关系,从而完成装配,这样可以使得二次开发时的装配过程更准确快捷[5]。与自动设计零件类似,自动装配也要将VB与SolidWorks装配体API连接,其连接代码如下:
在自动装配过程中利用OpenDoc6函数打开零件、利用AddComponent4 函数添加零部件到装配体,SelectByID2 是选择装配参考和AddMate3装配配合命令。
1.3 数据库的支持
Microsoft Office Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个关系型数据库管理系统,是office办公套件的一个成员。对于简单的二次开发来说ACCESS要比ORACLE,SQL SERVER,MYSQL,DB2 成本更低廉,更易学易用。
ACCESS以它自己的格式将数据存储在基于Access Jet的数据库引擎里,还可以直接导入或者链接存储在其他应用程序和数据库中的数据。开发人员可以使用Microsoft Access开发应用软件,“高级用户”可以使用它来构建软件应用程序。与其他办公应用程序一样,ACCESS 支持Visual Basic宏语言,语法结构与SolidWorks中的宏完全相同,使用方法也基本一样,只是部分函数与SolidWorks不同,本程序应用的是Microsoft Office Access2010版本。
在整个系统的编写中,需要查找或记录大量的表格来确定各个参数的数值以及各个零部件的型号以及规格。把上面所有的需要查找的表格和零部件参数都输入到数据库中,编写的程序就会自动查找符合条件的数据。设计过程中所建立的数据库如图1所示。
1.4 封装
在新建VB工程时可以选择新建工程的类型。在Windows系统下COM 组件支持可执行文件(.exe格式)或动态链接库(.dll格式)。可执行文件独立于SolidWorks,可以在SolidWorks未打开时执行,较为灵活方便。动态链接库则必须在Solid-Works运行并且被加载时才可以使用,但由于其位于SolidWorks内部,运行速度较快。由于dll文件安装较为复杂,并且本系统对于运行时间要求不高,所以本系统采用exe格式封装。
图1 Access数据库模型
2 通用双梁桥式起重机小车参数化设计系统
2.1 系统结构
用户需要根据自己的需求在输入界面内输入相应的参数并作出相应选择,程序便可自动设计出相应的设计方案。具体结构如图2所示。
图2 通用双梁桥式起重机小车参数化设计系统结构
VB内部计算模块为本系统核心部分,可以代替设计人员进行一些繁琐复杂的计算,其主要功能如下页图3所示。
2.2 系统展示
2.2.1 输入参数界面
设计人员在此处输入所需参数,程序将根据这些参数进行后续验算,并连接数据库,根据计算所得结果确定后续可选零件的型号。
2.2.2 最终生成的模型
图3 内部计算模块功能
图4 系统总参数的输入界面
图5 系统最终生成的模型
3 结语
本次设计以通用双梁桥式起重机小车为例,介绍了起重机小车的参数化设计一般方法。在此过程中综合运用了VB 编程、SolidWorks二次开发、Access数据库技术等实现了其中所有零部件的选取。选型用零部件参数由Access数据库管理,需要查询表格时VB会自动连接Access并按照用户输入的参数查找。最后VB 调用SolidWorks的API函数进行模型创建。此次设计的系统可以在用户只输入特定参数的情况下,自动按照程序设计通用双梁桥式起重机的小车,并在SolidWorks里边创建三维模型。用户可以任意更改初始参数,所生成的模型也会随之改变。本系统采用可执行文件格式封装,独立于SolidWorks,可以灵活移植,在一定程度上可以减轻设计人员的负担,并加快其设计速度。
[1]中国工程机械网.工程起重产业状况及发展趋势[J].机械工业标准化与质量,2011(8):12-14.
[2]曾锋,钟治初,姚山.SolidWorks API二次开发方法与应用[[J].嘉应学院学报,2011(29):21-25.
[3]葛振华,赵茹茹.基于API与方程式的SolidWorks参数化建模应用[J].金属加工(冷加工),2012(12):84.
[4]安颖莲.Visual Basic程序设计[M].北京:机械工业出版社,2009.
[5]郭威.铸造起重机小车参数化设计系统研究[D].太原:太原科技大学,2013.