Tualar 发表于 2026-1-7 01:09:33

手把手教你制作UG四五轴宏联动后处理(二十四)

#*******************计算Zrtcp*********************
set e1
set e2
set d1
set d2
set vz
set w1
if {!} {
    set s1 "-#102"
} elseif {!} {
      set s1 "#102"
    } else {
      if { == "0"} {
          if { == "0"} {
            if { == "0"} {
            if { == "0"} {
                if { == "0"} {
                  if { == "0"} {
                     set w1 ]
                   } else {
                     set w1
                     }
               } else {
                     set w1
                   }
               } else {
                   set w1
               }
             } else {
               set w1
               }
         } else {
               set w1
             }
      }
      if {$d1 != 0.0} {
          set s1
      } else {
            set s1 "NONE"
          }
      }
set w2
if {!} {
    set s2 "-#103"
} elseif {!} {
      set s2 "+#103"
    } else {
      if { == "0"} {
          if { == "0"} {
            if { == "0"} {
               if { == "0"} {
               if { == "0"} {
                   if { == "0"} {
                     set w2 ]
                   } else {
                     set w2
                     }
               } else {
                     set w2
                   }
               } else {
                   set w2
               }
             } else {
               set w2
               }
         } else {
               set w2
             }
      }
      if {$d2 > 0.0} {
          set s2
      } elseif {$d2 < 0.0} {
            set s2
          } else {
            set s2 "NONE"
            }
      }
set w4
if { == "0"} {
    if { == "0"} {
      if { == "0"} {
      if { == "0"} {
          set w4 ]
      } else {
            set w4
          }
      } else {
          set w4
      }
    } else {
      set w4
      }
}
if {$vz > 0.0} {
    set s4
} elseif {$vz < 0.0} {
      set s4
    } else {
      set s4 "NONE"
      }
if { && !} {
    set s $s1
} elseif {! && } {
      set s $s2
    } elseif { && } {
      set s
      } else {
          set s "NONE"
      }
if { && } {
    set sz " $s $s4]
} elseif {! && } {
      set sz $s4
    } elseif { && !} {
      set sz " $s]
      } else {
          set sz "0."
      }
return 1
}
return 0
点击确定。
7.在"程序和刀轨"选项卡中,选择左侧"工序结束序列"选项,在"刀轨结束"事件下添加G91 G28 Z0.行。
8.在"程序和刀轨"选项卡中,选择左侧"程序结束序列"选项:
(1).在"程序结束"事件下添加G91 G28 X0. Y0. M9行。
(2).在"程序结束"事件下的G91 G28 X0. Y0. M9行下面添加G91 G28 A0. M5行。
(3).在"程序结束"事件下的G91 G28 A0. M5行下面添加M30行。
(4).在"程序结束"事件下的M30行下面添加%行。
19.保存后处理文件。
10.立加四轴A转台宏联动后处理制作完成。

===========================
(六).制作卧加四轴B转台宏联动后处理:
===========================
1.打开NX后处理构造器,新建一个后处理。
2.输入后处理名称hmc_4x_rtcp_B,选中主后处理,后处理输出单位选择毫米,
   机床选择4轴带转台,控制器选择一般,点击确定。
3.在"机床"选项卡中,选择左侧"第四轴"选项,将"轴限制(度)->最大值"改成20,
"轴限制(度)->最小值"改成-110,轴限制可以根据具体机床设置。
   点击"选择轴->配置"按钮,将"第四轴转台->旋转平面"改成ZX,将"文字引导符"改成B,
   将"最大进给率(度/分)"改成1000,将"线性插值->旋转角度->默认公差"改成0.001,点击确定。
4.在"程序和刀轨"选项卡中,选择左侧"程序起始序列"选项,右侧出现"程序开始"事件页面:
(1).点击定制命令PB_CMD___log_revisions,输入如下TCL代码:
      #变量dpp_path_type用来判断工序刀路类型:三轴/定轴/四轴联动
      global dpp_path_type
      global dpp_flag
      set dpp_path_type "NONE"
      set dpp_flag 0
      点击确定。
(2).删除MOM_set_seq_on行。
(3).将G40 G17 G90 G71条目内容改成G17 G40 G80 G69 G49 G94 G90。
(4).在G17 G40 G80 G69 G49 G94 G90行下面添加定制命令行,
      输入名称PB_CMD_init_macro,输入以下TCL代码:
      MOM_output_literal "#101=#5261-#5241"
      MOM_output_literal "#102=#5262-#5242"
      MOM_output_literal "#103=#5263-#5243"
      点击确定。
