文档库 最新最全的文档下载
当前位置:文档库 › ug后处理定制的命令

ug后处理定制的命令

ug后处理定制的命令
ug后处理定制的命令

在pd_cmd_custom_command(用户自定义)——定义命令

1.在程序的末尾加上加工的时间(注意字符间的空格,不能少也不能多)

global mom_machine_time

MOM_output_literal (运行时间:[ format %.2f $mom_machine_time]分钟)

最后效果:(运行时间:0.76分钟)

2.在程序末尾加上生成程序的时间

global mom_date

MOM_output_literal ";date is :$mom_date"

最后效果:;date is :Sat Jun 01 19:38:44 2013

3.加入刀具列表

# 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

}

#------------------

# Tool list header

#------------------

shop_doc_output_literal

"$co================================================================== =============================$ci"

shop_doc_output_literal "$co T O O L L I S T $ci"

shop_doc_output_literal

"$co================================================================== =============================$ci"

#------------------

# 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

}

#------------------

# Tool list footer

#------------------

shop_doc_output_literal

"$co================================================================== =============================$ci"

#-------------------------------------------------------------------------------

# 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

}

结果:

(===================================================================== ==========================)

( T O O L L I S T )

(===================================================================== ==========================)

(

)

(-----------------------------------------------------------------------------------------------)

(MILL DESCRIPTION DIAMETER COR RAD FLUTE LEN ADJ REG MACH TIME )

(-----------------------------------------------------------------------------------------------)

(D10 MILL 10.0000 0.0000 50.0000 0 0.16 )

(D6R3 MILL 6.0000 3.0000 50.0000 0 0.20 )

(D4 MILL 4.0000 0.0000 50.0000 0 0.23 )

(===================================================================== ==========================)

5.插入刀具详细信息

global mom_tool_name mom_tool_diameter mom_tool_corner1_radius mom_tool_number mom_tool_length mom_tool_flute_length

MOM_output_literal "(T_N:$mom_tool_name T_D:[ format "%.2f" $mom_tool_diameter] T_R:[ format "%.2f" $mom_tool_corner1_radius] T_NO.:$mom_tool_number T_L:[ format "%.2f" $mom_tool_length] T_F_L:[ format "%.2f" $mom_tool_flute_length] )"

效果:(T_N:D10 T_D:10.00 T_R:0.00 T_NO.:1 T_L:75.00 T_F_L:50.00 )

在运算程序消息

1.MOM_output_literal “( 刀具名称:$mom_tool_name )”

2.MOM_output_literal “( 刀具直径:$mom_tool_diameter )”

3.MOM_output_literal “( 刀具R角半径:$mom_tool_nose_radius )”

相关文档