没关系17 发表于 2026-6-24 13:47:11

怎么添加不同坐标后处理输出时会报警呢?

UG后处理,怎么固定一个进给率,厂里要求所有程序进给都是5000,具体现场会自己调整,还有另一个问题,后处理时怎么添加检测不同坐标后处理输出时会报警呢?比较粗心,会把不同坐标系的程序输出去加工,感谢能有大佬解答

1267 发表于 2026-6-24 15:53:19

      
#=============================================================
proc PB_CMD_custom_command_1 { } {
#=============================================================
    # 声明全局变量,包括各种报警状态标记
    global mom_operation_name_list mom_mcsname_attach_opr
    global mcs_alert_shown tool_speed_alert_shown
    global mom_tool_diameter mom_spindle_speed
    global mom_operation_name
   
    # 初始化报警状态标记(仅在第一次运行时)
    if {!} {
      set mcs_alert_shown 0
    }
    if {!} {
      set tool_speed_alert_shown 0
    }

    # 1. 多MCS检测
    if {!$mcs_alert_shown} {
      # 初始化存储MCS名称的列表
      set unique_mcs_list

      # 遍历当前后处理中的所有操作
      foreach op $mom_operation_name_list {
            # 获取每个操作所附着的MCS名称
            set current_mcs $mom_mcsname_attach_opr($op)
            # 如果这个MCS名称不在唯一列表中,则加入列表
            if { == -1 } {
                lappend unique_mcs_list $current_mcs
            }
      }

      # 检查唯一MCS列表中的数量
      if { > 1 } {
            # 组装报警信息
            set warning_msg "警告:程序组中包含多个不同的加工坐标系(MCS)!\n"
            append warning_msg "检测到的坐标系有:\n"
            foreach mcs $unique_mcs_list {
                append warning_msg "$mcs\n"
            }
            append warning_msg "请仔细检查刀路程序!"

            # 弹出对话框提示用户
            set user_choice
            
            # 标记为已报警,避免重复
            set mcs_alert_shown 1
            
            if { $user_choice != 1 } {
                # 用户选择中止
                MOM_abort "用户因多坐标系问题中止后处理"
            }
      }
    }

    # 2. 刀具直径和转速检测
    if {!$tool_speed_alert_shown} {
      # 检查当前操作的刀具直径和转速是否超标
      if { $mom_tool_diameter > 30 && $mom_spindle_speed > 6000 } {
            # 组装刀具转速报警信息
            set tool_msg "警告:刀具直径和转速不匹配!\n"
            append tool_msg "当前操作: $mom_operation_name\n"
            append tool_msg "刀具直径: mm (超过30mm)\n"
            append tool_msg "主轴转速: $mom_spindle_speed rpm (超过6000rpm)\n"
            append tool_msg "请检查刀具参数和转速设置!"

            # 弹出对话框提示用户
            set speed_choice
            
            # 标记为已报警,避免重复
            set tool_speed_alert_shown 1
            
            if { $speed_choice != 1 } {
                # 用户选择中止
                MOM_abort "用户因刀具转速问题中止后处理"
            }
      }
    }
}

wind10 发表于 2026-6-24 14:18:19

这个语句你在论坛一找一大堆

白色治愈之风 发表于 2026-6-24 14:51:00

不要读取软件里面的坐标系,强制G54,不管软件里面的夹具偏置设置多少,都不会输出,只输出G54

没关系17 发表于 2026-6-24 15:29:03

白色治愈之风 发表于 2026-6-24 14:51
不要读取软件里面的坐标系,强制G54,不管软件里面的夹具偏置设置多少,都不会输出,只输出G54 ...

这个意思是比如我新建个程序,但是坐标系不对,,就算在后处理上加语句强制G54,出来的程序位置也是不对的,我只想在后处理时,帮我检测一下如果几条程序处理出去时是不同坐标系的就报警提示

没关系17 发表于 2026-6-24 15:29:46

wind10 发表于 2026-6-24 14:18
这个语句你在论坛一找一大堆

好的,大哥,我找找看,谢谢解答

白色治愈之风 发表于 2026-6-24 15:41:12

没关系17 发表于 2026-6-24 15:29
这个意思是比如我新建个程序,但是坐标系不对,,就算在后处理上加语句强制G54,出来的程序位置也是不对 ...

那就搜一下判断语句吧。这个肯定可以。

没关系17 发表于 2026-6-24 15:44:20

白色治愈之风 发表于 2026-6-24 15:41
那就搜一下判断语句吧。这个肯定可以。

我看了别人的后处理可以做到,但是他的后处理是加密的,看不到里面门道

1267 发表于 2026-6-24 15:56:28

进给自己后处理构造器改强制输出5000就可以了

白色治愈之风 发表于 2026-6-24 15:56:40

如果所有的坐标系里面都是1,单独输出都是G54,但是这些位置都不同,这样可以检测吗。
页: [1] 2 3
查看完整版本: 怎么添加不同坐标后处理输出时会报警呢?