《武汉工程大学学报》  2026年02期 193-200   出版日期:2026-04-30   ISSN:1674-2869   CN:42-1779/TQ
面向刀路计算的参数曲面几何自适应网格生成算法





现代制造业中,数控加工技术[1]作为复杂零部件精密制造的核心手段,广泛应用于航空航天、汽车制造等高精度领域。随着产品设计复杂度的不断提升,参数曲面在数控加工中的应用日益广泛,这对刀路计算[2]的几何精度和计算效率提出了更高的要求。尤其在复杂曲面加工[3]中,如何在保证几何精度的前提下,实现高效的曲面网格自适应细分,已成为亟待解决的关键技术问题。
曲面网格化方法主要分为直接法和间接法。间接法(映射法)首先在曲面的参数域中生成平面网格,再通过映射函数将其映射到物理空间。虽然平面网格生成算法较为成熟,但由于参数空间与物理空间之间的非线性关系,映射过程可能导致网格畸变。为此,研究者提出了多种改进方法:Zheng等[4]引入“延展因子”来减弱映射畸变;Cuillière等[5]提出了基于曲面参数方程的映射畸变度量方法;熊英等[6]在Delaunay三角化中引入外接椭圆代替外接圆,以优化映射后的网格质量;关振群等[7]基于黎曼度量在节点插入过程中考虑映射畸变问题,从而生成高质量网格。直接法在曲面的物理空间中直接进行网格划分,能够更好地适应曲面的复杂几何特征,生成质量更优的网格,但同时也面临着计算复杂度高、时空效率较低的问题。典型的直接法包括曲面分解法、前沿推进法(advancing front technique, AFT)和改进的Delaunay三角化算法。例如,梅中义等[8]提出了基于四叉树分解的曲面分解方法,Lau等[9]成功将二维AFT方法扩展至三维空间,为直接法的发展做出了重要贡献。
在计算机辅助制造(computer-aided manufacturing,CAM)中,网格划分的基本要求是在满足几何精度的情况下,对三维参数曲面进行高效细分,并尽可能减少网格模型的数据规模以提高计算效率[10]。自适应网格生成方法因其能够根据几何特征和物理需求动态调整网格密度,成为研究热点。近年来,研究者们提出了多种改进方法:Mou等[11]通过自适应网格线放置方法和射线柱追踪方法,实现了对复杂边缘结构的高精度网格生成;Xu等[12]提出了一种基于机器学习的网格生成新方法——隐式几何神经网络,该方法基于生成对抗理论构建,通过建立几何体隐式表示(如符号距离函数)与对应网格尺寸函数之间的映射关系,实现了非结构化网格的自动生成;王富顺等[13]通过二叉树自适应划分、高效求交算法和一点多投通用模板技术,解决了邻近特征复杂模型的六面体网格生成难题,显著提升了网格质量和计算效率;冯琦帏[14]结合了Delaunay和AFT的优点,通过构建几何自适应尺寸场自动进行网格的局部加密,较好地保证边界附近的网格质量。上述研究为CAM中的高效网格划分提供了重要的理论支持和技术手段。
在传统映射法和Delaunay三角化的曲面网格生成算法的基础上,本文针对不同曲线类型(如直线、圆弧和NURBS曲线),设计了差异化的自适应离散策略,并提出了参数曲面几何自适应网格生成算法,通过在三角形三边中点与重心位置进行自适应加密以及Delaunay三角化,生成具有高几何精度的曲面网格。本文算法在保证几何逼近精度的同时,能够有效减少网格规模并提升网格生成的时间效率,从而为后续刀路计算提供高效的网格预处理方法,具有重要的理论意义和工程应用价值。
1 几何自适应算法
1.1 参数曲线几何自适应离散算法
由于直线没有曲率变化,圆弧的曲率变化是恒定的,而NURBS曲线的曲率变化一般是非恒定的,因此针对直线和圆弧,采用等距和等角度策略对参数曲线进行离散。针对NURBS曲线,提出了一种基于弦高差与角度差双精度指标的动态步长调整方法,实现对NURBS曲线的离散。
1.1.1 弦高差与角度差 (1)曲线弦高差
如图1所示,曲线AB为一段NURBS曲线。通过直线段连接曲线的两个端点A和B,形成一条弦。曲线上的某点P到弦AB的最大垂直距离PD称为弦高差h。弦高差反映了曲线的弯曲程度,是评估曲线平滑性及形状特征的关键指标之一。
<G:\武汉工程大学\2026\第1期\刘子奕-1.tif>
图1 曲线弦高差示意图
Fig. 1 Curve chord height difference
(2)曲线角度差
如图2所示,在曲线AB上存在一点D’,曲线在D’处的斜率A’B’与直线AB的斜率相同。由此,直线AD’与直线D’B所构成的角度[α]被称为角度差(该角度可以是锐角,也可以是钝角)。角度差反映了曲线在D’处的局部曲率变化与弦AB的几何偏离程度,其正弦值为:
[sinα=AD’×D’BAD’D’B]
<G:\武汉工程大学\2026\第1期\刘子奕-2.tif>
图2 曲线角度差示意图
Fig. 2 Curve angle difference
1.1.2 直线与圆弧离散 直线的离散化,只需获取该线段的起点和终点,这两个端点已经足以有效地逼近原始曲线。对于圆弧类曲线(包括圆弧和二次曲线中的椭圆段),由于其具有恒定曲率的特性,通常采用等角度的方法生成离散点,如图3所示,其中,[LOC]为线段OC的长度,R为圆弧的曲率半径,O为过B点的曲率圆圆心,[θ]为三角形AOB的夹角,L为圆弧的弧长,y = f (x)为圆弧的函数表达式。
<G:\武汉工程大学\2026\第1期\刘子奕-3.tif>
图3 圆弧效果图
Fig. 3 Schematic diagram of circular arc
对如图3所示的圆弧进行离散时,若该圆弧的定义域为[x∈[xs,xe]]([xs]、[xe]分别表示圆弧的起点坐标参数和终点坐标参数),则圆弧段离散的步长S可表示为:
[S=2×arccosLOCR=2×arccos(1-hR),S∈0,π] (1)
故离散区间数n的计算公式如下:
[n=xe-xsS] (2)
最终离散点的参数集合可表示为:
[x0=xsxi=xi-1+S (i=1,2,?,n-1)xn=xe] (3)
其中,[xi]表示第i个离散点所对应的参数。
将每个参数[xi]代入函数表达式y = f (x),计算对应函数值,即可得到该圆弧的离散点坐标集合[{(xi,yi)}ni=0]。
1.1.3 NURBS曲线离散 (1)离散步长计算
由于NURBS曲线在离散后,任意两个离散点之间可以近似视为一段圆弧。因此可以基于圆弧的特性进行分析,从而确定NURBS曲线的离散步长,如图3所示。
经过B点的曲率圆可表示为:
[R-Rcosθ2=h] (4)
由[cos(θ/2)]的Taylor展开式可得:
[cos(θ2)<=1-12×θ24=7θ28] (5)
由弧长公式可知:
[L=θR] (6)
对于一个小的圆弧段,弧长L可以近似为:
[L≈S×r’] (7)
其中,[r’]为函数y = f (x)在B处的一阶导数的绝对值。
联立式(4-7),化简后最终可得:
[S<=8hRr’] (8)
点B所对应曲率圆的曲率半径可表示为:
[R=r’3r’×r"] (9)
其中[r’]和[r"]分别为函数y = f (x)在B处的一阶导数和二阶导数。
将式(9)带入到式(8)可得:
[S<=8hr’r’×r"] (10)
当[h=0]时,此时圆弧无弦高差,则圆弧将退化为一点或线段。
当[h≠0]时,离散步长S取最大值,即:
[S≈8hr’r’×r"] (11)
(2)动态步长法离散NURBS曲线
空间中任意一条NURBS曲线的函数表达式可表示为P = C(t),如图4所示,其中t为自变量,即参数,P为因变量。基于动态步长法离散NURBS曲线的核心思想是通过递归细分曲线段,确保离散点满足预设的弦高差和角度差要求。具体步骤如下:
Step1:从起始点A出发,根据式(10)确定的离散步长S计算下一个离散点B,其中[tA]和[tB]分别是曲线P=C(t)上点A和点B所对应的参数值。连接A和B,A和B之间长度即为曲线的弦长LAB。计算A和B处切向量的夹角(即角度差)以及弦长LAB到曲线的最大垂直距离(即弦高差)。若弦高差和角度差满足预设要求,则认为当前弦长可以近似表示该段曲线,否则,需进一步细分曲线段。
Step2:若弦高差或角度差不满足要求,则通过计算中间参数[tM=(tA+tB)/2]获得中间点M,并将曲线的参数区间分为[[tA,tM]]和[(tM,tB]]。对每一段区间重新计算弦高差和角度差,若仍不满足,则继续递归细分,直至所有子段均满足要求。
Step3:当某段子区间内的曲线满足设定的弦高差和角度差要求时,将[tM]所对应的点M作为离散点,并将[tM]设为新的起始参数[tA],原[tB]作为当前曲线段的终点参数。重复上述步骤,直至[tM=tB],完成整个参数区间的离散化。
通过上述递归细分过程,可以高效生成满足设定弦高差和角度差要求的离散点集。
1.2 曲面几何自适应网格细分算法
1.2.1 基于均匀缩放法的Delaunay三角化 (1)均匀缩放法
该方法的核心思想是在曲面网格生成过程中,通过对离散点进行缩放变换,确保所有三角片的形状和相对位置保持不变,从而避免因局部变形导致的网格畸变问题。空间中任意参数曲面函数表达式为:
[ru,v=xu,v, yu,v, zu,v] (12)
其中,u和v分别是曲面参数方程的自变量,x (u,v), y (u,v), z (u,v)分别表示曲面在三维空间中的坐标分量。基于此,缩放比例的计算公式如下:
[u’=u-uskuv’=v-vskv] (13)
其中,[us]和[vs]分别是曲面参数方程定义域的左区间和右区间端点,[ku]和[kv]分别为u和v的缩放因子,[u’]和[v’]分别为参数u和v经过缩放因子缩放后所对应的参数。
对于不同的参数曲面,[ku]和[kv]一般不同,对于球面、圆柱面和圆环面等二次曲面,[ku]和[kv]分别取其展开图在横向和纵向的最大长度。由于NURBS曲面形状复杂,缩放因子的确定需通过以下步骤:在NURBS曲面参数化过程中,首先沿u参数方向选取u = 0.0、u = 0.5和u = 1.0等3条等参线,并对每条等参线进行均匀采样,采样点数量设为20个。然后计算相邻采样点之间的欧氏距离,并分别求得3条等参线的总长度。最后将3条等参线的总长度取算术平均值,作为u参数的缩放因子[ku]。同理,沿v参数方向采用相同的采样与计算方法,确定v参数的缩放因子[kv]。
(2)Delaunay三角化
Delaunay三角化作为一种具有严格数学定义和优良几何特性的剖分方法,在计算几何和工程领域得到了广泛应用。该方法具有两个关键特性:空圆特性,即网格中任意三角形的外接圆内不包含其他顶点;最小角最大化特性,在所有可能的三角剖分中,能够最大化最小内角,从而显著改善网格质量,避免产生狭长三角形。此外,Delaunay三角化生成的网格边界与离散点集的凸包具有一致性,这一特性被称为Delaunay凸壳特性。
然而,在实际工程应用中,目标区域的边界往往呈现复杂的非凸特性(如凹形边界)。直接对离散点进行Delaunay三角化,可能导致生成的网格边界偏离实际区域的边界约束。为解决这一问题,Zhong等[15]提出了约束Delaunay三角化(constrained Delaunay triangulation,CDT)。CDT在保持Delaunay三角化优良特性的同时,引入边界约束条件,使生成的网格边界能够精确拟合目标区域的实际边界,从而更好地满足工程应用需求。图5展示了Delaunay三角化与CDT的对比结果。通过Delaunay三角化生成的网格,在部分约束边处出现了几何翻转现象;通过CDT生成的网格则完整保持了原始边界约束条件,验证了CDT方法的有效性。
<G:\武汉工程大学\2026\第1期\刘子奕-5.tif>
图5 Delaunay和约束Delaunay网格划分对比:(a)初始边界,(b)Delaunay三角化,(c)CDT
Fig. 5 Comparison of Delaunay and constrained Delaunay mesh partitioning:(a) initial boundary, (b) Delaunay
triangulation, (c) CDT
在CDT网格生成的过程中,每插入新节时都需要进行式(10)的均匀缩放操作。通过在三角化过程中应用均匀缩放的方法,可以有效优化曲面网格结构,避免平面网格通过映射函数映射回曲面时因不均匀缩放而导致的网格畸变问题。
1.2.2 自适应网格细分算法 生成满足精度要求的网格通常需要对已有网格进行基于几何精度的细分,这一过程主要包括两个关键步骤:(1)生成符合精度要求的内部节点;(2)依据生成的节点重新进行三角化。因此,基于弦高差和角度差的自适应网格内部节点生成方法和CDT方法提出了一种自适应网格细分算法。该算法的基本思路如下:
Step1:基于参数曲面的u、v等参线进行离散,离散算法参考上述的参数曲线几何自适应离散算法,利用离散点进行CDT,生成初始网格。对于二次曲面,由于其良好的对称性,初始网格通常能够满足弦高差和角度差的要求;而对于NURBS曲面,由于其复杂的几何特性,初始网格往往难以满足精度要求,需进一步优化。
Step2:遍历网格中所有的三角片,计算每个三角片的重心坐标,并计算其重心坐标离曲面的距离h,判断h是否满足所设定的弦高差要求。
(1) 若满足弦高差要求,则说明网格中不需要插入额外点。
(2) 若不满足弦高差要求,则重新计算网格中所有包含重心的外接圆,计算外接圆所对应的三角形中每个点到重心的距离d与所设定的最小弦长。若d小于或等于设定的最小弦长,则说明三角形的某一条边过短,导致了三角形面积很小,即三角形出现了退化。此时,虽然该三角形不满足弦高差的要求,但也不需要额外的插入点。如图6所示,图6(a)中点P是三角形ABC的重心坐标且三角形BCD的外接圆包含点P,假设点P插入图6(a)中的网格,则三角形ABC会分裂形成图6(b)所示结构,由于三角形BCD的外接圆包含点P,故BC边会翻转为PD边形成图6(c)所示结构,若重心P所对应曲面上的点到点B、C和D对应曲面上的点的距离小于设定的最小弦长,则相当于插入了重心P,三角形的质量变差,故这种情况不需要额外插入点。若d大于设定的最小弦长,则需要插入额外的重心坐标,将重心坐标保存到对应的节点集合中。将节点集合中的点重新进行CDT,通过上述过程不断迭代,确保满足弦高差的要求。
<G:\武汉工程大学\2026\第1期\刘子奕-6.tif>
图6 Delaunay三角化流程:(a)网格内部节点插入,
(b)三角形单元分裂,(c)边翻转
Fig. 6 Delaunay triangulation process: (a) interior node
insertion, (b) triangle element splitting, (c) edge flipping
Step3:遍历网格中所有三角片,计算三角片三边的中点到曲面的距离,并计算三角片每个顶点的法向量两两之间的夹角。
(1) 若三边中点离曲面的距离不满足弦高差要求,则将中点保存到节点集合中。
(2) 若三边中点离曲面的距离满足弦高差要求,但顶点法向量之间的夹角不满足角度差要求,且分割后的边大于最小弦长,则将中点保存到节点集合中。
(3) 若三边中点离曲面的距离和顶点法向量之间的夹角均满足要求,则无需插入额外节点。
Step4:基于新生成的点,进行CDT。
重复执行Step2至Step4,直到所有的三角面片到曲面的距离都满足弦高差和角度差,或者在循环的过程中出现了三角形退化的情况,循环停止。
曲面几何自适应网格细分算法流程图如图7所示。
<G:\武汉工程大学\2026\第1期\刘子奕-7.tif>
图7 曲面几何自适应网格细分算法流程图
Fig. 7 Adaptive mesh refinement algorithm for
surface geometry
2 参数曲面几何自适应网格生成算法
2.1 参数曲面自适应网格生成算法流程
基于前文所述的参数曲线几何自适应离散算法和曲面几何自适应网格细分算法,本文提出了一种参数曲面几何自适应网格生成算法。该算法能够根据几何精度要求动态调整网格密度,生成高质量的曲面网格。算法的核心流程如下:
算法输入:参数曲面、弦高差阈值、角度差阈值。
算法输出:满足弦高差和角度差的参数曲面网格。
Step1:边界曲线离散:提取三维参数曲面的边界曲线,基于上述的参数曲线几何自适应离散算法对边界曲线进行离散化处理,生成边界点集。该过程通过动态步长法确保离散点满足弦高差和角度差的精度要求,为后续网格生成提供精确的边界约束。
Step2:初始背景网格生成:利用边界离散点集,在参数空间中进行基于均匀缩放法的CDT,生成初始背景网格。
Step3:网格自适应细分:针对初始背景网格,采用本文中的曲面几何自适应网格细分算法,逐步细化局部三角形单元,使网格中的所有三角形均满足弦高差和角度差的精度要求。
Step4:网格映射与优化:将参数空间中的网格通过映射函数映射到实际曲面上,生成符合几何特征的曲面网格。
2.2 曲面网格划分算例
弦高差阈值设置为0.01 mm,角度差阈值设置为20°,采用参数曲面几何自适应网格生成算法对如图8和图9所示的算例进行网格划分。从图8和图9中可以看出,生成的网格可以很好地逼近原始曲面,同时生成的曲面网格在高曲率区域网格密集,同时低曲率区域保持稀疏分布,实现了局部密度与几何特征的良好匹配。
3 验证与分析
3.1 几何精度验证
为了验证生成网格的几何精度,本文对曲面的离散化质量进行了定量分析,重点评估网格是否满足预设的弦高差和角度差要求。表1列出了在弦高差为0.01mm、角度差为20°的条件下,不同算例经过本文算法进行网格划分后,通过对弦高差和角度差计算得到的最小弦高差[Hmin](mm)、最大弦高差[Hmax](mm)、平均弦高差[H](mm)、最小角度差[Amin](°)、最大角度差[Amax](°)和平均角度差[A]。
表1 曲面网格生成几何精度验证数据
Table 1 Geometric accuracy verification data for surface mesh generation
[算例 弦高差 / mm 角度差 / (°) [Hmin] [Hmax] [H] [Amin] [Amax] [A] 1 0.000 7 0.009 7 0.005 3 7.29 19.88 11.23 2 0.000 4 0.009 4 0.004 9 7.18 19.47 10.15 ]
表1呈现了各算例的几何精度验证结果,从表中可以看出,所有算例的最大弦高差和最大角度差均严格控制在设定值以内,表明本文算法在几何精度方面具有较高的可靠性,能够满足复杂曲面加工的高精度要求。
3.2 算法效率分析
为了评估本文算法的性能,表2对比了本文算法与某商用CAM软件中基于映射法和Delaunay三角化的网格生成算法在相同硬件平台(Intel Core i7-8550U@2.0 GHz,8 GB RAM)下的运行效率。实验条件设定为弦高差0.01 mm、角度差20°,对比指标包括算例1和算例2经过参数曲面几何自适应网格生成算法生成的网格顶点数V、三角面片数F、曲面网格生成的平均运行时间t(s)(通过1 000次重复实验计算均值),以及本文算法相较于商用软件中的算法在网格顶点数、三角面片数和平均运行时间上的相对变化率[?V、?F和?T]。
从表2可以看出,本文算法在复杂曲面网格生成效率上表现出一定优势,与商用软件相比运行时间平均缩短了约3%,同时网格顶点数和三角面片数分别平均减少约4.57%和5.60%。上述结果表明本文算法在保证几何精度的基础上,能够有效提升曲面处理效率。
4 结 论
本文提出的一种面向刀路计算的参数曲面几何自适应网格生成算法在传统映射法和Delaunay三角化方法的基础上,引入了基于弦高差和角度差的参数曲线几何自适应离散算法和曲面几何自适应网格细分算法,实现了不同复杂算例的网格生成。实验数据显示,与某商用软件相比,本文算法在保证几何精度的前提下,使曲面网格生成效率较某商用软件提升约3%,网格顶点数和三角面片数分别减少约4.57%和5.60%。上述结果表明,本文算法在网格规模和计算效率方面均表现出优异的性能,为复杂曲面加工的刀路计算提供了高效的网格预处理方法,具有重要的理论意义和工程应用价值。