编程语言应用

首页 » 常识 » 预防 » 数控编程用一个G66指令带你轻松玩转一出
TUhjnbcbe - 2023/4/15 17:51:00
北京中科白瘕风刘云涛 https://myyk.familydoctor.com.cn/doctor/287519/

CNC机加大神千千万,大神的加工策略万万千,万能的老铁们,当你们要一次装夹多件进行加工时,你们一般是使用什么样的编程策略?

来看两张图:

图一图二

老铁们,如果是你,应该用什么策略来编程才最简单,调机也最方便呢?

这里介绍一种用G66指令进行平移或旋转拷贝加工的方法,也许不是最好的方法,但我觉得编程和调机还是相当实用的,故介绍给大家。

G66指令很少用到,许多朋友可能不熟,但G81指令,大家应该都不陌生。先看一段G81的代码:

G81X0Y0.Z-20R3.F.X10.X20.X30.G80

以上代码G81指令将对每一个X轴移动产生一个钻孔动作。G66也是一个模态指令,它的功能和钻孔循环类似:对每一个轴移动执行一种加工功能,只不过G66执行的是一个子程式功能,子程式可以是任意的加工功能模块。将以上G81加工改用G66编程可变成如下代码:

G66P注意,执行到这一行机床不会有动作,只有执行到下面的轴移动才会动作。X0.Y0.X10.X20.X30.G67O子程式的代码是G81Z-20.R3.F.G80M99

以上这两者的作用是等价的,都是钻4个深20的孔。但是,G66的功能要强大得多,如果O的代码是铣外形,则刚才那段代码将产生4次铣外形的加工拷贝。

我们回到上面加工24个零件的图1,假设T1号刀D50飞刀,T2号刀D5.0钻头,这两把刀加工单个零件正面时的程式如下:

T1M6G90G54.1P1X-30.Y0.S2M3G0B0G43H1Z25.M8Z3.G1Z0.F.X.G0Z25.M9M5G91G28Z0.M01T2M6G90G54.1P1X60.Y10.S1M3G0B0G43H2.Z25.M8G83Z-15.R3.Q3.5F.Y0.Y-10.G80M9M5G91G28Z0.M01M30

使用G66编程,则单个零件加工可以改成如下格式:

主程式T1M6G90G54.1P1X-30.Y0.S2M3G0B0G43H1Z25.M8G66PG54.1P1X-30.Y0.G67M9M5G91G28Z0.M01T2M6G90G54.1P1X60.Y10.S1M3G0B0G43H2.Z25.M8G66PG54.1P1X60.Y10.G67M9M5G91G28Z0.M01M30加工子程式OG90G0X-30.Y0.S2M3Z3.G1Z0.F.X.G0Z25.M99加工子程式OG90G0X60.Y0.S1M3G83Z-15.R3.Q3.5F.Y0.Y-10.G80M99

要加工一个面上的6件时,子程式内容不变,主程式改成以下这样就可实现(其中1夹位1个坐标系)

T1M6G90G54.1P1X-30.Y0.S2M3G0B0G43H1Z25.M8G66PG54.1P1X-30.Y0.G54.1P2X-30.Y0.G54.1P3X-30.Y0.G54.1P4X-30.Y0.G54.1P5X-30.Y0.G54.1P6X-30.Y0.G67M9M5G91G28Z0.M01T2M6G90G54.1P1X60.Y10.S1M3G0B0G43H2.Z25.M8G66PG54.1P1X60.Y10.G54.1P2X60.Y10.G54.1P3X60.Y10.G54.1P4X60.Y10.G54.1P5X60.Y10.G54.1P6X60.Y10.G67M9M5G91G28Z0.M01M30

要加工24件时(注意:因为要转角,主程式和子程式里的安全高度都要抬到工作台能转过去的高度),改成以下程式即可实现:

