1
0

Initial commit

This commit is contained in:
2026-02-22 14:16:24 +01:00
commit 1692d191fa
3684 changed files with 10817616 additions and 0 deletions

View File

@@ -0,0 +1,157 @@
#############################################################################
# This is the definition file for machine tools with Genius as the database
#
#############################################################################
###############################################################################
# dbc_machine_ascii.def - DBC Event Handler for database stored as ascii file
###############################################################################
##############################################################################
# REVISIONS
# Date Who Reason
# 04-Dec-98 naveen & Initial
# binu
# 17-May-99 bill berg add lathe, wedm and mixed machine types
# 14-Jun-99 Joachim Meyer New DB_ID keywords due to new Format
# of the ASCII Data File
# 10-May-00 Satya Added new class MILLTURN
# 15-Jan-2004 rlm Add rigidity factor to database
# 22-Sep-2008 rlm Add GRAPHICS attribute so def file matches dat
# 17-Jul-2012 Thomas Schulz Change type identifier - make consistent with TC
# 23-Mar-2015 Paul Wilbrandt Add part_file_path to NX UI displays
# 12-May-2015 Jeremy Wight Add CLASS ROBOT
##############################################################################
DB_PREFIX "DB("
DB_SUFFIX ")"
ESS_PREFIX "ESS("
ESS_SUFFIX ")"
#############################################################################
# The DB_ALIAS of the library reference. It is mandatory that this DB_ALIAS
# appears in the alias list
#
#############################################################################
#############################################################################
# The list of DB_ALIAS
#
# DB_ALIAS <alias>
# {
# DB_ID < Attribute identifier defined in the ASCII Data File
# DB_ID_TYPE < Type of the identifier >
# d _ double
# i _ integer
# s _ string
# }
#
##############################################################################
DB_ALIAS libref
{
DB_ID LIBRF
DB_ID_TYPE s
}
DB_ALIAS Type
{
DB_ID T
DB_ID_TYPE s
}
DB_ALIAS Manufacturer
{
DB_ID MNF
DB_ID_TYPE s
}
DB_ALIAS Description
{
DB_ID DESCR
DB_ID_TYPE s
}
DB_ALIAS Control
{
DB_ID CNTR
DB_ID_TYPE s
}
DB_ALIAS config_file
{
DB_ID POST
DB_ID_TYPE s
}
DB_ALIAS rigidity
{
DB_ID RIGID
DB_ID_TYPE d
}
DB_ALIAS part_file_path
{
DB_ID GRAPHICS
DB_ID_TYPE s
}
LIBREF libref
#########################################################################
# The Class Hierarchy #
#########################################################################
CLASS MACHINE
{
TYPE test1
QUERY "[1] == [1]"
DIALOG Manufacturer
RSET libref Type Description Control Manufacturer config_file rigidity part_file_path
CLASS MILL
{
TYPE test2
QUERY "[DB(Type)] == [MDM0101]"
DIALOG Manufacturer
RSET libref Description Control Manufacturer rigidity
}
CLASS TURNMILL
{
TYPE test2
QUERY "[DB(Type)] == [MDM0104]"
DIALOG Manufacturer
RSET libref Description Control Manufacturer rigidity
}
CLASS LATHE
{
TYPE test2
QUERY "[DB(Type)] == [MDM0201]"
DIALOG Manufacturer
RSET libref Description Control Manufacturer rigidity
}
CLASS MILLTURN
{
TYPE test2
QUERY "[DB(Type)] == [MDM0204]"
DIALOG Manufacturer
RSET libref Description Control Manufacturer rigidity
}
CLASS WEDM
{
TYPE test2
QUERY "[DB(Type)] == [MDM0301]"
DIALOG Manufacturer
RSET libref Description Control Manufacturer rigidity
}
CLASS ROBOT
{
TYPE test2
QUERY "[DB(Type)] == [MDM0401]"
DIALOG Manufacturer
RSET libref Description Control Manufacturer rigidity
}
CLASS GENERIC
{
TYPE test2
QUERY "[DB(Type)] == [MDM0901]"
DIALOG Manufacturer
RSET libref Description Control Manufacturer rigidity
}
}

View File

@@ -0,0 +1,635 @@
###############################################################################
# dbc_machine_ascii.tcl - DBC Event Handler for database stored as ascii file
###############################################################################
##############################################################################
# REVISIONS
# Date Who Reason
# 04-Dec-98 binu & Initial
# naveen
# 24-Mar-99 Dave Yoon Remove source paths
# 11-Jun-99 Joachim Meyer New format of the data file
# (For description see .dat file)
# 17-Jun-99 Joachim Meyer Remove test file open
# 05-Jul-99 Joachim Meyer Use MOM_abort for error message
# Use MOM__boot for sourcing general tcl files
# Dummy procedure MOM__halt
# 28-Jul-99 Joachim Meyer Adapt Function ASC_load_data_file
# to modified interface
# 13-Oct-99 Joachim Meyer Add DBC_ask_library_values
# 15-Feb-01 Joachim Meyer Set dbc_mct_part_name for the
# machine model partfile name
# 29-Jan-02 Joachim Meyer Evaluate environment variable UGII_CAM_LIBRARY_MACHINE_DATA_DIR
# instead of UGII_CAM_LIBRARY_MACHINE_ASCII_DIR in order to
# locate the machine_database.dat file
# 10-Dec-02 Joachim Meyer Add env var UGII_CAM_LIBRARY_MACHINE_CONFIG_DIR to the file spec of
# the machine configuration file if no path information
# is specified in the library
# 15-Jan-2004 rlm Add ASC_output_head and support for rigidity
# 30-Jan-2004 rlm Move ASC_write to dbc_ascii_general
# 12-Feb-2004 rlm Add library revision information
# 25-jun-2004 JM Introduce dbc_machine_name variable and set it to libref
# 26-Jul-2005 JM Set machine name to description
# 20-Mar-2007 JM Improve retrieval of the machine config file specification,
# better error handling
# 14-Feb-2008 Thomas Schulz Add GRAPHICS Attribute for NX sample have different
# controllers for the same machine tool model
# 14-Mar-2008 JM Append .prt to the machine part name in the default case <libref>.prt
# 24-Sep-2008 rlm Use previous format record to build new one
# 29-May-2015 Paul Wilbrandt Add mct_cotroller and mct_type to ask in DBC_retrieve
##############################################################################
#
proc ASC_m_create_filename {env_var_name filename} \
{
#
# Creates a complete filename by evaluating an environment variable
# for the directory information
#
set env_var [MOM_ask_env_var $env_var_name]
if { $env_var == "" } \
{
set message "Can't read environment variable $env_var_name"
MOM_abort "\n $message"
}
set fname ""
set fname [append fname $env_var $filename]
return $fname
}
proc MOM__boot {} \
{
# source some general procedures
#
# dbc_ascii_general.tcl
#
set filename \
[ASC_m_create_filename "UGII_UG_LIBRARY_DIR" "dbc_ascii_general.tcl"]
if { [catch {source $filename}] == "1" } \
{
set message "Can't load .tcl file: $filename"
MOM_abort "\n $message"
}
### source /cam/v160/jm_mct/dbc_ascii_general.tcl
}
proc MOM__halt {} \
{
}
#---------------------------------------------
proc DBC_init_db {} \
{
global asc_debug
global asc_file_name
global dbc_part_units
global asc_units
#
# Global variables set by DBC for Input/Output
#
global dbc_lhs_exp
global dbc_rhs_exp
global dbc_relop
global dbc_query
global dbc_subqry1
global dbc_subqry2
global dbc_boolop
global dbc_class_name
global dbc_attr_count
global dbc_attr_id
global dbc_query_count
global dbc_libref
global dbc_var_list
global dbc_rididity
global dbc_machine_database_file_name
set dbc_lhs_exp ""
set dbc_rhs_exp ""
set dbc_relop ""
set dbc_query ""
set dbc_subqry1 ""
set dbc_subqry2 ""
set dbc_boolop ""
set dbc_class_name ""
set dbc_attr_count 0
set dbc_attr_id ""
set dbc_query_count 0
set dbc_libref ""
set dbc_var_list ""
set dbc_rigidity 1.0
set asc_debug 0
# Create the filename for the machine_database.dat
set env_var UGII_CAM_LIBRARY_MACHINE_DATA_DIR
set asc_file_name [ASC_m_create_filename "$env_var" "machine_database.dat"]
set dbc_machine_database_file_name $asc_file_name
# And load the file into memory
set ret_val \
[ASC_load_data_file $asc_file_name $asc_units(unknown) 0]
if { $ret_val == "1" } \
{
set message "Open error for UG/Library ASCII Data File: $asc_file_name"
set message "$message \n $asc_file_name"
MOM_abort "\n $message"
}
}
#---------------------------------------------
proc DBC_retrieve {} {
#---------------------------------------------
#
# global input
# ------------
global asc_debug
global dbc_libref
global dbc_retrieve_var_list
global dbc_rigidity
#
# global output
# -------------
#
# Path and filname of the MOM_post config file for this machine
global dbc_mom_post_config_file_name
#
# type, controller, manufacturer and description
global dbc_mct_type
set dbc_mct_type mct_unknown
global dbc_mct_controller
set dbc_mct_controller mct_unknown
global dbc_mct_manufacturer
set dbc_mct_manufacturer mct_unknown
global dbc_mct_description
set dbc_mct_description mct_unknown
# might be overwritten later by description
global dbc_machine_name
set dbc_machine_name $dbc_libref
#
# partfile name for machine graphics
#
global dbc_mct_part_name
if { $asc_debug == "1" } \
{
puts " =========================================="
puts " procedure DBC_retrieve for machine"
puts " libref -> $dbc_libref"
}
#
# Look for the desired libref
#
set found [ASC_array_search_machine $dbc_libref db_row]
if { $found == 2} \
{
set dbc_rigidity 1.0
return
}
# TS: use GRAPHICS attribute if available
# use libref if not available
set dbc_mct_part_name [ASC_ask_att_val GRAPHICS $db_row "" unknown flag]
if {$flag == 0} \
{
set dbc_mct_part_name ""
append dbc_mct_part_name $dbc_libref ".prt"
} \
else \
{
# check whether suffix prt is missing - if so add it.
if {[string first ".prt" $dbc_mct_part_name] < 0} \
{ append dbc_mct_part_name ".prt" }
}
#
# Ask the necessary attribute values
#
set dbc_mct_type \
[ASC_ask_att_val T $db_row "" unknown flag]
set dbc_mct_controller \
[ASC_ask_att_val CNTR $db_row "" unknown flag]
set dbc_mct_manufacturer \
[ASC_ask_att_val MNF $db_row "" unknown flag]
set dbc_mct_description \
[ASC_ask_att_val DESCR $db_row "" unknown flag]
#
if { [string compare $dbc_mct_description "unknown"] != 0 } \
{
set dbc_machine_name $dbc_mct_description
}
set dbc_rigidity \
[ASC_ask_att_val RIGID $db_row "%g" unknown flag]
#
# Configuration file name for list of post/MTD
#
set db_file_name \
[ASC_ask_att_val POST $db_row "" "" flag]
set dbc_mom_post_config_file_name [create_config_file_name $db_file_name]
if { $dbc_mom_post_config_file_name == "" } \
{
if { $db_file_name == "" } \
{
set message_1 " \n Cannot find configuration file (.dat) for the machine."
} \
else \
{
set message_1 " \n Cannot find configuration file ($db_file_name) for the machine."
}
set message_2 " \n Check the environment variable settings for "
set message_3 " \n UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR or UGII_CAM_LIBRARY_MACHINE_CONFIG_DIR"
set message_4 " \n The system tries to locate the file using either "
set message_5 " \n \$\{UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR\}<libref> or"
set message_6 " \n \$\{UGII_CAM_LIBRARY_MACHINE_CONFIG_DIR\}. "
set message_7 " \n You can specify the name of the file in the DB attribute POST or"
set message_8 " \n the system uses <libref>.dat."
set message ""
append message $message_1 \
$message_2 \
$message_3 \
$message_4 \
$message_5 \
$message_6 \
$message_7 \
$message_8
MOM_abort $message
}
}
proc create_config_file_name { db_file_name } \
{
#
#
#
# global input
global dbc_libref
if { [string first "\\" $db_file_name] >= 0 || \
[string first "/" $db_file_name] >= 0 || \
[string first "\$\{" $db_file_name] >= 0} \
{
#
# path information in file specification --> take it as is
return $db_file_name
}
#
# create the path information, new and old
set file_name_ret [create_file_name_new $db_file_name]
if { $file_name_ret == "" } \
{
set file_name_ret [create_file_name_old $db_file_name]
}
return $file_name_ret
}
proc create_file_name_new { db_file_name } \
{
#
# procedure creates a complete file name where the machine config .dat file
# is located using the new MACH machine management structure which is based
# on the env setting UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR
#
#
# global input
global dbc_libref
global tcl_platform
set base_directory [MOM_ask_env_var UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR]
if { $base_directory == "" } \
{ # no chance to determine path info
return ""
}
# needed later
set separator "/"
if { $tcl_platform(platform) == "windows" } \
{
set separator "\\"
}
# concatenate the actual machine directory name with the base directory name
# the machine directory is based on the libref
if { $db_file_name == "" } \
{ # try with libref but without revision
set actual_file_name ""
append actual_file_name $dbc_libref ".dat"
} \
else \
{ # try with the specified file name
set actual_file_name $db_file_name
}
set test_success [test_file_in_directory $base_directory \
$dbc_libref \
$separator \
$actual_file_name]
set file_name_ret ""
if { $test_success == 1 } \
{
append file_name_ret \
"\$\{UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR\}" $dbc_libref $separator $actual_file_name
}
return $file_name_ret
}
proc create_file_name_old { db_file_name } \
{
#
# procedure creates a complete file name where the machine config .dat file
# is located using the old MACH machine management structure
#
#
# global input
global dbc_libref
set directory [MOM_ask_env_var UGII_CAM_LIBRARY_MACHINE_CONFIG_DIR]
if { $directory == "" } \
{ # no chance to determine path info
return ""
}
set test_file_name ""
if { $db_file_name == "" } \
{
# no file name in database, go with the libref
set actual_file_name ""
append actual_file_name $dbc_libref ".dat"
} \
else \
{
# take the file name as specified in the database
set actual_file_name $db_file_name
}
set test_file_name ""
append test_file_name $directory $actual_file_name
set file_name_ret ""
if { [file exists $test_file_name] } \
{
# we return the version with the unresolved env variable
append file_name_ret \
"\$\{UGII_CAM_LIBRARY_MACHINE_CONFIG_DIR\}" $actual_file_name
}
return $file_name_ret
}
proc test_file_in_directory { base_dir actual_dir separator file } \
{
set test_file_name ""
append test_file_name $base_dir $actual_dir $separator $file
if { [file exists $test_file_name] } \
{
return 1
}
return 0
}
proc ASC_array_search_machine { libref db_row_ref } \
{
upvar $db_row_ref db_row
global asc_file_name
set found [ASC_array_find_object_by_att LIBRF $libref db_row ]
if { $found == 2 } \
{
set message "Error retrieving machine data from external library."
set message "$message \n Machine with the library reference $libref"
set message "$message \n does not exist in the"
set message "$message \n ASCII Data File(s):"
set message "$message \n $asc_file_name"
MOM_log_message "\n $message"
}
return $found
}
proc DBC_ask_library_values {} \
{
#
# global input
global dbc_libref
global dbc_db_ids_count
global dbc_db_ids
#
# global output
global dbc_db_ids_value
#
# Look for the desired libref
#
ASC_array_search_machine $dbc_libref db_row
#
# and set the desired values
#
for { set inx 0 } { $inx < $dbc_db_ids_count } { incr inx } \
{
set dbc_db_ids_value($dbc_db_ids($inx)) \
[ASC_ask_att_val $dbc_db_ids($inx) $db_row "" "" flag]
}
}
#---------------------------------------------
proc DBC_translate_att_alias {} {
#---------------------------------------------
ASC_translate_att_alias
}
#---------------------------------------------
proc DBC_create_criterion {} {
#---------------------------------------------
ASC_create_criterion
}
#---------------------------------------------
proc DBC_create_query {} {
#---------------------------------------------
ASC_create_query
}
#---------------------------------------------
proc DBC_execute_query {} {
#---------------------------------------------
ASC_execute_query
}
#---------------------------------------------
proc DBC_execute_query_for_count {} {
#---------------------------------------------
ASC_execute_query_for_count
}
#------------------------------------------------------------------------
proc DBC_write { } {
#------------------------------------------------------------------------
global asc_database_name
set asc_database_name "machine_database.dat"
ASC_write
}
#---------------------------------------------------------------------
proc ASC_output_header { fileid } {
#---------------------------------------------------------------------
global dbc_attr_count
global dbc_attr_aliases
global dbc_attr_id
global dbc_logname
global asc_database_fmt
set daytime [clock seconds]
set out_daytime [clock format $daytime -format "%a %b %d %Y %I:%M %p"]
set headerMessage "###############################################################################
# machine_database.dat - database file for machine database stored as ascii file
###############################################################################
#############################################################################
## Data file for the Machine tool
##
##
## REVISED:
## $dbc_logname $out_daytime
##
## The following key words for Attribute ids are defined
##
## LIBRF - unique record identifier
## T - Machine type - MDM0101 -Mill machines
## - MDM0104 -TurnMill machines
## - MDM0201 -Lathe machines
## - MDM0204 -MillTurn machines
## - MDM0301 -Wedm machines
## - MDM0901 -Generic machines
##
## MNF - Manufacturer
## DESCR - Short description ( for example 3 Axis Mill)
## CNTR - indicating the controller of the machine
##
## POST - the configuration file name with the list of
## postprocessors for this machine
## (The path will be found from the search path environment variable)
## RIGID - Rigidity factor to apply to data from the machining data library
## This will normally be a number less than or equal to 1.0
## GRAPHICS- Geometry of the main machine tool prt file including full path
##
##############################################################################"
puts $fileid "$headerMessage"
# load the database structure
DBC_load_rset_data
# output FORMAT line
# As long as there is only one FORMAT line in the library file we
# can use that one and skip rebuilding it
set format_line "FORMAT"
set format_line "$format_line $asc_database_fmt(0)"
# for {set i 0} {$i < $dbc_attr_count} {incr i} \
# {
# DBC_ask_attr_id $dbc_attr_aliases($i)
# set format_line "$format_line $dbc_attr_id"
# }
puts $fileid $format_line
puts $fileid "#--------------------------------------------------------------------------------"
}

View File

