本章中的O611程序是适用于发那科系统的用整硬螺纹铣刀分粗铣(顺铣)和精铣(逆铣)两刀铣成右旋圆柱内螺纹的通用宏程序,其中有有关工件、刀具、工艺参数、坐标系等需要赋值的变量14个、过渡变量2个(#21和#22),还有1个变量#100是用于试切和加工时调节铣出螺纹直径大小的。除此之外,程序中还有许多算式。
还是加工例2中的M16粗牙螺纹。使用其上有4条排屑槽的M16×2铣刀,螺纹深20mm。单向精铣量取0.2mm,粗铣和精铣每排刃口每转进给量分别取0.04mm和0.03mm,所用铣刀刃尖回转半径是6mm,粗铣和精铣主轴转速分别取1200r/min和1600r/min,刀具补偿号用1,在XY平面内螺纹孔中心与工件坐标系原点重合。试切前#100变量的值设为0。
把这些值代入O611程序中后得到O6110程序(O6110程序开头15段的内容在前面已列出)。再用这些具体值把N21~N44段中的变量和大部分算式替换掉,这时N02~N15段就可删去了。把经这样整理后的程序重新命名为O617。适用于本例的专用宏程序O617如下:
O617;
N01 #100=0; (#100代表铣螺纹半径修正量,试切前初始设为0)
N21 G54 G90 G95 G40 G00 X0 Y0; (设定工件坐标系,用每转进给,平移到工件XY平面原点)
N22 S1200 M03; (主轴按粗铣的指定转速正转)
N23 G52 X0 Y0; (建立局部坐标系)
N24 X0 Y0; (铣刀平移到螺纹孔中心)
N25 G43 H1 Z100; (激活刀具长度补偿,铣刀底面下降到准备点)
N26 Z0; (铣刀底面下降到工件上平面)
N27 Z-22; (铣刀底刃齿下降到粗铣入刀段起点所在平面)
N28 G01 X-0.92 F0.8; (铣刀底刃齿平移到粗铣入刀段起点)
N29 #21=1.36+#100/2; (#21代表粗铣入刀段和出刀段的半径)
N30 G03 X[1.8+#100]Z-21 R#21 F0.032; (粗铣螺旋上升入刀)
N31 Z-19I[-1.8-#100]F0.16; (粗铣螺旋上升铣一整圈)
N32 X-0.92Z-18R#21F0.32; (粗铣螺旋上升出刀)
N33 G00 X0 Y0 S1600; (铣刀平移到刀中心与螺纹孔中心重合,主轴按精铣的指定转速转动)
N35 G01 X-0.92F0.8; (铣刀平移到底刃齿精铣入刀段起点)
N36 #22=1.46+#1/2; (#22代表精铣入刀段和出刀段的半径)
N37 G02 X[2+#100]Z-19R#22F0.024; (精铣螺旋下降入刀)
N38 Z-21I[-2-#1]F0.12; (精铣螺旋下降铣一整圈)
N39 X-0.92 Z-22R#22F0.24; (精铣螺铣下降出刀)
N40 G00 X0 Y0; (铣刀平移到刀中心与螺纹孔中心重合)
N41 G49 Z100; (撤销长度补偿,铣刀底面上升到准备点)
N42 G52 X0 Y0; (取消局部坐标系)
N43 X0 Y0 M05; (铣刀平移到工件坐标系原点之上)
N44 M30;
在O617程序中还有3个变量:1个调节铣出螺纹直径大小的变量#100,2个过渡变量#21和#22。#100是不能去掉的,但可以把它改成#1,#21和#22还可以去掉。将程序段顺序号重新编排,并将经这样整理后的程序名重新命名为O618。只含1个变量的适用于本例的专用宏程序O618如下:
O618;
N01 #1=0; (#1代表铣螺纹半径修正量,试切前初始设为0)
N02 G54 G90 G95 G40 G00 X0 Y0; (设定工件坐标系,用每转进给,平移到工件XY平面原点)
N03 S1200 M03; (主轴按粗铣的指定转速正转)
N04 G52 X0 Y0; (建立局部坐标系)
N05 X0 Y0; (铣刀平移到螺纹孔中心)
N06 G43 H1 Z100; (激活刀具长度补偿,铣刀底面下降到准备点)
N07 Z0; (铣刀底面下降到工件上平面)
N08 Z-22; (铣刀底刃齿下降到粗铣入刀段起点所在平面)
N09 G01 X-0.92F0.8; (铣刀底刃齿平移到粗铣入刀段起点)
N10 G03 X[1.8+#1]Z-21R[1.36+#1/2]F0.032; (粗铣螺旋上升入刀)
N11 Z-19I[-1.8-#1]F0.16; (粗铣螺旋上升铣一整圈)
N12 X-0.92 Z-18 R[1.36+#1/2]F0.32; (粗铣螺旋上升出刀)
N13 G00 X0 Y0 S1600; (铣刀平移到刀中心与螺纹孔中心重合,主轴按精铣的指定转速转动)
N14 G01 X-0.92 F0.8; (铣刀平移到底刃齿精铣入刀段起点)
N15 G02 X[2+#1]Z-19R[1.46+#1/2]F0.024; (精铣螺旋下降入刀)
N16 Z-21I[-2-#1]F0.12; (精铣螺旋下降铣一整圈)
N17 X-0.92 Z-22 R[1.46+#1/2]F0.24; (精铣螺铣下降出刀)
N28 G00 X0 Y0; (铣刀平移到刀中心与螺纹孔中心重合)
N19 G49 Z100; (撤销长度补偿,铣刀底面上升到准备点)
N20 G52 X0Y0; (取消局部坐标系)
N21 X0 Y0 M05; (铣刀平移到工件坐标系原点之上)
N22 M30;
O618程序、O617程序与O6110程序的加工效果是完全一样的。当然,它们的仿真轨迹与图6-23中O6110的仿真轨迹也是一样的。
此外,也可以把阅读和理解O618程序和O617程序作为阅读和理解O611程序的第一步。(www.xing528.com)
从理论上说,O618程序中的#1也可以去掉。将去掉#1后的程序重新命名为O619,内容如下:
O619;
N02 G54 G90 G95 G40 G00 X0 Y0; (设定工件坐标系,用每转进给,平移到工件XY平面原点)
N03 S1200 M03; (主轴按粗铣的指定转速正转)
N04 G52 X0Y0; (建立局部坐标系)
N05 X0 Y0; (铣刀平移到螺纹孔中心)
N06 G43 H1 Z100; (激活刀具长度补偿,铣刀底面下降到准备点)
N07 Z0; (铣刀底面下降到工件上平面)
N08 Z-22; (铣刀底刃齿下降到粗铣入刀段起点所在平面)
N09 G01 X-0.92F0.8; (铣刀底刃齿平移到粗铣入刀段起点)
N10 G03 X1.8Z-21R1.36F0.032; (粗铣螺旋上升入刀)
N11 Z-19 I-1.8 F0.16; (粗铣螺旋上升铣一整圈)
N12 X-0.92 Z-18 R1.36 F0.32; (粗铣螺旋上升出刀)
N13 G00 X0 Y0 S1600; (铣刀平移到刀中心与螺纹孔中心重合,主轴按精铣的指定转速转动)
N14 G01 X-0.92F0.8; (铣刀平移到底刃齿精铣入刀段起点)
N15 G02 X2 Z-19 R1.46 F0.024; (精铣螺旋下降入刀)
N16 Z-2 1I-2 F0.12; (精铣螺旋下降铣一整圈)
N17 X-0.92 Z-22 R1.46 F0.24; (精铣螺铣下降出刀)
N28 G00 X0 Y0; (铣刀平移到刀中心与螺纹孔中心重合)
N19 G49 Z100; (撤销长度补偿,铣刀底面上升到准备点)
N20 G52 X0 Y0; (取消局部坐标系)
N21 X0 Y0 M05; (铣刀平移到工件坐标系原点之上)
N22 M30;
O619程序编制方便,但使用麻烦。程序中8个有下划线的数据是试切前确定的初始值。试切出第一件并检测后,如果要把下一件的中径扩大0.08mm(即半径Δr取+0.04mm),那么N10中的1.8和1.36应分别改为1.84和1.38,N11中的-1.8应改为-1.84,N12段中的1.36应改为1.38,N15段中的2和1.46应分别改为2.04和1.48,N16段中的-2应改为-2.04,N17段中的1.46就改为1.48。每一次都要把这8个数据改一遍,而且有2个是+Δr、2个是-Δr,还有4个是+Δr/2,非常麻烦,所以不推荐使用。这里介绍是为说明此例用不含变量的NC程序也能加工。
在用O618程序做试切的过程中,每修正一次加工出的螺纹中径,就要改一次程序(N01段中的#1赋值)。对于发那科系统,还有一种可以不修改程序中的数据来修正螺纹中径的方法。这种方法的第一步是把O618程序修改为如下的O620程序。
O620;
N01 #1=-#12001; (#12001代表运行时1号刀补栏内刀具半径磨耗设定值)
N02 G54 G90 G95 G40 G00 X0 Y0; (设定工件坐标系,用每转进给,平移到工件XY平面原点)
N03 S1200 M03; (主轴按粗铣的指定转速正转)
N04 G52 X0 Y0; (建立局部坐标系)
N05 X0 Y0; (铣刀平移到螺纹孔中心)
N06 G43 H1 Z100; (激活刀具长度补偿,铣刀底面下降到准备点)
N07 Z0; (铣刀底面下降到工件上平面)
N08 Z-22; (铣刀底刃齿下降到粗铣入刀段起点所在平面)
N09 G01 X-0.92 F0.8; (铣刀底刃齿平移到粗铣入刀段起点)
N10 G03 X[-1.8+#1]Z-21R[1.36+#1/2]F0.032; (粗铣螺旋上升入刀)
N11 Z-19I[-1.8-#1]F0.16; (粗铣螺旋上升铣一整圈)
N12 X-0.92 Z-18R[1.36+#1/2]F0.32; (粗铣螺旋上升出刀)
N13 G00 X0 Y0 S1600; (铣刀平移到刀中心与螺纹孔中心重合,主轴按精铣的指定转速转动)
N14 G01 X-0.92F0.8; (铣刀平移到底刃齿精铣入刀段起点)
N15 G02 X[2+#1]Z-19R[1.46+#1/2]F0.024; (精铣螺旋下降入刀)
N16 Z-21I[-2-#1]F0.12; (精铣螺旋下降铣一整圈)
N17 X-0.92Z-22R[1.46+#1/2]F0.24; (精铣螺铣下降出刀)
N28 G00 X0 Y0; (铣刀平移到刀中心与螺纹孔中心重合)
N19 G49 Z100; (撤销长度补偿,铣刀底面上升到准备点)
N20 G52 X0 Y0; (取消局部坐标系)
N21 X0 Y0 M05; (铣刀平移到工件坐标系原点之上)
N22 M30;
程序中的#12001是个系统变量,它代表(执行时提取)1号刀补栏内刀具半径磨损(D)格内的设定值,如图6-29所示。
图6-29 使用O620程序时可用改变磨损(D)设定值来修正铣出的螺纹中径
使用O620程序时,可以用改变此格内的设定值来修正加工出的螺纹中径。试切前把此格内的值置零。试切出第一件并检测后如果把下一件的中(直)径扩大0.08mm,那么只要在试切第二件前把此格内改设-0.04值即可。注意这里要扩大中径用负值,要减小中径用正值,这样反着来是有意设计的(程序中#12001前加了个负号),目的是与使用G41/G42时的习惯一致。注意此程序实际上并没有用G41或G42指令,可以说只是借用了一下#12001变量。
#12001的后三位代表所用的刀补号。假如用5号刀补栏内刀具半径磨损(D)格内的值的设定来修正加工出的螺纹中径,那么程序中的#12001应改成#12005,依此类推。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。