APP下载

基于CATIA模型的拆装动画制作方法研究

2020-04-27姜喜民杜伟平

机械设计与制造工程 2020年3期
关键词:位姿坐标系动画

文 勃,姜喜民,顾 佳,王 川,杜伟平

(1.中车青岛四方机车车辆股份有限公司,山东 青岛 266031) (2.西安电子科技大学机电工程学院,陕西 西安 710071)

目前,拆装动画已广泛应用于复杂产品生命周期的各个阶段,如产品设计阶段的虚拟装配动画,工艺设计阶段的装配路径仿真,产品宣传、培训使用的功能演示动画,以及维护维修阶段的拆卸动画等。与传统的通过文字、静态图片或工程图来表达复杂产品功能或装配关系相比,拆装动画能反映复杂产品装配体中零部件之间的装配约束关系,并能直观地展示出复杂产品零部件的装配顺序、装配路径和机构运动关系,以及零部件之间是否存在干涉等。随着航空、航天、船舶、汽车、工程机械、轨道交通等领域大型产品的零部件结构越来越复杂,精度要求越来越高,零部件越来越多,对拆装动画的制作需求越来越迫切。

国内外研究人员对拆装动画制作进行了大量的研究。Kumamoto等研发了爆炸视图及动画制作软件,然而该软件要求用户指定装配序列以及模型的爆炸方向[1];刘云华等[2]将装配模型转化成轻量化模型,并将模型的装配位置和爆炸位置作为拆装动画的关键帧,从而实现装配动画的自动生成;王帅[3]开发了基于Pro/E的自动爆炸图以及拆装动画制作工具;田富君等[4]研究了基于3DPFD的装配动画生成方法。在应用方面,大部分商品化三维CAD系统都有动画制作功能,如达索公司的CATIA、3DVIA Composer[5]和SolidWorks[6-7],西门子公司的UG NX和PTC的Creo[8]等,但商品化三维CAD系统动画制作功能存在制作过程繁琐、动画调整困难等问题,不能很好地满足工程应用中的效率和应用需求。如CATIA自带拆装动画工具,并且能够制作出较为出色的拆装动画,但利用该工具制作拆装动画的过程比较繁琐,制作效率比较低,不能很好地满足工程的需要。因此,本文针对CATIA拆装动画功能存在的问题,提出了基于爆炸图的拆装动画生成方法,并开发了拆装动画制作工具。

1 基于爆炸图的拆装动画制作方法

基于爆炸图的拆装动画制作方法包括4个步骤,如图1所示。

图1 基于爆炸图的拆装动画制作过程

1)拆装顺序规划。基于可拆即可装思想,在三维环境下,结合软件的碰撞检测功能,规划零部件的拆卸顺序,零部件的拆卸顺序规划完成之后,其逆序即装配顺序。

2)爆炸图生成。基于拆装顺序,确定组成装配体各装配单元的爆炸方向,并计算各装配单元的爆炸距离,分层分步骤地完成爆炸图的生成。

3)拆装动画生成。解析装配体各装配单元在装配状态和爆炸状态下的位姿变换矩阵,根据各装配单元的位姿矩阵变化情况生成动画轨迹。

4)最优视角确定。为了更好地观察装配单元的拆卸或装配过程,定义每个装配操作和拆卸操作的视点变换矩阵,确定最优视角。

2 关键技术

2.1 基于微位移和碰撞检测的爆炸图生成

CATIA提供的自动爆炸工具生成的爆炸图不尽如人意,爆炸后模型比较杂乱,而且爆炸之后难以调整爆炸距离,调整单个模型的爆炸状态也比较困难。为了优化爆炸图生成,提高爆炸图的生成效率,本文提出了基于微位移和碰撞检测的爆炸图生成过程,如图2所示。

图2 基于微位移和碰撞检测的爆炸方向确定

基于微位移和碰撞检测的爆炸图生成基本思想是:根据拆装顺序,对每个待拆卸的装配单元按照X+、X-、Y+、Y-、Z+、Z-方向做微小的移动,然后检测移动后的模型是否与其他模型发生了干涉,如果没有发生干涉,说明在当前状态下模型在该方向上是可以爆炸的,将该方向记录为模型的可爆炸方向。如果没有可爆炸方向,先跳过该模型去尝试爆炸其他模型;如果有1个可爆炸方向,将该方向设定为该模型的爆炸方向;如果有多个可爆炸方向,则选择一个最优爆炸方向,最优爆炸方向一般为在该方向上可以爆炸但在其反方向上不可以爆炸的方向,如果存在多个这样的最优方向,则选择其中的一个最优方向作为爆炸方向。如图2中的螺栓,其最优爆炸方向为Z+。最优爆炸方向确定后,将模型按照最优爆炸方向移动一定的距离,完成该装配单元的爆炸。按照该方法,将该装配层级下面所有的装配单元完成爆炸分解,即可完成爆炸图的生成。在爆炸图生成过程中,若在某一爆炸方向上有多个装配单元,为避免装配单元的重叠或接触,将该方向上之前已经爆炸的装配单元随着本次爆炸的装配单元一起移动。

本文利用CATIA提供的Clash接口进行模型的碰撞检测,干涉计算模式选择catClashComputationTypeAgainstAll,干涉类型选择catClashInterferenceTypeContact。判断模型是否有干涉或者重叠时,因为模型接触不应该判定为干涉,所以需要在干涉结果中进行判断,只有存在catConflictTypeClash类型的干涉时才将模型视为与其他的模型干涉。

2.2 基于位姿矩阵的装配单元拆装运动

