多体动力学中对于复杂外形面的接触力创建是一项基础、繁琐而又十分重要的工作,本文利用TCL/TK语言对MotionView平台进行二次开发,并结合使用CATIA的点提取功能,将创建接触力的流程简化,既节省了工作时间,同时也提高了建模的准确率和一致性。
1 概述
目前Altair公司的HyperWorks软件在航空领域得到了很好的应用,使用时可根据模型特点满足用户的不同需求,但工作中通常存在一些相似、繁琐及重复的操作,因此企业在建模流程的规范性及简化处理等方面提出了要求。舱门是民用飞机上重要的部件,而很多舱门的锁定机构均有滚轮在锁座中的相对运动,它们之间的相互作用通常以接触力的形式体现。若通过操作MotionView软件界面或MDL语言编程的方式创建接触力,将会是一个相当庞大的工程。因此,开发一款能快速创建接触力的工具,对提高建模的效率、准确率和一致性具有重要意义和作用。鉴于此,本文通过对MotionView进行二次开发,以达到规范建模流程、简化操作步骤的目的。
2 MotionView二次开发简介
MotionView软件不仅提供了标准的多体动力学分析程序,而且包含了相应的二次开发工具,在图形界面的开发,主要采用Wizard和相应的二次脚本语言TCL/TK来实现,通过编译相应的程序,就可以开发出满足实际需要的操作界面。HyperWorks软件提供了TCL/TK语言的二次开发接口,TCL/TK是一种简明、高效、可移植性好的脚本语言,它支持和C/C++类似的循环、控制结构,如if循环控制、for循环控制等,并支持过程的定义和调用。TK是TCL的图形用户界面工具包,可以用于定义TCL命令、创建和操作用户界面部件。从而使TCL脚本语言具有与面向对象语言相似的特点。同时,TCL/TK语言能与HyperWorks平台实现无缝连接。
MotionView的命令均为面向对象风格的语法,基本语法如:
{object_name} {command}
{command parameter(s)}
操作一个对象之前,需要逐层访问各级对象,因此必须先了解数据结构的对象层级,其中MotionView数据结构的对象层级如图1所示。

图1 MotionView数据结构对象层级图
3 接触力创建工具的二次开发过程介绍
3.1 接触力创建工具的界面介绍
整个接触力创建工具的用户界面是由TK工具包和HyperWorks GUI工具包开发完成,通过在MotionView中运行TCL/TK脚本程序,即可将工具软件添加至MotionView软件的菜单中,如图2所示。

图2 接触力创建工具用户界面
在接触力创建工具中,首先通过“Instruction”描述了接触力创建的操作方法,在“Input impact track data (*.csv)”载入如表所述格式的csv文件,然后在“Creat Subsystem”中填入子系统的名称,该子系统用于存储所创建的点、局部坐标系及接触力,以便于管理。“Force Type”中,可选仅有作用力和作用力与反作用力成对出现;点击黄色按钮,即可出现交互式的点、物体或坐标系选择列表框;“Radius”参数用于定义两接触物体之间的距离,而“Stiffness”、“Damper”、“Penetration”及“Exponent”分别用于定义接触力参数的刚度、阻尼、穿透深度和刚度指数,具体的操作界面如图3所示。

图3 接触力创建工具操作界面
3.2 接触力创建工具的程序介绍
接触力创建工具主要由创建主菜单和下拉菜单、创建图形用户界面、创建子过程和创建多体动力学模型子系统等模块组成,其中创建主菜单是通过HyperWorks自带的GUI工具包命令将工具菜单添加至MotionView软件中,创建图形用户界面用来创建可视化的操作界面,并且通过bind命令将点、物体和坐标系选择列表框绑定至相应的按钮组件,创建的子过程包括了点选择函数、物体选择函数、坐标系选择函数等子过程,并且有多层嵌套,多体动力学模型子系统的创建主要是通过mdlIObject Class中的InterpretEntity命令及InterpretSet命令来实现的,而对于运动轨迹点坐标(csv文件)的载入,主要用到了以下TCL命令,如表1所示。
表1 点坐标载入用到的TCL命令

4 计算结果图

图4 货舱门锁定机构
图4为某型飞机货舱门的锁定机构,共有8组滚轮/锁座机构,当舱门解锁/上锁时,手柄带动连杆机构使滚轮在锁座上滚动,滚轮和锁座之间的相互作用以接触力的形式体现。按每组滚轮/锁座机构创建100个接触力,那么整个锁定机构共需要创建800个接触力。若采用通常的建模方法和步骤,这将是一个非常庞大、繁琐而又耗时的工作;而采用接触力创建工具,可以方便而又快速地创建复杂曲面的接触力。
创建接触力之前,首先在CATIA中将滚轮在锁座上的运动轨迹线提取出来,然后将轨迹线离散为轨迹点,并将轨迹点另存为stp格式的文件。用UltraEdit打开stp文件后,即可编辑轨迹点的坐标,将坐标点按图2所示的格式存为csv文件。
通过接触力创建工具创建的子系统如图5所示,在模型树中,包含了通过csv文件导入的坐标点、由坐标点自动创建的局部坐标系和最终所需的接触力,同时,将接触距离和各接触参数均设置为可编辑的变量,通过调节这些变量即可达到修改接触力大小的效果,以方便模型的调试。

图5 接触力创建
5 结语
本文主要介绍了运用TCL/TK语言对MotionView软件进行二次开发的过程,同时通过实例验证了接触力创建工具的可操作性。实践表明,HyperWorks软件二次开发可以通过程序控制,实现操作的批量处理,提高工作效率,降低工程师的劳动强度。此外,通过二次开发程序建立的仿真模型,降低了人工干预程度,保证了模型的规范性和一致性。
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。