攻牙一般分三菱的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即可。 不知道会不会说得有点乱,能看懂就好了。
|