在装配环境中有局部坐标系和世界坐标系两种坐标系,每一个零件实体模型在建模时,都有与它本身相关联的坐标系,该坐标系称为局部坐标系,如图3所示的oxyz。表示产品或零部件在场景中位置的坐标系为世界坐标系,如图3所示的OXYZ。零部件在装配环境中的位置及方向矢量由位姿矩阵决定,当一个零部件被加入到一个装配体时,就会建立一个位姿矩阵,该位姿矩阵确定了零件局部坐标系原点在世界坐标系中的位置,以及零件局部坐标系在世界坐标系中的方向矢量。

图3 局部坐标系与世界坐标系

拆装动画展示的装配单元拆卸或装配到指定位置的运动路径,就是位姿矩阵不断变化的过程。位姿矩阵确定了装配单元在世界坐标系的位置和姿态,位姿矩阵P用4×4矩阵表示:

(1)

式中:(X,Y,Z)T为装配单元局部坐标系在世界坐标系中的方向矢量;(Xo,Yo,Zo)为局部坐标系原点在世界坐标系中的位置。

在拆装动画制作过程中,装配单元的运动(包括移动和转动)等价于位姿矩阵P经过一次矩阵变换,得到新的位姿矩阵P′,其变换过程可以表示为:

P′=P·T1

(2)

式中T1为变换矩阵,它是一个4×4矩阵:

(3)

式中:(Mx,My,Mz)表示沿3个坐标轴的平移分量;(X,Y,Z)T反映的是沿3个坐标轴的旋转分量。

在CATIA模型中,可以获得或设置某一零部件相对于父节点的位姿变换矩阵,为了获得该零部件在世界坐标系中的位置及方向矢量,需要计算出该零部件相对于根节点的位姿变换矩阵。

假设某一装配单元相对于父节点的位姿矩阵为T1,并且该装配单元位于装配结构树的第l层(假设装配结构树的根节点为第1层),从装配单元到装配结构树根节点所经过的每一层装配单元相对于其父节点的位姿变换矩阵分别为T2,T3,…,Tl-1,根节点相对于世界坐标系的位姿变换矩阵为Tl,那么装配单元相对于世界坐标系的位姿变换矩阵T可以用以下公式计算:

T=T1·T2…Tl

(5)

同时,在已知装配单元相对于世界坐标系的位姿变换矩阵T时,可以由以下公式计算出装配单元相对于其父节点的位姿变换矩阵T1:

T1=T·[T2…Tl]-1

(6)

2.3 基于视点变换矩阵的拆装动画优化

在由三维模型投影到屏幕时,需要在世界坐标系中指定观察点、观察方向以及一个表示视线向上的方向矢量,这些要素构成一个观察坐标系(也叫视点坐标系),用以表示物体与观察者的位置关系。在动画播放过程中,如果不进行视点的调整,有些装配单元的拆装路径有可能被遮挡。为了更好地观察装配单元的拆装路径,在播放某一装配单元的拆装动画前,首先需要调整视点的位置。

视点调整的过程即为新的观察坐标系的建立过程,观察坐标系的建立需要经过4个步骤[9]:首先确定观察坐标系的原点,如图4中的p点;其次指定观察方向n;再次指定一个视线向上的方向v,此方向为V的正方向;最后利用方向n和方向v可以确定U的正向u。设(xp,yp,zp)为观察点在世界坐标系中的坐标,(ux,uy,uz)、(vx,vy,vz),(nx,ny,nz)分别为观察坐标系UVN的3个坐标轴U,V,N方向上的单位矢量,则从世界坐标系到观察坐标系的变换可以用视点变换矩阵M来实现:

(7)

其中,矩阵R为旋转变换矩阵,它使观察坐标系3个坐标轴与世界坐标系3个坐标轴重合,矩阵T为移动变换矩阵,它能使观察坐标系的原点移动到世界坐标系的原点。

图4 观察坐标系

为了以一个更好的视角观察拆装动画,笔者总结出建立观察坐标系应遵循的原则:

1)观察方向应便于观察装配过程,能清晰地观察装配单元的完整拆装路径及装配约束完成过程,一般观察方向n应垂直于装配单元拆装路径的矢量方向;

2)观察点p的选取应遵循整体识别性,使得选取的观察点能完整查看整个装配体而又充满整个窗口,不至于装配体缩放太小而看不见装配细节;

3)视线向上的方向v应符合人的观察习惯。

3 应用实例

基于上述算法,笔者利用Visual Studio开发环境并配合CATIA提供的Automation API,开发了拆装动画制作工具。拆装动画工具主要将爆炸视图中的信息转化为动画信息,拆装动画制作工具主要由动画树模块、步骤参数编辑模块、轨迹参数设置模块、动画预览模块、动画管理模块构成,如图5所示。当动画制作完成后,为了方便动画的播放控制,笔者还开发了动画播放控制功能,包括播放至最前、向前单步播放、向前播放、停止、向后播放、向后单步播放、播放至最后等按钮。

4 结束语

本文基于CATIA开发的拆装动画制作工具,已成功应用于高速轨道交通大型部件的装配工艺设计,提高了装配工艺设计的质量和效率。基于爆炸图的拆装动画虽然在一定程度上提高了拆装动画的生成效率,但最佳视角的确定仍然需要人工指定,笔者下一步将研究最佳视角自动生成算法,以进一步提高拆装动画的生成效率。

图5 拆装动画制作界面

猜你喜欢

位姿坐标系动画
融合二维图像和三维点云的相机位姿估计
Clifford hits the big screen
独立坐标系椭球变换与坐标换算
做个动画给你看
动画发展史
船舶清理机器人定位基准位姿测量技术研究
我的动画梦
优化ORB 特征的视觉SLAM
解密坐标系中的平移变换
坐标系背后的故事