T1M6G90G54.1P1X-30.Y0.S2M3G0B0G43H1Z.M8G66PG54.1P1X-30.Y0.B0.G54.1P2X-30.Y0.B0.G54.1P3X-30.Y0.B0.G54.1P4X-30.Y0.B0.G54.1P5X-30.Y0.B0.G54.1P6X-30.Y0.B0.G54.1P7X-30.Y0.B0.G54.1P8X-30.Y0.B0.G54.1P9X-30.Y0.B0.G54.1P10X-30.Y0.B0.G54.1P11X-30.Y0.B0.G54.1P12X-30.Y0.B0.G54.1P13X-30.Y0.B0.G54.1P14X-30.Y0.B0.G54.1P15X-30.Y0.B0.G54.1P16X-30.Y0.B0.G54.1P17X-30.Y0.B0.G54.1P18X-30.Y0.B0.G54.1P19X-30.Y0.B0.G54.1P20X-30.Y0.B0.G54.1P21X-30.Y0.B0.G54.1P22X-30.Y0.B0.G54.1P23X-30.Y0.B0.G54.1P24X-30.Y0.B0.G67M9M5G91G28Z0.M01T2M6G90G54.1P1X60.Y10.S1M3G0B0G43H2.Z.M8G66PG54.1P1X60.Y10.B0.G54.1P2X60.Y10.B0.G54.1P3X60.Y10.B0.G54.1P4X60.Y10.B0.G54.1P5X60.Y10.B0.G54.1P6X60.Y10.B0.G54.1P7X60.Y10.B0.G54.1P8X60.Y10.B0.G54.1P9X60.Y10.B0.G54.1P10X60.Y10.B0.G54.1P11X60.Y10.B0.G54.1P12X60.Y10.B0.G54.1P13X60.Y10.B0.G54.1P14X60.Y10.B0.G54.1P15X60.Y10.B0.G54.1P16X60.Y10.B0.G54.1P17X60.Y10.B0.G54.1P18X60.Y10.B0.G54.1P19X60.Y10.B0.G54.1P20X60.Y10.B0.G54.1P21X60.Y10.B0.G54.1P22X60.Y10.B0.G54.1P23X60.Y10.B0.G54.1P24X60.Y10.B0.G67M9M5G91G28Z0.M01M30

通过以上修改,实现了循刀序原则对所有零件进行拷贝加工,但是对于调机还是不够方便,如果要跳过第10件的加工,则需要对每一把刀具程式内的G54.1P10XY用括号括起来,刀具很多时,修改起来也很麻烦。我们可以将所有的轴移动指令移出来单独成一个文件,并且每一个轴移动XY值全部用宏变量替代,然后再在G66之后用M98调用,功能不会改变,但程式却能大大简化:

T1M6#=-30.(下刀点用变量取代)#=0.G90G54.1P1X#Y#S2M3G0B0G43H1Z.M8G66PM98PG67M9M5G91G28Z0.M01T2M6#=60.(下刀点用变量取代)#=10.G90G54.1P1X#Y#S1M3G0B0G43H2.Z.M8G66PM98PG67M9M5G91G28Z0.M01M30轴移动指令移出来单独成一个文件,下刀点用宏变量替换OG54.1P1X#Y#B0.G54.1P2X#Y#B0.G54.1P3X#Y#B0.G54.1P4X#Y#B0.G54.1P5X#Y#B0.G54.1P6X#Y#B0.G54.1P7X#Y#B0.G54.1P8X#Y#B0.G54.1P9X#Y#B0.G54.1P10X#Y#B0.G54.1P11X#Y#B0.G54.1P12X#Y#B0.G54.1P13X#Y#B0.G54.1P14X#Y#B0.G54.1P15X#Y#B0.G54.1P16X#Y#B0.G54.1P17X#Y#B0.G54.1P18X#Y#B0.G54.1P19X#Y#B0.G54.1P20X#Y#B0.G54.1P21X#Y#B0.G54.1P22X#Y#B0.G54.1P23X#Y#B0.G54.1P24X#Y#B0.M99

