攻牙一般分三菱的F为牙距和FANUC的F为S*牙距的方式,而且FANUC一般要用到M29
首先,把两个系统的后处理做在一起的做法:
在公共循环里打开攻丝的自定义,在攻丝循环里加入一个新的地址M29 S,并删除F,自己定义个F地址:
M29按此设置:
M29 S的输出条件(F设置大于10,按FANUC方式输出):
global feed
if { $feed > 10. } {
return 1
} else {
return 0
}
F按此设置:
这样F可以输出小数。
然后在循环结束要加入如下定制命令:
MOM_force once S M_spindle X Y Z F R dwell cycle_step user_add user_add_1
G80取消循环后,再次循环,上面的地址都输出一次。
避免有的时候再循环时,缺少一切地址而报警或撞机的情况。
结果如下:
三菱的方式:
但是,以上方式有个不好的地方,就是NX显示的加工时间差距非常大(三菱方式)
从上面的图片可以看到攻牙要45分钟。如果你不在意这个的话,那按上面的方法做吧
===============================================
我自己用的方法:用G95和G94的切换,两个系统都通杀,NX的加工时间也不会出差
我的F来自牙距与S的乘积,我也不用M29
还有个攻牙加Q的问题:
有的用的是秒,有的用的是CAM(比如我)
用秒,把Q设置为可选,不然没设置秒要报警,然后输出和不输出效果如下:
第一个操作是在秒里设置的1.11,第二个操作没设置
如果是用CAM,那比较麻烦,没设置CAM也会输出0.001,大概这个样子吧
需要把攻牙循环设置两行,一行有Q的一行没有Q的,我个人分析是因为秒和CAM对应变量的数据类型有关吧
两行的输出条件为:
global mom_cycle_cam
if { [info exists mom_cycle_cam] && $mom_cycle_cam != 0} {
return 1
} else {
return 0
}
下一行的交换下 0和1即可。
不知道会不会说得有点乱,能看懂就好了。