王忠雷,张长江,石奇龙,杨晨立
(山东建筑大学机电工程学院,山东 济南 250101)
塔式起重机(以下简称“塔机”)是常用的起重设备之一,在土木、建筑等工程建设领域有着广泛的应用,它具有工作效率高、适用范围广、回转半径大、起升高度高、安装与拆卸比较方便等特点。塔机的装配设计是塔机整个设计过程的重要组成部分,对保证产品质量和降低产品成本起着关键性的作用。目前,塔机的装配设计主要存在2 个方面的问题:①计算复杂、设计周期长。目前塔机的装配设计普遍采用SolidWorks 软件进行几何建模,通常会遇到完成装配体后,模型与设计要求不符,此时只能逐一修改相关的零件模型,浪费大量的时间。②塔机的装配设计方法不易掌握,一般的计算机辅助软件不能满足装配设计要求,使得在快速研制塔机新产品中遇到困难[1]。
近年来随着计算机辅助设计技术的快速发展[2-3],很多学者研究了SolidWorks 二次开发技术,李建华等[4]研究了一种基于SolidWorks 二次开发的三维交互辅助装配方法,实现了装配数据的实时可视化;目登臣等[5]利用应用程序接口函数对SolidWorks 软件进行二次开发,形成了一套可独立运行的齿轮零件参数化造型系统;刘金凤等[6]基于SolidWorks 二次开发技术,对发动机活塞参数化设计进行了研究,提高了活塞设计效率。
从这些研究成果可以看出,由于SolidWorks 造型便捷、二次开发技术易于实现,已成为机械辅助设计领域的主流软件。但是目前基于SolidWorks 二次开发实现的参数化辅助设计,以结构简单,尤其是装配关系简单的零部件为主。对于大型、结构复杂的装配体的辅助设计系统还不多见,基于装配驱动的“自上而下”的智能辅助设计系统更为少见。因此本文针对上述问题,研究并设计了一种对话框式的塔机智能装配的三维辅助设计系统。
本系统由智能辅助设计平台、零部件信息数据库、外部链接文件、零部件三维模型库以及SolidWorks 系统5 个部分组成。系统的总体框架如图1 所示,系统以*.exe 方式独立运行于SolidWorks 之外,并通过修改SolidWorks 三维模型的外部连接文件,实现三维模型的尺寸驱动。
图1 系统整体框架
系统工作时,辅助设计平台依据设计要求,调用零部件信息数据库,搜索相关零部件并确定尺寸信息,通过辅助设计平台,写入外部链接文件,最后SolidWorks 系统会自动调用外部链接文件和三维模型库,生成符合设计要求的零部件三维模型。
以FP6010 塔机为研究对象,设计并建立塔机零部件信息数据库,包括零部件信息表和零部件尺寸信息表,描述塔机零部件关系和零件尺寸对应关系。
零部件信息表主要存储零部件基本信息,包括零部件编号、零部件所属装配体编号、零部件层次、零部件名称、零部件数量、零部件类型、零部件材料、零部件质量、零部件尺寸数量以及原材料参数(长、宽、高等用于直接下料加工的简单零件)、备注等信息。零部件所属装配体编号为零部件信息表的主要字段信息,通过零部件所属装配体编号,辅助设计程序自动建立树形零部件信息表。
零部件尺寸信息表主要存储零部件尺寸信息,包括零部件编号、尺寸顺序号、尺寸类型、尺寸名称、尺寸代码、参数名称、默认值、尺寸上偏差、尺寸下偏差、尺寸类型、尺寸源部件编号、尺寸表达式等信息。零部件尺寸信息表,通过尺寸数据来源表达装配关系,零件尺寸数据包括3 个类型:①自由尺寸,即装配不相关尺寸;②直接引用尺寸,即零件尺寸直接由装配体尺寸决定;③表达式引用尺寸,即尺寸由装配体尺寸构成的表达式决定。
为实现零件的尺寸驱动,采用SolidWorks 参数化建模的方式进行零件三维模型建立。以销轴的参数化建模为例。
首先通过图2(a)所示销轴零件图的尺寸信息,用SolidWorks 软件绘制出销轴一半(下部分)的草图,然后通过“旋转”“拉伸切除”命令获得如图2(b)所示的销轴三维图。
图2 销轴三维模型建立过程
其次为定义变量。通过零件图上的尺寸信息对变量进行赋值,分析零件结构获得结构的关键尺寸Ln、Dn、Wn(n=1,2,…),如图3(a),中把Ln、Dn以及Wn作为零件的驱动尺寸,将驱动尺寸定义为全局变量;然后如图3(b)把零件尺寸与特征尺寸构造函数关系;最后将方程式导出,如图3(c)所示,形成方程式外部链接文件,其中,例如“W1”之类为基本数据定义方程式,“D1@草图1”之类为关系定义方程式,用于修改基本数据定义方程式。通过修改外部链接文件,可以实现模型方程式基本数据的修改,从而进一步修改三维模型的尺寸值,实现模型的尺寸驱动。
图3 销轴的参数化过程
传统的SolidWorks 设计和建模采用“自下而上”的设计思路,即首先设计和建立零件模型,然后生成装配模型。通常,创建完装配体后,会发现模型不符合设计要求,此时只能逐一修改相关的模型,随着零件数量的增加,检测和更正这些错误会耗费大量的时间;而“自上而下”辅助设计,是将装配尺寸定义在部件上,当装配尺寸修改时,程序会自动查询相关零件尺寸,并根据定义的关系进行尺寸的计算和修改。为了提高辅助设计系统的效率、准确性,因此本文使用了“自上而下”三维辅助设计方法。
SolidWorks 模型驱动法根据修改尺寸的方法不同,可以分为3 种:直接尺寸驱动法、方程式驱动法、外部文件驱动法。
直接尺寸驱动法调用API 函数直接修改模型尺寸;方程式驱动法通过修改模型方程式中的全局变量,间接修改三维模型尺寸;外部文件驱动法通过修改模型方程式的外部链接文件,间接修改方程式中的全局变量,进而修改模型尺寸。与直接尺寸驱动法、方程式驱动法相比,外部文件驱动法不直接操作SolidWorks 软件,辅助设计系统与SolidWorks 软件耦合度低,系统稳定性和可靠性强,另外该方法可以实现多个零件的一次性尺寸驱动,适用于本文提出的“自上而下”装配驱动辅助设计方法,因此本文采用外部链接文件驱动法。为装配驱动的塔机三维辅助设计系统“自上而下”辅助设计的技术路线如图4 所示。将装配尺寸定义在部件上。
图4 “自上而下”辅助设计的技术路线
通过Access 数据库定义零件尺寸与装配尺寸的关系,当装配部件尺寸修改时,程序自动查询相关零件尺寸,并根据定义的关系进行尺寸的计算,修改相关零件外部链接文件,相关零件模型尺寸也随之改变,从而实现装配部件尺寸的自动修改。
塔机“左引进轮支架”的辅助设计。以塔机“左引进轮支架”的装配驱动为例,选择“辅助设计”下的“装配驱动”,塔机“左引进轮支架”的装配驱动辅助设计工作界面,塔机“左引进轮支架”由“把手”“阶梯轴”“连扳”“立板”“底板”“销轴”6 个基本零件,从零件信息图可以看出装配模型包含销轴直径D1、部件总长L1,顶板厚度W1等17 个关键尺寸,把这17 个关键尺寸定义为全局变量,并且构造函数关系,最后导出外部链接文件。点击界面上的“装配驱动”会生成基于默认尺寸的装配模型。生成默认尺寸装配模型的部分代码为:
1)SWApp:=GetOrCreateObject(’SolidWorks.Application’);(创建或获取SolidWorks 对象)
2)SWApp.Visible:=True;(使创建的SolidWorks对象可见)
3)PathName:=Dirstr+’SWM’+data.AQ1.fieldbyname(’ID’).AsString+’.SLDASM’:(模型的读取路径)
4)Part.ViewZoomtofit2:(使生成的可视化模型界面显示大小适宜)
通过系统交互式设计界面,将销轴直径D1由40 mm改为30 mm,部件总长L1由400 mm 改为340 mm,顶板厚度W1由20 mm 改为40 mm(在界面上直接修改数据即可),相当于修改了外部链接文件,点击“装配驱动”系统会自动更新相关零件尺寸,并实现装配体模型的更新。通过装配驱动的智能辅助设计系统,设计人员可以快速的优化部件尺寸、高效实现系列化设计。自动更新零件尺寸的部分代码为:
1)begin(开始)
2)T1:=PID;(装配尺寸数据)
3)Repeat(进入循环)
4)Str:=T1.Text;(寻找关联子尺寸)
5)ChangeData(Str);(尺寸修改)
6)SaveToText(Str,Data.RecordCount);(保存修改尺寸)
7)T1:=T1.GetNext;(寻找下一个关联子尺寸,直到相关尺寸都修改完毕)
8)end;(循环结束)
配合前面生成默认装配体的代码,从而实现新尺寸模型的装配驱动。
装配驱动的塔式起重机三维辅助设计系统是运用Delphi 语言对SolidWorks 进行辅助性开发,在SolidWorks 参数化建模的基础上进行程序化设计开发,从而实现抽象设计到实体三维模型的快速转换,在系统设计和开发的过程中,获得如下结论:①通过数据库定义了塔式起重机部件和所属零件的隶属关系,并建立了部件尺寸和所属零件尺寸之间的关系;②采用SolidWorks 二次开发技术,应用“外部链接文件驱动”方式建立了批量零件尺寸修改的尺寸驱动方法;③建立了“自上而下”装配驱动的塔式起重机三维辅助设计系统。