F1634465 发表于 2026-4-21 11:11
看你的后处理就知道你连UG刀具库都不会用,就别说做后处理了。
上面那一段我都改的了你觉得区区刀库 我改不了吗
资源就是多
UG963569 发表于 2026-4-22 08:10
上面那一段我都改的了你觉得区区刀库 我改不了吗
别人想分享什么时别人的事,你要是觉得你牛逼你也可以发出来,不分享就别BB。
不会用啊,能不能搞个傻瓜版的
感谢分享
感觉像豆包干的活
您好大佬,用了你的刀单代码,为什么我的钻头角度输出前几把刀正常输出,后面角度输出就是0了?大佬解惑
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
jindewei 发表于 2026-4-25 10:35
#PB_CMD_TOOL_INFO
set outputthd 1
嗯 是有问题,我研究研究。
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"
}