加工中心简明打孔教程
本程序适用于小车间使用
主 编:张 旭 常州纺兴精密机械有限公司 2009 年 3 月
Simple Mill Operator’s Manual ,Created by Zhang Xu , Version 1.1 , 2009.03.05
第 2 页 共 10 页
主程序
%
O0100(主程序)
G90 G80 G40 G00
G91 G30 Z0. //Z轴(主轴)回第二参考点(即换刀点)
G54 G90 //选用 G54 工件坐标系,并采用绝对值编程
#528 =1.0 //#528:刀号
N5
#530 =0.3 //工件厚度(Z 轴编程零点,工件厚度一般预留 0.3),≥0
#529 =1.5 //中心钻定位深度
#512 =-50.0 //2 号刀留底
#622 =1.35 //2 号刀每刀进给量
#513 =-1.0 //3 号刀留底
#623 =0.5 //3 号刀每刀进给量
#514 =9.95 //4 号刀留底
#624 =0.6 //4 号刀每刀进给量
#515 =65.0 //5 号刀留底
#625 =1.3 //5 号刀每刀进给量
#516 =-6.0 //6 号刀留底
#626 =1.2 //6 号刀每刀进给量
#517 =-3.5 //7 号刀留底
#627 =1.32 //7 号刀每刀进给量
#518 =-2.5 //8 号刀留底
#628 =1.32 //8 号刀每刀进给量
#519 =4.0 //9 号刀留底
#629 =0.8 //9 号刀每刀进给量
#510 =11.45 //10 号刀留底
#630 =0.8 //10 号刀每刀进给量
#523 =0.0 //孔圆周均布已加工孔数复位为0
#548 =0.0 //孔矩阵分布已加工行数复位为0
#549 =0.0 //孔矩阵分布已加工列数复位为0
N5 G65 P5000 //调用 O5000 换刀子程序
N10
#520 =-100.0 //#520:第一个孔 P0, 0的 X 坐标(X0)
#521 =40.0 //#521:第一个孔 P0, 0的 Y 坐标(Y0)
#522 =50.0 //#522:相邻两个孔的X向间距(△X)
#523 =40.0 //#523:相邻两个孔的 Y 向间距(△Y)
#524 =0.0 //#524:行与 X 轴的夹角α
#525 =270.0 //#525:列与X轴的夹角β
#526 =5.0 //#526:行方向孔个数 m
#527 =3.0 //#527:列方向孔个数 n
G65 P5300 //调用子程序 O5300
图1 孔 矩 阵 分 布
#548:行向已完成的孔数(从 0 开始计数)
#549:已完成的行数(从 0 开始计数)
图2 孔 圆 周 均 布
Simple Mill Operator’s Manual ,Created by Zhang Xu , Version 1.1 , 2009.03.05
第 3 页 共 10 页
N20
#520 =45.0 //#520:圆周半径 R
#521 =90.0 //#521:孔均布起始角α
#522 =10.0 //#522:孔数 n
G65 P5200 //调用子程序 O5200
N30
#520 =50.0 //#520:圆周半径 R
#521 =30.0 ///#521:孔均布起始角α
#527 =210.0 ///#527:孔均布终止角β
#522 =8.0 //#522:孔数 n
G65 P5100 //调用子程序 O5100
N400
M05 //主轴停转
M09 //冷却液关闭
#528 =#528+1 //刀号加1
IF [#528 GT 3 ] GOTO500 //如果刀号大于3跳转到 N500
GOTO5 //跳转到 N5
N500
M09 //冷却液关闭
M05 //主轴停转
G91 G30 Z0.0 //Z轴回参考第二参考点
G28 Y0.0 //Y 轴回参考点
M30 //程序结束并返回至程序开头
%
换刀子程序
%
O5000 (换刀子程序)
G90 G00 X0.0 Y0.0 //快速定位至坐标(0,0)处
#533 =#530+50.0 //#533 =板厚+50.0
IF [#528EQ2 ]GOTO200 //如果#528(刀号)=2 跳转到 N200
IF [#528EQ3 ]GOTO300 //如果#528(刀号)=3 跳转到 N300
IF [#528EQ4 ]GOTO400 //如果#528(刀号)=4 跳转到 N400
IF [#528EQ5 ]GOTO500 //如果#528(刀号)=5 跳转到 N500
IF [#528EQ6 ]GOTO600 //如果#528(刀号)=6 跳转到 N600
IF [#528EQ7 ]GOTO700 //如果#528(刀号)=7 跳转到 N700
IF [#528EQ8 ]GOTO800 //如果#528(刀号)=8 跳转到 N800
IF [#528EQ9 ]GOTO850 //如果#528(刀号)=9 跳转到 N850
IF [#528EQ10 ]GOTO860 //如果#528(刀号)=10 跳转到 N860
IF [#528EQ11 ]GOTO861 //如果#528(刀号)=11 跳转到 N861
IF [#528EQ12 ]GOTO862 //如果#528(刀号)=12 跳转到 N862
#523:记录已加工完成的孔数(从 0 开始计数)
图3 孔 圆 周 区 域 均 布
Simple Mill Operator’s Manual ,Created by Zhang Xu , Version 1.1 , 2009.03.05
第 4 页 共 10 页
N100 G91 G30 Z0. //Z轴(主轴)回第二参考点(即换刀点)
G49 //取消刀具长度补偿
M06 T01 //换1号刀
G90 G43 G00 Z#533 H01 //采用绝对值编程,1号刀正补偿,刀尖快速定位至#533 处
GOTO900 //跳转至 N900
N200 G91 G30 Z0.0 //Z轴(主轴)回第二参考点(即换刀点)
G49 //取消刀具长度补偿
M06 T02 //换 2 号刀
G90 G43 G00 Z#533 H02 //采用绝对值编程,2号刀正补偿,刀尖快速定位至#533 处
GOTO900 //跳转至 N900
N300 G91 G30 Z0. //Z轴(主轴)回第二参考点(即换刀点)
G49 //取消刀具长度补偿
M06 T03 //换 3 号刀
G90 G43 G00 Z#533 H03 //采用绝对值编程,3号刀正补偿,刀尖快速定位至#533 处
GOTO900 //跳转至 N900
N400 G91 G30 Z0. //Z轴(主轴)回第二参考点(即换刀点)
G49 //取消刀具长度补偿
M06 T04 //换 4 号刀
G90 G43 G00 Z#533 H04 //采用绝对值编程,4号刀正补偿,刀尖快速定位至#533 处
GOTO900 //跳转至 N900
N500 G91 G30 Z0. //Z轴(主轴)回第二参考点(即换刀点)
G49 //取消刀具长度补偿
M06 T05 //换 5 号刀
G90 G43 G00 Z#533 H05 //采用绝对值编程,5号刀正补偿,刀尖快速定位至#533 处
M08 //1号冷却液开
GOTO900 //跳转至 N900
N600 G91 G30 Z0. //Z轴(主轴)回第二参考点(即换刀点)
G49 //取消刀具长度补偿
M06 T06 //换 6 号刀
G90 G43 G00 Z#533 H06 //采用绝对值编程,6号刀正补偿,刀尖快速定位至#533 处
M08 //1号冷却液开
GOTO900 //跳转至 N900
N700 G91 G30 Z0. //Z轴(主轴)回第二参考点(即换刀点)
G49 //取消刀具长度补偿
M06 T07 //换 7 号刀
G90 G43 G00 Z#533 H07 //采用绝对值编程,7号刀正补偿,刀尖快速定位至#533 处
M08 //1号冷却液开
GOTO900 //跳转至 N900
N800 G91 G30 Z0. //Z轴(主轴)回第二参考点(即换刀点)
G49 //取消刀具长度补偿
M06 T08 //换 8 号刀
G90 G43 G00 Z#533 H08 //采用绝对值编程,8号刀正补偿,刀尖快速定位至#533 处
M08 //1号冷却液开
GOTO900 //跳转至 N900
Simple Mill Operator’s Manual ,Created by Zhang Xu , Version 1.1 , 2009.03.05
第 5 页 共 10 页
N850 G91 G30 Z0. //Z轴(主轴)回第二参考点(即换刀点)
G49 //取消刀具长度补偿
M06 T09 //换 9 号刀
G90 G43 G00 Z#533 H09 //采用绝对值编程,9号刀正补偿,刀尖快速定位至#533 处
M08 //1号冷却液开
GOTO900 //跳转至 N900
N860 G91 G30 Z0. //Z轴(主轴)回第二参考点(即换刀点)
G49 //取消刀具长度补偿
M06 T10 //换10 号刀
G90 G43 G00 Z#533 H10 //采用绝对值编程,10号刀正补偿,刀尖快速定位至#533 处
M08 //1号冷却液开
GOTO900 //跳转至 N900
N861 G91 G30 Z0. //Z轴(主轴)回第二参考点(即换刀点)
G49 //取消刀具长度补偿
M06 T11 //换11 号刀
G90 G43 G00 Z#533 H11 //采用绝对值编程,11号刀正补偿,刀尖快速定位至#533 处
M08 //1号冷却液开
GOTO900 //跳转至 N900
N862 G91 G30 Z0. //Z轴(主轴)回第二参考点(即换刀点)
G49 //取消刀具长度补偿
M06 T12 //换12 号刀
G90 G43 G00 Z#533 H12 //采用绝对值编程,12号刀正补偿,刀尖快速定位至#533 处
M08 //1号冷却液开
GOTO900 //跳转至 N900
N900 M99 //子程序结束并返回上级程序
%
Simple Mill Operator’s Manual ,Created by Zhang Xu , Version 1.1 , 2009.03.05
第 6 页 共 10 页
孔矩阵分布子程序
%
O5300(孔矩阵分布子程序)
N10
#644 =#523*COS [#525]
#645 =#523*SIN [#525]
#644 =#644*#549
#645 =#645*#549
#644 =#644+#520
#645 =#645+#521
N20
#640 =#522*COS [#524]
#641 =#522*SIN [#524]
#640 =#640*#548
#641 =#641*#548
#538 =#640+#644 //当前将加工孔的X坐标
#539 =#641+#645 //当前将加工孔的 Y 坐标
N30
G90 G00 X#538 Y#539
//快速定位至当前需加工孔的 X,Y 坐标
IF [#528EQ2 ]GOTO200
IF [#528EQ3 ]GOTO300
IF [#528EQ4 ]GOTO400
IF [#528EQ5 ]GOTO500
IF [#528EQ6 ]GOTO600
IF [#528EQ7 ]GOTO700
IF [#528EQ8 ]GOTO800
IF [#528EQ9 ]GOTO850
IF [#528EQ10 ]GOTO860
IF [#528EQ11 ]GOTO861
IF [#528EQ12 ]GOTO862
N100 G65 P6000
GOTO900
N200 G65 P7500
GOTO900
N300 G65 P6500
GOTO900
N400 G65 P5500
GOTO900
N500 G65 P4500
GOTO900
N600 G65 P3500
GOTO900
N700 G65 P2500
GOTO900
N800 G65 P1500
GOTO900
N850 G65 P1510
GOTO900
N860 G65 P1520
GOTO900
N861 G65 P1521
GOTO900
N862 G65 P1522
GOTO900
N900#548 =#548+1
IF [#548LT#526 ]GOTO20
#548 =0.0
#549 =#549+1
IF [#549LT#527 ]GOTO10
#549 =0
M99
%
孔圆周均布子程序
%
O5200 (孔圆周均布子程序)
N50
#524 =360*#523
#524 =#524/#522
#524 =#524+#521
#525 =#520*COS [#524] //#525:当前将
加工孔的 X 坐标
#526 =#520*SIN [#524] //#526:当前将
加工孔的Y坐标
#538 =2.5*COS [#524]
#539 =2.5*SIN [#524]
#543 =#525-#538
#544 =#526-#539
#585 =#525+#538
#586 =#526+#539
Simple Mill Operator’s Manual ,Created by Zhang Xu , Version 1.1 , 2009.03.05
第 7 页 共 10 页
G90 G00 X#525 Y#526 //快速定位至
当前需加工孔的 X,Y 坐标
IF [#528EQ2 ]GOTO200
IF [#528EQ3 ]GOTO300
IF [#528EQ4 ]GOTO400
IF [#528EQ5 ]GOTO500
IF [#528EQ6 ]GOTO600
IF [#528EQ7 ]GOTO700
IF [#528EQ8 ]GOTO800
IF [#528EQ9 ]GOTO850
IF [#528EQ10 ]GOTO860
IF [#528EQ11 ]GOTO861
IF [#528EQ12 ]GOTO862
N100 G65 P6000
GOTO900
N200 G65 P7500
GOTO900
N300 G65 P6500
GOTO900
N400 G65 P5500
GOTO900
N500 G65 P4500
GOTO900
N600 G65 P3500
GOTO900
N700 G65 P2500
GOTO900
N800 G65 P1500
GOTO900
N850 G65 P1510
GOTO900
N860 G65 P1520
GOTO900
N861 G65 P1521
GOTO900
N862 G65 P1522
GOTO900
N900#523 =#523+1
IF [#523LT#522 ]GOTO50
N940#523 =0.0
N950 M99
%
孔圆周区域分布子程序
%
O5100 (孔圆周区域分布子程序)
N50#524 =#527-#521
#524 =#524*#523
#509 =#522-1
#524 =#524/#509
#524 =#524+#521
#525 =#520*COS [#524] //#525:
当前将加工孔的 X 坐标
#526 =#520*SIN [#524] //#526:
当前将加工孔的Y坐标
G90 G00 X#525 Y#526 //快速定
位至当前需加工孔的 X,Y 坐标
IF [#528EQ2 ]GOTO200
IF [#528EQ3 ]GOTO300
IF [#528EQ4 ]GOTO400
IF [#528EQ5 ]GOTO500
IF [#528EQ6 ]GOTO600
IF [#528EQ7 ]GOTO700
IF [#528EQ8 ]GOTO800
IF [#528EQ9 ]GOTO850
IF [#528EQ10 ]GOTO860
IF [#528EQ11 ]GOTO861
IF [#528EQ12 ]GOTO862
N100 G65 P6000
GOTO900
N200 G65 P7500
GOTO900
N300 G65 P6500
GOTO900
N400 G65 P5500
GOTO900
N500 G65 P4500
GOTO900
N600 G65 P3500
GOTO900
Simple Mill Operator’s Manual ,Created by Zhang Xu , Version 1.1 , 2009.03.05
第 8 页 共 10 页
N700 G65 P2500
GOTO900
N800 G65 P1500
GOTO900
N850 G65 P1510
GOTO900
N860 G65 P1520
GOTO900
N861 G65 P1521
GOTO900
N862 G65 P1522
GOTO900
N900#523 =#523+1
IF [#523LT#522 ]GOTO50
#523 =0
M99
%
中心钻定位子程序
%
O6000(中心钻定位子程序)
G90 G43 G00 Z#533 H01
S1600 M03
M08
#535 =#530*1.02
#536 =#530-#529
G90 G00 Z#535
G01 Z#536 F100
G00 Z#533
M01
M99
%
Simple Mill Operator’s Manual ,Created by Zhang Xu , Version 1.1 , 2009.03.05
第 9 页 共 10 页
2号刀打孔子程序
%
O7500 (2号刀打孔子程序)
G90 G43 G00 Z [#533-0.0] H02
S800 M03
M08
#535 =#530+0.1
#536 =#622+0.1
#541 =0
N100#542 =#541*#622
#532 =#535-#542
#534 =#532-#536
IF [#534GT#512 ] GOTO200
G90 G00 Z#532
G01 Z#512 F60
G00 Z#533
M01
GOTO300
N200 G90 G00 Z#532
G01 Z#534 F60
G00 Z#535
#541 =#541+1
GOTO100
N300 M99
%
4号刀打孔子程序
%
O5500(4 号刀打孔子程序)
G90 G43 G00 Z [#533-0.0] H04
S650 M03
M08
#535 =#530+0.1
#536 =#624+0.1
#541 =0
N100#542 =#541*#624
#532 =#535-#542
#534 =#532-#536
IF [#534GT#514 ] GOTO200
G90 G00 Z#532
G01 Z#514 F60
G00 Z#533
M01
GOTO300
N200 G90 G00 Z#532
G01 Z#534 F60
G00 Z#535
#541 =#541+1
GOTO100
N300 M99
%
3号刀打孔子程序
%
O6500 (3号刀打孔子程序)
G90 G43 G00 Z [#533-0.0] H03
S800 M03
M08
#535 =#530+0.1
#536 =#623+0.1
#541 =0
N100#542 =#541*#623
#532 =#535-#542
#534 =#532-#536
IF [#534GT#513 ] GOTO200
G90 G00 Z#532
G01 Z#513 F60.0
G00 Z#533
M01
GOTO300
N200 G90 G00 Z#532
G01 Z#534 F60
G00 Z#535
#541 =#541+1
GOTO100
N300 M99
%
5号刀打孔子程序
%
O4500(5 号刀打孔子程序)
G90 G43 G00 Z [#533-0.0] H05
S450 M03
M08
#535 =#530+0.1
#536 =#625+0.1
#541 =0
N100#542 =#541*#625
#532 =#535-#542
#534 =#532-#536
IF [#534GT#515 ] GOTO200
G90 G00 Z#532
G01 Z#515 F60
G00 Z#533
M01
GOTO300
N200 G90 G00 Z#532
G01 Z#534 F60
G00 Z#535
#541 =#541+1
GOTO100
N300 M99
%
Simple Mill Operator’s Manual ,Created by Zhang Xu , Version 1.1 , 2009.03.05
第 10 页 共 10 页
准备功能字(G代码)
G00 快速移动定位(组01)
G01 线性差补运动(组01)
G02 顺时针圆周插补运动(组01)
G03 逆时针圆周插补运动(组01)
G04 暂停(组00)
G09 精确停止(组00)
G10 设置偏置(组 00)
G15 取消极坐标(组 17)
G16 极坐标指令(组 17)
G17/G18/G19 XY/XZ/YZ平面选择(组02)
G20 英制选择(组06)
G21 公制选择(组06)
G28 返回机床参考点(组00)
G29 从参考点返回(组00)
G30 返回第二参考点(组00)
G31 进给直到跳跃(组00)
G33 螺纹切削(组01)
G37 自动刀具偏置测量(组00)
G40 切削补偿取消(组07)
G41 刀具半径左补偿(组07)
G42 刀具半径右补偿(组07)
G43 刀具长度补偿+(加)(组08)
G44 刀具长度补偿-(减)(组08)
G49 G43/G44 取消(组08)
G50 取消缩放比例(组11)
G51 缩放比例(组11)
G52 局部坐标系设置(组14)
G53 机床坐标系统选择(组14)
G54-59 选择工件坐标系统#1 - #6(组14)
G60 单方向定位方式(组00)
G61 准确停止方式(组15)
G62 自动拐角倍率(组15)
G63 攻丝方式(组15)
G64 切削方式(组15)
G65 宏程序非模态调用(组00)
G66 宏程序模态调用(组12)
G67 宏程序模态调用取消(组12)
G68 坐标系旋转(组16)
G69 取消坐标系旋转(组16)
G73 高速啄钻孔固定循环(组09)
G74 反向攻丝固定循环(组09)
G76 精镗孔固定循环(组09)
G80 固定循环取消(组09)
G81 钻孔固定循环(组09)
G82 点钻固定循环(组09)
G83 普通啄钻固定循环 (组09)
G84 攻丝固定循环(组09)
G85 钻孔固定循环(组09)
G86 钻孔停止固定循环(组09)
G87 背镗孔循环(组09)
G88 镗孔循环(组09)
G89 镗孔循环(组09)
G90 绝对值编程 (组03)
G91 增量值编程 (组03)
G92 设置工件坐标系 (组00)
G94 每分钟进给模式(组05)
G95 每转进给 (组05)
G96 恒线速度 (组13)
G97 每分钟转速 (组13)
G98 固定循环返回初始点 (组10)
G99 固定循环返回 R 平面 (组 10)
辅助功能字(M代码)
M00 停止程序
M01 可选程序停止
M02 编辑结束
M03 正向开启主轴
M04 反向开启主轴
M05 停止主轴
M06 刀具交换
M08 冷却液开启
M09 冷却液关闭
M19 定位主轴
M29 刚性攻丝
M30 程序结束并返回