李全超,李志恒
(中国舰船研究设计中心,武汉 430064)
轴系是船舶推进系统的重要组成部分,用于将主机发出的功率传递给推进器,并将推进器产生的推力传给船体,使船舶获得前进、后退的动力[1]。船舶轴系传动部件主要包括艉轴、联轴节、中间轴、推力轴、齿轮轴等,轴段结构形状规则,各轴段之间具有很大的相似性,轴系结构特征明显。因此,船舶轴系易于以特征建模的方式进行参数化设计。
Pro/E是一套大型三维参数化软件,在目前的三维造型软件领域中占有着重要地位,并作为当今世界机械CAD/CAE/CAM 领域的新标准而得到业界的认可和推广[2]。Pro/E具有较强的模型参数化能力,通过对Pro/E 进行二次开发,采用参数驱动的方式可达到快速设计的目的。
为提高轴系的设计质量和设计效率,本文研究以特征创建的方式进行船舶轴系的参数化设计,并在此基础上以Pro/E 为开发平台,通过MFC和Pro/Toolkit 开发工具相结合的方法,构建船舶轴系零件的特征数据库,实现船舶轴系的参数化设计。
特征是一种具有特定形状、特定功能和特定工艺属性的基本信息单元,用于系统地连接CAD和CAPP,实现CAD/CAPP的有效集成[3]。零件即为各种特征按照一定规则的组合体。特征在不同领域中的分类不同,如Pro/E 零件设计需要用到拉伸、旋转、扫描、倒角、圆角等特征,本文称其为基本特征。机械领域的特征分类一般以零件或体素的几何相似性,兼顾各要素的功能和形状进行分类,可以是多个基本特征的组合。船舶轴系零件均为圆柱类结构,几何外形相似性较强,同时轴段常设计有倒角、圆角、键槽、退刀槽、螺纹、齿轮等明显结构特征。因此,以特征的方式进行轴系建模是快速实现轴系零件参数化的有效途径。
根据船舶轴系的结构特点,可将船舶轴系分为基本特征和辅助特征两类特征。基本特征为轴系零件参数化建模的主特征,是轴系结构的基础,主要包括圆柱轴、圆锥轴、键槽轴、花键轴、齿轮轴、法兰等;辅助特征主要用于对基本特征的局部修饰和完善,辅助特征需依附于主特征,主要有键槽、退刀槽、倒角、圆角、修饰螺纹、孔特征、齿轮等。轴系特征分类如图1所示。Pro/E 二次开发可以构建轴系特征数据库,若将这些特征按照一定方式组合,完成轴段拼接、编辑、修饰和修改,即可快速获得船舶轴系参数化模型。
图1 船舶轴系特征分类图
Pro/E 中特征参数化设计的方法有很多,如通过定义特征元素树(Feature Element Tree)产生基本特征,进而构建产品特征组的方法;利用族表(Family Table)建立样板模型文件,通过控制族表中定义的各个参数更新模型的形状和尺寸的方法;利用程序(Pro/Program)控制设计步骤和参数进行零件参数化的方法;根据需要组合数个基本特征,建立并调用用户自定义特征UDF(User Defined Feature)的方法等[4]。其中,用户自定义特征可以将数个基本特征组合起来,形成一个新的自己定义的特征,可根据用户需要将外形相同或相近的特征组合起来,建立完善的UDF 数据库,以供随时调用。调用时可以通过控制选定的特征、所有相关尺寸、特征之间的关系以及特征放置等参数进行自定义特征的参数化。该方法可以根据用户实际需要实现标准特征组和常用特征组的重复使用,提高建模工作效率,特别适合于轴系特征的参数化设计。因此,本文采用建立UDF 数据库的方法进行轴系特征的参数化设计,现以圆锥轴为例说明设计步骤。
(1)通过旋转命令创建一个圆锥轴段特征,为UDF的创建创造依托;(2)通过“工具”→“UDF 库”,打开UDF 菜单管理器,点击“创建”按钮开始UDF 创建,根据系统提示依次输入UDF 名称、设置特征从属性、选择需定义基本特征(组),完成特征对象的选取;(3)根据系统提示为UDF创建必需的参考特征(如曲面、边、轴线等)创建提示文字;(4)点击定义可变尺寸,选择UDF 中需要参数化的尺寸,并输入尺寸提示,完成UDF的定义。按此方式进行轴系基本特征和辅助特征UDF 库的创建。
Pro/E 二次开发时通过程序调用UDF 库,可实现轴系参数化特征的快速创建。该过程和手动调用类似:(1)调入UDF 对象文件,设置特征从属、缩放等属性;(2)选取并设置UDF 放置参考;(3)获取特征参数化尺寸,并通过交互界面更新尺寸数值,最后创建用户自定义特征并更新当前模型,即完成UDF 特征的参数化生成。Pro/Toolkit 中调用UDF 数据库进行特征参数化的关键步骤代码如下:
在轴系特征实现参数化的基础上,对Pro/E 进行二次开发,进行船舶轴系参数化设计程序的编写,程序主要包含用户菜单设计、应用程序的初始化和中止、MFC 对话框与Pro/E 之间的链接和程序注册等部分内容。
用户菜单是应用程序与Pro/E 软件集成的主要方式,程序设计之初需根据系统需求设计菜单,并给每个菜单按钮设计动作函数。用户菜单的显示需要调用信息文件,信息文件是用来定义菜单项、菜单项提示等信息的具有一定格式要求的ASCII 码文件。本文添加的船舶轴系参数化设计程序自定义菜单代码如下:
生成的系统菜单如图2所示。添加菜单的程序和函数菜单关键字所对应的信息资源文件如下:
MarineShaft
MarineShaft
船舶轴系参数化设计(&S)
#
InsertShaft
Insert a Shaft
轴系基本特征创建
#
图2 用户自定义菜单
MenuButton1
activate Menu button1
光轴段
#
……
InsertOther
Insert Other Feature
插入轴系辅助特征
#
InsertKey Insert a Key
键槽
#
……
应用程序在Pro/E 环境中以同步模式运行首先要求设计初始化函数和终止函数。初始化函数user_initializ()主要用于设置用户的交互接口,如菜单、调用对话框及其它初始设置;终止函数user_terminate()则用于应用程序中止或退出,可以不执行任何动作[2]。用户自定义菜单代码放置于初始化函数之内,初始化和终止函数代码如下:
图3 圆锥轴参数输入对话框
本文通过动态链接库(DLL) 实 现 Pro/Toolkit 与MFC的通信,利用MFC 强大的编制用户界面能力生成程序的人机交互界面[5]。通过用户自定义菜单按钮完成对用户界面的链接,在Pro/E 环境中生成MFC 对话框,方便、自然、快捷地进行人机交互。
根据Pro/E 二次开发要求进行VC++环境设置,包括所需的包含文件、库文件及其路径,程序编写完毕后即可进行应用程序编译。应用程序在Pro/E 中的运行需要编写注册文件,通过注册文件向系统传递应用程序的信息,确定各种资源所存放的位置,注册文件如图4所示。
图4 注册文件
该应用程序可根据需要进行船舶轴系特征的参数化建模,通过各轴系特征的放置关系进行特征拼接,实现船舶轴系的参数化设计。程序使用时仅需通过互交界面输入特征尺寸,选择特征放置参考,直接由程序控制模型创建和拼接,并实时可视化显示,装配后的船舶轴系如图5所示。该程序也可用于其他行业轴类零件的参数化设计。
图5 船舶轴系示意图
本文结合船舶轴系结构特点进行了船舶轴系零件特征的划分。以Pro/E 为开发平台,通过MFC和Pro/Toolkit开发工具相结合的方法,构建了船舶轴系零件的特征数据库,编写了船舶轴系参数化设计程序,实现了船舶轴系的参数化设计。该基于特征的船舶轴系参数化设计可快速建立船舶轴系三维模型,大幅提高船舶轴系的设计效率。同时,该参数化模型还可以直接导入ANSYS 等有限元分析软件,进一步进行船舶轴系的运动仿真、静力学、动力学特性分析等工作。
[1]邵开文,马运义.舰船技术与设计概论[M].北京:国防工业出版社,2005.
[2]吴立军.Pro/ENGINEER 二次开发技术基础[M].北京:电子工业出版社,2006.
[3]罗志伟,陈亮,邓灵,等.基于特征的轴类零件参数化设计系统[J].机械设计与研究,2004,20(5):58-60.
[4]Parametric Technology Corporation.Toolkit User's Guide[M].USA:PTC 公司,1998.
[5]宋娥,李世国.Pro/E 二次开发中的界面设计技术[J].机械设计与制造,2005(5):56-58.
[6]卫大为,李健康.Pro/E 二次开发的机械零件参数化设计[J].机械制造与自动化,2004,33(6):21-24.
[7]孔锐,钟佩思,刘梅,等.基于Pro/E 二次开发的特征提取技术研究[J].机械设计与制造,2012(4):86-88.
[8]王彩英.基于特征的轴类零件参数化设计的研究[J].机电产品开发与创新,2008,21(5):131-133.
[9]胡昊.基于Pro/E的汽车发动机曲轴飞轮组的三维参数化设计与研究[J].机械设计与制造,2012(5):113-115.