home MFG News UG programming uses workshop document to output the solution of tool list information

UG programming uses workshop document to output the solution of tool list information

Use the (shopdoc_tool_list_text.TCL) file in the (X:Program FilesSiemensNX1926MACHresourceshop_doc) directory to output the tool list.

.The output effect has not been changed!

Make some simple changes to make the tool list more beautiful (maybe I have some misunderstandings about aesthetics!!!)

Upload the changed (shopdoc_tool_list_text.TCL) file by the way, and replace it with “back up the original file”.

Attachment download: shopdoc_tool_list_text.tcl

Code:

 

###############################################################################  #  #           S H O P D O C _  T O O L _ L I S T _ T E X T . T C L  #  ###############################################################################  #                                                                             #  # Copyright(c) 1999/2000/2001/2002/2003/2004/2005/2006  UGS PLM Solutions     #  # Copyright(c) 2007 ~ 2018,                             SIEMENS PLM Software  #  #                                                                             #  ###############################################################################  #  # DESCRIPTION:  #  #   This Tcl script produces a tools' list in text form from a selected object  #   on any view of the ONT.  #  ###############################################################################  #@<DEL>@ TEXT ENCLOSED WITHIN DELETE MARKERS WILL BE REMOVED UPON RELEASE.  # {  #==============================================================================  # Revisions:  #--------  # NX1847  #--------  # Jun-22-2018 gsl - Added utility commands (INFO, EXEC & PAUSE) to facilitate debug  #                 - Added MOM_QUERY_FAIL to avoid annoying warnings  #                 - Added use of Tool_List to avoid duplicate tools being output  #                 - Cleaned up unused codes  ###############################################################################  # }  set __Debug_Shopdoc 0  # TEXT ENCLOSED WITHIN DELETE MARKERS WILL BE REMOVED UPON RELEASE.    @<DEL>@  #  #------------------------------------------------------------------------------  # Here you should define any global variables that will be used in any one  # of the event handler.  #------------------------------------------------------------------------------  set mom_source_directory [MOM_ask_env_var UGII_CAM_SHOP_DOC_DIR]  source "$mom_source_directory/shopdoc_header.tcl"  set setup_header 0  set Tool_List(MILL)  [list]  set Tool_List(DRILL) [list]  set Tool_List(LATHE) [list]  set Tool_List(OTHER) [list]  array set Tool_Mill_array  [list]  array set Tool_Drill_array [list]  array set Tool_Lathe_array [list]

###The following is the milling cutter information and format
set Mill_var_list [list mom_tool_number mom_tool_name mom_tool_diameter
Mom_tool_corner1_radius mom_tool_flute_length mom_tool_length_adjust_register mom_tool_length_adjust_register] set Mill_format_list [list “%-3s” “%-10s” “%-6.3f” “%-8.3f” “” %-5.0f” %-6d” “%-7d” ] set Mill_title_list “”Tool number” ”Tool name” ”Tool diameter” ”Tool bottom fillet” ”Tool edge length” ”Tool length compensation” ”Tool radius compensation””
set Mill_title_format “format ”¦ %-3s¦ %-6s ¦ %-4s ¦ %-6s ¦ %-4s ¦ %-6s ¦ %-6s ¦””
set Mill_index 0

###The following is the drill bit information and format
set Drill_var_list [list mom_tool_number mom_tool_name mom_tool_diameter
Mom_tool_point_angle mom_tool_flute_length mom_tool_length_adjust_register] set Drill_format_list [list “%-3s” “%-10s” “%-6.3f” “%-9.3f” %-5.0f” %-5.0f” %-6d ¦”] set Drill_title_list “”Tool No.” ”Tool Name” ”Tool Diameter” ”Drill Bottom Angle” ”Blade Length” ”Tool Length Compensation””
set Drill_title_format “format ” ¦ %-3s ¦ %-6s ¦ %-4s ¦ %-6s ¦ %-4s ¦ %-6s ¦””