@@ -0,0 +1,119 @@
###############################################################################
# machine_database.dat - database file for machine database stored as ascii file
###############################################################################
#############################################################################
## Data file for the Machine tool
##
##
## The following key words for Attribute ids are defined
##
## LIBRF - unique record identifier
## T - Machine type - MDM0101 -Mill machines
## - MDM0104 -TurnMill machines
## - MDM0201 -Lathe machines
## - MDM0204 -MillTurn machines
## - MDM0301 -Wedm machines
## - MDM0401 -Robot machines
## - MDM0901 -Generic machines
##
## MNF - Manufacturer
## DESCR - Short description ( for example 3 Axis Mill)
## CNTR - indicating the controller of the machine
##
## POST - the configuration file name with the list of
## postprocessors for this machine
## (The path will be found from the search path environment variable)
## RIGID - Rigidity factor to apply to data from the machining data library
## This will normally be a number less than or equal to 1.0
## GRAPHICS- Geometry of the kinematic machine tool prt file
## (The full path needs to be included)
##
##############################################################################
#
##############################################################################
#
FORMAT LIBRF T DESCR CNTR MNF POST RIGID GRAPHICS
#--------------------------------------------------------------------------------
DATA|Null Machine|MDM0901|Null Machine|None|-|${UGII_CAM_POST_DIR}template_post.dat|1.000000|
DATA|ABB_IRB_6640_235_255|MDM0401|6-Ax robot with positioner|ABB RAPID|ABB|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}ABB_IRB_6640_235_255/ABB_IRB_6640_235_255.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}ABB_IRB_6640_235_255/graphics/ABB_IRB_6640_235_255
DATA|ABB_IRB_6640_235_255_MW|MDM0401|6-Ax robot, mounted workpiece|ABB RAPID|ABB|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}ABB_IRB_6640_235_255_MW/ABB_IRB_6640_235_255_MW.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}ABB_IRB_6640_235_255_MW/graphics/ABB_IRB_6640_235_255_MW
DATA|ABB_IRB_7600_23_500_on_rail|MDM0401|6-Ax robot on rail|ABB RAPID|ABB|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}ABB_IRB_7600_23_500_on_rail/ABB_IRB_7600_23_500_on_rail.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}ABB_IRB_7600_23_500_on_rail/graphics/ABB_IRB_7600_23_500_on_rail
DATA|kuka_kr300_r2500|MDM0401|6-Ax robot|KUKA SINUMERIK|KUKA|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}kuka_kr300_r2500/kuka_kr300_r2500.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}kuka_kr300_r2500/graphics/kuka_kr300_r2500
DATA|kuka_kr300_r2500_on_rail|MDM0401|6-Ax robot on rail|KUKA KRL|KUKA|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}kuka_kr300_r2500_on_rail/kuka_kr300_r2500_on_rail.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}kuka_kr300_r2500_on_rail/graphics/kuka_kr300_r2500_on_rail
DATA|kuka_kr300_r2500_on_rail_sinumerik|MDM0401|6-Ax robot on rail|KUKA SINUMERIK|KUKA|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}kuka_kr300_r2500_on_rail/kuka_kr300_r2500_on_rail_sinumerik.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}kuka_kr300_r2500_on_rail/graphics/kuka_kr300_r2500_on_rail_sinumerik
DATA|Fanuc_R_2000iB_210F|MDM0401|6-Ax robot|FANUC RJ|FANUC|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}Fanuc_R_2000iB_210F/Fanuc_R_2000iB_210F.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}Fanuc_R_2000iB_210F/graphics/Fanuc_R_2000iB_210F
DATA|KUKA_KR60_L30_2X_POSITIONER_DKP400|MDM0401|6-Axis_Robot_2_A_Positioner|KUKA KRL|KUKA|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}KUKA_KR60_L30_2X_POSITIONER_DKP400/KUKA_KR60_L30_2X_POSITIONER_DKP400.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}KUKA_KR60_L30_2X_POSITIONER_DKP400/graphics/KUKA_KR60_L30_2X_POSITIONER_DKP400
DATA|KUKA_KR60_L30_2X_POSITIONER_DKP400_sinumerik|MDM0401|6-Axis_Robot_2_A_Positioner|KUKA SINUMERIK|KUKA|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}KUKA_KR60_L30_2X_POSITIONER_DKP400/KUKA_KR60_L30_2X_POSITIONER_DKP400_sinumerik.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}KUKA_KR60_L30_2X_POSITIONER_DKP400/graphics/KUKA_KR60_L30_2X_POSITIONER_DKP400_sinumerik
DATA|STAUBLI_RX160-HB|MDM0401|STAUBLI 6-Ax robot |ABB RAPID|ABB|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}STAUBLI_RX160-HB/STAUBLI_RX160-HB.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}STAUBLI_RX160-HB/graphics/STAUBLI_RX160-HB
DATA|YASKAWA_MH280II_piece|MDM0401|6-Ax robot|YASKAWA INFORM|YASKAWA|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}YASKAWA_MH280II_piece/YASKAWA_MH280II_piece.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}YASKAWA_MH280II_piece/graphics/YASKAWA_MH280II_piece
DATA|KUKA_MULTI|MDM0401|2 6-Axes robots on rail|KUKA KRL|KUKA|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}KUKA_MULTI/KUKA_MULTI.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}KUKA_MULTI/graphics/KUKA_MULTI
DATA|KUKA_MULTI_SINUMERIK|MDM0401|2 6-Axes robots on rail|KUKA SINUMERIK|KUKA|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}KUKA_MULTI/KUKA_MULTI_sinumerik.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}KUKA_MULTI/graphics/KUKA_MULTI_sinumerik
# New machine tools OOTB Content PostConfigurator
DATA|sim01_mill_3ax_fanuc|MDM0101|3-Ax_Mill_Vertical Post Configurator metric&inch|Fanuc|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim01_mill_3ax/sim01_mill_3ax_fanuc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim01_mill_3ax/graphics/sim01_3ax_mill_toolmag
DATA|sim01_mill_3ax_tnc|MDM0101|3-Ax_Mill_Vertical Post Configurator metric&inch|HeidenhainTNC|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim01_mill_3ax/sim01_mill_3ax_tnc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim01_mill_3ax/graphics/sim01_3ax_mill_toolmag
DATA|sim01_mill_3ax_sinumerik|MDM0101|3-Ax_Mill_Vertical Post Configurator metric&inch|Sinumerik|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim01_mill_3ax/sim01_mill_3ax_sinumerik.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim01_mill_3ax/graphics/sim01_3ax_mill_toolmag
DATA|sim01_mill_3ax_generic|MDM0101|3-Ax_Mill_Vertical Post Configurator metric&inch|Generic|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim01_mill_3ax/sim01_mill_3ax_generic.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim01_mill_3ax/graphics/sim01_3ax_mill
DATA|sim02_mill_3ax_fanuc|MDM0101|3-Ax_Mill_Horizontal Post Configurator metric&inch|Fanuc|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim02_mill_3ax/sim02_mill_3ax_fanuc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim02_mill_3ax/graphics/sim02_mill_3ax
DATA|sim02_mill_3ax_tnc|MDM0101|3-Ax_Mill_Horizontal Post Configurator metric&inch|HeidenhainTNC|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim02_mill_3ax/sim02_mill_3ax_tnc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim02_mill_3ax/graphics/sim02_mill_3ax
DATA|sim02_mill_3ax_sinumerik|MDM0101|3-Ax_Mill_Horizontal Post Configurator metric&inch|Sinumerik|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim02_mill_3ax/sim02_mill_3ax_sinumerik.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim02_mill_3ax/graphics/sim02_mill_3ax
DATA|sim03_mill_4ax_fanuc|MDM0101|4-Ax_Mill_Horizontal_B-Table Post Configurator metric&inch|Fanuc|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim03_mill_4ax/sim03_mill_4ax_fanuc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim03_mill_4ax/graphics/sim03_mill_4ax
DATA|sim03_mill_4ax_tnc|MDM0101|4-Ax_Mill_Horizontal_B-Table|HeidenhainTNC Post Configurator metric&inch|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim03_mill_4ax/sim03_mill_4ax_tnc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim03_mill_4ax/graphics/sim03_mill_4ax
DATA|sim03_mill_4ax_sinumerik|MDM0101|4-Ax_Mill_Horizontal_B-Table Post Configurator metric&inch|Sinumerik|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim03_mill_4ax/sim03_mill_4ax_sinumerik.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim03_mill_4ax/graphics/sim03_mill_4ax
DATA|sim04_mill_4ax_fanuc|MDM0101|4-Ax_Mill_Vertical_A-Table Post Configurator metric&inch|Fanuc|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim04_mill_4ax/sim04_mill_4ax_fanuc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim04_mill_4ax/graphics/sim04_mill_4ax
DATA|sim04_mill_4ax_tnc|MDM0101|4-Ax_Mill_Vertical_A-Table Post Configurator metric&inch|HeidenhainTNC|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim04_mill_4ax/sim04_mill_4ax_tnc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim04_mill_4ax/graphics/sim04_mill_4ax
DATA|sim04_mill_4ax_sinumerik|MDM0101|4-Ax_Mill_Vertical_A-Table Post Configurator metric&inch|Sinumerik|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim04_mill_4ax/sim04_mill_4ax_sinumerik.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim04_mill_4ax/graphics/sim04_mill_4ax
DATA|sim05_mill_5ax_fanuc|MDM0101|5-Ax_Mill_Gantry_AC-Head Post Configurator metric&inch|Fanuc|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim05_mill_5ax/sim05_mill_5ax_fanuc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim05_mill_5ax/graphics/sim05_mill_5ax
DATA|sim05_mill_5ax_tnc|MDM0101|5-Ax_Mill_Gantry_AC-Head|HeidenhainTNC Post Configurator metric&inch|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim05_mill_5ax/sim05_mill_5ax_tnc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim05_mill_5ax/graphics/sim05_mill_5ax
DATA|sim05_mill_5ax_sinumerik|MDM0101|5-Ax_Mill_Gantry_AC-Head Post Configurator metric&inch|Sinumerik|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim05_mill_5ax/sim05_mill_5ax_sinumerik.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim05_mill_5ax/graphics/sim05_mill_5ax
DATA|sim05_mill_5ax_okuma|MDM0101|5-Ax Mill Gantry AC-Head_PC Post Configurator metric&inch|Okuma|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim05_mill_5ax/sim05_mill_5ax_okuma.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim05_mill_5ax/graphics/sim05_mill_5ax
DATA|sim06_mill_5ax_fanuc|MDM0101|5-Ax_Mill_Vertical_BC-Table_Offset Post Configurator metric&inch|Fanuc|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim06_mill_5ax/sim06_mill_5ax_fanuc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim06_mill_5ax/graphics/sim06_mill_5ax
DATA|sim06_mill_5ax_tnc|MDM0101|5-Ax_Mill_Vertical_BC-Table_Offset Post Configurator metric&inch|HeidenhainTNC|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim06_mill_5ax/sim06_mill_5ax_tnc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim06_mill_5ax/graphics/sim06_mill_5ax
DATA|sim06_mill_5ax_sinumerik|MDM0101|5-Ax_Mill_Vertical_BC-Table_Offset Post Configurator metric&inch|Sinumerik|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim06_mill_5ax/sim06_mill_5ax_sinumerik.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim06_mill_5ax/graphics/sim06_mill_5ax
DATA|sim07_mill_5ax_fanuc|MDM0101|5-Ax_Mill_Vertical_B-Head_C-Table Post Configurator metric&inch|Fanuc|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim07_mill_5ax/sim07_mill_5ax_fanuc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim07_mill_5ax/graphics/sim07_mill_5ax
DATA|sim07_mill_5ax_tnc|MDM0101|5-Ax_Mill_Vertical_B-Head_C-Table Post Configurator metric&inch|HeidenhainTNC|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim07_mill_5ax/sim07_mill_5ax_tnc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim07_mill_5ax/graphics/sim07_mill_5ax
DATA|sim07_mill_5ax_sinumerik|MDM0101|5-Ax_Mill_Vertical_B-Head_C-Table Post Configurator metric&inch|Sinumerik|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim07_mill_5ax/sim07_mill_5ax_sinumerik.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim07_mill_5ax/graphics/sim07_mill_5ax
DATA|sim08_mill_5ax_fanuc|MDM0101|5-Ax_Mill_Vertical_AC-Table Post Configurator metric&inch|Fanuc|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim08_mill_5ax/sim08_mill_5ax_fanuc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim08_mill_5ax/graphics/sim08_mill_5ax
DATA|sim08_mill_5ax_tnc|MDM0101|5-Ax_Mill_Vertical_AC-Table Post Configurator metric&inch|HeidenhainTNC|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim08_mill_5ax/sim08_mill_5ax_tnc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim08_mill_5ax/graphics/sim08_mill_5ax
DATA|sim08_mill_5ax_sinumerik|MDM0101|5-Ax_Mill_Vertical_AC-Table Post Configurator metric&inch|Sinumerik|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim08_mill_5ax/sim08_mill_5ax_sinumerik.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim08_mill_5ax/graphics/sim08_mill_5ax
DATA|sim09_mill_5ax_fanuc|MDM0101|5-Ax_Mill_Vertical_45-B-Head_C-Table Post Configurator metric&inch|Fanuc|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim09_mill_5ax/sim09_mill_5ax_fanuc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim09_mill_5ax/graphics/sim09_mill_5ax
DATA|sim09_mill_5ax_tnc|MDM0101|5-Ax_Mill_Vertical_45-B-Head_C-Table Post Configurator metric&inch|HeidenhainTNC|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim09_mill_5ax/sim09_mill_5ax_tnc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim09_mill_5ax/graphics/sim09_mill_5ax
DATA|sim09_mill_5ax_sinumerik|MDM0104|5-Ax_Turn-Mill_Vertical_45-B-Head_C-Table Post Configurator metric&inch|Sinumerik|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim09_mill_5ax/sim09_mill_5ax_sinumerik.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim09_mill_5ax/graphics/sim09_mill_5ax
DATA|sim10_millturn_5ax_fanuc|MDM0204|XZC MillTurn Post Configurator metric&inch|Fanuc|Millturn|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim10_millturn_5ax/sim10_millturn_5ax_fanuc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim10_millturn_5ax/graphics/sim10_millturn_5ax
DATA|sim11_turn_2ax_fanuc|MDM0201|2-Ax_Turn_Horizontal Post Configurator metric&inch|Fanuc|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim11_turn_2ax/sim11_turn_2ax_fanuc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim11_turn_2ax/graphics/sim11_turn_2ax
DATA|sim11_turn_2ax_sinumerik|MDM0201|2-Ax_Turn_Horizontal Post Configurator metric&inch|Sinumerik|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim11_turn_2ax/sim11_turn_2ax_sinumerik.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim11_turn_2ax/graphics/sim11_turn_2ax
DATA|sim12_turn_2ax_fanuc|MDM0201|2-Ax_Turn_Vertical Post Configurator metric&inch|Fanuc|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim12_turn_2ax/sim12_turn_2ax_fanuc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim12_turn_2ax/graphics/sim12_turn_2ax
DATA|sim12_turn_2ax_sinumerik|MDM0201|2-Ax_Turn_Vertical Post Configurator metric&inch|Sinumerik|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim12_turn_2ax/sim12_turn_2ax_sinumerik.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim12_turn_2ax/graphics/sim12_turn_2ax
DATA|sim13_turn_4ax_fanuc|MDM0201|4-Ax Turn Horizontal 2-Channel metric&inch|Fanuc|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim13_turn_4ax/sim13_turn_4ax_fanuc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim13_turn_4ax/graphics/sim13_turn_4ax
DATA|sim14_mill_5ax_millplus|MDM0101|5-Ax Mill Vertical 45-B-Table C-Table metric&inch|Millplus|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim14_mill_5ax/sim14_mill_5ax_millplus.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim14_mill_5ax/graphics/sim14_mill_5ax
DATA|sim14_mill_5ax_fanuc|MDM0101|5-Ax_Mill_Vertical_45-B-Table_C-Table Post Configurator metric&inch|Fanuc|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim14_mill_5ax/sim14_mill_5ax_fanuc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim14_mill_5ax/graphics/sim14_mill_5ax
DATA|sim14_mill_5ax_tnc|MDM0101|5-Ax_Mill_Vertical_45-B-Table_C-Table Post Configurator metric&inch|HeidenhainTNC|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim14_mill_5ax/sim14_mill_5ax_tnc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim14_mill_5ax/graphics/sim14_mill_5ax
DATA|sim14_mill_5ax_sinumerik|MDM0101|5-Ax_Mill_Vertical_45-B-Table_C-Table Post Configurator metric&inch|Sinumerik|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim14_mill_5ax/sim14_mill_5ax_sinumerik.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim14_mill_5ax/graphics/sim14_mill_5ax
DATA|sim15_millturn_9ax_sinumerik|MDM0204| 9-Ax Mill-Turn Dual-Channel B-Axis-Head - Legacy |Sinumerik|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim15_millturn_9ax/sim15_millturn_9ax_sinumerik.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim15_millturn_9ax/graphics/sim15_millturn_9ax
DATA|sim15_millturn_9ax_fanuc|MDM0204| 9-Ax Mill-Turn Dual-Channel B-Axis-Head - Legacy |fanuc|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim15_millturn_9ax/sim15_millturn_9ax_fanuc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim15_millturn_9ax/graphics/sim15_millturn_9ax
DATA|sim17_vertical_turnmill_dualchannel|MDM0104|Vertical Turn-Mill Dual-Channel with Headchange Post Configurator metric&inch|Sinumerik|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim17_vertical_turnmill_dualchannel/sim17_vertical_turnmill_dualchannel.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim17_vertical_turnmill_dualchannel/graphics/sim17_vertical_turnmill_dualchannel
# New machine tools metric
DATA|sim16_mill_headchange|MDM0101|Gantry Mill with Headchanger metric&inch|Sinumerik|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim16_mill_headchange/sim16_mill_headchange.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim16_mill_headchange/graphics/sim16_mill_headchange
DATA|sim18_mill_5ax_sinumerik|MDM0101|5-Ax Mill AB-Table Post Configurator metric&inch|Sinumerik|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim18_mill_5ax/sim18_mill_5ax_sinumerik.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim18_mill_5ax/graphics/sim18_mill_5ax
DATA|sim18_mill_5ax_fanuc|MDM0101|5-Ax Mill AB-Table Post Configurator metric&inch|Fanuc|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim18_mill_5ax/sim18_mill_5ax_fanuc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim18_mill_5ax/graphics/sim18_mill_5ax
DATA|sim18_mill_5ax_tnc|MDM0101|5-Ax Mill AB-Table Post Configurator metric&inch|HeidenhainTNC|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim18_mill_5ax/sim18_mill_5ax_tnc.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim18_mill_5ax/graphics/sim18_mill_5ax
DATA|sim18_mill_5ax_okuma|MDM0101|5-Ax Mill AB-Table Post Configurator metric&inch|Okuma|Example|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim18_mill_5ax/sim18_mill_5ax_okuma.dat|1.000000|${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}sim18_mill_5ax/graphics/sim18_mill_5ax

View File

@@ -0,0 +1,10 @@
The old INCLASS and MRL Event Handlers (TCL) and Definition Files (DEF) were removed from the NX1899 kit to avoid problems after NX updates.
These files are available in the Manufacturing Resource Library (MRL) kit found in the "wntx64\advanced_installations" directory of the Teamcenter installation kit.
The directory contains an "advanced_installations.zip" file with the MRL kit.
1. Extract the advanced_installations.zip.
2. Start the MRL Installer (setup.exe).
3. Select the "Configure NX-CAM" option.
This copies the latest MRL files into the NX MACH directory.
Alternatively, copy the files manually from the directory "resource_management\MRL\nxlib\MACH" in the MRL kit to the NX MACH directory.

View File

@@ -0,0 +1,2 @@
ABB RAPID,${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}ABB_IRB_6640_235_255\postprocessor\ABB_RAPID\ABB_RAPID_post.tcl,${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}ABB_IRB_6640_235_255\postprocessor\ABB_RAPID\ABB_RAPID_post.def
CSE_FILES, ${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}ABB_IRB_6640_235_255\cse_driver\ABB_RAPID\ABB_IRB_6640_235_255.MCF

View File

