我们知道加工圆或圆弧都会用到G02或G03指令,G02/G03都属于插补指令,我们能不能用G01来实现这个功能呢?我们知道圆可以认为是N边形,也就是把圆做N等分。

如何用G01指令编写圆弧加工程序_编程思路如何用G01指令编写圆弧加工程序_编程思路_02

如果将G01代入加工出多边形即可完成圆的加工,如果我们要找点坐标代入,程序的代码会很长,不符合加工要求,所以,在这里我们就用宏程序的编程思路来解。

一、圆的方程的求解

如何用G01指令编写圆弧加工程序_赋值_03

如图,圆是以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 圆心角变化范围

......