这样程式是不是简化了许多,调机也变得方便了,当调首件时,只需打开文件,在G54.1P1X#Y#B0.后插入一行M99,就可以跳过所有刀具后面23件的加工。如果某一夹位,因夹位坏了不能装料,要跳过,也只需打开文件,将对应夹位的那一行用小括号括起来跳过所有刀具加工。

一出多加工,坐标系多,如果在机台后台设置坐标值,一不安全,二坐标系不够用时就没法搞了,所以一般将坐标设置放到NC文件里。比如正面加工调用文件设置P1到P24个坐标,侧面加工调用文件设置P1到P24个坐标系,这样坐标系就可以重复使用.

卧加机大多是双工作台以上的机器,将调台指令也放到坐标文件里,相当于工作台绑定坐标系,这样可以防止调错台出现撞机的现象.程式经过这样优化,最终得到比较完美的格式:

T1M6M98P(每次换刀后调用坐标设置,保证加工前坐标系都是最新修改的)#=-30.#=0.G90G54.1P1X#Y#S2M3G0B0G43H1Z.M8G66PM98PG67M9M5G91G28Z0.M01T2M6M98P(调用坐标设置)#=60.#=10.G90G54.1P1X#Y#S1M3G0B0G43H2.Z.M8G66PM98PG67M9M5G91G28Z0.M01M30坐标设置文件OM(调1号工作台指令,保证调1号台后就设置以下坐标值,防出错撞机)G10L20G54.1P1X-.Y-80.Z-.B0.G10L20G54.1P2X-.Y-.Z-.B0.G10L20G54.1P3X-.Y-.Z-.B0.G10L20G54.1P4X-.Y-.Z-.B0.G10L20G54.1P5X-.Y-.Z-.B0.G10L20G54.1P6X-.Y-.Z-.B0.G10L20G54.1P7X-.Y-80.Z-.B90.G10L20G54.1P8X-.Y-.Z-.B90.G10L20G54.1P9X-.Y-.Z-.B90.G10L20G54.1P10X-.Y-.Z-.B90.G10L20G54.1P11X-.Y-.Z-.B90.G10L20G54.1P12X-.Y-.Z-.B90.G10L20G54.1P13X-.Y-80.Z-.B.G10L20G54.1P14X-.Y-.Z-.B.G10L20G54.1P15X-.Y-.Z-.B.G10L20G54.1P16X-.Y-.Z-.B.G10L20G54.1P17X-.Y-.Z-.B.G10L20G54.1P18X-.Y-.Z-.B.G10L20G54.1P19X-.Y-80.Z-.B.G10L20G54.1P20X-.Y-.Z-.B.G10L20G54.1P21X-.Y-.Z-.B.G10L20G54.1P22X-.Y-.Z-.B.G10L20G54.1P23X-.Y-.Z-.B.G10L20G54.1P24X-.Y-.Z-.B.M99

以上是正面加工的举例,对于长方向两端面可以用同样的方法进行拷贝加工。

对于上面第二个图(一次加工40件),每一面的两排是相对倒转装夹的,则主程式可改成以下格式调用,即可实现相反的那一排的旋转拷贝。

T1M6M98P#=-30.#=0.G90G54.1P1X#Y#S2M3G0B0G43H1Z.M8G66PM98PG67G90G68X0Y0R.(另一排5件旋转度)G66PM98PG67G69M9M5G91G28Z0.M01T2M6M98P#=60.#=10.G90G54.1P1X#Y#S1M3G0B0G43H2.Z.M8G66PM98PG67G90G68X0Y0R.(另一排5件旋转度)G66PM98PG67G69M9M5G91G28Z0.M01M30

以上一出多加工方法,适用于3、4、5轴。

五轴一出多加工坐标

注意事项:G66与G67是一对一,即有几个G66,就要几个G67取消。

出G66

看完G66的方法,老铁们,有没有觉得用G66来实现一出多是最简捷的,一是编程简单,只需要编一个零件就可以了,二是调机方便快速,想加工几个就加工几个.如果你有更好的加工方法,欢迎分享讨论。

1
查看完整版本: 数控编程用一个G66指令带你轻松玩转一出