UG963569 发表于 2026-4-22 08:10:46

F1634465 发表于 2026-4-21 11:11
看你的后处理就知道你连UG刀具库都不会用,就别说做后处理了。

上面那一段我都改的了你觉得区区刀库 我改不了吗

mike8012* 发表于 2026-4-22 09:45:58

资源就是多

F1634465 发表于 2026-4-22 11:25:21

UG963569 发表于 2026-4-22 08:10
上面那一段我都改的了你觉得区区刀库 我改不了吗

别人想分享什么时别人的事,你要是觉得你牛逼你也可以发出来,不分享就别BB。

947888818 发表于 2026-4-22 17:48:57

不会用啊,能不能搞个傻瓜版的

agfas 发表于 2026-4-23 02:39:56

感谢分享

鸿海桥 发表于 2026-4-24 21:16:11

感觉像豆包干的活

jindewei 发表于 2026-4-25 10:34:44

您好大佬,用了你的刀单代码,为什么我的钻头角度输出前几把刀正常输出,后面角度输出就是0了?大佬解惑

jindewei 发表于 2026-4-25 10:35:40

jindewei 发表于 2026-4-25 10:34
您好大佬,用了你的刀单代码,为什么我的钻头角度输出前几把刀正常输出,后面角度输出就是0了?大佬解惑 ...

#PB_CMD_TOOL_INFO

set outputthd 1
global toollist mom_tool_cutcom_register mom_cutcom_adjust_register mom_tool_name mom_tool_diameter mom_tool_corner1_radius mom_tool_adjust_register mom_tool_adj_reg_defined mom_tool_number mom_tool_type
global mom_tool_taper_angle mom_tool_point_angle mom_tool_lower_corner_radius
global mom_sys_max_travel mom_sys_min_travel mom_machine_time
global ptp_file_name ino mom_group_name mom_output_file_suffix mom_output_file_basename

set tdi

#---------------------
# 安全读取角度变量(弧度转角度)
#---------------------
if {} {
    set angle_val
} elseif {} {
    set angle_val
} else {
    set angle_val 0
}

#---------------------
# 安全读取圆角变量(自动去尾零)
#---------------------
if {} {
    set r_val "0"]
} else {
    set r_val 0
}
if {} {
    set cr_val "0"]
} else {
    set cr_val 0
}

#---------------------
# 刀具号 / 补偿处理
#---------------------
if {
    set tt $mom_tool_number
} else {
    set tt 0
}
if {
    set th $mom_tool_adjust_register
} else {
    set th 0
}
if {
    set td $mom_tool_cutcom_register
} else {
    set td 0
}

set tt
set th
set td
set hhh $th

#---------------------
# 按刀具类型自动判断:R / A(你的核心逻辑)
#---------------------
if {$mom_tool_type == "Milling Tool-T Cutter"} {
    set r $cr_val
    set rr2 "R$r"
} elseif { != -1} {
    set angle $angle_val
    set rr2 "A"
} elseif { != -1} {
    set angle
    set rr2 "A"
} else {
    set r $r_val
    set rr2 "R$r"
}


#---------------------
# 输出刀具清单文件(干净规整)
#---------------------
set tool_lists_file_name ${ptp_file_name}_toollists
if {!} {
    set ino 1
    if {} {
      MOM_remove_file $tool_lists_file_name
    }
}

set tfile
if {$ino > 1} {
    puts $tfile "(    ZMAX= ZMIN=)"
}

set mom_sys_max_travel(2) -9999.999
set mom_sys_min_travel(2)9999.999

if {$outputthd == 1} {
    puts $tfile "(T$tt D$tdi $rr2 H$th D$td >$mom_tool_name)"
}

incr ino
close $tfile

F1634465 发表于 2026-4-25 19:00:31

jindewei 发表于 2026-4-25 10:35
#PB_CMD_TOOL_INFO

set outputthd 1


嗯 是有问题,我研究研究。

jindewei 发表于 2026-4-26 14:17:43

F1634465 发表于 2026-4-25 19:00
嗯 是有问题,我研究研究。

兄弟,我问了AI,给我改过来了,不过AI有的地方也搞不懂,我给你发个TCL语句,我想在每个换刀前的刀具信息那里,开了刀具补偿的工序输出D值,不开刀具补偿的工序就不输出D值,现在它是不管你有没有开刀具补偿都给你输出D值,您看看能不能帮忙改下,万分感谢
#---------------------
# 全局变量声明
#---------------------
global mom_tool_name
global mom_tool_diameter
global mom_tool_corner1_radius
global mom_tool_lower_corner_radius
global mom_tool_type
global mom_tool_number
global mom_tool_taper_angle
global mom_tool_point_angle
global mom_tool_adjust_register
global mom_tool_cutcom_register
global mom_tool_diameter_defined
global mom_tool_diameter_nominal

