前言:
问题描述
在数控加工中,除了必须有的数控加工轨迹信息外,刀具也是一个重要的内容,而刀具的编号可以在编程过程中写入,但往往有时候编程人员会忘记进行刀具编号,那么这个时候,如果通过后处理的判断可以自动生成刀具序号及刀具名称相关信息,并显示在程序头或其他文本中,将极大的有利于编程加工过程中的便捷性。
解决:
针对这个问题,可以在后置处理过程中,通过自定义程序,对刀具信息进行判断,并争对程序的执行顺序对刀具进行逐一编号。
后处理编程过程:
虽然不同数控厂商的变量设置形式不同,当后处理程序段逻辑思路类似,以下我们以西门子840D系统为例,进行编程验证:
TCL程序段
#=============================================================
proc PB_CMD_wjc_tool_number {
} {
#=============================================================
#2021/03/23 刀具编号
global mom_tool_number
global mom_tool_name
global custom_tool_number
global custom_tool_number_list
global custom_tool_name_list
global custom_tool_inf_list
global custom_tool_data_list
global custom_tool_number_default
#考虑刀具名称和刀具序号
if {
[lsearch -exact $custom_tool_name_list ${mom_tool_name}_$mom_tool_number] == "-1" } {
incr custom_tool_number_default
set custom_tool_number [expr $custom_tool_number_default - 1]
lappend custom_tool_name_list ${mom_tool_name}_$mom_tool_number
set custom_tool_number_list(${mom_tool_name}_$mom_tool_number) $custom_tool_number
}
}
#=============================================================
proc PB_CMD_wjc_tool_information {
} {
#=============================================================
global mom_tool_name
global mom_tool_number
global mom_tool_diameter
global mom_tool_corner1_radius
global mom_tool_point_angle
global mom_tool_pitch
global mom_tool_type
global custom_tool_name
global custom_tool_number
global custom_tool_diameter
global custom_tool_diameter_output
global custom_tool_radius
global custom_tool_radius_ouput
global custom_tool_corner1_radius
global custom_tool_point_angle
global custom_tool_pitch
global custom_tool_type
global custom_tool_type_list
global custom_tool_inf_list
global custom_tool_data_list
global RAD2DEG
set custom_tool_name [string toupper $mom_tool_name]
set custom_tool_type [string toupper $mom_tool_type]
set custom_tool_diameter [string trimright [string trimright [format %.3f $mom_tool_diameter] 0] .]
set custom_tool_radius [expr $mom_tool_diameter/2.0]
set custom_tool_radius