@@ -0,0 +1,111 @@
##LANGUAGE AC
// In robots we generate an additional ini subprog on post per robot channel.
// There we store all robotic tool carrier data.
INT nCurrentIndex;
INT nNextIndex;
nCurrentIndex = GetRobotCurrentToolCarrierIndex();
nNextIndex = GetRobotNextToolCarrierIndex();
// 1. Release current tool
// When working with kinematically modeled magazine of tools and/or heads
// the tool has to be positioned back to the original static holder.
IF(nCurrentIndex >= 0);
STRING sToolName;
STRING sToolInitialKinCarrier;
sToolName = GetRobotTool(nCurrentIndex);
sToolInitialKinCarrier = GetRobotToolInitialKinCarrier(nCurrentIndex);
IF((sToolName != "") AND exists(sToolName));
IF(sToolInitialKinCarrier == "");
visibility(sToolName,OFF,TRUE);
release(sToolName);
ELSE;
release(sToolName,sToolInitialKinCarrier);
position(sToolName, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
ENDIF;
ENDIF;
ENDIF;
// 2. Release current head
// When working with kinematically modeled magazine of tools and/or heads
// the head has to be positioned back to the original static holder.
IF(nCurrentIndex >= 0);
STRING sHeadName;
STRING sHeadInitialKinCarrier;
STRING sHeadTargetKinCarrier;
sHeadName = GetRobotHead(nCurrentIndex);
sHeadInitialKinCarrier = GetRobotHeadInitialKinCarrier(nCurrentIndex);
sHeadTargetKinCarrier = GetRobotHeadTargetKinCarrier(nCurrentIndex);
IF((sHeadName != "") AND exists(sHeadName));
IF ((sHeadInitialKinCarrier != ""));
release(sHeadName,sHeadInitialKinCarrier);
position(sHeadName, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
ELSE;
visibility(sHeadName,OFF,TRUE);
unmountHead(sHeadTargetKinCarrier);
ENDIF;
ENDIF;
ENDIF;
// 3. Mount next head to the desired kinematic carrier
STRING sNextHeadName;
STRING sNextHeadTargetKinCarrier;
sNextHeadName = GetRobotHead(nNextIndex);
sNextHeadTargetKinCarrier = GetRobotHeadTargetKinCarrier(nNextIndex);
IF(sNextHeadName != "");
IF(getCurrentHead(sNextHeadTargetKinCarrier) != "");
visibility(getCurrentHead(sNextHeadTargetKinCarrier),OFF,TRUE);
unmountHead(sNextHeadTargetKinCarrier);
ENDIF;
mountHead (sNextHeadName, sNextHeadTargetKinCarrier);
grasp (sNextHeadName, sNextHeadTargetKinCarrier);
position (sNextHeadName, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
visibility (sNextHeadName, ON, TRUE);
ENDIF;
// 4. Mount next tool to the desired kinematic carrier
STRING sNextToolName;
STRING sToolTargetKinCarrier;
sNextToolName = GetRobotTool(nNextIndex);
sToolTargetKinCarrier = GetRobotToolTargetKinCarrier(nNextIndex);
generateTool (sNextToolName,sToolTargetKinCarrier);
IF(exist (getCurrentTool(sToolTargetKinCarrier)));
visibility (getCurrentTool(sToolTargetKinCarrier),OFF,TRUE);
release (getCurrentTool(sToolTargetKinCarrier));
ENDIF;
IF (exist (getNextTool(sToolTargetKinCarrier)));
grasp (getNextTool(sToolTargetKinCarrier), sToolTargetKinCarrier);
position (getNextTool (sToolTargetKinCarrier), 0, 0, 0, 0, 0, 0);
visibility (getNextTool(sToolTargetKinCarrier), ON, TRUE);
activateNextTool (sToolTargetKinCarrier);
ENDIF;
IF(exist (getCurrentTool(sToolTargetKinCarrier)));
IF (getToolParameter(getCurrentTool(sToolTargetKinCarrier), "purpose") == "additive");
SetToolMode(getCurrentTool(sToolTargetKinCarrier), "addmaterial");
ENDIF;
IF (getToolParameter(getCurrentTool(sToolTargetKinCarrier), "purpose") == "coloring");
SetToolMode(getCurrentTool(sToolTargetKinCarrier), "colormaterial");
ENDIF;
ENDIF;
//activate the chain for the next tool carrier
ActivateNextRobotToolCarrier();
##LANGUAGE NATIVE

View File

@@ -0,0 +1,8 @@
MACHINE Default
INCLUDE {
$POST_LIB_CURRENT_MACH_DIR/nx_olp_util_base.def
$POST_LIB_CURRENT_MACH_DIR/../../robots/Robotics.cdl
$POST_LIB_CURRENT_MACH_DIR/Controller/ABB_RAPID_ctrl.def
}

View File

@@ -0,0 +1,139 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Copyright>Siemens Digital Industry Software</Copyright>
<Version>2.0</Version>
<MachineName>ABB_RAPID</MachineName>
<Sourcing>
<Sequence>
<Layer Name="Libraries" ReadOnly="true" SubFolder="Libraries">
<Copyright>Siemens Digital Industry Software</Copyright>
<Template>${UGII_CAM_RESOURCE_DIR}post_configurator/post_template/libraries/libraries.psl</Template>
<Version>1.00</Version>
<Order>1001</Order>
<Scripts>
<Filename Name="lib_sourcing" Processing="auto"/>
<Filename Name="lib_general" Processing="auto"/>
<Filename Name="lib_xml_handling" Processing="auto"/>
<Filename Name="lib_msg" Processing="true"/>
<Filename Name="lib_file_handling" Processing="true"/>
<Filename Name="lib_standard_post_func" Processing="true"/>
<Filename Name="lib_document" Processing="true"/>
<Filename Include="pretreatment" Name="lib_pretreatment" Processing="auto"/>
<Filename Include="pretreatment" Name="lib_pretreatment_post" Processing="auto"/>
</Scripts>
<DefinedEvents>
<Filename Include="pretreatment" Name="lib_pretreatment" Processing="auto"/>
</DefinedEvents>
<CustomerDialogs>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Digital Industry Software</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
<Layer Name="Robotic Standard Layer" ReadOnly="false">
<Copyright>Siemens Digital Industry Software</Copyright>
<Template>${UGII_CAM_RESOURCE_DIR}post_configurator/post_template/nx_olp_util/robotic_standard_layer.psl</Template>
<Version>1.00</Version>
<Order>1999</Order>
<Scripts>
<Filename Name="nx_olp_util_init" Processing="true"/>
<Filename Name="nx_olp_util_robot_init" Processing="true"/>
<Filename Name="nx_olp_util_maths" Processing="true"/>
<Filename Name="nx_olp_util_robotics" Processing="true"/>
<Filename Name="nx_olp_util_cse_simulation_ini" Processing="true"/>
</Scripts>
<DefinedEvents>
<Filename Include="true" Name="nx_olp_util_base" Processing="true"/>
</DefinedEvents>
<CustomerDialogs>
<Filename Name="Robotics" Processing="true"/>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Digital Industry Software</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
<Layer Name="ABB RAPID Layer" ReadOnly="false">
<Copyright>Siemens Digital Industry Software</Copyright>
<Template>${UGII_CAM_RESOURCE_DIR}post_configurator/post_template/controller/ABB_RAPID/base/ABB_RAPID_base.psl</Template>
<Version>1.00</Version>
<Order>8002</Order>
<Scripts>
<Filename Name="ABB_RAPID_ctrl" Processing="true"/>
<Filename Name="ABB_RAPID_ctrl_msg" Processing="true"/>
<Filename Name="ABB_RAPID_user_custom" Processing="true"/>
</Scripts>
<DefinedEvents>
<Filename Name="ABB_RAPID_ctrl" Processing="true"/>
</DefinedEvents>
<CustomerDialogs>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Digital Industry Software</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
<Layer Name="Customer" ReadOnly="true">
<Copyright>Siemens Digital Industry Software</Copyright>
<Version>1.00</Version>
<Order>9001</Order>
<Scripts>
<Filename Name="ABB_RAPID_post_custom" Processing="true"/>
</Scripts>
<DefinedEvents>
</DefinedEvents>
<CustomerDialogs>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Digital Industry Software</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
</Sequence>
</Sourcing>
<History>
<Comments>
<Comment>
<User>xd2oht</User>
<Date>21.07.2020 11:55:25</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
<Comment>
<User>xd2oht</User>
<Date>21.07.2020 11:55:25</Date>
<Text>Postprocessor successfully upgraded from version 4.7.1 to version 5.3.0</Text>
</Comment>
</Comments>
<Customer>
<Company/>
<Address/>
<Contact/>
<Phone/>
<Fax/>
<Mail/>
</Customer>
</History>
<Units>Millimeters and Inches</Units>
</Configuration>

View File

@@ -0,0 +1 @@
# this file is intentionally left empty

View File

@@ -0,0 +1,299 @@
#############################################################################################
#
# Customer Data
#
# Company :
# Address :
# Contact person :
# Phone :
# Fax :
# Mail :
#
#############################################################################################
#
# Copyright 2014-2019 Siemens Product Lifecycle Management Software Inc.
# All Rights Reserved.
#
#############################################################################################
#____________________________________________________________________________________________
#
# Procedure debugger
#____________________________________________________________________________________________
#
set lib_ge_debug(on) 0
set lib_ge_debug(proc_watch_list) "MOM* PPLIB* PROC*"
set lib_ge_debug(var_write_trace_list) "mom_group_name"
set lib_ge_debug(proc_watch_exclude_list) "MOM_SMART* MOM_evaluate_arg MOM_before_each_add_var MOM_before_load_address"
#____________________________________________________________________________________________
set lib_debug_source_of_proc_list ""
if {![info exists lib_ge_platform]} {
if {[string match "*windows*" $tcl_platform(platform)]} {
set lib_ge_platform 1
set lib_ge_slash "\\"
if {[info exists env(TEMP)]} {
set lib_ge_temppath $env(TEMP)
} elseif {[info exists env(TMP)]} {
set lib_ge_temppath $env(TMP)
}
} else {
set lib_ge_platform 0
set lib_ge_slash "/"
if {[info exists env(TMPDIR)]} {
set lib_ge_temppath $env(TMPDIR)
}
if {![string length $lib_ge_temppath]} {
set lib_ge_temppath "${lib_ge_slash}var${lib_ge_slash}tmp"
}
}
}
if {![info exists lib_ge_env(tmp_dir)]} {
set lib_ge_env(tmp_dir) [MOM_ask_env_var "UGII_TMP_DIR"]
}
if {![string length $lib_ge_env(tmp_dir)]} {
set lib_ge_env(tmp_dir) $lib_ge_temppath
}
#____________________________________________________________________________________________
# <Documentation>
#
# Handling for the default environment variables
#
# <Example>
#
#____________________________________________________________________________________________
proc LIB_Shell_environment_handling {} {
eval global [uplevel #0 info vars]
# Language file and OS specific values
if {![info exists lib_ge_slash]} {global lib_ge_slash}
if {![info exists lib_ge_env]} {global lib_ge_env}
set lib_ge_env(post_pool_dir) [LIB_Shell_format_path_names [MOM_ask_env_var "UGII_POST_POOL_DIR_NG"]]
set lib_ge_env(cam_post_dir) [LIB_Shell_format_path_names [MOM_ask_env_var "UGII_CAM_POST_DIR"]]
set lib_ge_env(tmp_dir) [LIB_Shell_format_path_names [MOM_ask_env_var "UGII_TMP_DIR"]]
if {$lib_ge_env(tmp_dir) == ""} {set lib_ge_env(tmp_dir) $lib_ge_temppath}
global lib_ge_installed_machines
set lib_ge_installed_machines [info script]
set lib_ge_env(installed_machines_dir) [LIB_Shell_format_path_names [file dirname $lib_ge_installed_machines]]
set lib_ge_env(installed_machines_dir,recursively) ""
lappend lib_ge_env(installed_machines_dir,recursively) $lib_ge_env(installed_machines_dir)
set current_dir [pwd]
if {![catch {cd [lindex $lib_ge_env(installed_machines_dir,recursively) 0]}]} {
if {![catch {set dir [string tolower [glob *]]}]} {
foreach e {libraries controller bin} {
set index [lsearch -exact $dir $e]
if {$index > -1} {
set directory [lindex $dir $index]
set directory [string toupper [string index $directory 0]][string range $directory 1 end]
lappend lib_ge_env(installed_machines_dir,recursively) [LIB_Shell_format_path_names "[lindex $lib_ge_env(installed_machines_dir,recursively) 0]$lib_ge_slash$directory"]
}
}
}
}
cd $current_dir
if {![regexp -nocase -- {\w+} $lib_ge_env(post_pool_dir)]} {set lib_ge_env(post_pool_dir) $lib_ge_env(installed_machines_dir)}
set lib_ge_env(version_bit) [MOM_ask_env_var "UGII_VERSION_BIT"]
set lib_ge_env(base_dir) [MOM_ask_env_var "UGII_BASE_DIR"]
set lib_ge_env(major_version) [MOM_ask_env_var "UGII_MAJOR_VERSION"]
set lib_ge_env(minor_version) [MOM_ask_env_var "UGII_MINOR_VERSION"]
set lib_ge_env(subminor_version) [MOM_ask_env_var "UGII_SUBMINOR_VERSION"]
if {![info exists lib_ge_dll_version]} {global lib_ge_dll_version}
if {$lib_ge_env(minor_version) > 0} {
set lib_ge_dll_version "nx$lib_ge_env(major_version)$lib_ge_env(minor_version)"
} else {
set lib_ge_dll_version "nx$lib_ge_env(major_version)"
}
regsub -all "/" $lib_ge_env(base_dir) "\\" lib_ge_env(base_dir)
}
#____________________________________________________________________________________________
# <Internal Documentation>
#
# This procedure may be used to format pathnames from unix format in windows
# format and delete double backslash
#
# Output:
# D:\Temp\mom\debug.out or \\Server\Temp\mom\debug.out
#
# e.g.
# set error [LIB_Shell_format_path_names "D:/Temp/mom/debug.out"]
#
# <Example>
# set error [LIB_Shell_format_path_names "D:/Temp/mom/debug.out"]
#____________________________________________________________________________________________
proc LIB_Shell_format_path_names {pathname} {
global lib_ge lib_ge_platform
binary scan $pathname H* pathbin
if {[info exists lib_ge(format_path,$pathbin,0,0,0)]} {
return $lib_ge(format_path,$pathbin,0,0,0)
}
if {[regexp -nocase -- {^[\\\\]|^[\/\/]} $pathname]} {
regsub -all "/" $pathname "\\" pathname
}
if {$lib_ge_platform} {
regsub -all "/" $pathname "\\" pathname
if {![regexp -nocase -- {^\\\\} $pathname]} {set unc 0} else {set unc 1}
while {[regsub -- "(?q)\\\\" $pathname "\\" pathname]} {}
if {$unc} {set pathname "\\$pathname"}
} elseif {!$lib_ge_platform} {
regsub -all "\\\\" $pathname "/" pathname
if {![regexp -nocase -- {^//} $pathname]} {set unc 0} else {set unc 1}
while {[regsub -- "(?q)//" $pathname "/" pathname]} {}
if {$unc} {set pathname "/$pathname"}
}
set lib_ge(format_path,$pathbin,0,0,0) [string trim $pathname]
return $lib_ge(format_path,$pathbin,0,0,0)
}
#____________________________________________________________________________________________
# <Documentation>
#
# Handling for the main shell
#
# <Example>
#
#____________________________________________________________________________________________
proc LIB_Shell_main {} {
global lib_ge_env lib_ge_slash
global lib_cycle_path sourcefile
LIB_Shell_environment_handling
lappend ::lib_ge_monitored_files [LIB_Shell_format_path_names [info script]]
if {[info commands LIB_GE_source] != "LIB_GE_source"} {
set lib_cycle_path 0
set searchpath $lib_ge_env(installed_machines_dir,recursively)
lappend searchpath $lib_ge_env(post_pool_dir)
foreach path $searchpath {
if {$lib_cycle_path} {break}
foreach ext {.tcl .tbc} {
set sourcefile [LIB_Shell_format_path_names "$path${lib_ge_slash}lib_sourcing$ext"]
if {[file exists $sourcefile]} {
if {[string match ".tbc" $ext]} {
MOM_output_to_listing_device "ByteCode Loader is not available, cannot process lib_sourcing$ext (Provid this file not encrypted)"
MOM_log_message "ByteCode Loader is not available, cannot process lib_sourcing$ext (Provid this file not encrypted)"
MOM_abort "ByteCode Loader is not available, cannot process lib_sourcing$ext (Provid this file not encrypted)"
}
uplevel #0 {
if {$::tcl_version >= 8.6} {
if {[catch {source -encoding utf-8 $sourcefile} err]} {
set lib_source_error 1
}
} else {
if {[catch {source $sourcefile} err]} {
set lib_source_error 1
}
}
if {[info exists lib_source_error] && $lib_source_error == 1} {
if {[info exists ::errorInfo]} {MOM_output_to_listing_device "errorInfo $errorInfo"}
MOM_output_to_listing_device "File lib_sourcing $err not loadable"
MOM_log_message "File lib_sourcing $err not loadable"
MOM_abort "File lib_sourcing not loadable"
} else {
set lib_ge_debug(lib_sourcing) "$sourcefile"
lappend lib_ge_monitored_files "$sourcefile"
lappend lib_ge_log_message "\n--> $sourcefile loaded"
set lib_cycle_path 1 ; break
}
}
}
}
}
if {!$lib_cycle_path} {
MOM_output_to_listing_device "File lib_sourcing not found"
MOM_log_message "File lib_sourcing not found"
MOM_abort "File lib_sourcing not found"
}
}
LIB_Shell_init
}
#____________________________________________________________________________________________
# <Documentation>
#
# Handling for the default environment variables
#
# <Example>
#
#____________________________________________________________________________________________
proc LIB_Shell_defined_post_environment {} {
global lib_pp_source_file lib_shell
#____________________________________________________________________________________________
#
# NX Post, load files
#____________________________________________________________________________________________
#
# There are different ways to source each files
#
# e.g. Befor LIB_GE_source call
# lappend lib_pp_source_file "machine,UGII_CAM_POST_DIR"
#
# e.g. After LIB_GE_source call
# LIB_GE_source "Test" "C:/Temp/;d:/tmp/"
#
# e.g. To define a searchpath
# LIB_GE_source "" "C:/Temp/;UGII_CAM_POST_DIR"
# Allowed is the direct path and/or variable
# This is the call for PB post files
# ** internal funktion / Don't remove this line **
set lib_pp_source_file ""
# This is the call the PB post LIB_GE files
# ** internal funktion / Don't remove this line **
lappend lib_pp_source_file "lib_msg" "lib_file_handling" "lib_standard_post_func" "lib_document"
# If a XML-file with the same file name found, the referenced files will also loaded
LIB_Shell_external_source
if {![info exists lib_shell(load_loader)] || $lib_shell(load_loader)} {
lappend lib_pp_source_file "[file tail [file rootname $::lib_ge_installed_machines]]_custom"
} else {
MOM_log_message "Custom level isn't loaded"
}
#############################################################################################
}
LIB_Shell_main
#############################################################################################
#############################################################################################
#############################################################################################
# This is to debug
#############################################################################################
if {[llength [info commands LIB_GE_debug]]} {LIB_GE_debug}

View File

@@ -0,0 +1,110 @@
#
# ABB_RAPID Post Processor - User Customization File
#
# This file can be used to:
# - define addition user Post Configurator options (see Post Configurator doc)
# - override the default MoveJ/MoveL motion instruction
# - implement specific actions at dedicated MOM event entry points
#
#
# Version $Id: ABB_RAPID_user_custom.tcl,v 1.9 2019/10/18 15:42:10 mchoucroun Exp $
#
#----------------------------------------------------------------------
proc ABB_activate_read_ahead {} {
# This routine can be used to override the default value
# To uncomment in order to Activate read-ahead and access mom_nxt_motion_type
#----------------------------------------------------------------------
#global mom_kin_read_ahead_next_motion
# set mom_kin_read_ahead_next_motion 1
}
#----------------------------------------------------------------------
proc ABB_do_motion_template {sDefaultTemplate} {
# This routine can be used to override the default motion instruction.
# 'sDefaultTemplate': default block template to generate the motion line
# abb_curr_motion_type = AbsJ or J or L
#----------------------------------------------------------------------
global abb_curr_motion_type
# default behaviour: run the target default block template.
MOM_do_template $sDefaultTemplate
}
#----------------------------------------------------------------------
# CUSTOM ENTRY POINT PROCEDURES
#----------------------------------------------------------------------
#----------------------------------------------------------------------
proc ABB_start_of_program {position} {
# Triggered during MOM_start_of_program_LIB
# position: start, before_header, after_header, end
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_end_of_program {position} {
# Trigerred during MOM_end_of_program
# position: start, end
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_start_of_path {position} {
# Triggered during MOM_start_of_path
# position: start, end
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_end_of_path {position} {
# Triggered during MOM_end_of_path
# position: start, end
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_start_of_main_routine {position} {
# Triggered at the start of generating the Main PROC
# position: start (before PROC is written),
# end (after PROC is written)
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_end_of_main_routine {position} {
# Triggered at the end of generating the Main PROC
# position: start (before ENDPROC is written),
# end (after ENDPROC is written)
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_rapid_move {position} {
# Triggered during MOM_rapid_move
# position: start, end
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_linear_move {position} {
# Triggered during MOM_linear_move
# position: start, end
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_circular_move {position} {
# Triggered during MOM_circular_move
# position: start, end
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_robot_pose_move {position} {
# Triggered during MOM_robot_pose_move
# position: start, end
#----------------------------------------------------------------------
}

View File

@@ -0,0 +1,147 @@
##############################################################################
# Description
# This is the Definition File for ABB_RAPID File Generation EEVT Handler
#
# Version
# $Id: ABB_RAPID_ctrl.def,v 1.4 2019/10/18 15:45:11 gpenkov Exp $
#
###############################################################################
#
MACHINE Default
FORMATTING
{
WORD_SEPARATOR ","
# Override addresses required by Post Configurator infrastructure
# ===================================================================
ADDRESS RA
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER ""
ZERO_FORMAT Zero_real
}
BLOCK_TEMPLATE robot_axis_motion
{
" MoveAbsJ [["\nows
RA[$mom_rob_int(0)]
RA[$mom_rob_int(1)]
RA[$mom_rob_int(2)]
RA[$mom_rob_int(3)]
RA[$mom_rob_int(4)]
RA[$mom_rob_int(5)]\nows
"],["\nows
RA[$mom_rob_ext(0)]
RA[$mom_rob_ext(1)]
RA[$mom_rob_ext(2)]
RA[$mom_rob_ext(3)]
RA[$mom_rob_ext(4)]
RA[$mom_rob_ext(5)]\nows
"]],"\nows
robot_string[$abb_curr_speed]
robot_string[$abb_curr_zone]
robot_string[$abb_curr_tool_wobj]\trlr=";"
}
BLOCK_TEMPLATE rapid_move
{
" MoveJ [["\nows
RA[$mom_rob_pos(0)]
RA[$mom_rob_pos(1)]
RA[$mom_rob_pos(2)]\nows
"],["\nows
RA[$mom_rob_pos(3)]
RA[$mom_rob_pos(4)]
RA[$mom_rob_pos(5)]
RA[$mom_rob_pos(6)]\nows
"]"
robot_string[$mom_rob_config]
"["\nows
RA[$mom_rob_ext(0)]
RA[$mom_rob_ext(1)]
RA[$mom_rob_ext(2)]
RA[$mom_rob_ext(3)]
RA[$mom_rob_ext(4)]
RA[$mom_rob_ext(5)]\nows
"]],"\nows
robot_string[$abb_curr_speed]
robot_string[$abb_curr_zone]
robot_string[$abb_curr_tool_wobj]\trlr=";"
}
BLOCK_TEMPLATE linear_move
{
" MoveL [["\nows
RA[$mom_rob_pos(0)]
RA[$mom_rob_pos(1)]
RA[$mom_rob_pos(2)]\nows
"],["\nows
RA[$mom_rob_pos(3)]
RA[$mom_rob_pos(4)]
RA[$mom_rob_pos(5)]
RA[$mom_rob_pos(6)]\nows
"]"
robot_string[$mom_rob_config]
"["\nows
RA[$mom_rob_ext(0)]
RA[$mom_rob_ext(1)]
RA[$mom_rob_ext(2)]
RA[$mom_rob_ext(3)]
RA[$mom_rob_ext(4)]
RA[$mom_rob_ext(5)]\nows
"]],"\nows
robot_string[$abb_curr_speed]
robot_string[$abb_curr_zone]
robot_string[$abb_curr_tool_wobj]\trlr=";"
}
BLOCK_TEMPLATE circular_move
{
" MoveC [["\nows
RA[$mom_rob_circ_via_pos(0)]
RA[$mom_rob_circ_via_pos(1)]
RA[$mom_rob_circ_via_pos(2)]\nows
"],["\nows
RA[$mom_rob_circ_via_pos(3)]
RA[$mom_rob_circ_via_pos(4)]
RA[$mom_rob_circ_via_pos(5)]
RA[$mom_rob_circ_via_pos(6)]\nows
"]"
robot_string[$mom_rob_config]
"["\nows
RA[$mom_rob_circ_via_ext(0)]
RA[$mom_rob_circ_via_ext(1)]
RA[$mom_rob_circ_via_ext(2)]
RA[$mom_rob_circ_via_ext(3)]
RA[$mom_rob_circ_via_ext(4)]
RA[$mom_rob_circ_via_ext(5)]\nows
"]],[["\nows
RA[$mom_rob_pos(0)]
RA[$mom_rob_pos(1)]
RA[$mom_rob_pos(2)]\nows
"],["\nows
RA[$mom_rob_pos(3)]
RA[$mom_rob_pos(4)]
RA[$mom_rob_pos(5)]
RA[$mom_rob_pos(6)]\nows
"]"
robot_string[$mom_rob_config]
"["\nows
RA[$mom_rob_ext(0)]
RA[$mom_rob_ext(1)]
RA[$mom_rob_ext(2)]
RA[$mom_rob_ext(3)]
RA[$mom_rob_ext(4)]
RA[$mom_rob_ext(5)]\nows
"]],"\nows
robot_string[$abb_curr_speed]
robot_string[$abb_curr_zone]
robot_string[$abb_curr_tool_wobj]\trlr=";"
}
}

View File

@@ -0,0 +1,64 @@
lappend lib_config_data [list "ABB_RAPID_ctrl_msg" "Ctrl_Template_Base-MSG-Version 001"]
#############################################################################################
#
# Copyright 2014-2019 Siemens Product Lifecycle Management Software Inc.
# All Rights Reserved.
#
#############################################################################################
#
# Last changes:
# 11.05.2016 - UR 001 Initial Release and Installation
#
#
#
####G#E#N#E#R#A#L##D#E#S#C#R#I#P#T#I#O#N#####################################################
#
# In this function, the text in the appropriate language UGII_LANG is translated.
# Optional wildcards can be used in the example.
#
# Permitted languages: braz_portuguese / french / german / italian / japanese /
# korean / russian / simpl_chinese / spanish / trad_chinese...
#
# e.g.
# set message [LIB_GE_MSG "Configuration file does not exist"]
# set message [LIB_GE_MSG "File can not be copied from INS->xxx<- to INS->zzz<-"]
# set message [LIB_GE_MSG "File INS->C:\\Temp\\xxx.txt<- not found"]
#
# set message [LIB_GE_MSG "SURFACE COORDINATE" "core"]
#
# (It's for development only)
# set message [LIB_GE_MSG 0001] <-- Please, don't work with this solution
#
#############################################################################################
##############################################################################################
### controller/machine/customer... translations
### between the commas the text is selectable e.g. 0000,$lib_controller_message,xxx,english
##############################################################################################
set lib_msg(0000,$lib_controller_message,core) "Please contact Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,czech) "Kontaktujte společnost Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,danish) "Kontakt Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,dutch) "Neem contact op met Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,english) "Please contact Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,finnish) "Ota yhteyttä Siemens PLM -ohjelmistoon"
set lib_msg(0000,$lib_controller_message,french) "S'il vous plaît contactez Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,german) "Bitte Siemens PLM Software kontaktieren"
set lib_msg(0000,$lib_controller_message,hungarian) "Kérjük, lépjen kapcsolatba a Siemens PLM szoftverrel"
set lib_msg(0000,$lib_controller_message,italian) "Contattare Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,japanese) " Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,korean) " Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,norwegian) "Ta kontakt med Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,polish) "Prosze o kontakt Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,portuguese) "Entre em contato com a Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,russian) "пожалуйста свяжитесь Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,simpl_chinese) " Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,slovak) "Obráťte sa na spoločnosť Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,slovenian) "Prosimo, pokličite programsko opremo Siemens PLM"
set lib_msg(0000,$lib_controller_message,spanish) "Por favor, póngase en contacto con Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,swedish) "Vänligen kontakta Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,trad_chinese) " Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,turkish) "Lütfen Siemens PLM Yazılımına başvurun."
if {$tcl_version < 8.4} {
array set lib_msg [LIB_GE_replace_special_characters [array get lib_msg] 4 0]
}

View File

@@ -0,0 +1,193 @@
MACHINE PRETREATMENT
FORMATTING
{
WORD_SEPARATOR " "
END_OF_LINE "\135"
SEQUENCE sequence_number 10 10 1 99999
FORMAT AbsCoord "&__5.3_"
FORMAT Coordinate "&__5.3_"
FORMAT Digit_2 "&_02_00"
FORMAT Digit_4 "&_04_00"
FORMAT Digit_5 "&__5_00"
FORMAT Dwell_SECONDS "&__5.3_"
FORMAT EventNum "&+03_00"
FORMAT Feed "&__7.2_"
FORMAT Feed_DPM "&__5.2_"
FORMAT Feed_FRN "&__5.3_"
FORMAT Feed_INV "&__5.3_"
FORMAT Feed_IPM "&__4.1_"
FORMAT Feed_IPR "&__1.4_"
FORMAT Feed_MMPM "&__5.0_"
FORMAT Feed_MMPR "&__2.3_"
FORMAT Hcode "&_02_00"
FORMAT Rev "&__4_00"
FORMAT Rotary "&__5.5_"
FORMAT String "%s"
FORMAT Tcode "&_02_00"
FORMAT Zero_int "&_01_0_"
FORMAT Zero_real "&_01.10"
ADDRESS N
{
FORMAT String
FORCE always
LEADER [$mom_sys_leader(N)]
}
ADDRESS G_motion
{
FORMAT String
FORCE off
LEADER [$mom_sys_leader(G)]
}
ADDRESS X
{
FORMAT Coordinate
FORCE always
LEADER [$mom_sys_leader(X)]
ZERO_FORMAT Zero_real
}
ADDRESS Y
{
FORMAT Coordinate
FORCE off
LEADER [$mom_sys_leader(Y)]
ZERO_FORMAT Zero_real
}
ADDRESS Z
{
FORMAT Coordinate
FORCE off
LEADER [$mom_sys_leader(Z)]
ZERO_FORMAT Zero_real
}
ADDRESS fourth_axis
{
FORMAT Rotary
FORCE off
LEADER [$mom_sys_leader(fourth_axis)]
ZERO_FORMAT Zero_real
}
ADDRESS fifth_axis
{
FORMAT Rotary
FORCE off
LEADER [$mom_sys_leader(fifth_axis)]
ZERO_FORMAT Zero_real
}
ADDRESS I
{
FORMAT Coordinate
FORCE always
LEADER [$mom_sys_leader(I)]
ZERO_FORMAT Zero_real
}
ADDRESS J
{
FORMAT Coordinate
FORCE always
LEADER [$mom_sys_leader(J)]
ZERO_FORMAT Zero_real
}
ADDRESS K
{
FORMAT Coordinate
FORCE always
LEADER [$mom_sys_leader(K)]
ZERO_FORMAT Zero_real
}
ADDRESS S
{
FORMAT Zero_int
FORCE always
LEADER "S"
}
BLOCK_TEMPLATE sequence_number
{
N[ ]
}
BLOCK_TEMPLATE sequence_number_turbo
{
N[ ]
}
BLOCK_TEMPLATE circular_move_turbo
{
G_motion[$mom_sys_circle_code(string)]
X[^POSX]
Y[^POSY]
Z[^POSZ]
fourth_axis[^POS4]
fifth_axis[^POS5]
S[$mom_spindle_speed]
}
BLOCK_TEMPLATE linear_move_turbo
{
G_motion[$mom_sys_linear_code]
X[^POSX]
Y[^POSY]
Z[^POSZ]
fourth_axis[^POS4]
fifth_axis[^POS5]
S[$mom_spindle_speed]
}
BLOCK_TEMPLATE rapid_move_turbo
{
G_motion[$mom_sys_rapid_code]
X[^POSX]
Y[^POSY]
Z[^POSZ]
fourth_axis[^POS4]
fifth_axis[^POS5]
S[$mom_spindle_speed]
}
BLOCK_TEMPLATE circular_move
{
G_motion[$mom_sys_circle_code(string)]
X[$mom_mcs_goto(0)]
Y[$mom_mcs_goto(1)]
Z[$mom_mcs_goto(2)]
fourth_axis[$mom_out_angle_pos(0)]
fifth_axis[$mom_out_angle_pos(1)]
S[$mom_spindle_speed]
}
BLOCK_TEMPLATE linear_move
{
G_motion[$mom_sys_linear_code]
X[$mom_mcs_goto(0)]
Y[$mom_mcs_goto(1)]
Z[$mom_mcs_goto(2)]
fourth_axis[$mom_out_angle_pos(0)]
fifth_axis[$mom_out_angle_pos(1)]
S[$mom_spindle_speed]
}
BLOCK_TEMPLATE rapid_move
{
G_motion[$mom_sys_rapid_code]
X[$mom_mcs_goto(0)]
Y[$mom_mcs_goto(1)]
Z[$mom_mcs_goto(2)]
fourth_axis[$mom_out_angle_pos(0)]
fifth_axis[$mom_out_angle_pos(1)]
S[$mom_spindle_speed]
}
BLOCK_TEMPLATE rapid_move_drill
{
G_motion[$mom_sys_rapid_code]
X[$mom_cycle_feed_to_pos(0)]
Y[$mom_cycle_feed_to_pos(1)]
Z[$mom_cycle_feed_to_pos(2)]
S[$mom_spindle_speed]
}
}

View File

@@ -0,0 +1,535 @@
####C#U#S#T#O#M##M#E#T#A##I#N#F#O#R#M#A#T#I#O#N##############################################
#
# Customer Data
#
# Company :
# Address :
# Contact person :
# Phone :
# Fax :
# Mail :
#
####S#T#A#R#T##C#H#A#N#G#E##H#I#S#T#O#R#Y####################################################
#
# Last changes: 01.02.2011 - UR 001 Initial Release and Installation
# 23.08.2013 - UR 002 Add keywords for comment lines (important, because automation respond)
# 03.09.2013 - UR 003 Releaseversion 1.0
# 09.10.2013 - COE 004 Changed setting of lib_ge_env(tmp_dir)
# 10.12.2013 - UR 005 Decomposing the basic functions
# 10.02.2014 - COE 006 Releaseversion 2.0
# 17.02.2014 - COE 007 Releaseversion 2.1
# 13.03.2014 - UR 008 Releaseversion 2.2
# 31.03.2014 - UR 009 Add lib_flag(PB_decontamination) to switch of PB support
# 31.03.2014 - UR 010 Releaseversion 2.3
# 11.04.2014 - UR 011 Releaseversion 2.3.1
# 12.05.2014 - UR 012 Releaseversion 2.3.2
# 18.05.2014 - UR 013 Add sourcing with the possibility of nesting folders
# 19.05.2014 - UR 014 Releaseversion 2.3.3
# 26.05.2014 - UR 015 Revision of the LIB_Shell_search_path_recursively routines when a blank is included in the path
# 16.06.2014 - COE 016 Releaseversion 2.3.4
# 16.06.2014 - UR 017 Add recursively sourcing for the pretreatment files
# 24.06.2014 - UR 018 Releaseversion 2.3.5
# 24.06.2014 - UR 019 Releaseversion 2.4
# 07.07.2014 - UR 020 Releaseversion 2.4.1
# 16.07.2014 - UR 021 Releaseversion 3.0
# 29.07.2014 - COE 022 LIB_Shell_environment_handling: lib_ge_env(installed_machines_dir,recursively)
# LIB_Shell_main: no longer call LIB_Shell_search_path_recursively
# 30.07.2014 - COE 023 Releaseversion 3.1
# 12.08.2014 - UR 024 Releaseversion 3.1.1
# 13.08.2014 - UR 025 Adopted revised texts from SPLM
# 13.08.2014 - UR 026 Releaseversion 3.2
# 13.08.2014 - UR 027 Releaseversion 3.2.1
# 15.08.2014 - COE 028 Adopt modifications SPLM
# 15.08.2014 - COE 029 Releaseversion 3.2.2
# 25.08.2014 - UR 030 Releaseversion 3.2.3
# 10.09.2014 - UR 031 Releaseversion 3.2.4
# 11.09.2014 - UR 032 Releaseversion 3.2.5
# 22.09.2014 - UR 033 Add property for "show where output comes from" and delete flag(show_where_output_comes_from)
# 29.09.2014 - COE 034 Releaseversion 3.2.6
# 13.10.2014 - COE 035 Releaseversion 3.2.7
# 21.10.2014 - COE 036 Releaseversion 3.2.8
# 04.11.2014 - COE 037 Releaseversion 3.2.9
# 11.11.2014 - UR 038 Modification of the complete post speed
# 13.11.2014 - UR 039 Modification of the complete post speed
# 21.11.2014 - COE 040 LIB_Shell_environment_handling: changde setting of lib_ge_env(installed_machines_dir,recursively)
# 28.11.2014 - COE 041 Releaseversion 3.2.10
# 22.12.2014 - UR 042 Releaseversion 3.3
# 22.12.2014 - UR 043 Releaseversion 3.3.1
# 05.01.2015 - UR 044 Releaseversion 3.3.2 and changed the Copyright
# 06.01.2015 - UR 045 Releaseversion 3.3.3
# 06.01.2015 - UR 046 Releaseversion 3.3.4
# 07.01.2015 - UR 047 Releaseversion 3.3.5
# 11.01.2015 - UR 048 Releaseversion 3.3.6
# 11.01.2015 - COE 049 Bugfix if the current directory has spaces
# 13.01.2015 - COE 050 Releaseversion 3.3.7
# 20.01.2015 - UR 051 Change file nativename and join to LIB_Shell_format_path_names to save runtime
# 25.01.2015 - UR 052 Releaseversion 3.3.8
# 28.01.2015 - UR 053 Bugfix at LIB_Shell_environment_handling to defined the base folder
# 03.02.2015 - UR 054 Correction if the PostConfigurator structure is used
# 09.02.2015 - UR 055 Releaseversion 3.3.9
# 02.03.2015 - COE 056 Releaseversion 3.4
# 12.03.2015 - UR 057 Releaseversion 3.4.1
# 16.03.2015 - UR 058 Releaseversion 3.4.2
# 30.03.2015 - UR 059 Releaseversion 3.4.3
# 20.04.2015 - COE 060 Releaseversion 3.4.4
# 28.04.2015 - COE 061 Releaseversion 3.4.5
# 15.06.2015 - UR 062 Releaseversion 3.4.6
# 15.06.2015 - UR 063 Change abort handling
# 16.06.2015 - UR 064 Releaseversion 3.4.7
# 22.06.2015 - UR 065 Releaseversion 3.4.8
# 21.07.2015 - UR 066 Releaseversion 3.4.9
# 28.07.2015 - COE 067 Releaseversion 3.4.10
# 11.08.2015 - COE 068 Releaseversion 3.4.11
# 16.08.2015 - UR 069 Save Time with Extended foreach Syntax e.g. foreach {a b c d e} [cmdReturningList] {break}
# Side note: accelerated runtime after the first index, for one index no improvement
# Comparing if Command exists now with LIB_GE_check_commands to wrote the values to an list once
# Modifications of the memory handling with Procedures K SK D unset! clear and set!, see http://wiki.tcl.tk/1923
# Removing unneeded characters and partially reformat
# 20.08.2015 - UR 070 Changed misspelling from adress to address (Bug #784)
# 20.08.2015 - UR 071 Releaseversion 3.4.12
# 21.08.2015 - UR 072 Releaseversion 3.4.13
# 24.08.2015 - COE 073 Releaseversion 3.5
# 04.09.2015 - COE 074 Releaseversion 3.5.1
# 07.09.2015 - COE 075 Releaseversion 3.5.2
# 08.09.2015 - COE 076 Releaseversion 3.5.3
# 13.09.2015 - UR 077 Performance improvement when examining whether a procedure exists and also to loading files
# 15.09.2015 - UR 078 Releaseversion 3.5.4
# 17.09.2015 - UR 079 Change the filename for the lib_ge_dll_version to lower case
# 21.09.2015 - UR 080 Releaseversion 3.6
# 29.09.2015 - UR 081 Releaseversion 3.6.1
# 30.09.2015 - UR 082 Releaseversion 3.6.2
# 05.10.2015 - UR 083 Releaseversion 3.6.3
# 26.10.2015 - UR 084 Releaseversion 3.6.4
# 27.10.2015 - UR 085 Releaseversion 3.6.5
# 18.12.2015 - COE 086 Releaseversion 3.6.6
# 13.01.2016 - UR 087 Releaseversion 3.6.7
# 25.02.2016 - UR 088 Releaseversion 3.6.8
# 07.03.2016 - UR 089 Releaseversion 3.6.9
# 24.03.2016 - COE 090 Releaseversion 3.6.10
# 13.04.2016 - UR 091 Releaseversion 3.6.11
# 20.04.2016 - UR 092 Releaseversion 3.6.12
# 28.04.2016 - UR 093 Releaseversion 3.7
# 29.04.2016 - UR 094 Releaseversion 3.7.1
# 15.05.2016 - COE 095 Releaseversion 3.7.2
# 15.05.2016 - COE 096 Releaseversion 3.7.3
# 17.05.2016 - COE 097 Releaseversion 3.7.4
# 23.05.2016 - COE 098 Releaseversion 3.7.5
# 27.06.2016 - MAN 099 Update internal documentation
# 15.08.2016 - UR 100 Releaseversion 4.0
# 24.08.2016 - UR 101 Releaseversion 4.0.1
# 04.09.2016 - COE 102 Releaseversion 4.0.2
# 05.09.2016 - COE 103 LIB_Shell_environment_handling: 'libraries', 'controller' and 'bin'
# all lowercase (we check it against the result of 'string tolower')
# (back to status of version 100)
# 05.09.2016 - COE 104 Releaseversion 4.0.3
# 08.09.2016 - UR 105 Releaseversion 4.0.4
# 22.09.2016 - UR 106 HISTORY-> Modifications to support now also Linux <-
# 24.09.2016 - UR 107 Releaseversion 4.0.5
# 25.09.2016 - UR 108 Releaseversion 4.1
# 27.09.2016 - UR 109 Releaseversion 4.1.1
# 04.10.2016 - UR 110 Releaseversion 4.1.2
# 24.10.2016 - UR 111 Releaseversion 4.1.3
# 17.11.2016 - MAN 112 Source also from UGII_POST_POOL_DIR_NG_CUSTOM
# 19.11.2016 - UR 113 Releaseversion 4.1.4
# 21.11.2016 - MAN 114 Remove again sourcing from UGII_POST_POOL_DIR_NG_CUSTOM
# 07.12.2016 - UR 115 Releaseversion 4.1.5
# 11.01.2017 - COE 116 Releaseversion 4.1.6
# 21.02.2017 - UR 117 Releaseversion 4.1.7
# 24.02.2017 - UR 118 Releaseversion 4.1.8
# 13.03.2017 - COE 119 Releaseversion 4.2
# 05.04.2017 - COE 120 Releaseversion 4.2.1
# 06.04.2017 - COE 121 Releaseversion 4.2.2
# 07.04.2017 - COE 122 Releaseversion 4.2.3
# 24.04.2017 - UR 123 Remove PUI settings and procedures
# 28.04.2017 - COE 124 Releaseversion 4.2.4
# 19.05.2017 - UR 125 Releaseversion 4.2.5
# 18.06.2017 - COE 126 Releaseversion 4.2.6
# 27.06.2017 - COE 127 Releaseversion 4.2.7
# 06.07.2017 - UR 128 Extension for the layer editor
# 31.07.2017 - UR 129 Releaseversion 4.2.8
# 01.08.2017 - UR 130 Bugfix if variable TEMP not exists within LINUX systems
# 02.08.2017 - UR 131 Releaseversion 4.2.9
# 31.08.2017 - UR 132 Add support for *.pcf
# 01.09.2017 - UR 133 Releaseversion 4.2.10
# 11.09.2017 - COE 134 Releaseversion 4.2.11
# 25.09.2017 - COE 135 Releaseversion 4.3
# 12.11.2017 - COE 136 Releaseversion 4.3.1
# 28.11.2017 - UR 137 Releaseversion 4.3.2
# 04.12.2017 - UR 138 Adding the process ID to all files that are traded through the preparation process
# 21.02.2018 - COE 139 Releaseversion 4.3.3
# 12.03.2018 - UR 140 File contents revised for TCL8.6 and converted to UTF-8
# 14.03.2018 - UR 141 Releaseversion 4.4
# 20.03.2018 - UR 142 Releaseversion 4.4.1
# 12.04.2018 - UR 143 Releaseversion 4.4.2
# 04.05.2018 - UR 144 Releaseversion 4.4.3
# 14.05.2018 - UR 145 Releaseversion 4.4.4
# 02.07.2018 - UR 146 Releaseversion 4.4.5
# 20.07.2018 - COE 147 Releaseversion 4.4.6
# 10.09.2018 - UR 148 Releaseversion 4.4.7
# 24.09.2018 - UR 149 Releaseversion 4.4.8
# 08.10.2018 - UR 150 Releaseversion 4.4.9
# 18.10.2018 - COE 151 Releaseversion 4.5
# 11.01.2019 - UR 152 Releaseversion 4.6.1
# 08.02.2019 - UR 153 Releaseversion 4.6.2
# 16.03.2019 - UR 154 Releaseversion 4.6.3
# 21.03.2019 - UR 155 Function revision so that the MOM Execute can also be loaded in versions >= 1847
# 28.03.2019 - COE 156 Releaseversion 4.7
# 11.04.2019 - UR 157 Releaseversion 4.7.1
# 18.04.2019 - UR 158 Releaseversion 4.7.2
# 07.05.2019 - UR 159 Releaseversion 5.0
# 08.07.2019 - UR 160 Releaseversion 5.0.1
# 31.07.2019 - UR 161 Releaseversion 5.0.2
# 16.08.2019 - COE 162 Releaseversion 5.0.3
# 21.08.2019 - COE 163 Releaseversion 5.1.0
# 20.09.2019 - COE 164 Releaseversion 5.2.0
# 06.11.2019 - UR 165 Releaseversion 5.2.3
# 27.12.2019 - UR 166 Releaseversion 5.2.4
# 31.01.2020 - COE 167 Releaseversion 5.2.5
# 02.03.2020 - UR 168 Releaseversion 5.2.6
# 19.03.2020 - COE 169 Releaseversion 5.2.7
# 25.03.2020 - COE 170 Releaseversion 5.3.0
# 23.04.2020 - UR 171 Bugfix set lib_ge_dll_version instead of dotnet_version
# 01.07.2020 - COE 172 Releaseversion 5.3.1
# 09.07.2020 - COE 173 Releaseversion 5.3.2
# 06.09.2020 - COE 174 Releaseversion 5.3.3
# 15.09.2020 - COE 175 Releaseversion 5.3.4
# 26.09.2020 - COE 176 Releaseversion 5.3.5
# 26.11.2020 - COE 177 Releaseversion 5.3.6
# 24.01.2021 - COE 178 Releaseversion 5.3.7
# 06.02.2021 - COE 179 Releaseversion 5.3.8
# 15.03.2021 - COE 180 Releaseversion 5.3.9
# 13.04.2021 - COE 181 Releaseversion 5.4.0
# 16.05.2021 - COE 182 Bug#2260: check UGII_TMP_DIR first, use system-env only as fallback
# 02.06.2021 - COE 183 Releaseversion 5.4.1
# 11.06.2021 - COE 184 Linux compatibility
# 21.07.2021 - COE 185 Releaseversion 5.4.2
# 03.09.2021 - COE 186 Releaseversion 5.4.3
# 07.09.2021 - COE 187 Releaseversion 5.4.4
# 29.09.2021 - COE 188 Releaseversion 5.5.0
# 25.10.2021 - COE 189 Releaseversion 5.5.1
# 24.11.2021 - COE 190 Releaseversion 5.5.2
# 19.02.2022 - COE 191 Releaseversion 5.5.3
# 06.03.2022 - COE 192 Releaseversion 5.5.4
# 08.04.2022 - COE 193 Releaseversion 5.5.5
# 13.07.2022 - COE 194 Releaseversion 5.5.6
# 07.09.2022 - COE 195 Releaseversion 5.5.7
# 24.09.2022 - COE 196 Releaseversion 5.5.8
# 15.01.2023 - COE 197 Releaseversion 23.01.0
# 14.03.2023 - COE 198 Releaseversion 23.03.0
# 07.04.2023 - COE 199 Releaseversion 23.04.0
# 14.07.2023 - COE 200 Releaseversion 23.07.0
# 14.09.2023 - COE 201 Releaseversion 23.09.0
# 09.10.2023 - ET 202 Releaseversion 23.10.0
# 10.12.2023 - COE 203 Releaseversion 23.12.0
# 19.01.2024 - COE 204 Releaseversion 24.01.0
# 21.03.2024 - COE 205 Releaseversion 24.03.0
# 13.08.2024 - COE 206 Releaseversion 24.08.0
# 22.08.2024 - COE 207 Releaseversion 24.08.1
# 16.09.2024 - COE 208 Releaseversion 24.09.0
# 24.09.2024 - ET 209 Releaseversion 24.09.1
# 27.12.2024 - COE 210 Releaseversion 24.12.0
# 02.04.2025 - COE 211 Releaseversion 25.04.0
#
#
#
#
#
#
#
#
#
#############################################################################################
# Copyright 2014-2024 Siemens Product Lifecycle Management Software Inc.
# All Rights Reserved.
#
####S#T#A#N#D#A#R#D##S#O#U#R#C#I#N#G#########################################################
#____________________________________________________________________________________________
#
# Procedure debugger
#____________________________________________________________________________________________
#
set lib_ge_debug(on) 0
set lib_ge_debug(proc_watch_list) "MOM* PPLIB* PROC*"
set lib_ge_debug(var_write_trace_list) "mom_group_name"
set lib_ge_debug(proc_watch_exclude_list) "MOM_SMART* MOM_evaluate_arg MOM_before_each_add_var MOM_before_load_address"
#____________________________________________________________________________________________
set lib_debug_source_of_proc_list ""
set lib_fh_do_after_output 0 ;#if set to 0 the posttreatment loop is suppressed
if {![info exists lib_ge_platform]} {
set lib_ge_temppath ""
if {[info commands MOM_ask_env_var] != ""} {
set lib_ge_temppath [MOM_ask_env_var UGII_TMP_DIR]
}
if {[string match "*windows*" $tcl_platform(platform)]} {
set lib_ge_platform 1
set lib_ge_slash "\\"
if {$lib_ge_temppath == ""} {
if {[info exists env(TEMP)]} {
set lib_ge_temppath $env(TEMP)
} elseif {[info exists env(TMP)]} {
set lib_ge_temppath $env(TMP)
}
}
} else {
set lib_ge_platform 0
set lib_ge_slash "/"
if {$lib_ge_temppath == ""} {
if {[info exists env(TMPDIR)]} {
set lib_ge_temppath $env(TMPDIR)
}
if {![string length $lib_ge_temppath]} {
set lib_ge_temppath "${lib_ge_slash}var${lib_ge_slash}tmp"
}
}
}
}
#____________________________________________________________________________________________
# <Internal Documentation>
#
# Handling for the default environment variables
#
# <Internal Example>
#
#____________________________________________________________________________________________
proc LIB_Shell_environment_handling {} {
global lib_ge_env lib_ge_slash lib_ge_installed_machines
set lib_ge_env(post_pool_dir) [LIB_Shell_format_path_names [MOM_ask_env_var "UGII_POST_POOL_DIR_NG"]]
set lib_ge_env(cam_post_dir) [LIB_Shell_format_path_names [MOM_ask_env_var "UGII_CAM_POST_DIR"]]
set lib_ge_env(tmp_dir) [LIB_Shell_format_path_names [MOM_ask_env_var "UGII_TMP_DIR"]]
if {$lib_ge_env(tmp_dir) == ""} {set lib_ge_env(tmp_dir) $::lib_ge_temppath}
if {[string match [string tolower [file tail [file dirname [info script]]]] "libraries"]} {
set lib_ge_installed_machines [file dirname [info script]]
} else {
set lib_ge_installed_machines [info script]
}
set lib_ge_env(installed_machines_dir) [LIB_Shell_format_path_names [file dirname $lib_ge_installed_machines]]
# Needed is searchpath activ, therefore info script is wrong
if {[file exists [LIB_Shell_format_path_names "$lib_ge_env(tmp_dir)${lib_ge_slash}pretreatment_script.tcl"]]} {source [LIB_Shell_format_path_names "$lib_ge_env(tmp_dir)${lib_ge_slash}pretreatment_script.tcl"]}
set lib_ge_env(installed_machines_dir,recursively) ""
lappend lib_ge_env(installed_machines_dir,recursively) $lib_ge_env(installed_machines_dir)
set current_dir [pwd]
if {![catch {cd [lindex $lib_ge_env(installed_machines_dir,recursively) 0]}]} {
if {![catch {set dir [string tolower [glob *]]}]} {
foreach e {libraries controller bin} {
set index [lsearch -exact $dir $e]
if {$index > -1} {
set directory [lindex $dir $index]
set directory [string toupper [string index $directory 0]][string range $directory 1 end]
lappend lib_ge_env(installed_machines_dir,recursively) [LIB_Shell_format_path_names "[lindex $lib_ge_env(installed_machines_dir,recursively) 0]$lib_ge_slash$directory"]
}
}
}
}
cd $current_dir
if {![regexp -nocase -- {\w+} $lib_ge_env(post_pool_dir)]} {set lib_ge_env(post_pool_dir) $lib_ge_env(installed_machines_dir)}
set lib_ge_env(version_bit) [MOM_ask_env_var "UGII_VERSION_BIT"]
set lib_ge_env(base_dir) [MOM_ask_env_var "UGII_BASE_DIR"]
set lib_ge_env(compatible_base_release_version) [MOM_ask_env_var "NX_COMPATIBLE_BASE_RELEASE_VERSION"]
set lib_ge_env(major_version) [MOM_ask_env_var "UGII_MAJOR_VERSION"]
set lib_ge_env(minor_version) [MOM_ask_env_var "UGII_MINOR_VERSION"]
set lib_ge_env(subminor_version) [MOM_ask_env_var "UGII_SUBMINOR_VERSION"]
if {![info exists lib_ge_dll_version]} {global lib_ge_dll_version}
if {$lib_ge_env(minor_version) > 0} {
set lib_ge_dll_version "nx$lib_ge_env(major_version)$lib_ge_env(minor_version)"
} else {
set lib_ge_dll_version "nx$lib_ge_env(major_version)"
}
if {[llength $lib_ge_env(compatible_base_release_version)] > 0} {set lib_ge_dll_version "nx$lib_ge_env(compatible_base_release_version)"}
if {[string match "*windows*" $::tcl_platform(platform)]} {
regsub -all "/" $lib_ge_env(base_dir) "\\" lib_ge_env(base_dir)
}
}
#____________________________________________________________________________________________
# <Internal Documentation>
#
# This procedure may be used to format pathnames from unix format in windows
# format and delete double backslash
#
# Output:
# D:\Temp\mom\debug.out or \\Server\Temp\mom\debug.out
#
# e.g.
# set error [LIB_Shell_format_path_names "D:/Temp/mom/debug.out"]
#
# <Example>
# set error [LIB_Shell_format_path_names "D:/Temp/mom/debug.out"]
#____________________________________________________________________________________________
proc LIB_Shell_format_path_names {pathname} {
global lib_ge_slash lib_ge lib_ge_platform
regsub -all "/" $pathname "\\" pathname
binary scan $pathname H* pathbin
if {[info exists lib_ge(format_path,$pathbin,0,0,0)]} {
return $lib_ge(format_path,$pathbin,0,0,0)
}
if {[regexp -nocase -- {^[\\\\]|^[\/\/]} $pathname]} {
regsub -all "/" $pathname "\\" pathname
}
if {$lib_ge_platform} {
regsub -all "/" $pathname "\\" pathname
if {![regexp -nocase -- {^\\\\} $pathname]} {set unc 0} else {set unc 1}
while {[regsub -- "(?q)\\\\" $pathname "\\" pathname]} {}
if {$unc} {set pathname "\\$pathname"}
} elseif {!$lib_ge_platform} {
regsub -all "\\\\" $pathname "/" pathname
if {![regexp -nocase -- {^//} $pathname]} {set unc 0} else {set unc 1}
while {[regsub -- "(?q)//" $pathname "/" pathname]} {}
if {$unc} {set pathname "/$pathname"}
}
set lib_ge(format_path,$pathbin,0,0,0) [string trim $pathname]
return $lib_ge(format_path,$pathbin,0,0,0)
}
#____________________________________________________________________________________________
# <Internal Documentation>
#
# Abort postrun
#
# <Internal Example>
#
#____________________________________________________________________________________________
proc LIB_Shell_abort {message} {
MOM_output_to_listing_device $message
MOM_log_message $message
MOM_abort $message
}
#____________________________________________________________________________________________
# <Internal Documentation>
#
# Handling for the main shell
#
# <Internal Example>
#
#____________________________________________________________________________________________
proc LIB_Shell_main {} {
global lib_ge_env lib_ge_slash
global lib_cycle_path sourcefile
LIB_Shell_environment_handling
lappend ::lib_ge_monitored_files [LIB_Shell_format_path_names [info script]]
if {[info commands LIB_GE_source] == ""} {
set lib_cycle_path 0
set searchpath $lib_ge_env(installed_machines_dir,recursively)
lappend searchpath $lib_ge_env(post_pool_dir)
foreach path $searchpath {
if {$lib_cycle_path} {break}
foreach ext {.tcl .tbc .pcf} {
set sourcefile [LIB_Shell_format_path_names "$path${lib_ge_slash}lib_sourcing$ext"]
if {[file exists $sourcefile]} {
if {[string match ".tbc" $ext]} {
LIB_Shell_abort "ByteCode Loader is not available, cannot process lib_sourcing$ext"
}
uplevel #0 {
set err ""
if {$tcl_version >= 8.6 && [catch {source -encoding utf-8 $sourcefile} err]} {
if {[info exists ::errorInfo]} {MOM_output_to_listing_device "errorInfo $::errorInfo"}
LIB_Shell_abort "File lib_sourcing $err not loadable"
}
if {$tcl_version < 8.6 && [catch {source $sourcefile} err]} {
if {[info exists ::errorInfo]} {MOM_output_to_listing_device "errorInfo $::errorInfo"}
LIB_Shell_abort "File lib_sourcing $err not loadable"
}
if {[string length $err] > 0} {
set lib_ge_debug(lib_sourcing) "$sourcefile"
lappend lib_ge_monitored_files "$sourcefile"
lappend lib_ge_log_message "\n--> $sourcefile loaded"
set lib_cycle_path 1 ; break
}
}
}
}
}
if {!$lib_cycle_path} {
LIB_Shell_abort "File lib_sourcing not found"
}
}
LIB_Shell_init
}
#____________________________________________________________________________________________
# <Internal Documentation>
#
# Handling for the default environment variables
#
# <Internal Example>
#
#____________________________________________________________________________________________
proc LIB_Shell_defined_post_environment {} {
global lib_ge_env lib_ge_slash lib_pp_source_file
#____________________________________________________________________________________________
#
# NX Post, load files
#____________________________________________________________________________________________
#
# There are different ways to source each files
#
# e.g. Befor LIB_GE_source call
# lappend lib_pp_source_file "machine,UGII_CAM_POST_DIR"
#
# e.g. After LIB_GE_source call
# LIB_GE_source "Test" "C:/Temp/;d:/tmp/"
#
# e.g. To define a searchpath
# LIB_GE_source "" "C:/Temp/;UGII_CAM_POST_DIR"
# Allowed is the direct path and/or variable
# This is the call the PB post LIB_GE files
# ** internal funktion / Don't remove this line **
if {[file exists "$lib_ge_env(tmp_dir)${lib_ge_slash}pt_source_list_[pid].tcl"]} {
LIB_GE_source pt_source_list_[pid] "$lib_ge_env(tmp_dir)${lib_ge_slash}" ".tcl" 0 0 "RUNTIME"
LIB_GE_source lib_pretreatment_post
} else {
lappend lib_pp_source_file "ugpost_base" "lib_msg" "lib_file_handling" "lib_standard_post_func" "lib_document" "lib_pretreatment_post"
LIB_GE_source
}
}
LIB_Shell_main
####S#T#A#R#T##C#U#S#T#O#M##M#O#D#I#F#I#C#A#T#I#O#N#S########################################
####E#N#D##C#U#S#T#O#M##M#O#D#I#F#I#C#A#T#I#O#N#S############################################
#############################################################################################
# This is to debug
#############################################################################################
if {[info commands LIB_GE_debug] != ""} {LIB_GE_debug}

View File

@@ -0,0 +1,163 @@
##############################################################################
# File: RoboticRulesUserDefinitions.py
# Description
# This file contains the machine or controller specific code for the tool path processing
# 12-Nov-2020 Support Tape Layup device
#
#
# ================================================================
import sys
import math
import os
import NXOpen
import NXOpen.CAM
# This script assumes that all symbols from RoboticRulesSystemDefinitions.py have been imported already
# This is usually achieved by loading both RoboticRulesSystemDefinitions.py and this file using special code
# from RoboticToolpathProcessor import *
# Define a new simple robotic calculator that computes some process parameters
class SampleProcessParameterRoboticDataCalculator(SingleUdeRoboticDataCalculator):
""" Just a sample calculator to set process parameters.
It sets a value of 1 to all toolpath locations that are close to a specified point.
"""
def __init__(self):
# name of the input UDE
SingleUdeRoboticDataCalculator.__init__(self, "robot_mark_point_sample")
# input parameter names
self.paramName_Point = "point"
self.paramName_Distance = "distance"
# output parameter name
self.paramNameLocationData_SampleParameter = "sample_processparameter"
# strings to show to the user
uiLabels = {
self.inputUdeName: "Robot Mark Point Sample",
self.paramName_Point: "Point",
self.paramName_Distance: "Distance",
self.paramNameLocationData_SampleParameter: "Sample Motion Data Param"}
# Input UDE definition
self.inputUdeDefinition = UdeDefinition(self.inputUdeName, uiLabels)
self.inputUdeDefinition.AddUdeParameter(UdeParameterPoint(self.paramName_Point, uiLabels))
self.inputUdeDefinition.AddUdeParameter(UdeParameterDouble(self.paramName_Distance,uiLabels, 0.0))
# Output UDE definition
self.locationDataUdeDefinition = UdeDefinition("", "")
self.locationDataUdeDefinition.AddUdeParameter(UdeParameterInt(self.paramNameLocationData_SampleParameter, uiLabels, 0))
def HandleSingleInputUde(self, ude):
# Read the parameters of the input ude
p = ude.GetParameter(self.paramName_Point).Point
if p == None:
raise ToolPathProcessingException("Parameter " + self.paramName_Point + " is not defined")
self.point = p.Coordinates
self.distance = ude.GetParameter(self.paramName_Distance).DoubleValue
def ProcessLocationDataUde(self, input, ude):
if self.HasInputUde(): # do only something if the operation has the input ude
inputPos = input.CurrentLocation.Position
curDistance = RobotMath_Distance(inputPos,self.point)
# calculate the output ude parameter
if curDistance < self.distance:
ude.GetParameter(self.paramNameLocationData_SampleParameter).IntegerValue = 1
else:
ude.GetParameter(self.paramNameLocationData_SampleParameter).IntegerValue = 0
def RoboticRulesScript_GetCalculators(addAll: bool) -> tuple:
"""Compute the calculators for the current cell.
param addAll: If true all calculators are added, even those that do not work for the current kinematic.
returns: a tuple of (calculator, externalAxisList) """
# define the list of external axes
railAxisName = "RAIL"
railAxisName2 = "Z_RAIL"
positionerAxisName = "POSITIONER"
drillingAxisName = "QUILL"
tapeAxisName = "TAPE_ROTARY"
extruder1AxisName = "EXTRUDER1_LINEAR"
extruder2AxisName = "EXTRUDER2_LINEAR"
allExternalAxes = [positionerAxisName, railAxisName, railAxisName2, drillingAxisName, tapeAxisName, extruder1AxisName, extruder2AxisName]
validExternalAxes = []
for i in range(len(allExternalAxes)):
if KinUtils_HasAxis(allExternalAxes[i]):
validExternalAxes.append(allExternalAxes[i])
externalAxes = []
if addAll:
externalAxes = allExternalAxes
else:
externalAxes = validExternalAxes
# Define which calculators should be used
calc = CompoundRoboticDataCalculator()
calc.ChildCalculators.append(ConfigurationRoboticDataCalculator())
calc.ChildCalculators.append(ParkingPositionRoboticDataCalculator(externalAxes))
calc.ChildCalculators.append(ParkingPositionReuseRoboticDataCalculator(externalAxes))
calc.ChildCalculators.append(SampleProcessParameterRoboticDataCalculator())
positionerAxisData = []
if KinUtils_HasAxis(positionerAxisName):
axisData = KinUtils_GetAxisData(positionerAxisName)
positionerAxisData.append(axisData)
calc.ChildCalculators.append(PositionerRoboticDataCalculator(axisData))
elif addAll:
axisData = AxisData(positionerAxisName, NXOpen.Vector3d(1.0,0.0,0.0), True)
calc.ChildCalculators.append(PositionerRoboticDataCalculator(axisData))
calc.ChildCalculators.append(ToolOrientationRoboticDataCalculator(positionerAxisData))
calc.ChildCalculators.append(RobotFindingResolver(validExternalAxes))
calc.ChildCalculators.append(TapeLayingRoboticDataCalculator([tapeAxisName, extruder1AxisName, extruder2AxisName]))
calc.ChildCalculators.append(DrillingDeviceRoboticDataCalculator(drillingAxisName))
if KinUtils_HasAxis(railAxisName):
railAxisDir = KinUtils_GetAxisDirection(railAxisName)
railAxisPos = KinUtils_GetPointOnAxis(railAxisName)
railAxisLimits = KinUtils_GetAxisLimits(railAxisName)
calc.ChildCalculators.append(RailRoboticDataCalculator(railAxisName, railAxisPos, railAxisDir, railAxisLimits))
elif addAll:
calc.ChildCalculators.append(RailRoboticDataCalculator(railAxisName, NXOpen.Vector3d(1.0,0.0,0.0), NXOpen.Vector3d(1.0,0.0,0.0), (0.0,1.0)))
if KinUtils_HasAxis(railAxisName2):
railAxisDir = KinUtils_GetAxisDirection(railAxisName2)
railAxisPos = KinUtils_GetPointOnAxis(railAxisName2)
railAxisLimits = KinUtils_GetAxisLimits(railAxisName2)
calc.ChildCalculators.append(RailRoboticDataCalculator2(railAxisName2, railAxisPos, railAxisDir, railAxisLimits))
elif addAll:
calc.ChildCalculators.append(RailRoboticDataCalculator2(railAxisName2, NXOpen.Vector3d(1.0,0.0,0.0), NXOpen.Vector3d(1.0,0.0,0.0), (0.0,1.0)))
if addAll:
# add the calculators that exist only to write CDL file text
calc.ChildCalculators.append(RobotZonesDefineUdeCalculator())
calc.ChildCalculators.append(OlpCommandDefineUdeCalculator())
calc.ChildCalculators.append(OlpCommandMultiLineDefineUdeCalculator(10))
calc.ChildCalculators.append(PayloadDataDefineUdeCalculator())
calc.ChildCalculators.append(ToolPathOlpCommandsDefineUdeCalculator())
calc.ChildCalculators.append(RobotMountComponentDefineUdeCalculator())
return (calc, externalAxes)
# Uncomment this function to implement your own main function
# The function should parse the argument list and return with true if it
# handled the call. If it returns false the caller will try to parse the arguments.
# def RoboticRulesScript_Main2(args):
# NXOpen.Session.GetSession().LogFile.WriteLine("Main called")
# return True

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,16 @@
*
* Robot name : ABB S4 robots
* Controller : S4
* Date create : 05 Aug 2014
*
* Comments: .e file for the ABB IRB6640_235_255, including the J3 joint
*
* Description :
*
* CONFIGURATION DATA:
*
config_family cf_over_head_neg;
joint_config_family j3 joint_cf_elbow_up;
joint_config_family j6 joint_cf_sin_pos;
joint_config_family j5 joint_cf_pos;
default_turns j4 0 -180.0, j6 0 -180.0;

View File

@@ -0,0 +1 @@
ABB RAPID MW,${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}ABB_IRB_6640_235_255_MW\postprocessor\ABB_RAPID\ABB_RAPID_post.tcl,${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}ABB_IRB_6640_235_255_MW\postprocessor\ABB_RAPID\ABB_RAPID_post.def

View File

@@ -0,0 +1,8 @@
MACHINE Default
INCLUDE {
$POST_LIB_CURRENT_MACH_DIR/nx_olp_util_base.def
$POST_LIB_CURRENT_MACH_DIR/../../robots/Robotics.cdl
$POST_LIB_CURRENT_MACH_DIR/Controller/ABB_RAPID_ctrl.def
}

View File

@@ -0,0 +1,139 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Copyright>Siemens Digital Industry Software</Copyright>
<Version>2.0</Version>
<MachineName>ABB_RAPID</MachineName>
<Sourcing>
<Sequence>
<Layer Name="Libraries" ReadOnly="true" SubFolder="Libraries">
<Copyright>Siemens Digital Industry Software</Copyright>
<Template>${UGII_CAM_RESOURCE_DIR}post_configurator/post_template/libraries/libraries.psl</Template>
<Version>1.00</Version>
<Order>1001</Order>
<Scripts>
<Filename Name="lib_sourcing" Processing="auto"/>
<Filename Name="lib_general" Processing="auto"/>
<Filename Name="lib_xml_handling" Processing="auto"/>
<Filename Name="lib_msg" Processing="true"/>
<Filename Name="lib_file_handling" Processing="true"/>
<Filename Name="lib_standard_post_func" Processing="true"/>
<Filename Name="lib_document" Processing="true"/>
<Filename Include="pretreatment" Name="lib_pretreatment" Processing="auto"/>
<Filename Include="pretreatment" Name="lib_pretreatment_post" Processing="auto"/>
</Scripts>
<DefinedEvents>
<Filename Include="pretreatment" Name="lib_pretreatment" Processing="auto"/>
</DefinedEvents>
<CustomerDialogs>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Digital Industry Software</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
<Layer Name="Robotic Standard Layer" ReadOnly="false">
<Copyright>Siemens Digital Industry Software</Copyright>
<Template>${UGII_CAM_RESOURCE_DIR}post_configurator/post_template/nx_olp_util/robotic_standard_layer.psl</Template>
<Version>1.00</Version>
<Order>1999</Order>
<Scripts>
<Filename Name="nx_olp_util_init" Processing="true"/>
<Filename Name="nx_olp_util_robot_init" Processing="true"/>
<Filename Name="nx_olp_util_maths" Processing="true"/>
<Filename Name="nx_olp_util_robotics" Processing="true"/>
<Filename Name="nx_olp_util_cse_simulation_ini" Processing="true"/>
</Scripts>
<DefinedEvents>
<Filename Include="true" Name="nx_olp_util_base" Processing="true"/>
</DefinedEvents>
<CustomerDialogs>
<Filename Name="Robotics" Processing="true"/>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Digital Industry Software</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
<Layer Name="ABB RAPID Layer" ReadOnly="false">
<Copyright>Siemens Digital Industry Software</Copyright>
<Template>${UGII_CAM_RESOURCE_DIR}post_configurator/post_template/controller/ABB_RAPID/base/ABB_RAPID_base.psl</Template>
<Version>1.00</Version>
<Order>8002</Order>
<Scripts>
<Filename Name="ABB_RAPID_ctrl" Processing="true"/>
<Filename Name="ABB_RAPID_ctrl_msg" Processing="true"/>
<Filename Name="ABB_RAPID_user_custom" Processing="true"/>
</Scripts>
<DefinedEvents>
<Filename Name="ABB_RAPID_ctrl" Processing="true"/>
</DefinedEvents>
<CustomerDialogs>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Digital Industry Software</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
<Layer Name="Customer" ReadOnly="true">
<Copyright>Siemens Digital Industry Software</Copyright>
<Version>1.00</Version>
<Order>9001</Order>
<Scripts>
<Filename Name="ABB_RAPID_post_custom" Processing="true"/>
</Scripts>
<DefinedEvents>
</DefinedEvents>
<CustomerDialogs>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Digital Industry Software</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
</Sequence>
</Sourcing>
<History>
<Comments>
<Comment>
<User>xd2oht</User>
<Date>21.07.2020 11:55:25</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
<Comment>
<User>xd2oht</User>
<Date>21.07.2020 11:55:25</Date>
<Text>Postprocessor successfully upgraded from version 4.7.1 to version 5.3.0</Text>
</Comment>
</Comments>
<Customer>
<Company/>
<Address/>
<Contact/>
<Phone/>
<Fax/>
<Mail/>
</Customer>
</History>
<Units>Millimeters and Inches</Units>
</Configuration>

View File

@@ -0,0 +1 @@
# this file is intentionally left empty

View File

@@ -0,0 +1,299 @@
#############################################################################################
#
# Customer Data
#
# Company :
# Address :
# Contact person :
# Phone :
# Fax :
# Mail :
#
#############################################################################################
#
# Copyright 2014-2019 Siemens Product Lifecycle Management Software Inc.
# All Rights Reserved.
#
#############################################################################################
#____________________________________________________________________________________________
#
# Procedure debugger
#____________________________________________________________________________________________
#
set lib_ge_debug(on) 0
set lib_ge_debug(proc_watch_list) "MOM* PPLIB* PROC*"
set lib_ge_debug(var_write_trace_list) "mom_group_name"
set lib_ge_debug(proc_watch_exclude_list) "MOM_SMART* MOM_evaluate_arg MOM_before_each_add_var MOM_before_load_address"
#____________________________________________________________________________________________
set lib_debug_source_of_proc_list ""
if {![info exists lib_ge_platform]} {
if {[string match "*windows*" $tcl_platform(platform)]} {
set lib_ge_platform 1
set lib_ge_slash "\\"
if {[info exists env(TEMP)]} {
set lib_ge_temppath $env(TEMP)
} elseif {[info exists env(TMP)]} {
set lib_ge_temppath $env(TMP)
}
} else {
set lib_ge_platform 0
set lib_ge_slash "/"
if {[info exists env(TMPDIR)]} {
set lib_ge_temppath $env(TMPDIR)
}
if {![string length $lib_ge_temppath]} {
set lib_ge_temppath "${lib_ge_slash}var${lib_ge_slash}tmp"
}
}
}
if {![info exists lib_ge_env(tmp_dir)]} {
set lib_ge_env(tmp_dir) [MOM_ask_env_var "UGII_TMP_DIR"]
}
if {![string length $lib_ge_env(tmp_dir)]} {
set lib_ge_env(tmp_dir) $lib_ge_temppath
}
#____________________________________________________________________________________________
# <Documentation>
#
# Handling for the default environment variables
#
# <Example>
#
#____________________________________________________________________________________________
proc LIB_Shell_environment_handling {} {
eval global [uplevel #0 info vars]
# Language file and OS specific values
if {![info exists lib_ge_slash]} {global lib_ge_slash}
if {![info exists lib_ge_env]} {global lib_ge_env}
set lib_ge_env(post_pool_dir) [LIB_Shell_format_path_names [MOM_ask_env_var "UGII_POST_POOL_DIR_NG"]]
set lib_ge_env(cam_post_dir) [LIB_Shell_format_path_names [MOM_ask_env_var "UGII_CAM_POST_DIR"]]
set lib_ge_env(tmp_dir) [LIB_Shell_format_path_names [MOM_ask_env_var "UGII_TMP_DIR"]]
if {$lib_ge_env(tmp_dir) == ""} {set lib_ge_env(tmp_dir) $lib_ge_temppath}
global lib_ge_installed_machines
set lib_ge_installed_machines [info script]
set lib_ge_env(installed_machines_dir) [LIB_Shell_format_path_names [file dirname $lib_ge_installed_machines]]
set lib_ge_env(installed_machines_dir,recursively) ""
lappend lib_ge_env(installed_machines_dir,recursively) $lib_ge_env(installed_machines_dir)
set current_dir [pwd]
if {![catch {cd [lindex $lib_ge_env(installed_machines_dir,recursively) 0]}]} {
if {![catch {set dir [string tolower [glob *]]}]} {
foreach e {libraries controller bin} {
set index [lsearch -exact $dir $e]
if {$index > -1} {
set directory [lindex $dir $index]
set directory [string toupper [string index $directory 0]][string range $directory 1 end]
lappend lib_ge_env(installed_machines_dir,recursively) [LIB_Shell_format_path_names "[lindex $lib_ge_env(installed_machines_dir,recursively) 0]$lib_ge_slash$directory"]
}
}
}
}
cd $current_dir
if {![regexp -nocase -- {\w+} $lib_ge_env(post_pool_dir)]} {set lib_ge_env(post_pool_dir) $lib_ge_env(installed_machines_dir)}
set lib_ge_env(version_bit) [MOM_ask_env_var "UGII_VERSION_BIT"]
set lib_ge_env(base_dir) [MOM_ask_env_var "UGII_BASE_DIR"]
set lib_ge_env(major_version) [MOM_ask_env_var "UGII_MAJOR_VERSION"]
set lib_ge_env(minor_version) [MOM_ask_env_var "UGII_MINOR_VERSION"]
set lib_ge_env(subminor_version) [MOM_ask_env_var "UGII_SUBMINOR_VERSION"]
if {![info exists lib_ge_dll_version]} {global lib_ge_dll_version}
if {$lib_ge_env(minor_version) > 0} {
set lib_ge_dll_version "nx$lib_ge_env(major_version)$lib_ge_env(minor_version)"
} else {
set lib_ge_dll_version "nx$lib_ge_env(major_version)"
}
regsub -all "/" $lib_ge_env(base_dir) "\\" lib_ge_env(base_dir)
}
#____________________________________________________________________________________________
# <Internal Documentation>
#
# This procedure may be used to format pathnames from unix format in windows
# format and delete double backslash
#
# Output:
# D:\Temp\mom\debug.out or \\Server\Temp\mom\debug.out
#
# e.g.
# set error [LIB_Shell_format_path_names "D:/Temp/mom/debug.out"]
#
# <Example>
# set error [LIB_Shell_format_path_names "D:/Temp/mom/debug.out"]
#____________________________________________________________________________________________
proc LIB_Shell_format_path_names {pathname} {
global lib_ge lib_ge_platform
binary scan $pathname H* pathbin
if {[info exists lib_ge(format_path,$pathbin,0,0,0)]} {
return $lib_ge(format_path,$pathbin,0,0,0)
}
if {[regexp -nocase -- {^[\\\\]|^[\/\/]} $pathname]} {
regsub -all "/" $pathname "\\" pathname
}
if {$lib_ge_platform} {
regsub -all "/" $pathname "\\" pathname
if {![regexp -nocase -- {^\\\\} $pathname]} {set unc 0} else {set unc 1}
while {[regsub -- "(?q)\\\\" $pathname "\\" pathname]} {}
if {$unc} {set pathname "\\$pathname"}
} elseif {!$lib_ge_platform} {
regsub -all "\\\\" $pathname "/" pathname
if {![regexp -nocase -- {^//} $pathname]} {set unc 0} else {set unc 1}
while {[regsub -- "(?q)//" $pathname "/" pathname]} {}
if {$unc} {set pathname "/$pathname"}
}
set lib_ge(format_path,$pathbin,0,0,0) [string trim $pathname]
return $lib_ge(format_path,$pathbin,0,0,0)
}
#____________________________________________________________________________________________
# <Documentation>
#
# Handling for the main shell
#
# <Example>
#
#____________________________________________________________________________________________
proc LIB_Shell_main {} {
global lib_ge_env lib_ge_slash
global lib_cycle_path sourcefile
LIB_Shell_environment_handling
lappend ::lib_ge_monitored_files [LIB_Shell_format_path_names [info script]]
if {[info commands LIB_GE_source] != "LIB_GE_source"} {
set lib_cycle_path 0
set searchpath $lib_ge_env(installed_machines_dir,recursively)
lappend searchpath $lib_ge_env(post_pool_dir)
foreach path $searchpath {
if {$lib_cycle_path} {break}
foreach ext {.tcl .tbc} {
set sourcefile [LIB_Shell_format_path_names "$path${lib_ge_slash}lib_sourcing$ext"]
if {[file exists $sourcefile]} {
if {[string match ".tbc" $ext]} {
MOM_output_to_listing_device "ByteCode Loader is not available, cannot process lib_sourcing$ext (Provid this file not encrypted)"
MOM_log_message "ByteCode Loader is not available, cannot process lib_sourcing$ext (Provid this file not encrypted)"
MOM_abort "ByteCode Loader is not available, cannot process lib_sourcing$ext (Provid this file not encrypted)"
}
uplevel #0 {
if {$::tcl_version >= 8.6} {
if {[catch {source -encoding utf-8 $sourcefile} err]} {
set lib_source_error 1
}
} else {
if {[catch {source $sourcefile} err]} {
set lib_source_error 1
}
}
if {[info exists lib_source_error] && $lib_source_error == 1} {
if {[info exists ::errorInfo]} {MOM_output_to_listing_device "errorInfo $errorInfo"}
MOM_output_to_listing_device "File lib_sourcing $err not loadable"
MOM_log_message "File lib_sourcing $err not loadable"
MOM_abort "File lib_sourcing not loadable"
} else {
set lib_ge_debug(lib_sourcing) "$sourcefile"
lappend lib_ge_monitored_files "$sourcefile"
lappend lib_ge_log_message "\n--> $sourcefile loaded"
set lib_cycle_path 1 ; break
}
}
}
}
}
if {!$lib_cycle_path} {
MOM_output_to_listing_device "File lib_sourcing not found"
MOM_log_message "File lib_sourcing not found"
MOM_abort "File lib_sourcing not found"
}
}
LIB_Shell_init
}
#____________________________________________________________________________________________
# <Documentation>
#
# Handling for the default environment variables
#
# <Example>
#
#____________________________________________________________________________________________
proc LIB_Shell_defined_post_environment {} {
global lib_pp_source_file lib_shell
#____________________________________________________________________________________________
#
# NX Post, load files
#____________________________________________________________________________________________
#
# There are different ways to source each files
#
# e.g. Befor LIB_GE_source call
# lappend lib_pp_source_file "machine,UGII_CAM_POST_DIR"
#
# e.g. After LIB_GE_source call
# LIB_GE_source "Test" "C:/Temp/;d:/tmp/"
#
# e.g. To define a searchpath
# LIB_GE_source "" "C:/Temp/;UGII_CAM_POST_DIR"
# Allowed is the direct path and/or variable
# This is the call for PB post files
# ** internal funktion / Don't remove this line **
set lib_pp_source_file ""
# This is the call the PB post LIB_GE files
# ** internal funktion / Don't remove this line **
lappend lib_pp_source_file "lib_msg" "lib_file_handling" "lib_standard_post_func" "lib_document"
# If a XML-file with the same file name found, the referenced files will also loaded
LIB_Shell_external_source
if {![info exists lib_shell(load_loader)] || $lib_shell(load_loader)} {
lappend lib_pp_source_file "[file tail [file rootname $::lib_ge_installed_machines]]_custom"
} else {
MOM_log_message "Custom level isn't loaded"
}
#############################################################################################
}
LIB_Shell_main
#############################################################################################
#############################################################################################
#############################################################################################
# This is to debug
#############################################################################################
if {[llength [info commands LIB_GE_debug]]} {LIB_GE_debug}

View File

@@ -0,0 +1,110 @@
#
# ABB_RAPID Post Processor - User Customization File
#
# This file can be used to:
# - define addition user Post Configurator options (see Post Configurator doc)
# - override the default MoveJ/MoveL motion instruction
# - implement specific actions at dedicated MOM event entry points
#
#
# Version $Id: ABB_RAPID_user_custom.tcl,v 1.9 2019/10/18 15:42:10 mchoucroun Exp $
#
#----------------------------------------------------------------------
proc ABB_activate_read_ahead {} {
# This routine can be used to override the default value
# To uncomment in order to Activate read-ahead and access mom_nxt_motion_type
#----------------------------------------------------------------------
#global mom_kin_read_ahead_next_motion
# set mom_kin_read_ahead_next_motion 1
}
#----------------------------------------------------------------------
proc ABB_do_motion_template {sDefaultTemplate} {
# This routine can be used to override the default motion instruction.
# 'sDefaultTemplate': default block template to generate the motion line
# abb_curr_motion_type = AbsJ or J or L
#----------------------------------------------------------------------
global abb_curr_motion_type
# default behaviour: run the target default block template.
MOM_do_template $sDefaultTemplate
}
#----------------------------------------------------------------------
# CUSTOM ENTRY POINT PROCEDURES
#----------------------------------------------------------------------
#----------------------------------------------------------------------
proc ABB_start_of_program {position} {
# Triggered during MOM_start_of_program_LIB
# position: start, before_header, after_header, end
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_end_of_program {position} {
# Trigerred during MOM_end_of_program
# position: start, end
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_start_of_path {position} {
# Triggered during MOM_start_of_path
# position: start, end
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_end_of_path {position} {
# Triggered during MOM_end_of_path
# position: start, end
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_start_of_main_routine {position} {
# Triggered at the start of generating the Main PROC
# position: start (before PROC is written),
# end (after PROC is written)
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_end_of_main_routine {position} {
# Triggered at the end of generating the Main PROC
# position: start (before ENDPROC is written),
# end (after ENDPROC is written)
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_rapid_move {position} {
# Triggered during MOM_rapid_move
# position: start, end
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_linear_move {position} {
# Triggered during MOM_linear_move
# position: start, end
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_circular_move {position} {
# Triggered during MOM_circular_move
# position: start, end
#----------------------------------------------------------------------
}
#----------------------------------------------------------------------
proc ABB_robot_pose_move {position} {
# Triggered during MOM_robot_pose_move
# position: start, end
#----------------------------------------------------------------------
}

View File

@@ -0,0 +1,147 @@
##############################################################################
# Description
# This is the Definition File for ABB_RAPID File Generation EEVT Handler
#
# Version
# $Id: ABB_RAPID_ctrl.def,v 1.4 2019/10/18 15:45:11 gpenkov Exp $
#
###############################################################################
#
MACHINE Default
FORMATTING
{
WORD_SEPARATOR ","
# Override addresses required by Post Configurator infrastructure
# ===================================================================
ADDRESS RA
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER ""
ZERO_FORMAT Zero_real
}
BLOCK_TEMPLATE robot_axis_motion
{
" MoveAbsJ [["\nows
RA[$mom_rob_int(0)]
RA[$mom_rob_int(1)]
RA[$mom_rob_int(2)]
RA[$mom_rob_int(3)]
RA[$mom_rob_int(4)]
RA[$mom_rob_int(5)]\nows
"],["\nows
RA[$mom_rob_ext(0)]
RA[$mom_rob_ext(1)]
RA[$mom_rob_ext(2)]
RA[$mom_rob_ext(3)]
RA[$mom_rob_ext(4)]
RA[$mom_rob_ext(5)]\nows
"]],"\nows
robot_string[$abb_curr_speed]
robot_string[$abb_curr_zone]
robot_string[$abb_curr_tool_wobj]\trlr=";"
}
BLOCK_TEMPLATE rapid_move
{
" MoveJ [["\nows
RA[$mom_rob_pos(0)]
RA[$mom_rob_pos(1)]
RA[$mom_rob_pos(2)]\nows
"],["\nows
RA[$mom_rob_pos(3)]
RA[$mom_rob_pos(4)]
RA[$mom_rob_pos(5)]
RA[$mom_rob_pos(6)]\nows
"]"
robot_string[$mom_rob_config]
"["\nows
RA[$mom_rob_ext(0)]
RA[$mom_rob_ext(1)]
RA[$mom_rob_ext(2)]
RA[$mom_rob_ext(3)]
RA[$mom_rob_ext(4)]
RA[$mom_rob_ext(5)]\nows
"]],"\nows
robot_string[$abb_curr_speed]
robot_string[$abb_curr_zone]
robot_string[$abb_curr_tool_wobj]\trlr=";"
}
BLOCK_TEMPLATE linear_move
{
" MoveL [["\nows
RA[$mom_rob_pos(0)]
RA[$mom_rob_pos(1)]
RA[$mom_rob_pos(2)]\nows
"],["\nows
RA[$mom_rob_pos(3)]
RA[$mom_rob_pos(4)]
RA[$mom_rob_pos(5)]
RA[$mom_rob_pos(6)]\nows
"]"
robot_string[$mom_rob_config]
"["\nows
RA[$mom_rob_ext(0)]
RA[$mom_rob_ext(1)]
RA[$mom_rob_ext(2)]
RA[$mom_rob_ext(3)]
RA[$mom_rob_ext(4)]
RA[$mom_rob_ext(5)]\nows
"]],"\nows
robot_string[$abb_curr_speed]
robot_string[$abb_curr_zone]
robot_string[$abb_curr_tool_wobj]\trlr=";"
}
BLOCK_TEMPLATE circular_move
{
" MoveC [["\nows
RA[$mom_rob_circ_via_pos(0)]
RA[$mom_rob_circ_via_pos(1)]
RA[$mom_rob_circ_via_pos(2)]\nows
"],["\nows
RA[$mom_rob_circ_via_pos(3)]
RA[$mom_rob_circ_via_pos(4)]
RA[$mom_rob_circ_via_pos(5)]
RA[$mom_rob_circ_via_pos(6)]\nows
"]"
robot_string[$mom_rob_config]
"["\nows
RA[$mom_rob_circ_via_ext(0)]
RA[$mom_rob_circ_via_ext(1)]
RA[$mom_rob_circ_via_ext(2)]
RA[$mom_rob_circ_via_ext(3)]
RA[$mom_rob_circ_via_ext(4)]
RA[$mom_rob_circ_via_ext(5)]\nows
"]],[["\nows
RA[$mom_rob_pos(0)]
RA[$mom_rob_pos(1)]
RA[$mom_rob_pos(2)]\nows
"],["\nows
RA[$mom_rob_pos(3)]
RA[$mom_rob_pos(4)]
RA[$mom_rob_pos(5)]
RA[$mom_rob_pos(6)]\nows
"]"
robot_string[$mom_rob_config]
"["\nows
RA[$mom_rob_ext(0)]
RA[$mom_rob_ext(1)]
RA[$mom_rob_ext(2)]
RA[$mom_rob_ext(3)]
RA[$mom_rob_ext(4)]
RA[$mom_rob_ext(5)]\nows
"]],"\nows
robot_string[$abb_curr_speed]
robot_string[$abb_curr_zone]
robot_string[$abb_curr_tool_wobj]\trlr=";"
}
}

View File

@@ -0,0 +1,64 @@
lappend lib_config_data [list "ABB_RAPID_ctrl_msg" "Ctrl_Template_Base-MSG-Version 001"]
#############################################################################################
#
# Copyright 2014-2019 Siemens Product Lifecycle Management Software Inc.
# All Rights Reserved.
#
#############################################################################################
#
# Last changes:
# 11.05.2016 - UR 001 Initial Release and Installation
#
#
#
####G#E#N#E#R#A#L##D#E#S#C#R#I#P#T#I#O#N#####################################################
#
# In this function, the text in the appropriate language UGII_LANG is translated.
# Optional wildcards can be used in the example.
#
# Permitted languages: braz_portuguese / french / german / italian / japanese /
# korean / russian / simpl_chinese / spanish / trad_chinese...
#
# e.g.
# set message [LIB_GE_MSG "Configuration file does not exist"]
# set message [LIB_GE_MSG "File can not be copied from INS->xxx<- to INS->zzz<-"]
# set message [LIB_GE_MSG "File INS->C:\\Temp\\xxx.txt<- not found"]
#
# set message [LIB_GE_MSG "SURFACE COORDINATE" "core"]
#
# (It's for development only)
# set message [LIB_GE_MSG 0001] <-- Please, don't work with this solution
#
#############################################################################################
##############################################################################################
### controller/machine/customer... translations
### between the commas the text is selectable e.g. 0000,$lib_controller_message,xxx,english
##############################################################################################
set lib_msg(0000,$lib_controller_message,core) "Please contact Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,czech) "Kontaktujte společnost Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,danish) "Kontakt Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,dutch) "Neem contact op met Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,english) "Please contact Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,finnish) "Ota yhteyttä Siemens PLM -ohjelmistoon"
set lib_msg(0000,$lib_controller_message,french) "S'il vous plaît contactez Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,german) "Bitte Siemens PLM Software kontaktieren"
set lib_msg(0000,$lib_controller_message,hungarian) "Kérjük, lépjen kapcsolatba a Siemens PLM szoftverrel"
set lib_msg(0000,$lib_controller_message,italian) "Contattare Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,japanese) " Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,korean) " Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,norwegian) "Ta kontakt med Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,polish) "Prosze o kontakt Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,portuguese) "Entre em contato com a Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,russian) "пожалуйста свяжитесь Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,simpl_chinese) " Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,slovak) "Obráťte sa na spoločnosť Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,slovenian) "Prosimo, pokličite programsko opremo Siemens PLM"
set lib_msg(0000,$lib_controller_message,spanish) "Por favor, póngase en contacto con Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,swedish) "Vänligen kontakta Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,trad_chinese) " Siemens PLM Software"
set lib_msg(0000,$lib_controller_message,turkish) "Lütfen Siemens PLM Yazılımına başvurun."
if {$tcl_version < 8.4} {
array set lib_msg [LIB_GE_replace_special_characters [array get lib_msg] 4 0]
}

View File

@@ -0,0 +1,193 @@
MACHINE PRETREATMENT
FORMATTING
{
WORD_SEPARATOR " "
END_OF_LINE "\135"
SEQUENCE sequence_number 10 10 1 99999
FORMAT AbsCoord "&__5.3_"
FORMAT Coordinate "&__5.3_"
FORMAT Digit_2 "&_02_00"
FORMAT Digit_4 "&_04_00"
FORMAT Digit_5 "&__5_00"
FORMAT Dwell_SECONDS "&__5.3_"
FORMAT EventNum "&+03_00"
FORMAT Feed "&__7.2_"
FORMAT Feed_DPM "&__5.2_"
FORMAT Feed_FRN "&__5.3_"
FORMAT Feed_INV "&__5.3_"
FORMAT Feed_IPM "&__4.1_"
FORMAT Feed_IPR "&__1.4_"
FORMAT Feed_MMPM "&__5.0_"
FORMAT Feed_MMPR "&__2.3_"
FORMAT Hcode "&_02_00"
FORMAT Rev "&__4_00"
FORMAT Rotary "&__5.5_"
FORMAT String "%s"
FORMAT Tcode "&_02_00"
FORMAT Zero_int "&_01_0_"
FORMAT Zero_real "&_01.10"
ADDRESS N
{
FORMAT String
FORCE always
LEADER [$mom_sys_leader(N)]
}
ADDRESS G_motion
{
FORMAT String
FORCE off
LEADER [$mom_sys_leader(G)]
}
ADDRESS X
{
FORMAT Coordinate
FORCE always
LEADER [$mom_sys_leader(X)]
ZERO_FORMAT Zero_real
}
ADDRESS Y
{
FORMAT Coordinate
FORCE off
LEADER [$mom_sys_leader(Y)]
ZERO_FORMAT Zero_real
}
ADDRESS Z
{
FORMAT Coordinate
FORCE off
LEADER [$mom_sys_leader(Z)]
ZERO_FORMAT Zero_real
}
ADDRESS fourth_axis
{
FORMAT Rotary
FORCE off
LEADER [$mom_sys_leader(fourth_axis)]
ZERO_FORMAT Zero_real
}
ADDRESS fifth_axis
{
FORMAT Rotary
FORCE off
LEADER [$mom_sys_leader(fifth_axis)]
ZERO_FORMAT Zero_real
}
ADDRESS I
{
FORMAT Coordinate
FORCE always
LEADER [$mom_sys_leader(I)]
ZERO_FORMAT Zero_real
}
ADDRESS J
{
FORMAT Coordinate
FORCE always
LEADER [$mom_sys_leader(J)]
ZERO_FORMAT Zero_real
}
ADDRESS K
{
FORMAT Coordinate
FORCE always
LEADER [$mom_sys_leader(K)]
ZERO_FORMAT Zero_real
}
ADDRESS S
{
FORMAT Zero_int
FORCE always
LEADER "S"
}
BLOCK_TEMPLATE sequence_number
{
N[ ]
}
BLOCK_TEMPLATE sequence_number_turbo
{
N[ ]
}
BLOCK_TEMPLATE circular_move_turbo
{
G_motion[$mom_sys_circle_code(string)]
X[^POSX]
Y[^POSY]
Z[^POSZ]
fourth_axis[^POS4]
fifth_axis[^POS5]
S[$mom_spindle_speed]
}
BLOCK_TEMPLATE linear_move_turbo
{
G_motion[$mom_sys_linear_code]
X[^POSX]
Y[^POSY]
Z[^POSZ]
fourth_axis[^POS4]
fifth_axis[^POS5]
S[$mom_spindle_speed]
}
BLOCK_TEMPLATE rapid_move_turbo
{
G_motion[$mom_sys_rapid_code]
X[^POSX]
Y[^POSY]
Z[^POSZ]
fourth_axis[^POS4]
fifth_axis[^POS5]
S[$mom_spindle_speed]
}
BLOCK_TEMPLATE circular_move
{
G_motion[$mom_sys_circle_code(string)]
X[$mom_mcs_goto(0)]
Y[$mom_mcs_goto(1)]
Z[$mom_mcs_goto(2)]
fourth_axis[$mom_out_angle_pos(0)]
fifth_axis[$mom_out_angle_pos(1)]
S[$mom_spindle_speed]
}
BLOCK_TEMPLATE linear_move
{
G_motion[$mom_sys_linear_code]
X[$mom_mcs_goto(0)]
Y[$mom_mcs_goto(1)]
Z[$mom_mcs_goto(2)]
fourth_axis[$mom_out_angle_pos(0)]
fifth_axis[$mom_out_angle_pos(1)]
S[$mom_spindle_speed]
}
BLOCK_TEMPLATE rapid_move
{
G_motion[$mom_sys_rapid_code]
X[$mom_mcs_goto(0)]
Y[$mom_mcs_goto(1)]
Z[$mom_mcs_goto(2)]
fourth_axis[$mom_out_angle_pos(0)]
fifth_axis[$mom_out_angle_pos(1)]
S[$mom_spindle_speed]
}
BLOCK_TEMPLATE rapid_move_drill
{
G_motion[$mom_sys_rapid_code]
X[$mom_cycle_feed_to_pos(0)]
Y[$mom_cycle_feed_to_pos(1)]
Z[$mom_cycle_feed_to_pos(2)]
S[$mom_spindle_speed]
}
}

View File

@@ -0,0 +1,535 @@
####C#U#S#T#O#M##M#E#T#A##I#N#F#O#R#M#A#T#I#O#N##############################################
#
# Customer Data
#
# Company :
# Address :
# Contact person :
# Phone :
# Fax :
# Mail :
#
####S#T#A#R#T##C#H#A#N#G#E##H#I#S#T#O#R#Y####################################################
#
# Last changes: 01.02.2011 - UR 001 Initial Release and Installation
# 23.08.2013 - UR 002 Add keywords for comment lines (important, because automation respond)
# 03.09.2013 - UR 003 Releaseversion 1.0
# 09.10.2013 - COE 004 Changed setting of lib_ge_env(tmp_dir)
# 10.12.2013 - UR 005 Decomposing the basic functions
# 10.02.2014 - COE 006 Releaseversion 2.0
# 17.02.2014 - COE 007 Releaseversion 2.1
# 13.03.2014 - UR 008 Releaseversion 2.2
# 31.03.2014 - UR 009 Add lib_flag(PB_decontamination) to switch of PB support
# 31.03.2014 - UR 010 Releaseversion 2.3
# 11.04.2014 - UR 011 Releaseversion 2.3.1
# 12.05.2014 - UR 012 Releaseversion 2.3.2
# 18.05.2014 - UR 013 Add sourcing with the possibility of nesting folders
# 19.05.2014 - UR 014 Releaseversion 2.3.3
# 26.05.2014 - UR 015 Revision of the LIB_Shell_search_path_recursively routines when a blank is included in the path
# 16.06.2014 - COE 016 Releaseversion 2.3.4
# 16.06.2014 - UR 017 Add recursively sourcing for the pretreatment files
# 24.06.2014 - UR 018 Releaseversion 2.3.5
# 24.06.2014 - UR 019 Releaseversion 2.4
# 07.07.2014 - UR 020 Releaseversion 2.4.1
# 16.07.2014 - UR 021 Releaseversion 3.0
# 29.07.2014 - COE 022 LIB_Shell_environment_handling: lib_ge_env(installed_machines_dir,recursively)
# LIB_Shell_main: no longer call LIB_Shell_search_path_recursively
# 30.07.2014 - COE 023 Releaseversion 3.1
# 12.08.2014 - UR 024 Releaseversion 3.1.1
# 13.08.2014 - UR 025 Adopted revised texts from SPLM
# 13.08.2014 - UR 026 Releaseversion 3.2
# 13.08.2014 - UR 027 Releaseversion 3.2.1
# 15.08.2014 - COE 028 Adopt modifications SPLM
# 15.08.2014 - COE 029 Releaseversion 3.2.2
# 25.08.2014 - UR 030 Releaseversion 3.2.3
# 10.09.2014 - UR 031 Releaseversion 3.2.4
# 11.09.2014 - UR 032 Releaseversion 3.2.5
# 22.09.2014 - UR 033 Add property for "show where output comes from" and delete flag(show_where_output_comes_from)
# 29.09.2014 - COE 034 Releaseversion 3.2.6
# 13.10.2014 - COE 035 Releaseversion 3.2.7
# 21.10.2014 - COE 036 Releaseversion 3.2.8
# 04.11.2014 - COE 037 Releaseversion 3.2.9
# 11.11.2014 - UR 038 Modification of the complete post speed
# 13.11.2014 - UR 039 Modification of the complete post speed
# 21.11.2014 - COE 040 LIB_Shell_environment_handling: changde setting of lib_ge_env(installed_machines_dir,recursively)
# 28.11.2014 - COE 041 Releaseversion 3.2.10
# 22.12.2014 - UR 042 Releaseversion 3.3
# 22.12.2014 - UR 043 Releaseversion 3.3.1
# 05.01.2015 - UR 044 Releaseversion 3.3.2 and changed the Copyright
# 06.01.2015 - UR 045 Releaseversion 3.3.3
# 06.01.2015 - UR 046 Releaseversion 3.3.4
# 07.01.2015 - UR 047 Releaseversion 3.3.5
# 11.01.2015 - UR 048 Releaseversion 3.3.6
# 11.01.2015 - COE 049 Bugfix if the current directory has spaces
# 13.01.2015 - COE 050 Releaseversion 3.3.7
# 20.01.2015 - UR 051 Change file nativename and join to LIB_Shell_format_path_names to save runtime
# 25.01.2015 - UR 052 Releaseversion 3.3.8
# 28.01.2015 - UR 053 Bugfix at LIB_Shell_environment_handling to defined the base folder
# 03.02.2015 - UR 054 Correction if the PostConfigurator structure is used
# 09.02.2015 - UR 055 Releaseversion 3.3.9
# 02.03.2015 - COE 056 Releaseversion 3.4
# 12.03.2015 - UR 057 Releaseversion 3.4.1
# 16.03.2015 - UR 058 Releaseversion 3.4.2
# 30.03.2015 - UR 059 Releaseversion 3.4.3
# 20.04.2015 - COE 060 Releaseversion 3.4.4
# 28.04.2015 - COE 061 Releaseversion 3.4.5
# 15.06.2015 - UR 062 Releaseversion 3.4.6
# 15.06.2015 - UR 063 Change abort handling
# 16.06.2015 - UR 064 Releaseversion 3.4.7
# 22.06.2015 - UR 065 Releaseversion 3.4.8
# 21.07.2015 - UR 066 Releaseversion 3.4.9
# 28.07.2015 - COE 067 Releaseversion 3.4.10
# 11.08.2015 - COE 068 Releaseversion 3.4.11
# 16.08.2015 - UR 069 Save Time with Extended foreach Syntax e.g. foreach {a b c d e} [cmdReturningList] {break}
# Side note: accelerated runtime after the first index, for one index no improvement
# Comparing if Command exists now with LIB_GE_check_commands to wrote the values to an list once
# Modifications of the memory handling with Procedures K SK D unset! clear and set!, see http://wiki.tcl.tk/1923
# Removing unneeded characters and partially reformat
# 20.08.2015 - UR 070 Changed misspelling from adress to address (Bug #784)
# 20.08.2015 - UR 071 Releaseversion 3.4.12
# 21.08.2015 - UR 072 Releaseversion 3.4.13
# 24.08.2015 - COE 073 Releaseversion 3.5
# 04.09.2015 - COE 074 Releaseversion 3.5.1
# 07.09.2015 - COE 075 Releaseversion 3.5.2
# 08.09.2015 - COE 076 Releaseversion 3.5.3
# 13.09.2015 - UR 077 Performance improvement when examining whether a procedure exists and also to loading files
# 15.09.2015 - UR 078 Releaseversion 3.5.4
# 17.09.2015 - UR 079 Change the filename for the lib_ge_dll_version to lower case
# 21.09.2015 - UR 080 Releaseversion 3.6
# 29.09.2015 - UR 081 Releaseversion 3.6.1
# 30.09.2015 - UR 082 Releaseversion 3.6.2
# 05.10.2015 - UR 083 Releaseversion 3.6.3
# 26.10.2015 - UR 084 Releaseversion 3.6.4
# 27.10.2015 - UR 085 Releaseversion 3.6.5
# 18.12.2015 - COE 086 Releaseversion 3.6.6
# 13.01.2016 - UR 087 Releaseversion 3.6.7
# 25.02.2016 - UR 088 Releaseversion 3.6.8
# 07.03.2016 - UR 089 Releaseversion 3.6.9
# 24.03.2016 - COE 090 Releaseversion 3.6.10
# 13.04.2016 - UR 091 Releaseversion 3.6.11
# 20.04.2016 - UR 092 Releaseversion 3.6.12
# 28.04.2016 - UR 093 Releaseversion 3.7
# 29.04.2016 - UR 094 Releaseversion 3.7.1
# 15.05.2016 - COE 095 Releaseversion 3.7.2
# 15.05.2016 - COE 096 Releaseversion 3.7.3
# 17.05.2016 - COE 097 Releaseversion 3.7.4
# 23.05.2016 - COE 098 Releaseversion 3.7.5
# 27.06.2016 - MAN 099 Update internal documentation
# 15.08.2016 - UR 100 Releaseversion 4.0
# 24.08.2016 - UR 101 Releaseversion 4.0.1
# 04.09.2016 - COE 102 Releaseversion 4.0.2
# 05.09.2016 - COE 103 LIB_Shell_environment_handling: 'libraries', 'controller' and 'bin'
# all lowercase (we check it against the result of 'string tolower')
# (back to status of version 100)
# 05.09.2016 - COE 104 Releaseversion 4.0.3
# 08.09.2016 - UR 105 Releaseversion 4.0.4
# 22.09.2016 - UR 106 HISTORY-> Modifications to support now also Linux <-
# 24.09.2016 - UR 107 Releaseversion 4.0.5
# 25.09.2016 - UR 108 Releaseversion 4.1
# 27.09.2016 - UR 109 Releaseversion 4.1.1
# 04.10.2016 - UR 110 Releaseversion 4.1.2
# 24.10.2016 - UR 111 Releaseversion 4.1.3
# 17.11.2016 - MAN 112 Source also from UGII_POST_POOL_DIR_NG_CUSTOM
# 19.11.2016 - UR 113 Releaseversion 4.1.4
# 21.11.2016 - MAN 114 Remove again sourcing from UGII_POST_POOL_DIR_NG_CUSTOM
# 07.12.2016 - UR 115 Releaseversion 4.1.5
# 11.01.2017 - COE 116 Releaseversion 4.1.6
# 21.02.2017 - UR 117 Releaseversion 4.1.7
# 24.02.2017 - UR 118 Releaseversion 4.1.8
# 13.03.2017 - COE 119 Releaseversion 4.2
# 05.04.2017 - COE 120 Releaseversion 4.2.1
# 06.04.2017 - COE 121 Releaseversion 4.2.2
# 07.04.2017 - COE 122 Releaseversion 4.2.3
# 24.04.2017 - UR 123 Remove PUI settings and procedures
# 28.04.2017 - COE 124 Releaseversion 4.2.4
# 19.05.2017 - UR 125 Releaseversion 4.2.5
# 18.06.2017 - COE 126 Releaseversion 4.2.6
# 27.06.2017 - COE 127 Releaseversion 4.2.7
# 06.07.2017 - UR 128 Extension for the layer editor
# 31.07.2017 - UR 129 Releaseversion 4.2.8
# 01.08.2017 - UR 130 Bugfix if variable TEMP not exists within LINUX systems
# 02.08.2017 - UR 131 Releaseversion 4.2.9
# 31.08.2017 - UR 132 Add support for *.pcf
# 01.09.2017 - UR 133 Releaseversion 4.2.10
# 11.09.2017 - COE 134 Releaseversion 4.2.11
# 25.09.2017 - COE 135 Releaseversion 4.3
# 12.11.2017 - COE 136 Releaseversion 4.3.1
# 28.11.2017 - UR 137 Releaseversion 4.3.2
# 04.12.2017 - UR 138 Adding the process ID to all files that are traded through the preparation process
# 21.02.2018 - COE 139 Releaseversion 4.3.3
# 12.03.2018 - UR 140 File contents revised for TCL8.6 and converted to UTF-8
# 14.03.2018 - UR 141 Releaseversion 4.4
# 20.03.2018 - UR 142 Releaseversion 4.4.1
# 12.04.2018 - UR 143 Releaseversion 4.4.2
# 04.05.2018 - UR 144 Releaseversion 4.4.3
# 14.05.2018 - UR 145 Releaseversion 4.4.4
# 02.07.2018 - UR 146 Releaseversion 4.4.5
# 20.07.2018 - COE 147 Releaseversion 4.4.6
# 10.09.2018 - UR 148 Releaseversion 4.4.7
# 24.09.2018 - UR 149 Releaseversion 4.4.8
# 08.10.2018 - UR 150 Releaseversion 4.4.9
# 18.10.2018 - COE 151 Releaseversion 4.5
# 11.01.2019 - UR 152 Releaseversion 4.6.1
# 08.02.2019 - UR 153 Releaseversion 4.6.2
# 16.03.2019 - UR 154 Releaseversion 4.6.3
# 21.03.2019 - UR 155 Function revision so that the MOM Execute can also be loaded in versions >= 1847
# 28.03.2019 - COE 156 Releaseversion 4.7
# 11.04.2019 - UR 157 Releaseversion 4.7.1
# 18.04.2019 - UR 158 Releaseversion 4.7.2
# 07.05.2019 - UR 159 Releaseversion 5.0
# 08.07.2019 - UR 160 Releaseversion 5.0.1
# 31.07.2019 - UR 161 Releaseversion 5.0.2
# 16.08.2019 - COE 162 Releaseversion 5.0.3
# 21.08.2019 - COE 163 Releaseversion 5.1.0
# 20.09.2019 - COE 164 Releaseversion 5.2.0
# 06.11.2019 - UR 165 Releaseversion 5.2.3
# 27.12.2019 - UR 166 Releaseversion 5.2.4
# 31.01.2020 - COE 167 Releaseversion 5.2.5
# 02.03.2020 - UR 168 Releaseversion 5.2.6
# 19.03.2020 - COE 169 Releaseversion 5.2.7
# 25.03.2020 - COE 170 Releaseversion 5.3.0
# 23.04.2020 - UR 171 Bugfix set lib_ge_dll_version instead of dotnet_version
# 01.07.2020 - COE 172 Releaseversion 5.3.1
# 09.07.2020 - COE 173 Releaseversion 5.3.2
# 06.09.2020 - COE 174 Releaseversion 5.3.3
# 15.09.2020 - COE 175 Releaseversion 5.3.4
# 26.09.2020 - COE 176 Releaseversion 5.3.5
# 26.11.2020 - COE 177 Releaseversion 5.3.6
# 24.01.2021 - COE 178 Releaseversion 5.3.7
# 06.02.2021 - COE 179 Releaseversion 5.3.8
# 15.03.2021 - COE 180 Releaseversion 5.3.9
# 13.04.2021 - COE 181 Releaseversion 5.4.0
# 16.05.2021 - COE 182 Bug#2260: check UGII_TMP_DIR first, use system-env only as fallback
# 02.06.2021 - COE 183 Releaseversion 5.4.1
# 11.06.2021 - COE 184 Linux compatibility
# 21.07.2021 - COE 185 Releaseversion 5.4.2
# 03.09.2021 - COE 186 Releaseversion 5.4.3
# 07.09.2021 - COE 187 Releaseversion 5.4.4
# 29.09.2021 - COE 188 Releaseversion 5.5.0
# 25.10.2021 - COE 189 Releaseversion 5.5.1
# 24.11.2021 - COE 190 Releaseversion 5.5.2
# 19.02.2022 - COE 191 Releaseversion 5.5.3
# 06.03.2022 - COE 192 Releaseversion 5.5.4
# 08.04.2022 - COE 193 Releaseversion 5.5.5
# 13.07.2022 - COE 194 Releaseversion 5.5.6
# 07.09.2022 - COE 195 Releaseversion 5.5.7
# 24.09.2022 - COE 196 Releaseversion 5.5.8
# 15.01.2023 - COE 197 Releaseversion 23.01.0
# 14.03.2023 - COE 198 Releaseversion 23.03.0
# 07.04.2023 - COE 199 Releaseversion 23.04.0
# 14.07.2023 - COE 200 Releaseversion 23.07.0
# 14.09.2023 - COE 201 Releaseversion 23.09.0
# 09.10.2023 - ET 202 Releaseversion 23.10.0
# 10.12.2023 - COE 203 Releaseversion 23.12.0
# 19.01.2024 - COE 204 Releaseversion 24.01.0
# 21.03.2024 - COE 205 Releaseversion 24.03.0
# 13.08.2024 - COE 206 Releaseversion 24.08.0
# 22.08.2024 - COE 207 Releaseversion 24.08.1
# 16.09.2024 - COE 208 Releaseversion 24.09.0
# 24.09.2024 - ET 209 Releaseversion 24.09.1
# 27.12.2024 - COE 210 Releaseversion 24.12.0
# 02.04.2025 - COE 211 Releaseversion 25.04.0
#
#
#
#
#
#
#
#
#
#############################################################################################
# Copyright 2014-2024 Siemens Product Lifecycle Management Software Inc.
# All Rights Reserved.
#
####S#T#A#N#D#A#R#D##S#O#U#R#C#I#N#G#########################################################
#____________________________________________________________________________________________
#
# Procedure debugger
#____________________________________________________________________________________________
#
set lib_ge_debug(on) 0
set lib_ge_debug(proc_watch_list) "MOM* PPLIB* PROC*"
set lib_ge_debug(var_write_trace_list) "mom_group_name"
set lib_ge_debug(proc_watch_exclude_list) "MOM_SMART* MOM_evaluate_arg MOM_before_each_add_var MOM_before_load_address"
#____________________________________________________________________________________________
set lib_debug_source_of_proc_list ""
set lib_fh_do_after_output 0 ;#if set to 0 the posttreatment loop is suppressed
if {![info exists lib_ge_platform]} {
set lib_ge_temppath ""
if {[info commands MOM_ask_env_var] != ""} {
set lib_ge_temppath [MOM_ask_env_var UGII_TMP_DIR]
}
if {[string match "*windows*" $tcl_platform(platform)]} {
set lib_ge_platform 1
set lib_ge_slash "\\"
if {$lib_ge_temppath == ""} {
if {[info exists env(TEMP)]} {
set lib_ge_temppath $env(TEMP)
} elseif {[info exists env(TMP)]} {
set lib_ge_temppath $env(TMP)
}
}
} else {
set lib_ge_platform 0
set lib_ge_slash "/"
if {$lib_ge_temppath == ""} {
if {[info exists env(TMPDIR)]} {
set lib_ge_temppath $env(TMPDIR)
}
if {![string length $lib_ge_temppath]} {
set lib_ge_temppath "${lib_ge_slash}var${lib_ge_slash}tmp"
}
}
}
}
#____________________________________________________________________________________________
# <Internal Documentation>
#
# Handling for the default environment variables
#
# <Internal Example>
#
#____________________________________________________________________________________________
proc LIB_Shell_environment_handling {} {
global lib_ge_env lib_ge_slash lib_ge_installed_machines
set lib_ge_env(post_pool_dir) [LIB_Shell_format_path_names [MOM_ask_env_var "UGII_POST_POOL_DIR_NG"]]
set lib_ge_env(cam_post_dir) [LIB_Shell_format_path_names [MOM_ask_env_var "UGII_CAM_POST_DIR"]]
set lib_ge_env(tmp_dir) [LIB_Shell_format_path_names [MOM_ask_env_var "UGII_TMP_DIR"]]
if {$lib_ge_env(tmp_dir) == ""} {set lib_ge_env(tmp_dir) $::lib_ge_temppath}
if {[string match [string tolower [file tail [file dirname [info script]]]] "libraries"]} {
set lib_ge_installed_machines [file dirname [info script]]
} else {
set lib_ge_installed_machines [info script]
}
set lib_ge_env(installed_machines_dir) [LIB_Shell_format_path_names [file dirname $lib_ge_installed_machines]]
# Needed is searchpath activ, therefore info script is wrong
if {[file exists [LIB_Shell_format_path_names "$lib_ge_env(tmp_dir)${lib_ge_slash}pretreatment_script.tcl"]]} {source [LIB_Shell_format_path_names "$lib_ge_env(tmp_dir)${lib_ge_slash}pretreatment_script.tcl"]}
set lib_ge_env(installed_machines_dir,recursively) ""
lappend lib_ge_env(installed_machines_dir,recursively) $lib_ge_env(installed_machines_dir)
set current_dir [pwd]
if {![catch {cd [lindex $lib_ge_env(installed_machines_dir,recursively) 0]}]} {
if {![catch {set dir [string tolower [glob *]]}]} {
foreach e {libraries controller bin} {
set index [lsearch -exact $dir $e]
if {$index > -1} {
set directory [lindex $dir $index]
set directory [string toupper [string index $directory 0]][string range $directory 1 end]
lappend lib_ge_env(installed_machines_dir,recursively) [LIB_Shell_format_path_names "[lindex $lib_ge_env(installed_machines_dir,recursively) 0]$lib_ge_slash$directory"]
}
}
}
}
cd $current_dir
if {![regexp -nocase -- {\w+} $lib_ge_env(post_pool_dir)]} {set lib_ge_env(post_pool_dir) $lib_ge_env(installed_machines_dir)}
set lib_ge_env(version_bit) [MOM_ask_env_var "UGII_VERSION_BIT"]
set lib_ge_env(base_dir) [MOM_ask_env_var "UGII_BASE_DIR"]
set lib_ge_env(compatible_base_release_version) [MOM_ask_env_var "NX_COMPATIBLE_BASE_RELEASE_VERSION"]
set lib_ge_env(major_version) [MOM_ask_env_var "UGII_MAJOR_VERSION"]
set lib_ge_env(minor_version) [MOM_ask_env_var "UGII_MINOR_VERSION"]
set lib_ge_env(subminor_version) [MOM_ask_env_var "UGII_SUBMINOR_VERSION"]
if {![info exists lib_ge_dll_version]} {global lib_ge_dll_version}
if {$lib_ge_env(minor_version) > 0} {
set lib_ge_dll_version "nx$lib_ge_env(major_version)$lib_ge_env(minor_version)"
} else {
set lib_ge_dll_version "nx$lib_ge_env(major_version)"
}
if {[llength $lib_ge_env(compatible_base_release_version)] > 0} {set lib_ge_dll_version "nx$lib_ge_env(compatible_base_release_version)"}
if {[string match "*windows*" $::tcl_platform(platform)]} {
regsub -all "/" $lib_ge_env(base_dir) "\\" lib_ge_env(base_dir)
}
}
#____________________________________________________________________________________________
# <Internal Documentation>
#
# This procedure may be used to format pathnames from unix format in windows
# format and delete double backslash
#
# Output:
# D:\Temp\mom\debug.out or \\Server\Temp\mom\debug.out
#
# e.g.
# set error [LIB_Shell_format_path_names "D:/Temp/mom/debug.out"]
#
# <Example>
# set error [LIB_Shell_format_path_names "D:/Temp/mom/debug.out"]
#____________________________________________________________________________________________
proc LIB_Shell_format_path_names {pathname} {
global lib_ge_slash lib_ge lib_ge_platform
regsub -all "/" $pathname "\\" pathname
binary scan $pathname H* pathbin
if {[info exists lib_ge(format_path,$pathbin,0,0,0)]} {
return $lib_ge(format_path,$pathbin,0,0,0)
}
if {[regexp -nocase -- {^[\\\\]|^[\/\/]} $pathname]} {
regsub -all "/" $pathname "\\" pathname
}
if {$lib_ge_platform} {
regsub -all "/" $pathname "\\" pathname
if {![regexp -nocase -- {^\\\\} $pathname]} {set unc 0} else {set unc 1}
while {[regsub -- "(?q)\\\\" $pathname "\\" pathname]} {}
if {$unc} {set pathname "\\$pathname"}
} elseif {!$lib_ge_platform} {
regsub -all "\\\\" $pathname "/" pathname
if {![regexp -nocase -- {^//} $pathname]} {set unc 0} else {set unc 1}
while {[regsub -- "(?q)//" $pathname "/" pathname]} {}
if {$unc} {set pathname "/$pathname"}
}
set lib_ge(format_path,$pathbin,0,0,0) [string trim $pathname]
return $lib_ge(format_path,$pathbin,0,0,0)
}
#____________________________________________________________________________________________
# <Internal Documentation>
#
# Abort postrun
#
# <Internal Example>
#
#____________________________________________________________________________________________
proc LIB_Shell_abort {message} {
MOM_output_to_listing_device $message
MOM_log_message $message
MOM_abort $message
}
#____________________________________________________________________________________________
# <Internal Documentation>
#
# Handling for the main shell
#
# <Internal Example>
#
#____________________________________________________________________________________________
proc LIB_Shell_main {} {
global lib_ge_env lib_ge_slash
global lib_cycle_path sourcefile
LIB_Shell_environment_handling
lappend ::lib_ge_monitored_files [LIB_Shell_format_path_names [info script]]
if {[info commands LIB_GE_source] == ""} {
set lib_cycle_path 0
set searchpath $lib_ge_env(installed_machines_dir,recursively)
lappend searchpath $lib_ge_env(post_pool_dir)
foreach path $searchpath {
if {$lib_cycle_path} {break}
foreach ext {.tcl .tbc .pcf} {
set sourcefile [LIB_Shell_format_path_names "$path${lib_ge_slash}lib_sourcing$ext"]
if {[file exists $sourcefile]} {
if {[string match ".tbc" $ext]} {
LIB_Shell_abort "ByteCode Loader is not available, cannot process lib_sourcing$ext"
}
uplevel #0 {
set err ""
if {$tcl_version >= 8.6 && [catch {source -encoding utf-8 $sourcefile} err]} {
if {[info exists ::errorInfo]} {MOM_output_to_listing_device "errorInfo $::errorInfo"}
LIB_Shell_abort "File lib_sourcing $err not loadable"
}
if {$tcl_version < 8.6 && [catch {source $sourcefile} err]} {
if {[info exists ::errorInfo]} {MOM_output_to_listing_device "errorInfo $::errorInfo"}
LIB_Shell_abort "File lib_sourcing $err not loadable"
}
if {[string length $err] > 0} {
set lib_ge_debug(lib_sourcing) "$sourcefile"
lappend lib_ge_monitored_files "$sourcefile"
lappend lib_ge_log_message "\n--> $sourcefile loaded"
set lib_cycle_path 1 ; break
}
}
}
}
}
if {!$lib_cycle_path} {
LIB_Shell_abort "File lib_sourcing not found"
}
}
LIB_Shell_init
}
#____________________________________________________________________________________________
# <Internal Documentation>
#
# Handling for the default environment variables
#
# <Internal Example>
#
#____________________________________________________________________________________________
proc LIB_Shell_defined_post_environment {} {
global lib_ge_env lib_ge_slash lib_pp_source_file
#____________________________________________________________________________________________
#
# NX Post, load files
#____________________________________________________________________________________________
#
# There are different ways to source each files
#
# e.g. Befor LIB_GE_source call
# lappend lib_pp_source_file "machine,UGII_CAM_POST_DIR"
#
# e.g. After LIB_GE_source call
# LIB_GE_source "Test" "C:/Temp/;d:/tmp/"
#
# e.g. To define a searchpath
# LIB_GE_source "" "C:/Temp/;UGII_CAM_POST_DIR"
# Allowed is the direct path and/or variable
# This is the call the PB post LIB_GE files
# ** internal funktion / Don't remove this line **
if {[file exists "$lib_ge_env(tmp_dir)${lib_ge_slash}pt_source_list_[pid].tcl"]} {
LIB_GE_source pt_source_list_[pid] "$lib_ge_env(tmp_dir)${lib_ge_slash}" ".tcl" 0 0 "RUNTIME"
LIB_GE_source lib_pretreatment_post
} else {
lappend lib_pp_source_file "ugpost_base" "lib_msg" "lib_file_handling" "lib_standard_post_func" "lib_document" "lib_pretreatment_post"
LIB_GE_source
}
}
LIB_Shell_main
####S#T#A#R#T##C#U#S#T#O#M##M#O#D#I#F#I#C#A#T#I#O#N#S########################################
####E#N#D##C#U#S#T#O#M##M#O#D#I#F#I#C#A#T#I#O#N#S############################################
#############################################################################################
# This is to debug
#############################################################################################
if {[info commands LIB_GE_debug] != ""} {LIB_GE_debug}

View File

@@ -0,0 +1,163 @@
##############################################################################
# File: RoboticRulesUserDefinitions.py
# Description
# This file contains the machine or controller specific code for the tool path processing
# 12-Nov-2020 Support Tape Layup device
#
#
# ================================================================
import sys
import math
import os
import NXOpen
import NXOpen.CAM
# This script assumes that all symbols from RoboticRulesSystemDefinitions.py have been imported already
# This is usually achieved by loading both RoboticRulesSystemDefinitions.py and this file using special code
# from RoboticToolpathProcessor import *
# Define a new simple robotic calculator that computes some process parameters
class SampleProcessParameterRoboticDataCalculator(SingleUdeRoboticDataCalculator):
""" Just a sample calculator to set process parameters.
It sets a value of 1 to all toolpath locations that are close to a specified point.
"""
def __init__(self):
# name of the input UDE
SingleUdeRoboticDataCalculator.__init__(self, "robot_mark_point_sample")
# input parameter names
self.paramName_Point = "point"
self.paramName_Distance = "distance"
# output parameter name
self.paramNameLocationData_SampleParameter = "sample_processparameter"
# strings to show to the user
uiLabels = {
self.inputUdeName: "Robot Mark Point Sample",
self.paramName_Point: "Point",
self.paramName_Distance: "Distance",
self.paramNameLocationData_SampleParameter: "Sample Motion Data Param"}
# Input UDE definition
self.inputUdeDefinition = UdeDefinition(self.inputUdeName, uiLabels)
self.inputUdeDefinition.AddUdeParameter(UdeParameterPoint(self.paramName_Point, uiLabels))
self.inputUdeDefinition.AddUdeParameter(UdeParameterDouble(self.paramName_Distance,uiLabels, 0.0))
# Output UDE definition
self.locationDataUdeDefinition = UdeDefinition("", "")
self.locationDataUdeDefinition.AddUdeParameter(UdeParameterInt(self.paramNameLocationData_SampleParameter, uiLabels, 0))
def HandleSingleInputUde(self, ude):
# Read the parameters of the input ude
p = ude.GetParameter(self.paramName_Point).Point
if p == None:
raise ToolPathProcessingException("Parameter " + self.paramName_Point + " is not defined")
self.point = p.Coordinates
self.distance = ude.GetParameter(self.paramName_Distance).DoubleValue
def ProcessLocationDataUde(self, input, ude):
if self.HasInputUde(): # do only something if the operation has the input ude
inputPos = input.CurrentLocation.Position
curDistance = RobotMath_Distance(inputPos,self.point)
# calculate the output ude parameter
if curDistance < self.distance:
ude.GetParameter(self.paramNameLocationData_SampleParameter).IntegerValue = 1
else:
ude.GetParameter(self.paramNameLocationData_SampleParameter).IntegerValue = 0
def RoboticRulesScript_GetCalculators(addAll: bool) -> tuple:
"""Compute the calculators for the current cell.
param addAll: If true all calculators are added, even those that do not work for the current kinematic.
returns: a tuple of (calculator, externalAxisList) """
# define the list of external axes
railAxisName = "RAIL"
railAxisName2 = "Z_RAIL"
positionerAxisName = "POSITIONER"
drillingAxisName = "QUILL"
tapeAxisName = "TAPE_ROTARY"
extruder1AxisName = "EXTRUDER1_LINEAR"
extruder2AxisName = "EXTRUDER2_LINEAR"
allExternalAxes = [positionerAxisName, railAxisName, railAxisName2, drillingAxisName, tapeAxisName, extruder1AxisName, extruder2AxisName]
validExternalAxes = []
for i in range(len(allExternalAxes)):
if KinUtils_HasAxis(allExternalAxes[i]):
validExternalAxes.append(allExternalAxes[i])
externalAxes = []
if addAll:
externalAxes = allExternalAxes
else:
externalAxes = validExternalAxes
# Define which calculators should be used
calc = CompoundRoboticDataCalculator()
calc.ChildCalculators.append(ConfigurationRoboticDataCalculator())
calc.ChildCalculators.append(ParkingPositionRoboticDataCalculator(externalAxes))
calc.ChildCalculators.append(ParkingPositionReuseRoboticDataCalculator(externalAxes))
calc.ChildCalculators.append(SampleProcessParameterRoboticDataCalculator())
positionerAxisData = []
if KinUtils_HasAxis(positionerAxisName):
axisData = KinUtils_GetAxisData(positionerAxisName)
positionerAxisData.append(axisData)
calc.ChildCalculators.append(PositionerRoboticDataCalculator(axisData))
elif addAll:
axisData = AxisData(positionerAxisName, NXOpen.Vector3d(1.0,0.0,0.0), True)
calc.ChildCalculators.append(PositionerRoboticDataCalculator(axisData))
calc.ChildCalculators.append(ToolOrientationRoboticDataCalculator(positionerAxisData))
calc.ChildCalculators.append(RobotFindingResolver(validExternalAxes))
calc.ChildCalculators.append(TapeLayingRoboticDataCalculator([tapeAxisName, extruder1AxisName, extruder2AxisName]))
calc.ChildCalculators.append(DrillingDeviceRoboticDataCalculator(drillingAxisName))
if KinUtils_HasAxis(railAxisName):
railAxisDir = KinUtils_GetAxisDirection(railAxisName)
railAxisPos = KinUtils_GetPointOnAxis(railAxisName)
railAxisLimits = KinUtils_GetAxisLimits(railAxisName)
calc.ChildCalculators.append(RailRoboticDataCalculator(railAxisName, railAxisPos, railAxisDir, railAxisLimits))
elif addAll:
calc.ChildCalculators.append(RailRoboticDataCalculator(railAxisName, NXOpen.Vector3d(1.0,0.0,0.0), NXOpen.Vector3d(1.0,0.0,0.0), (0.0,1.0)))
if KinUtils_HasAxis(railAxisName2):
railAxisDir = KinUtils_GetAxisDirection(railAxisName2)
railAxisPos = KinUtils_GetPointOnAxis(railAxisName2)
railAxisLimits = KinUtils_GetAxisLimits(railAxisName2)
calc.ChildCalculators.append(RailRoboticDataCalculator2(railAxisName2, railAxisPos, railAxisDir, railAxisLimits))
elif addAll:
calc.ChildCalculators.append(RailRoboticDataCalculator2(railAxisName2, NXOpen.Vector3d(1.0,0.0,0.0), NXOpen.Vector3d(1.0,0.0,0.0), (0.0,1.0)))
if addAll:
# add the calculators that exist only to write CDL file text
calc.ChildCalculators.append(RobotZonesDefineUdeCalculator())
calc.ChildCalculators.append(OlpCommandDefineUdeCalculator())
calc.ChildCalculators.append(OlpCommandMultiLineDefineUdeCalculator(10))
calc.ChildCalculators.append(PayloadDataDefineUdeCalculator())
calc.ChildCalculators.append(ToolPathOlpCommandsDefineUdeCalculator())
calc.ChildCalculators.append(RobotMountComponentDefineUdeCalculator())
return (calc, externalAxes)
# Uncomment this function to implement your own main function
# The function should parse the argument list and return with true if it
# handled the call. If it returns false the caller will try to parse the arguments.
# def RoboticRulesScript_Main2(args):
# NXOpen.Session.GetSession().LogFile.WriteLine("Main called")
# return True

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,16 @@
*
* Robot name : ABB S4 robots
* Controller : S4
* Date create : 05 Aug 2014
*
* Comments: .e file for the ABB IRB6640_235_255, including the J3 joint
*
* Description :
*
* CONFIGURATION DATA:
*
config_family cf_over_head_neg;
joint_config_family j3 joint_cf_elbow_up;
joint_config_family j6 joint_cf_sin_pos;
joint_config_family j5 joint_cf_pos;
default_turns j4 0 -180.0, j6 0 -180.0;

View File

@@ -0,0 +1,2 @@
ABB RAPID ON RAIL,${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}ABB_IRB_7600_23_500_on_rail\postprocessor\ABB_RAPID\ABB_RAPID_post.tcl,${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}ABB_IRB_7600_23_500_on_rail\postprocessor\ABB_RAPID\ABB_RAPID_post.def
CSE_FILES, ${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}ABB_IRB_7600_23_500_on_rail\cse_driver\ABB_RAPID\ABB_IRB_7600_23_500_on_rail.MCF

Some files were not shown because too many files have changed in this diff Show More