0.引言
数控加工仿真的几何建模的方法可归纳为直接实体建模法、离散矢量法、空间划分法三类。直接实体建模法主要以CSG或B - Rep实体建模系统来进行仿真, 该方法中涉及到大量的直接布尔减运算, 效率非常低, 对于复杂曲面的五坐标数控铣削加工仿真,这种方法更加显得力不从心。离散矢量法提高了NC仿真的精度, 但是随着曲面复杂性的增加, 曲面离散的点集也会随之膨胀, 大大增加了计算量, 导致仿真的效率低下; 另外离散矢量法不能进行加工过程的仿真, 不能计算材料的去除率, 而且光线与刀具扫描体的的求交运算也十分费时, 仿真效率低下。实体建模法和离散矢量法的复杂性和效率低下的缺点促进了空间划分法的发展和运用。空间分解建模法能够大量的减少布尔运算量, 所以效率较高。
Voxel建模是空间划分中最常用的一种方法, 该方法可以将布尔运算进一步降低, 但是该方法一般需要较大的计算机内存空间, 而且仿真的精度受体素尺寸大小的影响较大。Von Hook首先提出在图像空间中利用深度元素(Dep th Element简称Dexel) 来表示物体, 并将其应用到数控仿真中, 使得物体间的三维布尔运算简化为一维的线性运算, 具有极快的仿真速度, 同时具有较好的仿真精度。但是Dexel模型只能沿着某一观察方向进行仿真, 变换观察方向以后, 模型需要重新生成, 限制了其在复杂五轴仿真中的应用。
本文提出一种基于三个方向Dexel模型的压缩体素模型, 不但具有Dexel模型的速度快、精度较高的优点, 而且有效地解决了传统体素模型需求大量计算机内存空间, 单纯Dexel模型又不能任意变换视角的缺点。结合模型的特点设计的优化的MC表面提取算法, 极大地加快了仿真结果的图形显示, 较好地实现了五坐标数控铣削加工过程仿真。
1.压缩的Voxel模型
1.1 模型的数据结构体素模型可以看成是二维光栅图像在三维上的扩展, 是3D均匀网格组成的结构化体数据。每个网格是结构化数据的一个元素, 一般称之为体素(Vox2el) 。用体素模型表示物体的时候, 如果体素的某一个交点位于要表达的模型内部, 该点的属性值为1, 否则为0。体素模型只给出了每一个体素的位置信息, 体素之间的拓扑关系由数据结构( i, j, k, m ) 确定, m 表示该体素相对于要表示物体的位置关系, 1表示在实体内, 0表示在实体外部。
为达到压缩数据量的目的, 在本文的体素模型的压缩数据结构中, 引入三个相互垂直的Dexel射线组, 它们分别垂直于XOY、YOZ、XOZ坐标面, 在每一个Dexel射线组中, 各条射线位于正方形网格的交点上, 按体素大小的距离均匀分布。每一条射线与实体的所有交点序列称之为一个Dexel, 每一个Dexel用一个链表表示, 链表的每个节点表示射线与物体的交点。在链表的每一节点除了存储位置信息之外还可以存储其它的附加信息, 如材质信息、该点处的法矢、颜色等。同一方向的Dexel存储于一个二维的数组中, 如图1 ( a) 所示; 整个体素模型由沿三个坐标轴方向的Dexel模型组成, 如图1 (b) 所示。
图1
Dexel模型放弃了对于单个Voxel的信息, 仅仅存贮沿射线方向物体材料发生变化的位置, 所以相对于三维网格模型能节省大量的存储空间; 同时由于每个Dexel模型记录了射线和物体的交点, 因此, 沿射线方向用浮点数可以比较精确地表示物体表面点的位置, 较传统体素模型相比, 具有更高的仿真精度。
1.2 模型的建立CAD的实体模型是零件的设计与制造模型, 具有很高的造型精度, 所以本文采用将实体模型离散的方法建立压缩体素模型, 其过程如下:
(1) 在世界坐标系中, 求取实体模型的最小包围盒。
(2) 以实体最小包围盒的最小点( Xmin , Ymin ,Zmin ) 为体素空间坐标系的原点, X、Y、Z坐标方向为正方向建立体素坐标系。原点同世界坐标系的偏移量由变量为Offsetx = Xmin , Offsety = Ymin , Offsetz =Zmin。
(3) 由体素的大小d 确定沿三个坐标轴方向的网格划分数: Nx = (Xmax - Xmin ) / d; Ny = ( Ymax - Ymin ) /d; Nz = ( Zmax - Zmin ) / d。
(4) 从体素坐标系的原点出发, 分别在垂直于XOY, XOZ, YOZ三个坐标平面的三维网格交点处构造沿X, Y, Z轴方向的射线, 依次求出每条射线和实体的交点序列, 存储于Dexel链表中, 将同一方向的Dexel依次存储于一个二维的Matrix之中, 三个二维的Matrix构成了一个完整的压缩体素模型。
一般情况下, 压缩体素模型的存取在体素坐标系中进行平移、坐标变换、内部数据处理等对外都是透明的。
2.在数控加工仿真中的应用
在五坐标数控加工仿真中, 刀具扫描体和零件毛坯之间的布尔运算量很大, 耗费时间较长, 仿真结果的图形显示也需要消耗大量的时间和硬件资源。所以, 如何减少布尔运算量, 加快图形显示的速度是影响加工过程仿真的一个关键因素。下面分别从这两个方面讨论压缩体素模型所作的优化。
2.1 布尔操作由于压缩形式的体素模型用三个方向的Dexel模型表示, 两个体素模型之间的布尔操作可转化为对应Dexel模型之间的一维深度值比较运算, 其操作得到了简化, 布尔运算量同Dexel的数量成线性关系, 同传统体素模型相比, 大大提高了布尔运算的效率。图2中, A和B表示两个Dexel模型, 灰线部分表示有物质( Steel) , 空白部分表示无物质(Air) 。图2 表达了两个Dexel模型之间的cut、paste、xor布尔操作过程, 比传统单个体素模型的效率提高了很多。
图2 压缩体素模型的布尔运算
2.2 基于Marching - Cubes方法的表面三角网格优化提取算法在基于体素模型的五坐标数控加工仿真过程中,为了让用户观察到仿真工件在仿真过程中的变化, 必须将布尔运算的结果持续地进行图形显示。这一过程是将离散的三维空间规则数据场转化为计算机屏幕上的图象的过程, 一般可分为直接体绘制方法和间接体绘制方法两类。直接体绘制方法计算量大, 无法利用传统的硬件绘制; 变换观测点以后, 需要重新计算体数据, 所以显示速度很慢。间接体绘制方法首先构造中间几何图元, 然后利用传统的图形学方法绘制,效率高, 在加工过程仿真中用得较多。下面主要讨论利用Marching - Cubes方法从本文介绍的压缩体素模型提取表面三角网格的优化算法。
传统的MC算法分为两个步骤, 第一步确定8个顶点的材料信息, 将此信息存储于一个8 位(Byte) 变量中, 每一个角点对应于一个位(Bit) 。
第二步中根据8个位值的不同, 以此变量作为索引确定体素的状态。体素总共有28 = 256种状态, 可进一步简化为14种状态存储于表格中。其它状态可以通过旋转、镜像等操作从表中得到。
图3 压缩模型的优化表面网格提取算法
本文的压缩模型沿每一个Dexel 方向, 仅仅存贮沿Dexel方向物体材料发生变化的位置, 因此利用MarchingCubes方法提取仿真工件表面三角形网格时, 可以直接跳过Dexel 模型的全空部分(处于物体外部) 和全实部分(处于物体内部) , 直接从位于物体边界的体素中提取表面三角形网格, 大大地减少体素模型中材料检查次数和查表次数, 加快了三角网格提取的速度。优化提取算法流程如图3所示。
图4为采用优化算法提取的某型号叶轮的表面网
图4 叶轮的表面网格模型格
模型试验表明该优化方法比传统的MC方法速度一般可提高2~3倍。
3.应用实例
本文介绍的压缩体素模型, 已经成功运用于五坐标数控加工仿真之中,图5为某型号叶轮的五坐标数控仿真过程。
图5
在图5 ( a) 所示零件仿真加工中, 采用本文介绍的压缩体素模型, 同采用传统的体素模型相比, 模型的数据量压缩了8.14 倍; 切削过程中布尔运算速度提高了4.25倍; 仿真结果的显示中, 根据压缩模型特点而采用的优化MC表面提取方法, 使得表面提取速度比传统MC方法提高了2.52 倍。由于采用浮点数直接表示零件的表面点, 比传统体素模型具有更高的仿真精度。
4.结论
本文针对数控仿真中体素模型存在的问题提出了一种压缩体素模型, 对仿真模型的数据量有很大的压缩, 减少且简化了布尔运算, 加快了仿真的速度。根据模型特点设计的优化表面网格提取算法进一步加快了仿真结果的显示, 同时具有较高的仿真精度, 取得了较好的应用效果。