5.在"程序和刀轨"选项卡中,选择左侧"工序起始序列"选项:
(1).将"刀轨开始"事件下的定制命令PB_CMD_start_of_operation_force_adress
      里面的内容改成如下TCL代码:
      global dpp_flag
      MOM_force once S M_spindle X Y Z fourth_axis fifth_axis F
      if { $dpp_flag != 0 } {
         MOM_output_literal "M1"
      }
      点击确定。
(2).在PB_CMD_start_of_operation_force_adress行下面添加操作员消息行,
      输入"工序: $mom_operation_name"(双引号无需输入),点击确定。
(3).复制"自动换刀"事件下的PB_CND_tool_change_force_adress行到"第一个刀具"事件下面。
(4).在"第一个刀具"事件下的PB_CND_tool_change_force_adress行下面添加MOM_set_seq_on行。
(5).在"第一个刀具"事件下的MOM_set_seq_on行下面添加T M6行。
(6).在"第一个刀具"事件下的T M6行下面添加MOM_set_seq_off行。   
(7).在"第一个刀具"事件下的MOM_set_seq_off行下面添加操作员消息行,
      输入"刀具: $mom_tool_name"(双引号无需输入),点击确定。
(8).在"第一个刀具"事件下的"刀具: $mom_tool_name"行下面添加备刀T行。
(9).将"自动换刀"事件下的G91 G28 Z0.行内容改成G91 G28 Z0. M9。
(10).在"自动换刀"事件下的G91 G28 Z0. M9行下面添加G91 G28 X0. Y0. M5行。
(11).在"自动换刀"事件下的T M6行上面添加MOM_set_seq_on行。
(12).在"自动换刀"事件下的T M6行下面添加MOM_set_seq_off行。
(13).在"自动换刀"事件下的MOM_set_seq_off行下面添加操作员消息行,
      输入"刀具: $mom_tool_name"(双引号无需输入),点击确定。
(14).在"自动换刀"事件下的"刀具: $mom_tool_name"行下面添加备刀T行。
(15).在"初始移动"事件下添加定制命令行,输入名称PB_CMD_detect_tool_path_type,
       编辑TCL代码如下:
       global dpp_flag
       global mom_tool_axis_type
       global mom_operation_type
       set dpp_flag 1
       if { ! } {
          set mom_tool_axis_type 0
       }
       if { $mom_tool_axis_type >= 2 && } {
         set dpp_path_type "4X"
      } else {
          set dpp_path_type "3X"
      }
      点击确定。
未完待续。。。。

topcam 发表于 2026-1-8 03:45:17

膜拜大神,求完整版文件分享。

yt72887218 发表于 2026-1-8 10:28:15

大师,我这也是报错,能否给个原原文件四轴A和四轴B

FGDFG99 发表于 2026-1-15 10:28:00

通过网盘分享的文件:发那科A轴立加RTCP宏联动后处理
链接: https://pan.baidu.com/s/1JYpkjaRF810hSlXMlnm3bQ?pwd=9989 提取码: 9989
大师你好!这是我根据你的步骤制造的后处理,老是有问题,输出的联动程序和定向程序都有问题,找不出原因;还出现UG12后处理可以输出,UG2412同一个刀路无法输出的情况。恳请大师帮忙看下

tombai691019 发表于 2026-1-15 10:56:58

本帖最后由 tombai691019 于 2026-1-15 10:58 编辑

FGDFG99 发表于 2026-1-15 10:28
通过网盘分享的文件:发那科A轴立加RTCP宏联动后处理
链接: https://pan.baidu.com/s/1JYpkjaRF810hSlXMlnm ...
刀补地址报警解决掉这个就可以输出了。在线性移动块去掉D1就可以输出了,如果想要保留,在加个条件。我也是找了好久才发现的

FGDFG99 发表于 2026-1-15 11:15:33

tombai691019 发表于 2026-1-15 10:56
刀补地址报警解决掉这个就可以输出了。在线性移动块去掉D1就可以输出了,如果想要保留,在加个条件。我也 ...

解决了这个问题还有其他问题,好像联动与定向加工判断也有问题,联动的时候被判定为定向加工,这个怎么解决

tombai691019 发表于 2026-1-15 11:44:51

FGDFG99 发表于 2026-1-15 11:15
解决了这个问题还有其他问题,好像联动与定向加工判断也有问题,联动的时候被判定为定向加工,这个怎么解 ...

这个需要改一下条件判断,反正联动方式就那几个,穷举法也解决了。

FGDFG99 发表于 2026-1-15 11:53:31

tombai691019 发表于 2026-1-15 11:44
这个需要改一下条件判断,反正联动方式就那几个,穷举法也解决了。

你把这种后处理调试好了吗?
页: [1]
查看完整版本: 手把手教你制作UG四五轴宏联动后处理(二十四)