0 引言
数控加工在现代制造业中日趋重要,数控仿真也得到了广泛应用,相对于空运行法、试切法以及二维轨迹显示法等传统的数控程序检验方法,数控仿真更加安全有效。根据实际数控机床及加工过程,进行几何和行为的建模仿真,一直是数控仿真系统实现的重点,针对不同的特征,三维物体的表示及建模方法有多种,如多边形网格及表面、二次曲面及样条曲面、扫描表示、结构实体几何法(Constructive Solid Geometry,CSG)、八叉树表示法、分形几何方法、粒子系统表示等。因此,本文对于具有不同几何和行为特点的数控仿真系统各部分采用不同的建模方法,综合采纳各种优秀的建模策略,实现系统的可视化建模仿真。
1 建模思路
以实际数控机床为对象,根据其几何、行为特点,数控仿真系统的建模仿真主要包括以下3个部分:
(1)数控机床本体建模(包括刀具)
数控机床本体模型的存在不仅增加了加工场景的真实性,还可在加工过程中通过机床各个部件的运动来进行碰撞检验。机床几何模型可以看成一个装配体,由床身、立柱等部件组成,部件可以再细分;机床部件的运动仿真(如数控立式加工中心中刀具库的旋转运动,主轴箱的上下运动等)也比较规则。因此数控仿真系统中的机床本体通常采用CSG建模方法的思想,通过简单的体素间的交、并、差等布尔运算构成复杂模型。该方法能直观、高效地描述机床本体,也易于实现各个部件的规则运动。
(2)加工过程动态建模仿真
在加工过程中,随着NC代码的执行,刀具连续切削工件,工件形状不断改变,属于工件的变形动画,这也一直是数控仿真系统的一个实现难点。对此目前主要有两大类仿真方法:基于实体的仿真方法提供三维形体完整的几何和拓扑信息,进行准确的过程仿真和刀位轨迹验证,但是对于数控代码量很大的复杂零件的加工仿真,计算量巨大,相当耗时;离散仿真则避免了实体仿真时复杂的实体模型表示和布尔运算,方法简单且计算效率高。本文采用了一种应用广泛且简单高效的基于表面三角网格的物体空间离散法,通过控制工件表面的一系列网格点的属性解决了毛坯的变形动画仿真问题,避免了基于图像空间离散法的图形生成质量较差,不适合任意视角观察工件等问题,并且它能很好地推广到数控加工验证和误差分析中。
(3)加工过程中其它动态过程建模(如冷却液、切屑)
冷却液以及切屑的运动仿真可以保证系统功能的完整性以及增加场景的真实性。以冷却液为例:大量的液体连续不断的按照某种规律动态地运动,这是一种不易用人工描述的方法指出的运动;并且液体的几何形状也不易准确表达。针对这种不规则物体的物理动画仿真,通常采用粒子系统的建模思想——一种模拟不规则模糊物体的景物生成系统。
2 建模过程
2.1 机床本体的建模
采用CSG建模思想,层次化、结构化构建机床本体模型将机床本体的复杂建模过程转换为简单形体的建模活动的组合,具体建模方法:以实际机床为对象,忽略机床内部传动装置以及伺服装置等;对机床几何结构层层细分,对部件形体按照相似性规则进行几何造型简化处理;最后通过软件三维造型基础库中一组形状规则的基本几何实体(立方体、圆柱、圆环等)的交、并运算构建机床的主要部件模型,从而最终组合形成完整的机床本体三维模型。系统具体开发中没有采用差运算,而是将其相应地转换为交、并运算的组合,这是因为本软件的三维建模基于OpenGL三维图形库,OpenGL实现基本体素的差运算要涉及模板缓存,过程相对比较复杂。
此外,还要进行机床本体的行为建模,主要指处理机床运动部件的运动特征以及相互运动关系,主要从坐标系确定、运动方式、运动自由度、运动行程等方面考虑。
刀具、夹具等的建模与机床类似。图1以麻花钻刀具的几何建模为例显示了基于CSG策略的建模过程,它可以看作机床本体建模过程的一个缩影。首先通过基本体素的布尔运算构建了两条螺旋槽,它们组成了麻花钻的导向部分;麻花钻最终由柄部、导向部分、切削部分三部分组合而成。此外,参数化设计是刀具建模的重要思想,从实际刀具中提取各种参数(如图1中刀杆长L等),控制刀具三维模型的几何特征。
图1 麻花钻建模示意图
2.2 加工过程动态仿真建模
基于表面三角网格的物体空间离散法的具体策略是:将上表面离散为均匀点阵,再将这些点阵连接为三角片矩阵。程序运行时,不断地按照刀具路径修改上表面点阵的属性,再进行真实感渲染,就可以达到实时显示加工过程的效果,整个算法分为三大部分:毛坯离散化;判断、计算过程;毛坯绘制。
2.2.1 毛坯离散化
本文主要针对数控车削和三轴铣削加工:车削毛坯多为圆柱状,且多用于加工回转表面;三轴铣削毛坯一般为长方体状,且只有毛坯的上表面为加工面。因此两者离散过程略有差异,图2为车削和铣削毛坯的离散原理图。以车削毛坯为例,将其回转体表面分别沿轴向和径向细分,形成均匀的四边形网格阵列;若有孔加工,毛坯孔内表面也同样离散为四边形网格;两端面则根据有无孔加工相应离散为三角形网格或四边形网格。在毛坯离散化时并没有全部采用一般的三角形网格(根据三点共面原则),有时以四边形网格为基本单位。以图2中任意四边形ABCD为例,它作为车削毛坯回转体表面的一部分,显然ABCD四点共面,与采用三角网格ABD、BCD的效果一样,只是三角网格的一种特殊情况。
图2 毛坯离散示意图
毛坯离散化过程还包括节点数据结构定义以及节点数据顺序存储。离散过程中毛坯离散精度(网格节点密度)的选择也非常重要,精度越高,图形真实感越好;但是随之也会影响仿真实时性。
2.2.2 判断计算过程
仿真的判断计算过程一般包括:根据刀具移动轨迹、刀具种类计算刀具扫描域和刀具扫描面;判断毛坯节点是否位于刀具扫描域中以及是否与刀具扫描面相交(以此确定毛坯节点是否被刀具切削);修改被切削的节点数据(节点半径值或高度值)。判断计算过程的重点是刀具扫描面的计算。
以铣削加工为例,铣削加工中材料去除的过程就是毛坯节点数据根据刀具扫描面改变的过程。主要针对三种刀具(球头刀、平底刀和环形刀)讨论铣削加工仿真。首先根据APT(Automatically ProgrammedTools)刀具模型,通过刀具参数判断三种刀具类型,然后分类计算刀具切削扫描面。刀具扫描面的计算比较复杂,目前一种有关刀具扫描面计算的方法为:在根据刀具种类得到刀具扫描面形状后,按照一定的规则(形体特征或刀具运动方向矢量和刀具表面点的法矢量的关系将复杂的刀具扫描面分为几个组成部分,然后对每一个部分分别求解其数学表达式。本系统就是根据上述方法,按照形体特征,将复杂的刀具扫描面的计算分解为各个部分(平面、球面、柱面等)相对简单的计算。
2.2.3 毛坯绘制
毛坯绘制是以离散后的网格节点为基础,忽略毛坯内部构造,绘制整个毛坯形体包络面,各个面由三角面片或四角面片逼近形成。考虑到软件实时性和真实感,具体实现时要注意图形消隐算法、平滑的动画实现和节点法向量计算(影响光照)等问题。图3即为根据上述算法采用球头刀进行行切加工后的毛坯曲面效果图。
2.3 粒子系统建模方法的应用
为了模拟实际加工中冷却液喷出的动态效果,根据粒子系统的建模策略,将流动的冷却液看成由许多个液体颗粒不断地运动而形成的。首先将这些液体颗粒抽象成具有一定几何特征和行为属性的粒子(如:粒子位置、类型、生长时间等),采用双向链表结构保证粒子系统运动的连续性;接着定义一组数学特征(粒子形状特征、运动轨迹方程、运动约束方程)控制粒子的属性;最后通过在粒子系统动态运动过程中周而复始地完成以下4个工作:粒子源产生新粒子、计算并更新粒子属性、删除死粒子、绘制粒子,最终形成源源不断的粒子流。但是粒子系统建模方法占用内存,减慢仿真的实时性,考虑到整个系统仿真实时性的要求,在冷却液的具体绘制时,做了以下简化和假设:
(1)造型简化。采用纹理贴图的方式可以很真实地再现粒子外形,但是当粒子数目巨大时,这种方法将极大地消弱仿真的实时性。因此本文定义冷却液粒子系统中粒子的几何形状为沿着粒子运动方向的短线段。
(2)假设粒子的运动初始位置为局部坐标系原点,这样避免了运动方程以及约束方程的复杂性;同时通过调用OpenGL中glTranslate和glRotate函数确定冷却液在世界坐标系中的位置。
(3)将粒子的运动轨迹简化为直线轨迹,而不是复杂的曲线方程;并且将粒子的运动范围约束在一个的可以数学描述的区域内,如锥形体。
(4)假设每个粒子的运动方向都是随机的,一旦确定整个生命周期都保持不变。
图4为最终形成的冷却液效果图,其中冷却液粒子的颜色、粒子大小、运动范围、粒子密度都可以通过参数来进行修改。
图4 冷却液仿真效果图
3 结论
本文综合应用多种建模技术,利用各种建模方法的优点完成了复杂的数控仿真系统建模,并在此基础上,在Windows环境下,基于OpenGL,以VisualC++6.0为工具开发了数控仿真系统,图5为车床三维模型图及车削加工过程仿真效果图。实例表明:三维图形显示具有一定的真实感,加工过程动画仿真实时性较好。
图5 车削仿真效果图