上篇:数控加工仿真系统 - FANUC OI 铣床编程笔记(上)
上篇主要记录了铣床编程模板和大致程序的样式,使用软件前的准备工作,程序的CUSTOM GRAPH使用(主要用来测试程序的图案对错),程序的保存和程序的读取,这些都是在编写铣床程序中很重要的步骤
FANUC OI 铣床编程笔记(下)
3.操作流程(续)
编写相应图纸的程序
接下来我们要查看需要编写的程序的图纸,比如下方的图纸:
第一眼看过去,我们可以知道它是对称图形,对称图像就好办了,我们可以使用镜像指令或者旋转指令,这样省去了很多代码。
现在照我的思路来完成这张图纸:
(1)写程序框架:
主程序
O0001;(主程序)
G54G17G90;(G54坐标系选择,G17X-Y平面,G90绝对坐标系)
M03S800;(主轴正转,转速800转/分)
G00X0Y0Z3;(快速移动至(0,0,3))
.
.
.
M01Z3;(提刀)
G00X100Y100Z100;(快速移动至(100,100,100))
M05;(主轴停转)
M30;(主程序结束)
子程序(必须的,写在一起太乱,可以写特征时再建)
O0002;(取个名字,格式OXXXX;)
.
.
.
M99;(子程序结束)
有个框架的好处时,每个图纸都通用且必须的代码,整合为模板,方便管理。
(2)准备一个特征的处理,我选择外部主轮廓的切削,新建子程序,写入下列内容:
O0002;(子程序1)
G00X0Y40;(快速挪到(0,40))
G01Z-4F60;(下刀,深度为4)
X50;(前面出现G01,省略G01,挪到(50,40))
Y34;(挪到(50,34))
X0;(0,34)
Y28;(0,28)
G41G01D01X0Y25F60;(加刀补,自动沿着路线相切位置走刀,这里的意思是以下指令使用左刀补,并
移动到(0,25)的位置,速度为60,当然左刀补必有右刀补,怎么区分左刀补还是右刀补,简单的办法沿着路径方向画个箭头,把刀放在左边挪动,为左刀补,反之右刀补)
X21;(省略G01)
G02Y-25R25;(瞬时针圆弧,终点坐标X不变,Y为-25位置,半径为25)
G01Z3;(提刀)
G40;(刀补结束)
G41G01X32.015Y35.455F60;(这个掏左上角的圆弧,一样,左刀补挪到指定的位置)
Z-7;(下刀)
G03X27.985Y28.545R4;(逆时针圆弧,挪到指定位置,半径为4)
G01X39.985Y21.545;(直线切削)
G03X44.015Y28.455R4;(逆时针圆弧)
G01X32.015Y35.455;(直线切削)
G01Z3;(提刀)
G40;(刀补结束)
M99;(子程序结束)
子程序1编写完成,测试对错,自动运行 - CUSTOM GRAPH - 循环启动:
(如果失败,reset,在重新操作,前提是前面的程序启动操作全部完成,且没有问题)
第一处,算是去余料
第二处,掏圆弧
第三处,切出主轮廓
注意!说是镜像但是我为什么把圆弧画到对面去了。当然这是为了保险,刀是圆弧状的,不过头,容易留下余料,这样去余料太麻烦了。
尝试添加镜像指令,在主程序中添加:
O0001;(主程序)
G54G17G90;(准备工作1)
M03S800;
G00X0Y0Z3;
M98P0002;(我们写的那个)
G51X0Y0I-1J1;(镜像指令,I,J分别为关于X,Y轴对称,-1为沿。。对称,1不变)
M98P0002;(记住要再,调用子程序,调用指令M98,调用了我写的0002程序)
G51X0Y0I-1J-1;(同上)
M98P0002;
G51X0Y0I1J-1;
M98P0002;
G50;(镜像指令关闭)
M01Z3;(准备工作2)
G00X100Y100Z100;
M05;
M30;
主程序添加完成,测试对错,自动运行 - CUSTOM GRAPH - 循环启动:
顿时,感觉省力好多。
这个时候我们,有接下来两种方法,一种是完全把程序编写完成再测试,另一种是先测试,再继续写。我比较保守,对自己写的不太自信,那么我们来测试吧:
开始使用机床
(1)选择机床,我这里选择了FANUC OI控制系统,标准机床
(2)定义毛坯,按照图上的来,100*80*20
长方形毛坯
(3)选择夹具
之前定义了毛坯1,选择它
夹具我们使用平口钳
移动:向上至出现警告
然后确定
(4)放置零件,点击安装零件
直接点退出
(5)选择刀具,这里需要再分析一下图纸,我们选择刀具的规则是,小于最小凹圆弧的直径,我们看一下图纸:
这里最小为8mm直径的圆弧,我们所以选择6mm平底刀,长度选择最长,点击确定
准备切削毛坯
在进行切削前,我们要设置机床坐标系(机床又不知道你的编程0点在哪),设置刀补(机床不知道你加了刀补)
1.对刀操作(让机床知道你的编程原点)
方法一,直接测量
移动至蓝色刚好可见:
查看测量平面Z的大小,记录-328
方法二,塞尺测量
(1)刀具移动到零件正上方
(2)加塞尺,使用1mm塞尺
(3)手动模式,Z轴向下走,走到离零件比较近的位置
(4)手轮模式启动,打开手轮
档打到Z轴,倍率先调大,摁住左键,观察:
调不到,可以换倍率
现在我们查看Z轴坐标:
查看此时机床位置,Z轴为-327,减去1mm塞尺,结果为-328
2.填写坐标值和刀补值
(1)填写坐标值
在G54那一栏,填写X=-500 Y-415是重要的值,就是目前直接放置毛坯时,毛坯中心的坐标,如果挪动,就改变了,当然如果编程原点不在中心,就可不是这个值,需要自己算,我的程序用(-500,-415)直接作为编程原点,不用修改,z轴填写我们对刀的值
(2)填写刀补,刀具一般的值,填写在磨耗中,对应刀具半径补偿D01,01指的就是第一行的意思
好的,现在机床准备就绪,我们进行切削
机床开始切削
刚开始的状态
切削结果图(余料暂时略去):
注意在,这个过程中出现机床不动,就 reset ,停止,超程释放,启动,回原点,一阵不停操作(基本上是这样,如果是机床运动到极限,对刀问题,或者代码写错了)
编写相应图纸的程序(续)
既然这样正确了,我们就开始继续写程序了,步骤基本就是上面表示的那样,接下来的步骤会省略重复的步骤
子程序2:
O0003;(子程序2,对应图纸的中心部位的切削)
G42G01D01X0Y20F60;(右刀补)
Z-3;
X21;
G02X41Y0R20;(顺时针圆弧)
G02X29R6;(...)
G03X14.259Y4.308R8;(逆时针圆弧)
G02X10.046Y2R5;(顺时针圆弧)
G01X0;(直线切削)
Z3;(抬刀)
G40;
G01X24Y12;(刀来回走,切削内部余料)
Z-3;
X0;
Y10.5;
X15;
Y9;
Z3
M99;
子程序2编写完成,测试对错,自动运行 - CUSTOM GRAPH - 循环启动:
主程序对应的修改:
O0001;(主程序6MM)
G54G17G90;(准备工作1)
M03S800;
G00X0Y0Z3;
M98P0002;(主轮廓)
G51X0Y0I-1J1;
M98P0002;
G51X0Y0I-1J-1;
M98P0002;
G51X0Y0I1J-1;
M98P0002;
G50;
M98P0003;(添加的这一块是中间的切削,也用到了镜像)
G51X0Y0I-1J1;
M98P0003;
G50;
M01Z3;(准备工作2)
G00X100Y100Z100;
M05;
M30;
主程序修改完成,测试对错,自动运行 - CUSTOM GRAPH - 循环启动:
模型的切削:
子程序3,把上面丑的多余余量的去除:
O0004;(子程序3去余量)
G01Z3;
X42Y32;
Z-4;
X50;
Y30;
X42;
Y28;
X50;
Y26;
X42;
Y24;
X50;
Y22;
X42;
Y20;
X50;
Y0;
Z3;
M99;
子程序3编写完成,测试对错,自动运行 - CUSTOM GRAPH - 循环启动:
主程序对应的修改:
O0001;(主程序6MM)
G54G17G90;(准备工作1)
M03S800;
G00X0Y0Z3;
M98P0002;(主轮廓)
G51X0Y0I-1J1;
M98P0002;
G51X0Y0I-1J-1;
M98P0002;
G51X0Y0I1J-1;
M98P0002;
G50;
M98P0003;(内部切削)
G51X0Y0I-1J1;
M98P0003;
G50;
M98P0004;(去余量,镜像一波流)
G51X0Y0I-1J1;
M98P0004;
G51X0Y0I-1J-1;
M98P0004;
G51X0Y0I1J-1;
M98P0004;
G50;
M01Z3;(准备工作2)
G00X100Y100Z100;
M05;
M30;
主程序修改完成,测试对错,自动运行 - CUSTOM GRAPH - 循环启动:
模型的切削,干净多了:
最后的打孔程序,我有解决不了的问题,系统老是,报错,就没有用钻头打孔,诶~:
写在主程序中,主程序最终修改(理论上打孔,步骤:程序暂停,换刀(长短不一,之前就需要重新对刀,并记录在G55坐标系),程序中当然要写好,最后我会贴一份参考答案,之前的答案只是我的思路):
O0001;(主程序6MM)
G54G17G90;(准备工作1)
M03S800;
G00X0Y0Z3;
M98P0002;(主轮廓)
G51X0Y0I-1J1;
M98P0002;
G51X0Y0I-1J-1;
M98P0002;
G51X0Y0I1J-1;
M98P0002;
G50;
M98P0003;
G51X0Y0I-1J1;
M98P0003;
G50;
M98P0004;
G51X0Y0I-1J1;
M98P0004;
G51X0Y0I-1J-1;
M98P0004;
G51X0Y0I1J-1;
M98P0004;
G50;
M00;(打孔)
M99G81X-21Y0Z-10R30F60;(打孔指令,在(-21,0)打孔,深度为10,退刀30,速度60)
X0Y-15Z-10;
X21Y0Z-10;
G80;(打孔结束指令)
M01Z3;(准备工作2)
G00X100Y100Z100;
M05;
M30;
主程序修改完成,测试对错,自动运行 - CUSTOM GRAPH - 循环启动:
模型的切削,切削结束(没有换刀):
emmm… 我觉得还行
主要的流程就是这样
参考答案(只供参考)
(轮廓用平底刀Φ8
打孔用钻头Φ8
D01=4.032、D02=4.015、
D03=3.99)
主程序
O14;(主程序)
G54;
M03S600;
G00X0Y0Z20.;
Z2.;
X51.Y-37.;
G01Z-4.F30;
X-51.F100;
Y37.;
X51.;
Y-30.;
X-51.;
Y30.;
X51.;
X21.Y34.;
G02Y-34.R34.;
G01X-21.;
G02Y34.R34.;
G01X-6.Y30.;
G41D01X0Y25.F150;
G01X21.;
G02Y-25.R25.;
G01X-21.;
G02Y25.R25.;
G01X3.;
G40X10.Y30.;
Z2.;
G01X4.Y7.;
Z-2.975F30;
G41D02X10.046Y2.F100;
G03X14.259Y4.308R5.;
G02X29.Y0.R8.;
G03X41.R6.;
G03X21.Y20.R20.;
G01X-21.;
G03X-41.Y0R20.;
G03X-29.Y0R6.;
G02X-14.259Y4.308R8.;
G03X-10.046Y2.R5.;
G01X10.046;
G03X14.259Y4.308R5.;
G01G40X10.Y11.;
X-10.;
Z2.;
M98 P1000;
G51X0Y0I1000J-1000;
M98 P1000;
G51X0Y0I-1000J-1000;
M98 P1000;
G51X0Y0I-1000J1000;
M98 P1000;
G50;
G00Z50.;
X-100.Y100.;
M05;
M00;
G55; (打孔程序)
M03S600;
G00X0Y0Z20.;
X21.Y0;
G99G81Z-10.R2.F30;
X0Y-15.;
X-21.Y0;
G80;
G00Z50.;
X-100.Y100.;
M05;
M30;
子程序
O1000;(子程序)
G00X30.Y32.;
G01Z-7.F30;
G41D03X32.015Y35.455F100;
G03X27.985Y28.545R4.;
G01X39.985Y21.545;
G03X44.015Y28.455R4.;
G01X32.015Y35.455R4.;
G03X27.985Y28.545R4.;
G01G40X30.Y32.;
G01Z2.;
M99;
下篇完
总结一下
FANUC OI 铣床编程笔记,主要完整讲了系统准备操作,程序编写过程和毛坯切削过程,和一些注意事项。较为详细地从作者角度(或思想?),解决了图纸的模型切削。
点我回顶部 ☚
Fin.