mastercam的刀轨文件中包含了圆心、圆弧的方向(顺时针、逆时针)、圆弧的终点,圆弧的半径等信息。
G代码中,圆弧所对应的圆心角大于90度,一般需要做圆弧分割,保证每段圆弧的圆心角是锐角。
做法是:
(1)计算圆弧角度(0-360]
注意使用向量计算出来的夹角范围是[0,180°],需要做进一步处理。
我是这样处理的:直接将起点绕着圆心旋转,如果能和终点重合就无需处理,如果不重合则取 360°减去该角度
(2)根据圆弧的角度大小,判断需要插入的圆弧终点数目n
(90,180] n = 1 (180,270] n = 2 (270,360) n = 3
(3)将圆弧的起点,分别绕着圆心点旋转 i*90°,既可以得到需要插入的圆弧终点。