我们知道加工圆或圆弧都会用到G02或G03指令,G02/G03都属于插补指令,我们能不能用G01来实现这个功能呢?我们知道圆可以认为是N边形,也就是把圆做N等分。
如果将G01代入加工出多边形即可完成圆的加工,如果我们要找点坐标代入,程序的代码会很长,不符合加工要求,所以,在这里我们就用宏程序的编程思路来解。
一、圆的方程的求解
如图,圆是以r为半径绕O点旋转360度所得到的图形
R=半径
a=0~360°(圆心角)
如图所示,根据三角型勾股定理可以得出E点坐标值X、Y与圆心角a之间的关系:
cosa =X/R=>X=r*cosa
sina =Y/R=>Y=r*sina
这就是圆的极坐标方程
二、编程思路
如上图圆上动点E的坐标值随着圆心角a的变化而发生改变,圆心角a的变化范围0~360°,因此赋值圆心角a为#1,动点E的X坐标值为#2,动点E的Y坐标值为#3。由圆的基本公式可以推导出动点E的坐标值圆心角的变化关系式
cosa=X/r=>X=r*cosa
sina=Y/r=>Y=r*sina
赋值圆心角# 1为自变量从0~360°,每一度计算一次动点E的坐标值。这就将圆分为360份,近似为圆。
三、程序
N10 O0001;程序头
......
N30G00XrY0;圆弧起点定位
N40#1=0;圆心角度赋初始值
N50#2=r*cos[#1];X值计算
N60#3=r*sin[#1];Y值计算
N70G01X[#2]Y[#3];点E对应圆心角的坐标值
N80#1=#1+1;圆心角变化量,如果步长0.5,就将圆分为720份,以此类推
N90IF[#1 LE 360]GOTO 50 圆心角变化范围
......