set Drill_index            0      ###The following is the information and format of the turning tool  set Lathe_var_list         [list mom_tool_name mom_tool_description mom_tool_nose_radius                                   tool_orient mom_tool_length_adjust_register]  set Lathe_format_list      [list "       %-13s" "%-10s" "%-12.3f" "%-12.3f" "%-12.3f" "%-10d"]  set Lathe_title_list       ""Tool name" "Tool type" "Tool diameter" "Tool bottom fillet" "Blade length" "Tool number (H)""  set Lathe_title_format     "format "%-20s %-30s %-10s %-15s %-10s""  set Lathe_index            0      #=============================================================================  proc INFO { args } {  #=============================================================================     if { [info exists ::__Debug_Shopdoc] && $::__Debug_Shopdoc } {        MOM_output_to_listing_device [join $args]     }  }  #=============================================================================  proc EXEC { command_string {__wait 1} } {  #=============================================================================  # This command can be used in place of the intrinsic Tcl "exec" command  # of which some problems have been reported under Win64 O/S and multi-core  # processors environment.  #  #  # Input:  #   command_string -- command string  #   __wait         -- optional flag  #                     1 (default)   = Caller will wait until execution is complete.  #                     0 (specified) = Caller will not wait.  #  # Return:  #   Results of execution  #     global tcl_platform       if { $__wait } {        if { [string match "windows" $tcl_platform(platform)] } {           global env mom_logname          # Create a temporary file to collect output           set result_file "$env(TEMP)/${mom_logname}__EXEC_[clock clicks].out"          # Clean up existing file           regsub -all {\} $result_file {/}  result_file           if { [file exists "$result_file"] } {              file delete -force "$result_file"           }           set cmd [concat exec $command_string > "$result_file"]           regsub -all {\} $cmd {\\} cmd           eval $cmd          # Return results & clean up temporary file           if { [file exists "$result_file"] } {              set fid [open "$result_file" r]              set result [read $fid]              close $fid              file delete -force "$result_file"             return $result           }        } else {           set cmd [concat exec $command_string]          return [eval $cmd]        }     } else {        if { [string match "windows" $tcl_platform(platform)] } {           set cmd [concat exec $command_string &]           regsub -all {\} $cmd {\\} cmd          return [eval $cmd]        } else {          return [exec $command_string &]        }     }  }  #=============================================================================  proc PAUSE { args } {  #=============================================================================  # Revisions:  #-----------  # 05-19-10 gsl - Use EXEC command  #     global env     if { [info exists env(PB_SUPPRESS_UGPOST_DEBUG)]  &&  $env(PB_SUPPRESS_UGPOST_DEBUG) == 1 } {    return     }       global gPB     if { [info exists gPB(PB_disable_MOM_pause)]  &&  $gPB(PB_disable_MOM_pause) == 1 } {    return     }       global tcl_platform     set cam_aux_dir  [MOM_ask_env_var UGII_CAM_AUXILIARY_DIR]     if { [string match "*windows*" $tcl_platform(platform)] } {        set ug_wish "ugwish.exe"     } else {        set ug_wish ugwish     }     if { [file exists ${cam_aux_dir}$ug_wish]  &&  [file exists ${cam_aux_dir}mom_pause.tcl] } {        set title ""        set msg ""        if { [llength $args] == 1 } {           set msg [lindex $args 0]        }        if { [llength $args] > 1 } {           set title [lindex $args 0]           set msg [lindex $args 1]        }        set command_string [concat "${cam_aux_dir}$ug_wish" "${cam_aux_dir}mom_pause.tcl" "$title" "$msg"]        set res [EXEC $command_string]          switch [string trim $res] {           no {              set gPB(PB_disable_MOM_pause) 1           }           cancel {              set gPB(PB_disable_MOM_pause) 1              uplevel #0 {                 if { [llength [info commands "MOM_abort_program"]] } {                    MOM_abort_program "*** User Abort Post Processing *** "                 } else {                    MOM_abort "*** User Abort Post Processing *** "                 }              }           }           default {              return           }        }     } else {        MOM_output_to_listing_device "PAUSE not executed -- "$ug_wish" or "mom_pause.tcl" not found"     }  }  #=============================================================================  proc MOM_QUERY_FAIL { } {  #=============================================================================  # This handler is triggered when an object does not satisfy the query (QRY) condition.  # It allows some variables to be unset.  #  # Jun-22-2018 gsl - Added this handler to prevent unnecessary warnings.  #  }  #=============================================================================  proc MOM_Start_Part_Documentation {} {  #=============================================================================     global mom_output_file_directory mom_output_file_basename     global mom_sys_output_file_suffix     set mom_sys_output_file_suffix "txt"     MOM_close_output_file ${mom_output_file_directory}${mom_output_file_basename}.${mom_sys_output_file_suffix}     file delete -force  ${mom_output_file_directory}${mom_output_file_basename}.${mom_sys_output_file_suffix}  }  #=============================================================================  proc MOM_End_Part_Documentation {} {  #=============================================================================    global Tool_Mill_array    global Tool_Drill_array    global Tool_Lathe_array    global Mill_title_list    global Drill_title_list    global Lathe_title_list    global Mill_title_format    global Drill_title_format    global Lathe_title_format    global Mill_index    global Drill_index    global Lathe_index  ####Output milling cutter format     if { [array size Tool_Mill_array] > 0 } {        MOM_output_literal "    "        MOM_output_literal "The following is a list of milling cutters:"        MOM_output_literal "------------------------------------------------------------------------------------"        set output_str $Mill_title_format        append output_str " "        append output_str $Mill_title_list        MOM_output_literal [eval $output_str]        MOM_output_literal "------------------------------------------------------------------------------------"        for { set i 0 } { $i < $Mill_index } { incr i } {           MOM_output_literal $Tool_Mill_array($i)           #MOM_output_literal " "        }        MOM_output_literal "------------------------------------------------------------------------------------"     }         if { [array size Tool_Drill_array] > 0 } {        MOM_output_literal "    "        MOM_output_literal "The following is a list of drill bits:"        MOM_output_literal "----------------------------------------------------------------------"        set output_str $Drill_title_format        append output_str " "        append output_str $Drill_title_list        MOM_output_literal [eval $output_str]        MOM_output_literal "----------------------------------------------------------------------"        for { set i 0 } { $i < $Drill_index } { incr i } {           MOM_output_literal $Tool_Drill_array($i)                   }        MOM_output_literal "----------------------------------------------------------------------"     }     if { [array size Tool_Lathe_array] > 0 } {        MOM_output_literal "    "        MOM_output_literal "The following is a list of turning tools:"        MOM_output_literal "-----------------------------------------------------------------------------------"        set output_str $Lathe_title_format        append output_str " "        append output_str $Lathe_title_list        MOM_output_literal [eval $output_str]        MOM_output_literal "-----------------------------------------------------------------------------------"        for { set i 0 } { $i < $Lathe_index } { incr i } {           MOM_output_literal $Tool_Lathe_array($i)           MOM_output_literal " "        }        MOM_output_literal "-----------------------------------------------------------------------------------"     }  }  #===============================================================================  proc MOM_SETUP_HDR {} {  #===============================================================================    global setup_header    # Calls the setup header     if { $setup_header  == 0}      {        Setup_Header_text        MOM_output_literal "                                  "        MOM_output_literal "                                  List of tools"                        set setup_header 1     }  }  #=============================================================================  proc MOM_SETUP_BODY {} {  #=============================================================================  }  #=============================================================================  proc MOM_SETUP_FTR {} {  #=============================================================================  }  #=============================================================================  proc  MOM_MEMBERS_HDR {} {  #=============================================================================  }  #=============================================================================  proc MOM_MEMBERS_FTR { } {  #=============================================================================  }  #===============================================================================  proc MOM_TOOL_BODY {} {  #===============================================================================    global mom_tool_name    global mom_tool_type    global mom_template_subtype    global mom_tool_diameter    global mom_tool_nose_radius    global mom_tool_length_adjust_register    global mom_tool_orientation    global mom_tool_corner1_radius    global mom_tool_point_angle    global mom_tool_flute_length    global mom_drive_point_diameter    global mom_tool_ug_type    global mom_tool_description    global Tool_Mill_array    global Tool_Drill_array    global Tool_Lathe_array    global mom_tool_number    global Mill_var_list    global Mill_format_list    global Mill_index    global Drill_var_list    global Drill_format_list    global Drill_index    global Lathe_var_list    global Lathe_format_list    global Lathe_index       MapToolType tool_type      #<Jun-22-2018 gsl> Skip tools already listed     if { [lsearch $::Tool_List($tool_type) $::mom_tool_name] < 0 } {        lappend ::Tool_List($tool_type) $::mom_tool_name     } else {  return     }       switch $tool_type      {        "MILL"  {                 # user defined tool. mom_tool_diameter is mom_drive_point_diameter                 if { $mom_tool_ug_type == 15 } {                     if { [info exists mom_drive_point_diameter] } {                         set mom_tool_diameter $mom_drive_point_diameter                     }                 }                 DOC_get_format_str Mill_var_list Mill_format_list output_str                 set Tool_Mill_array($Mill_index) [eval $output_str]                 incr Mill_index        }        "DRILL" {                 set pi [expr 2 * asin(1.0)]                 set mom_tool_point_angle [expr [expr 180 / $pi] *                                                   $mom_tool_point_angle]                 DOC_get_format_str Drill_var_list Drill_format_list output_str                 set Tool_Drill_array($Drill_index) [eval $output_str]                 incr Drill_index        }        "LATHE" {                 set mom_tool_orientation [expr [expr 180 / 3.14] *                                           $mom_tool_orientation]                 DOC_get_format_str Lathe_var_list Lathe_format_list output_str                 set Tool_Lathe_array($Lathe_index) [eval $output_str]                 incr Lathe_index        }     }  }  #==============================================================================  proc DOC_Start_Part_Documentation {} {  #==============================================================================    # Calls the shopdocs header     Open_Files     ShopDoc_Header_text  }  #==============================================================================  proc DOC_parse_excel_html_template_file {} {  #==============================================================================  }  #==============================================================================  proc DOC_prepare_folder {} {  #==============================================================================  }  #==============================================================================  proc DOC_get_format_str { VAR_LIST FORMAT_LIST OUTPUT_STR } {  #==============================================================================     upvar $VAR_LIST var_list     upvar $FORMAT_LIST format_list     upvar $OUTPUT_STR output_str     set output_str ""     # Check the length of var_list and format_list     if { [llength $var_list] != [llength $format_list] } { return }     set start_str "format ""     set end_str ""     set index 0     foreach var $var_list {        global $var        set fmt_str [lindex $format_list $index]        if { [info exists $var] } {           # there may be {"} in the value(such as second)           append end_str " ""           set tmp_value [set $var]           regsub -all """ $tmp_value "\"" tmp_value           append end_str $tmp_value           append end_str """           append start_str "$fmt_str "        } else {           append end_str " "--""           if [string match "*s" $fmt_str] {              append start_str "$fmt_str "           } else {              set dot_index [string first "." $fmt_str]              if { $dot_index != -1 } {                 set fmt_str [string range $fmt_str 0 [expr $dot_index -1]]              } else {                  set len [string length $fmt_str]                  set fmt_str [string range $fmt_str 0 [expr $len - 2]]              }              append start_str "$fmt_str" "s "           }        }        incr index     }     append output_str "$start_str" """ "$end_str"  }

Please keep the source and address of this article for reprinting:UG programming uses workshop document to output the solution of tool list information

Reprint Statement: If there are no special instructions, all articles on this site are original. Please indicate the source for reprinting.:Cnc Machine Wiki,Thanks

Leave a Reply

Your email address will not be published.