一级士官
UID2176439
U币1
G币196
技术0
主题0
精华0
阅读权限30
注册时间2014-4-21
最后登录2022-11-10
在线时间17 小时
一级士官
|
# Place this custom command in either the start of program
# or the end of program event marker to generate a tool list
# in your NC file.
#
# The Shop Doc template file "pb_post_tool_list.tpl" distributed with
# Post Builder in "POSTBUILD/pblib/misc" directory can be copied
# to the "mach/resource/postprocessor" or "mach/resource/shop_docs" directory,
# in case that your UG runtime environment does not have access to the
# Post Builder installation.
#
# Accessing "pb_post_tool_list.tpl" in other location can also be accomplished
# by changing the code below titled "Generate tool list data" in this proc.
#
# The variable "mom_sys_tool_list_output_type" set in this proc allows you
# to select the type of tool list to be generated.
# The options are:
#
# "ORDER_IN_USE" - List tools used in the program in the order of operations.
# "ALL_UNIQUE" - List all unique tools once for each in the order of use.
# "GROUP_BY_TYPE" - List tools in groups of different tool types.
#
# The desired tool list type can be set by changing the code below.
# The default is set to "GROUP_BY_TYPE".
#
global mom_sys_tool_list_initialized
global mom_sys_tool_list_output_type
if { ![info exists mom_sys_tool_list_initialized] || !$mom_sys_tool_list_initialized } {
MOM_output_to_listing_device "proc PB_CMD_init_tool_list must be executed in the Start of Program before PB_CMD_create_tool_list is called."
return
}
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Set mom_sys_tool_list_output_type to the desired output fashion.
#
# "ORDER_IN_USE" - List tools used in the program in the order of operations.
# "ALL_UNIQUE" - List all unique tools once for each in the order of use.
# "GROUP_BY_TYPE" - List tools in groups of different tool types.
#
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# set mom_sys_tool_list_output_type "ORDER_IN_USE"
# set mom_sys_tool_list_output_type "ALL_UNIQUE"
set mom_sys_tool_list_output_type "GROUP_BY_TYPE"
global mom_sys_control_out mom_sys_control_in
global current_program_name
global mom_tool_number mom_tool_length_adjust_register mom_tool_name
#----------------------------------------------------------------------------
# Save info for the currently active tool in the program being post-prcessed
# before starting Shop Doc mechanism for tool list generation.
#----------------------------------------------------------------------------
if [llength [info commands PB_CMD_save_active_oper_tool_data] ] {
PB_CMD_save_active_oper_tool_data
}
#-----------------------------------------------------------
# Create tool list per selected top-level group.
# Group name is set to blank if no group has been selected.
#-----------------------------------------------------------
global mom_parent_group_name
if [info exists mom_parent_group_name] {
set current_program_name $mom_parent_group_name
} else {
set current_program_name ""
}
set ci " "
set co " "
if [info exists mom_sys_control_in] { set ci $mom_sys_control_in }
if [info exists mom_sys_control_out] { set co $mom_sys_control_out }
#*************************
# Generate tool list data
#*************************
set template_file pb_post_tool_list.tpl
global tcl_platform
if [string match "windows" $tcl_platform(platform)] {
set pb_lib_misc_dir [MOM_ask_env_var UGII_BASE_DIR]\\postbuild\\pblib\\misc\\
} else {
set pb_lib_misc_dir [MOM_ask_env_var UGII_BASE_DIR]/postbuild/pblib/misc/
}
set cam_post_dir [MOM_ask_env_var UGII_CAM_POST_DIR]
set cam_shop_doc_dir [MOM_ask_env_var UGII_CAM_SHOP_DOC_DIR]
if { [file exists ${pb_lib_misc_dir}${template_file}] } {
MOM_do_template_file ${pb_lib_misc_dir}${template_file}
} elseif { [file exists ${cam_post_dir}${template_file}] } {
MOM_do_template_file ${cam_post_dir}${template_file}
} elseif { [file exists ${cam_shop_doc_dir}${template_file}] } {
MOM_do_template_file ${cam_shop_doc_dir}${template_file}
} else {
MOM_output_to_listing_device "ERROR : Template file pb_post_tool_list.tpl is not found in the following directories: \n \n $pb_lib_misc_dir \n $cam_post_dir \n $cam_shop_doc_dir \n \n Tool list cannot be generated.\n"
return
}
#------------------
# Output tool list
#------------------
global tool_data_buffer
global mom_sys_tool_stack
switch $mom_sys_tool_list_output_type {
"ORDER_IN_USE" {
set tool_list $mom_sys_tool_stack(IN_USE)
}
"GROUP_BY_TYPE" {
set tool_list [concat $mom_sys_tool_stack(LATHE) $mom_sys_tool_stack(DRILL) $mom_sys_tool_stack(MILL)]
}
default {
set tool_list $mom_sys_tool_stack(ALL)
}
}
set prev_tool_type ""
foreach tool $tool_list {
set tool_type $tool_data_buffer($tool,type)
# Output tool type header if it changes.
if { ![string match "$tool_type" $prev_tool_type] } {
if { [info exists tool_data_buffer($tool_type,header)] && $tool_data_buffer($tool_type,header) != "" } {
shop_doc_output_literal "$tool_data_buffer($tool_type,header)"
}
}
if [info exists tool_data_buffer($tool,output)] {
shop_doc_output_literal "$tool_data_buffer($tool,output)"
}
set prev_tool_type $tool_type
}
#-------------------------------------------------------------------------------
# Restore info for the currently active tool in the program being post-prcessed.
#-------------------------------------------------------------------------------
if [llength [info commands PB_CMD_restore_active_oper_tool_data] ] {
PB_CMD_restore_active_oper_tool_data
}
|
|