NURBS 造型技术是目前 CAD 系统中曲面造型的主要算法,由于其所具有的规范性、局部性、可微性等性质,NURBS 方法已经成为众多CAD/CAM 系统的基本几何表达形式和数据交换的国际标准[1]。
但是,NURBS 仍然存在构造任意拓扑的复杂曲面困难等问题,所以人们不断地寻找新的造型方法。其中,Loop 在 1987 年提出了一种基于三角网格模型的细分算法[2],随后算法得到了Hoppe 等人的进一步拓展[3-4]。拓展的 Loop 算法具有任意性、整体连续性、算法稳定性和可伸缩性等特点,因而受到越来越多的关注。
目前,细分曲面造型技术在计算机动画方面得到了广泛的应用,但是要使细分曲面在CAD/CAM 上得到应用,还有很多问题有待解决,NC 加工过程中所需要的生成三角网格的等距面问题就是其中之一。
目前,生成细分曲面的等距面主要有两种方法[5]:第一种是求出初始控制网格顶点的极限位置和其极限位置的法矢,按照等距要求,对极限曲面进行等距,并反求出等距面的初始控制网格;第二种是根据加工工步的精度要求,先将初始网格细分至满足精度要求的层次,再对当前曲面进行等距,得到该工步的等距面。第一种方式步骤简单,只需进行一次等距面处理,便可得到各阶段的等距面,但是因为它是最终网格的等距面的初始控制网格,经过有限次细分后很难控制网格相对于原曲面的匹配精度,所以本文选择第二种方式。
在第二种方法的实现过程中,预估计所需的细分次数是一个关键技术,否则,必须每细分一次就要计算一次全局误差,计算量过大。王华为等人给出了满足一定误差条件下的细分次数估算方法[6],但是该算法未考虑尖锐特征存在的情况,所以如果遇到尖锐特征该算法可能会得出远大于实际所需的细分次数。本文给出了考虑尖锐特征的细分次数估算改进算法。
另外,至今作者尚未看到应用第二种等距面算法生成粗加工曲面和精加工曲面的文章,本文提出了完整的用Loop 细分曲面生成粗加工和精加工等距面的算法。
1 Loop 细分算法简介
Loop 细分算法是一种基于面分裂的逼近型细分算法。在一次分裂过程中,每一个原顶点在新网格上对应一个新顶点,称之为新顶点,每一条边对应一个新顶点,称之为新边点.



2 基于 Loop 细分模式的全局误差计算算法及给定误差条件下的细分次数计算算法
2.1 基于 Loop 细分模式的细分曲面误差计算算法
Jos Stam 在 1998 年通过对 Loop 细分网格进行参数化从而精确计算得到控制网格上任意点与其极限位置的误差
[7],但是这种算法过于复杂,计算速度很慢。王华为等人在文献[6]中提出:当细分曲面某一层次的控制网格只计算控制顶点与极限位置的误差作为整体误差也同样可以较精确地控制细分曲面的误差,并进行了实验对比得到如表 1 所示。
2 基于 Loop 细分模式的全局误差计算算法及给定误差条件下的细分次数计算算法
2.1 基于 Loop 细分模式的细分曲面误差计算算法
Jos Stam 在 1998 年通过对 Loop 细分网格进行参数化从而精确计算得到控制网格上任意点与其极限位置的误差
[7],但是这种算法过于复杂,计算速度很慢。王华为等人在文献[6]中提出:当细分曲面某一层次的控制网格只计算控制顶点与极限位置的误差作为整体误差也同样可以较精确地控制细分曲面的误差,并进行了实验对比得到如表 1 所示。
表 1 中 n 为细分次数,En为通过 Jos Stam 方法计算所得到的全局误差,Dn
为通过王华为等人的算法计算所得到的全局误差。对比可得,王华为等人的算法和Jos Stam的算法所得到的全局误差差异很小,可忽略。本文计算曲面全局误差选用王华为的算法,但该算法在全局误差中未考虑尖锐特征存在时的误差,所以本文对其改进,添加了尖锐特征处误差计算方法。
表 1 中 n 为细分次数,En为通过 Jos Stam 方法计算所得到的全局误差,Dn
为通过王华为等人的算法计算所得到的全局误差。对比可得,王华为等人的算法和Jos Stam的算法所得到的全局误差差异很小,可忽略。本文计算曲面全局误差选用王华为的算法,但该算法在全局误差中未考虑尖锐特征存在时的误差,所以本文对其改进,添加了尖锐特征处误差计算方法。





(10)计算出当前工序细分曲面所需要的细分次数 n;
第 2 步 根据等距距离 d 计算出当前细分网格每一个顶点的平移矢量,具体分为以下两种情况处理:
(1) 当计算顶点极限位置为光滑顶点所对应的控制网格点时,平移矢量计算过程如下:
1) 根据公式(12)计算出当前顶点的单位法矢;
2) 根据当前顶点和极限位置的连线与当前顶点法矢的夹角判断当前顶点在极限曲面的下方还是上方;


5 精加工等距面处理方法
精加工过程中给定误差已经满足整体加工误差要求,所以只要等距面的整体误差满足误差要求就可以认为等距面满足要求。具体精加工过程的等距面生成步骤如下:







7 总 结
本文提出了一种完整的基于 Loop 细分曲面的数控加工粗加工和精加工等距面生成算法和误差控制方法。但是,本文尚未处理好尖点和角点处的准确等距计算,有待在今后的工作中解决。


