2.5 变半径圆角处理
圆角减小功能在调整变半径圆角时,存在渐变反向的问题。例如,变半径圆角调整前,半径采样为R[3] ={10.0,8.0,6.0},减小20%后,应该变为R[3] ={8.0,6.4,4.8}[8],在处理过程中,由于初始算法在计算插值点的插值半径时不够严谨,导致产生两个问题:
(1)调整后圆角渐变方向反向,R’[3] ={4.8,6.4,8.0},会导致圆角调整失败或者圆角调整后与其他圆角不衔接。
(2)圆角的基底面比较大,导致计算出来的插值点和插值半径不够准确,R’[3]={8.3,6.8,5.0}。
由于存在以上问题,进行了优化改进上述插值算法,简化插值点的处理过程,直接在边界线上获取插值点,提高了变半径圆角插值半径计算的准确性,使处理效率更快,生成质量更高。实现算法描述如下:
①创建相切面并裁剪结合后,取得公共边界线;
②从边界线上采样点,即为创建变半径圆角的插值点;
③以每个采样点为等参线的始点,计算相切面上对应等参线上的终点,该点会对应圆角面边界线上的某一点;
④通过计算得到的相切面的终点,计算该点所在圆角面的等参线半径,该半径即为插值点对应的插值半径。
计算渐变圆角插值点和插值半径,接口设计如表4所示。
表4 变半径圆角处理接口
针对变半径圆角减小场景,为提高圆角质量,使用插值点在相切面上对应等参线的终点进行计算,部分代码如表5所示。
表5 变半径圆角处理部分代码
3 圆角自动减小功能的开发
为验证圆角自动减小算法的功能,算法在国产三维CAD系统SINOVATION下进行了开发。主要实现圆角的调整功能,结合用户的实际设计需求,将前面的5个关键算法分别融合到两个命令中,分别是:(1)检索圆角,实现圆角的批量检索识别,为圆角减小做准备;(2)圆角减小,把前面检索出的圆角,进行减小处理。
3.1 检索圆角
在通过指定一系列的曲面,把指定曲面中符合条件的圆角面检索出来,主要实现以下功能点:
(1)检索对象:把所指定的面作为检索对象,检索出的圆角面会显示在列表中。
(2)检索设置:在检索设置中输入最小半径值和最大半径值,按照指定的半径范围检索圆角;在检索设置中输入精度值,按照指定精度检索圆角;若某个圆角没有检索到,则可以尝试在检索设置中修改圆角误差和变半径判定误差参数进行检索。
需要检索凹圆角面,则在检索设置中选择凹角;需要检索凸圆角面,则在检索设置中选择凸角,然后更新检索结果。检索凹凸圆角效果,如图4所示。
图4 检索凹凸圆角