#---------------------
# 补偿号赋值
#-----------------------
set H_code $mom_tool_adjust_register

# 安全获取D_code
if { && $mom_tool_cutcom_register != ""} {
    set D_code $mom_tool_cutcom_register
} else {
    set D_code ""
}

#---------------------
# 安全获取刀具直径
#-----------------------
# 尝试多种方式获取刀具直径
if { && $mom_tool_diameter != ""} {
    set tool_dia $mom_tool_diameter
} elseif { && $mom_tool_diameter_nominal != ""} {
    set tool_dia $mom_tool_diameter_nominal
} elseif { && $mom_tool_diameter_defined != ""} {
    set tool_dia $mom_tool_diameter_defined
} else {
    # 如果没有直径参数,设置为0
    set tool_dia 0
}

# 改进的格式化函数
proc format_diameter {dia} {
    if {$dia == 0} {
      return "0"
    }

    # 尝试保留1位小数
    set formatted

    # 检查是否为整数
    if { < 0.0001} {
      # 是整数,直接输出整数部分
      return
    } elseif { < 0.0001} {
      # 是一位小数,去除尾部的0
      return 0]
    } else {
      # 多位小数,保留2位
      return 0]
    }
}

# 格式化刀具直径
if {$tool_dia != 0} {
    set formatted_dia
    # 确保不会出现空字符串
    if {$formatted_dia == ""} {set formatted_dia 0}
} else {
    set formatted_dia 0
}

#---------------------
# 判断是否输出D值
#-----------------------
set output_D_string ""

# 检查D_code是否存在且有效
if {$D_code != ""} {
    # 尝试转换为整数
    if {!}]} {
      if {$d_num > 0} {
            set output_D_string "D="
      }
    }
}

#---------------------
# 按刀具类型输出注释
#---------------------
if {$mom_tool_type eq "Milling Tool-T Cutter"} {
    # T型铣刀 - 使用下角半径
    if { && $mom_tool_lower_corner_radius != ""} {
      set cr_val 0]
      set cr_val
      if {$cr_val == ""} {set cr_val 0}
    } else {
      set cr_val 0
    }

    if {$output_D_string != ""} {
      MOM_output_literal "(T:$mom_tool_name D$formatted_dia R$cr_val H= $output_D_string)"
    } else {
      MOM_output_literal "(T:$mom_tool_name D$formatted_dia R$cr_val H=)"
    }
    set rr2 "R=$cr_val"

} elseif { != -1 || != -1} {
    # 钻头
    set current_angle 0
    if { && $mom_tool_taper_angle != ""} {
      set current_angle
    }
    if {$current_angle == 0 && && $mom_tool_point_angle != ""} {
      set current_angle
    }

    if {$output_D_string != ""} {
      MOM_output_literal "(T:$mom_tool_name D$formatted_dia A H= $output_D_string)"
    } else {
      MOM_output_literal "(T:$mom_tool_name D$formatted_dia A H=)"
    }
    set rr2 "A="

} elseif { != -1 || != -1} {
    # 倒角刀
    set current_angle 0
    if { && $mom_tool_taper_angle != ""} {
      set current_angle
    }
    if {$current_angle == 0 && && $mom_tool_point_angle != ""} {
      set current_angle
    }
    set angle

    if {$output_D_string != ""} {
      MOM_output_literal "(T:$mom_tool_name D$formatted_dia A H= $output_D_string)"
    } else {
      MOM_output_literal "(T:$mom_tool_name D$formatted_dia A H=)"
    }
    set rr2 "A="

} else {
    # 其他刀具
    if { && $mom_tool_corner1_radius != ""} {
      set r_val 0]
      set r_val
      if {$r_val == ""} {set r_val 0}
    } else {
      set r_val 0
    }

    if {$output_D_string != ""} {
      MOM_output_literal "(T:$mom_tool_name D$formatted_dia R$r_val H= $output_D_string)"
    } else {
      MOM_output_literal "(T:$mom_tool_name D$formatted_dia R$r_val H=)"
    }
    set rr2 "R=$r_val"
}
页: 1 2 3 [4] 5
查看完整版本: UG后处理刀具列表