3.01 插补指令
可以进行直线、圆弧、多项式、样条等功能的插补运行。建议在启动主轴情况下使用这些插补指令。
3.1.1 快速定位(G00)
功能:
快速定位是点到点的快速定位。
指令格式:
G00 X... Y... Z... ;快速定位到X/Y/Z点
说明:
1. G00:快速定位指令。
2. X, Y, Z:以直角坐标系给定的终点。
3. G00为模态有效指令,同G01,G02等为同组G指令,可以用同组其它G指令取消G00模式。
4. 使用G00编程的刀具运行将以最快速度执行。快速移动速度由系统内部参数确定,是一个合成速度。
5. 快速定位时,以直线插补形式定位到终点位置。
举例:
N10 M03 S300
N20 G00 X160 Y130 Z2 ;定位至起始位置
N30 G01 Z-5 F100 ;进刀
N40 X60 Y40 ;直线运行
N50 G00 Z2
N60 G00 X40 Y200 Z100 ;退刀
N70 M30
3.1.2 直线插补(G01)
功能:
使用G01可以使刀具沿直线运行。
指令格式:
G01 X... Y... Z... F... ;线性插补到X/Y/Z点
说明:
1. G01:线性插补
2. X/Y/Z:以直角坐标系给定的终点
3. G01为模态有效指令,同G00,G02等为同组G指令,可以用同组其它G指令取消G01模式。
4. F为进给率。示例:G01 G94 X100 Y20 Z30 F100 ;以100mm/min的进给率逼近X,Y,Z上的目标点。
举例:
N10 M03 S300
N20 G00 X50 Y90 Z2 ;定位至起始位置
N30 G01 Z-2 F40 ;进刀
N40 Y10
N50 G00 Z100 ;退刀
N60 M30
3.1.3 圆弧插补(G02/G03)
一、控制系统提供了一系列不同的方法来编程圆弧运动。
1. 直角坐标系下表示的圆心和终点
2. 直角坐标系下表示的半径和终点
3. 直角坐标系下表示的张角和终点
4. 直角坐标系下表示的张角和圆心
5. 直角坐标系下表示的中间点和终点
6. 直角坐标系下表示的终点和起点切线方向
指令格式:
G02/G03 X… Y… Z… I …J… K… ;终点和圆心编程方式,圆心坐标是相对于起点的增量
G02/G03 X… Y… Z… CR=… ;终点和半径编程方式,CR=给定圆弧半径
G02/G03 X… Y… Z… AR=… ;终点和张角编程方式,AR=给定张角
G02/G03 I …J… K… AR=… ;圆心和张角编程方式,AR=给定张角,圆心坐标是相对于圆弧起点的增量
CIP X… Y… Z… IM=…JM=… KM=… ;终点和中间点编程方式
CT X… Y… Z… ;终点和切线编程方式
注:
1. G02:顺时针圆弧插补;G03:逆时针圆弧插补
2. CIP:通过中间点进行圆弧插补;CT:通过切线过渡进行圆弧插补
3. X, Y, Z:直角坐标系下,圆弧的终点坐标
4. I, J, K:直角坐标系下,圆心相对于起点的增量坐标
5. CR=:圆弧半径
6. AR=:圆弧张角
7. IM=, JM=, KM=:直角坐标系下给定的中间点
说明:
1. 工作平面:控制系统需要工作平面(G17/G18/G19)来确定圆弧旋转方向。各个平面内的顺时针(G02)和逆时针(G03)圆弧插补方向如下图3.1所示:
图3.1 工作平面与圆弧方向的关系
2. X,Y,Z:表示圆弧的终点,并且根据G90/G91用绝对值或增量值表示。若为增量值,则该值为从圆弧起点向终点方向的距离。
3. I,J,K:表示圆弧的圆心位置,是从圆弧的起点到圆心的增量值。并且不管是G90还是G91模式,都代表的是增量值,如下图3.2所示。I0,J0,K0可以省略。但X,Y,Z都省略(圆弧终点和起点相同),并且指定I,J,K时,表示360度圆弧,即整圆。
图3.2 不同平面下圆心与起点关系
3. CR=:表示圆弧半径:当指定小于或等于180度圆弧时,半径值为正值(+可以省略);当指定超过180度的圆弧时,半径必须用负值指定。
4. 在系统设置界面的参数设置中,可以通过“圆弧指令模态开关”对G02和G03是否为模态指令进行设置。设置为“OFF”时,G02和G03为非模态指令;设置为“ON”时,G02和G03为模态指令。
5. 如果圆弧的编程速度大于曲率半径允许的最大速度,则系统内部自动降低编程速度。
举例:
N10 M03 S1000
N20 G00 G90 X161.96 Y70
N30 G17 G01 Z-5 F100
N40 G02 X140 Y151.96 I-51.96 J30 ;给定圆弧终点和圆心
N40 G02 X140 Y151.96 CR=-60 ;给定圆弧终点和半径
N40 G02 X140 Y151.96 AR=270 ;给定圆弧终点和张角
N40 G02 I-51.96 J30 AR=270 ;给定圆心和张角
N40 CIP X140 Y151.96 IM=90 JM=43.43 ;给定圆弧终点和中间点
N50 G00 Z100
N60 M30
1.给定圆弧终点和圆心(或半径)
功能:
可以编程给定圆弧终点和圆心的方法实现对整圆或圆弧进行加工。
指令格式:
G02/G03 X… Y… Z… I… J… K…
或G02/G03 X… Y… Z…CR=…
说明:
1. G02:顺时针圆弧插补;G03:逆时针圆弧插补
2. X,Y,Z:直角坐标系下圆弧终点,并且根据G90/G91用绝对值或增量值表示。若为增量值,则该值为从圆弧起点向终点方向的距离。
3. I,J,K:表示圆弧的圆心位置,是从圆弧的起点到圆心的增量值。并且不管是G90还是G91模式,都代表的是增量值。
4. CR=:当编程的圆弧小于等于180度时,CR为正值,正号可以省略;当编程的圆弧大于180度时,CR为负值。
5. 注意:整圆不能用CR=来编程。要用I,J,K形式来编程。
举例:
N10 G00 X80 Y94.64
N20 G03 X25.36 Y40 CR=40 F200
2.给定圆弧终点(或圆心)和张角
通过指定张角和圆弧终点(或圆心)的方式来编程圆弧。
指令格式:
G02/G03 X… Y… Z… AR=…
G02/G03 I …J… K… AR=…
说明:
1. G02:顺时针圆弧插补;G03:逆时针圆弧插补
2. X,Y,Z:直角坐标系下圆弧终点,并且根据G90/G91用绝对值或增量值表示。若为增量值,则该值为从圆弧起点向终点方向的距离。
3. I,J,K:表示圆弧的圆心位置,是从圆弧的起点到圆心的增量值。并且不管是G90还是G91模式,都代表的是增量值。
4. AR=:张角的取值范围为0到360度。
举例:
N10 G00 X80 Y94.64
N20 G03 X25.36 Y40 AR=150 F200
或N20 G03 I-20 J-34.64 AR=150 F200
3.给定圆弧终点和中间点
可以用CIP通过终点和中间点编程圆弧。如图3.3所示:运行方向按照起点,中间点,终点的顺序进行。
图3.3 给定圆弧终点和中间点
指令格式:
CIP X…Y…Z…IM=…JM=…KM=…
说明:
1. CIP:通过中间点进行圆弧插补
2. X,Y,Z:直角坐标系下圆弧终点,并且根据G90/G91用绝对值或增量值表示。若为增量值,则该值为从圆弧起点向终点方向的距离。
3. IM=,JM=,KM=:直角坐标系下圆弧中间点,并且根据G90/G91用绝对值或增量值表示。若为增量值,则该值为从圆弧起点向中间点方向的距离。
举例:
N10 G00 X80 Y94.64
N20 CIP X25.36 Y40 IM=31.72 JM=88.28 F200
4.给定圆弧终点和切线
功能:
切线过渡功能是圆弧编程的一个扩展功能。圆弧可以通过终点以及起点的切线方向来指定。CT生成一个与先前编程的轮廓段相切的圆弧。如图3.4所示:
图3.4 圆弧终点和切线
切线方向规定:一个CT程序段起点的切线方向是由前一程序段的编程轮廓的终点切线来决定的。
指令格式:
CT X…Y…Z…
说明:
1. CT:切线过渡的圆弧
2. X…Y…Z…:直角坐标系下圆弧的终点
3. CT为非模态有效。通常情况下圆弧由切线方向以及起点和终点决定。
4. 如果起始切线的延长线经过终点,则将产生一条直线而不是圆(极限情况:半径无限长的圆)。在这种情况下,系统报警。
二、在铣削加工的某些情况下,有时需要执行多圈螺旋线的运动,来满足部分加工要求(如螺纹铣削,内孔精加工等)。为此,控制系统提供了几种不同的方法来编程三维螺旋线运动,描述如下:
终点+圆心+圈数:G02/G03 X… Y… Z… I… J… K… TURN=
终点+半径+圈数:G02/G03 X… Y… Z… CR=… TURN=
终点+张角+圈数:G02/G03 X… Y… Z… AR=… TURN=
圆心+张角+圈数(+加工平面外第三轴终点坐标):
G02/G03 I… J… K… AR=… (Z…) TURN=
极角+极半径+圈数(+加工平面外第三轴终点坐标):
G02/G03 AP=… RP=… (Z…) TURN=
- X Y Z(终点坐标):
当加工平面外第三轴(如G17为Z轴)终点坐标不编程,或编程值与起点相同时,仅在同一平面内运动,不形成螺旋线。若同时省略参数TURN,即成为普通的圆弧插补指令。
在上述最后两种编程方式中,加工平面内的第一轴和第二轴不允许编程,但是若需要构成螺旋线运动,需要编程第三轴终点坐标。
- I J K(圆心坐标):
与一般圆弧插补指令的含义基本相同,此圆心指的是螺旋线圆柱在加工平面的圆截面的圆心。当直接编程时,圆心坐标为相对于终点的坐标,只有加了AC以后才为绝对坐标。
- CR(半径)
与圆弧插补指令的含义基本相同
- AR(张角)
该张角指的是在加工平面内,由起点到终点的圆弧张角
AR的范围要求为0<AR<360°。如果TURN=0,或TURN不编程,则允许AR编程大于360度。此时,螺旋线运动的圈数完全由AR决定。
- TURN(圈数)
该圈数指的是螺旋线中包含的360°整圈的数量,故始终是一个正整数,范围0≤TURN≤999。编程的螺旋线轨迹一般可以将其看作两个部分:“n个整圈的螺旋线”和“不足一圈的一段螺旋线”,如图5所示。
特殊情况:如果以终点+圆心的方式编程,使“不足一圈的一段螺旋线”成为了一个整圈,那么实际上的螺旋线圈数为TURN+1圈。
如果TURN=0,或TURN不编程,那么螺旋线轨迹将小于等于一整圈。如果同时,加工平面外第三轴坐标不变化,那么即成为普通的圆弧插补指令。
图3.5 指令参数说明
- AP、RP(极角、极半径)
与圆弧插补指令的含义基本相同
编程举例和一些特例
1)终点+圆心+圈数:G02/G03 X… Y… Z… I… J… K… TURN=
G17
F1000
G00 X0 Y10 Z0
G03 X10 Y0 Z-30 I0 J-10 TURN=5 ; 5圈多
M02
2)终点+半径+圈数:G02/G03 X… Y… Z… CR=… TURN=
G17
F1000
G00 X0 Y10 Z0
G02 X0 Y-10 Z-20 CR=10 TURN=2 ;终点+半径+圈数
M02
3)终点+张角+圈数:G02/G03 X… Y… Z… AR=… TURN=
G17
F1000
G00 X0 Y10 Z0
G02 X0 Y-10 AR=300 TURN=3 ; 终点+张角+圈数
M02
4)圆心+张角+圈数(+加工平面外第三轴终点坐标):
G02/G03 I… J… K… AR=… Z… TURN=
G17
F1000
G00 X0 Y10 Z0
G03 I0J-10 AR=180 z10 TURN=2 ;执行2圈半
M02
5)极角+极半径+圈数(+加工平面外第三轴终点坐标):
G17
F1000
G111 X10 Y10 Z0
G00 X0 Y10 Z0
G02 AP=120 RP=10 Z-10 TURN=2 ; 极角+极半径+圈数
M02
6)整圈螺旋线特例
G17
F1000
G00 X0 Y10 Z0
G03 Z-30 I0 J-10 TURN=2 ; 这里是整圆编程,螺旋线总共有3圈
M02
7)没编程第三轴
G17
F1000
G00 X0 Y10 Z0
G02 X0 Y-10 CR=10 TURN=2 ; 未编程第三轴Z,则在G17平面圆弧执行2圈半,不构成螺旋线
M02
3.1.4 三维圆弧插补(CIPD)
通过指定圆弧的中间点和终点,可以在三维空间上进行三维圆弧插补。
指令格式:
CIPD X... Y... Z... IM=... JM=... KM=...
说明:
1. CIPD :三维圆弧插补指令
2. X,Y,Z:圆弧指令的终点坐标
3. IM=,JM=,KM=:直角坐标系下圆弧中间点,并且根据G90/G91用绝对值或增量值表示。若为增量值,则该值为从圆弧起点向中间点 方向的距离。
举例:
N10 G90 G01 X6 Y0 Z0
N20 CIPD X0 Y8 Z0 IM=3 JM=4 KM=5
3.1.5 多项式插补(POLY)
就本意来讲,多项式插补(POLY)并不是一种样条插补。
X(t)=a0 + a1*t + a2*t2 + a3*t3
Y(t)=b0 + b1*t + b2*t2 + b3*t3
Z(t)=c0 + c1*t + c2*t2 + c3*t3
X(t)=a0 + a1*t + a2*t2 + a3*t3 + a4*t4 + a5*t5
Y(t)=b0 + b1*t + b2*t2 + b3*t3 + b4*t4 + b5*t5
Z(t)=c0 + c1*t + c2*t2 + c3*t3 + c4*t4 + c5*t5
其中:t为参数
通过给系数设定具体的数值,可以产生不同的曲线,如直线、抛物线、三次多项式和五次多项式。
指令格式:
POLY X=PM(Xe,a1,a2,a3) Y=PM(Ye,b1,b2,b3) Z=PM(Ze,c1,c2,c3) PT=n
POLY X=PM(Xe,a1,a2,a3,a4,a5) Y=PM(Ye,b1,b2,b3,b4,b5) Z=PM(Ze,c1,c2,c3,c4,c5) PT=n
参数:
1. POLY:选通三次或五次多项式插补。
2. X,Y,Z:轴名称
3. Xe,Ye,Ze:编程轨迹终点位置
4. a1,a2,a3,a4,a5:如果系数值为零,则可以为空,但要用逗号占位。如果没有逗号占位,则按照从前往后顺序依次对应系数,不够的默认为零。如:X=PM(1,2),则a1=1,a2=2,a3以后都是0。
5. PT:参数范围,取值范围:PT >0。PT值用于所在的程序段,如果没有编程PT,则PT=1。参数方程中的t的取值范围:[0,PT]
6.根据多项式系数计算出的终点值与编程的终点(Xe,Ye,Ze)不符(超出系统设定的参数范围值),则报警!
说明:
1. 多项式插补是非模态指令,与G00、G01、G02、G03、样条插补同属于一个G代码分组。同组中的其它指令可以取消多项式插补。
2. 当多项式插补有效时,如果仅编程终点没有编程系数,则以直线插补到其终点。
3. 在多项式指令段中,不能编程G(G01这组G指令除外)、M、S、T、D和其他关键字,否则报错。
举例:
N10 POLY X=PM() Y=PM() Z=PM() ;线性轴多项式插补到终点
3.1.6 样条插补(AKIMA,NURBS,CUBIC)
通过样条插补可以用平滑的曲线连接各个分散的点。样条是对一系列离散化点的一种拟合方式。不同的样条函数类型有不同的性质,插补的结果也不同。
当要通过某个曲线连接一系列点时,就需要编程样条插补。可以有三种类型的样条:
1. AKIMA样条(Akima样条)
2. NURBS样条(NURBS样条,非均匀有理的B样条)
3. CUBIC样条(立体样条)
在三种相同的型值点处对比三种类型的样条,如图3.5所示:
图3.5 具有相同支点的三种类型样条
1.AKIMA样条
指令格式:
AKIMA X... Y... Z...
功能说明:
1. AKIMA样条精确地通过各个型值点(即:编程点),如图3.6所示。
2.插补时使用3次多项式。
3. AKIMA样条最少处理3个型值点,即:每条AKIMA样条曲线用户最少要编程3个程序段。如果AKIMA样条曲线编程少于3个程序段,则报警。
4. AKIMA样条是模态指令,与G00、G01等同属于一个G代码分组,同组的其它指令可以取消AKIMA样条。
5. 在AKIMA样条指令程序段中,不能编程G(G01这组G指令除外)、M、S、T、D和其它关键字,否则报错。
图3.6 AKIMA样条
举例:
N10 AKIMA X... Y... Z... ;开启第一条AKIMA样条曲线
N20 X... Y... Z...
…
N90 X...Y...Z...
N100 AKIMA X... Y...Z... ;开启第二条AKIMA样条曲线
N110 X...
2.NURBS样条
指令格式:
NURBS X... Y... Z... SD=... PW=... PL=...
说明:
1. X,Y,Z:控制点坐标值
2. SD=3:样条次数,对应三次样条。如果没有编程次数参数,则默认为三次样条。
3. PW=:权重,如下图3.7所示。取值范围:PW>0。如果没有编程权重,则默认设置为1。
4. PL=:节距,取值范围[0,1]。必须编程此参数,如果没有编程,则报错。一条NURBS以PL=0开始,PL=0结束,且结束处PL累加值=1。
5. NURBS样条编程的控制点总数不能少于SD+1个,否则报警。
6. NURBS样条是模态指令,与G00、G01、G02、G03、多项式同属于一个G指令分组。同组的其它指令可以取消NURBS样条。
7.在NURBS样条程序段中,不能编程G(G01组指令除外)、M、S、T、D和其它关键字,否则报错。
图3.7 不同权重对NURBS样条的影响
图3.8 NURBS样条
举例:
G01 X0 Y0 Z0 F100
NURBS X1 Y0 Z2 PL=0
X2 Y0 Z3 PL=0.2920
X4 Y0 Z6 PL=0.2237
X4.5 Y0 Z5 PL=0.2785
X6 Y0 Z1 PL=0.2058
X7 Y0 Z5.5 PL=0
G01 X20 Y20 Z-20…
3.CUBIC样条
指令格式:
CUBIC X... Y... Z...
功能说明:
1.插补时使用3次多项式。
2.其它编程规则同AKIMA样条。
图3.9 CUBIC样条
4.说明
1)AKIMA、NURBS和CUBIC样条均为模态有效,与G00、G01、G02、G03属于同一插补指令组。
2)对于AKIMA样条和CUBIC样条,可以对样条曲线开始和结束的过渡处可以用特定的边界条件进行编程。过渡的边界条件可以划分为两个组,各以三个指令进行说明:
开始样条曲线:
SPBN 没有约束;由第一个点的位置决定;
SPBC 曲率为零;
SPBT 切线过渡到上一段(默认设置)。
结束样条曲线:
SPEN 没有约束;由最后一个点的位置决定;
SPEC 曲率为零;
SPET 切线过渡到下一段(默认设置)。
图3.10 边界条件
边界条件的编程方法:边界条件必须同AKIMA或CUBIC关键字编在同一行程序中,如果没有编程边界条件,则用默认设置。
CUBIC样条举例,在曲面开始和结束处曲率为零。
N10 G01 X0 Y0 F300
N15 X10
N30 CUBIC SPBC SPEC X20 Y10 ;三次样条举例,在曲面开始和结束处曲率为零
N40 X30 Y10
N50 X40 Y5
N60 X50 Y15
N70 X55 Y7
N80 X60 -Y20
N90 X65 Y20
N100 X70 Y0
N110 X80 Y10
N120 X90 Y0
N130 M30
3)可编程的边界条件对NURBS样条没有影响。在起始点和终点处NURBS样条始终与控制多边形轮廓相切。
3.1.7 螺旋线插补(G22/G23)
功能:
螺旋插补G22/G23由工作平面内的圆弧插补和第三轴的同步运动组成。工作平面内的圆弧曲线除了常见的等半径圆弧,也可以是同一个圆心,而半径是线性渐变的螺线。第三轴的直线运动必须与工作平面内的圆弧或螺线具有同步性,形成等螺距的圆柱或圆锥螺旋线。如果不指定第三轴,或者第三轴坐标不变,则相当于是在工作平面内进行圆弧或螺线插补。
指令格式:
说明:
1. G22/G23:G22是顺时针旋转螺旋线;G23是逆时针旋转螺旋线。
2. G17/G18/G19:工作平面选择。
3. X/Y/Z:终点坐标。
4. I/J/K:含义与工作平面有关。
1) G17:I/J为圆心相对于起点的坐标,K为螺距值;
2) G18:K/I为圆心相对于起点的坐标,J为螺距值;
3) G19:J/K为圆心相对于起点的坐标,I为螺距值。
5. Q:螺旋旋转一周的半径增减量。正值表示半径增量;负值表示半径减量。
6. L:螺旋旋转的周数,为正数,可以是小数。
7. P:螺旋旋转的角度,单位:度。
8. 螺距值、Q、L、P:这四个参数中必须指定一个,其余三个可以忽略。如果同时指定了两个以上参数时,按照“Q>螺距值>P>L”的优先级选择。
举例:
N10 G00 X0 Y-50 Z0
N20 Y-35
N30 G22 X-50 Y0 Z-125 I0 J35 P810 ;从起点到终点共螺旋走了810度,即2.25圈