分析虚拟加工和其关键技术、系统结构(三)
2.3 实体碰撞干涉检验计算机三维实体碰撞检测一直是计算机图形学领域的一个研究热点, 从 20 世纪 70 年代以来, 有许多专家学者对三维运动体碰撞检测方法作了大量的研究工作: 1988 年 Canny[6]提出了基于 B- Rep 多面体的动态体与静态间的碰撞检测方法; 1989 年 Nobrio等[7]用八叉树实体表示检测动态与静态体间的碰撞问题; 2004 年,Ding等人[8]研究了基于八叉树的碰撞检测算法并将其应用于 5 轴加工的干涉检测, Kim等[9]用球面矢量 Voronoi图来解决高速运动中的碰撞检测问题; 2005 年, Ilushin等[10]针对多轴加工过程提出了一种采用射线跟踪(Ray-tracing)来检测实体干涉碰撞的方法。 总结这些研究不难发现, 运动碰撞检测的算法可以分为 3 大类。1) 离散样本检测法: 对于运动物体, 先取定一个时间样本, 得到一个时间序列, 再求出各运动物体在每个样本时刻的空间位置和方向, 最后采用静态物体干涉检测算法来检测每一样本时刻各运动物体的相对状态。2) 扫描体求交法: 生成运动物体的空间扫描体, 用扫描体来包含时间信息, 通过扫描体间或扫描体与样本物体间的碰撞检测来完成整个样本空间、物体间的碰撞检测。3) 连续检测法: 把运动物体的特征数据(点线面)的运动轨迹表达成时间的函数, 推导出满足碰撞条件的各几何元素的方程, 通过求解方程来求得发生碰撞的位置和时间。相比较而言, 第 1 种方法的关键是样本空间的选取, 若样本时间间隔太长, 可能发生漏检, 特别是对于高速运动状态下, 漏检的可能性会很大, 而若时间间隔短, 则计算时间就会很长; 第 2 种方法中的扫描体构造比较复杂, 需要研究利用直线和扫描体交点问题来检测实体的碰撞; 第 3 种方法比较适合于高速运动中的精确干涉检测, 但是随着特征数据的增加, 检测方程数量将急剧增加, 检测时间会大大增加。从目前的应用情况看来, 主要采用的还是前两种方法, 但是随着计算机性能的不断提高, 第 3 种方法的应用也会越来越多。2.4 材料切除过程仿真对于材料切除过程仿真, 国内外也有一些研究成果, 主要集中在相应的算法方面。 如基于 Z- map 结构的算法[11]、 基于 Dexel 模型的快速成型算法[12], 等等。总的来说, 材料切除过程的仿真主要有两个功能: 一是检测是否过切、 干涉、 碰撞, 以检测 NC代码和刀位文件的正确性; 二是通过逼真的三维动画来实现可视化仿真, 为虚拟制造提供支撑环境。图 2 为一个典型的材料切除仿真子系统的功能结构图。材料切除过程仿真一般包括 7 个功能模块: 系统监控模块、 NC/CL(即刀位)文件翻译模块、 读取实体模型模块、 动画仿真模块、 碰撞检测模块、 过切检测模块、实体消隐模块。系统的输入是 NC代码或 CL文件, 还有带有夹具、托盘的上线毛坯以及成型零件的实体模型文件(最常用实体的模型是 SLA模型, 即三角面片模型, 其为商用 CAD软件的通用实体输出格式标准)。在进行材料切除仿真之前, 先由消隐模块对实体模型进行消隐预处理。在系统监控模块的控制下, 由 NC代码/刀位文件翻译器逐条解释加工指令并进行毛坯与刀具的布尔差运算; 以动画的形式实时地仿真材料切除过程, 并同时检测是否过切或有碰撞干涉, 若有则提示相应的错误信息, 并将其记录到相应的日志文件。