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,12 @@
(This part sets the position of the reference point G28)
G54
(Implement the setting of the reference point unit dependent)
G10L52
N1240P1R0000
N1240P2R225.425
N1240P3R606.425
G11
(Following Variable defines the Dog Leg behaviour for Rapid moves)
(1 for Linear-type rapid interpolation, 0 for Non-Linear-type interpolation in rapids.)
#1400 = 1

View File

@@ -0,0 +1,40 @@
#
# Copyright (c) 2019 Siemens Industry Software Inc.
# Unpublished - All rights reserved
#
#
#
# ================================================================
import CSEWrapper
import CSEFanuc
from CSEWrapper import Vector3
from CSEWrapper import ChannelState
from CseFanuc_Methods import ControllerMethods
from CseFanuc_Metacodes import ControllerMetacodes
class Fanuc_sim01_Methods(ControllerMethods):
# Use this class to add machine specific methods.
# DUMMY method shows exemplarily how to implement custom methods.
def DummyMethod(channel : ChannelState):
return True
class Fanuc_sim01_Metacodes(ControllerMetacodes):
# Use this class to add machine specific metacodes.
# DUMMY metacode shows exemplarily how to implement custom metacodes.
def DummyMetacode(channel : ChannelState):
return True
class Controller(CSEFanuc.Controller):
def GetMethod(self, strMethodName : str):
return getattr(Fanuc_sim01_Methods, strMethodName, None)
def GetMetacode(self, strMetacodeName : str):
return getattr(Fanuc_sim01_Metacodes, strMetacodeName, None)
def CreateController():
# For profiling
# return CSEWrapper.Controller(Fanuc.Controller(), "c:\\Temp\\cse_profile.txt")
return CSEWrapper.Controller(Controller())
if __name__ == '__main__':
ctrl = CreateController()

View File

@@ -0,0 +1,103 @@
O73 (do not remove - important for parameter handling)
IF[#0NE#19]GOTO15 (if no spindle speed has been programmed use the current speed)
#19=#4119
N15
IF[#0NE#9]GOTO16 (if no feed has been programmed use the current feed)
#9=#4109
N16
#28=#18-#26
IF[91NE#4003] GOTO 10
#28=#26
N10
#29=0
#30=#4003
IF[17EQ#4016]GOTO17
IF[18EQ#4016]GOTO18
IF[19EQ#4016]GOTO19
M99
N17
G0 Z[#18]
IF[#28LT#17] GOTO1700
N1710
#29=#29+#17
IF[#28LT#29] GOTO1700
G1 G91 Z[-#17] M3
GOTO1710
N1700
G1 G[#30] Z[#26] M3
IF[98EQ#4010] GOTO 1798
IF[90EQ#4003] GOTO 1790
IF[91EQ#4003] GOTO 1791
N1798
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N1790
G0 Z[#18]
GOTO 999
N1791
G0 Z[-#26]
GOTO 999
N18
G0 Y[#18]
IF[#28LT#17] GOTO1800
N1810
IF[#28LT#29] GOTO1800
#29=#29+#17
G1 G91 Y[-#17] M3
GOTO1810
N1800
G1 G[#30] Y[#25] M3
IF[98EQ#4010] GOTO 1898
IF[90EQ#4003] GOTO 1890
IF[91EQ#4003] GOTO 1891
N1898
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N1890
G0 Y[#18]
GOTO 999
N1891
G0 Y[-#25]
GOTO 999
N19
G0 X[#18]
IF[#28LT#17] GOTO1900
N1910
IF[#28LT#29] GOTO1900
#29=#29+#17
G1 G91 X[-#17] M3
GOTO1910
N1900
G1 G[#30] X[#24] M3
IF[98EQ#4010] GOTO 1998
IF[90EQ#4003] GOTO 1990
IF[91EQ#4003] GOTO 1991
N1998
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N1990
G0 X[#18]
GOTO 999
N1991
G0 X[-#24]
GOTO 999
N999
M99

View File

@@ -0,0 +1,89 @@
O74 (do not remove - important for parameter handling)
IF[#0NE#19]GOTO15 (if no spindle speed has been programmed use the current speed)
#19=#4119
N15
IF[#0NE#9]GOTO16 (if no feed has been programmed use the current feed)
#9=#4109
N16
IF[17EQ#4016]GOTO17
IF[18EQ#4016]GOTO18
IF[19EQ#4016]GOTO19
M99
N17
G0 Z[#18]
G1 Z[#26] M4 S[#19]
M5
G4 P[#16]
IF[90EQ#4003] GOTO 1790
IF[91EQ#4003] GOTO 1791
N1790
G1 Z[#18] M3 S[#19]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N1791
G1 Z[-#26] M3 S[#19]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N18
G0 Y[#18]
G1 Y[#25] M4 S[#19]
M5
G4 P[#16]
IF[90EQ#4003] GOTO 1890
IF[91EQ#4003] GOTO 1891
N1890
G1 Y[#18] M3 S[#19]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N1891
G1 Y[-#25] M3 S[#19]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N19
G0 X[#18]
G1 X[#24] M4 S[#19]
M5
G4 P[#16]
IF[90EQ#4003] GOTO 1990
IF[91EQ#4003] GOTO 1991
N1990
G1 X[#18] M3 S[#19]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N1991
G1 X[-#24] M3 S[#19]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N999
M99

View File

@@ -0,0 +1,87 @@
O76 (do not remove - important for parameter handling)
IF[#0NE#19]GOTO15 (if no spindle speed has been programmed use the current speed)
#19=#4119
N15
IF[#0NE#9]GOTO16 (if no feed has been programmed use the current feed)
#9=#4109
N16
IF[17EQ#4016]GOTO17
IF[18EQ#4016]GOTO18
IF[19EQ#4016]GOTO19
M99
N17
G0 Z[#18]
G1 Z[#26] M3 S[#19]
G4 P[#16]
M5
IF[90EQ#4003] GOTO 1790
IF[91EQ#4003] GOTO 1791
N1790
G1 Z[#18]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N1791
G1 Z[-#26]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N18
G0 Y[#18]
G1 Y[#25] M3 S[#19]
G4 P[#16]
M5
IF[90EQ#4003] GOTO 1890
IF[91EQ#4003] GOTO 1891
N1890
G1 Y[#18]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N1891
G1 Y[-#25]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N19
G0 X[#18]
G1 X[#24] M3 S[#19]
G4 P[#16]
M5
IF[90EQ#4003] GOTO 1990
IF[91EQ#4003] GOTO 1991
N1990
G1 X[#18]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N1991
G1 X[-#24]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N999
M3
M99

View File

@@ -0,0 +1,76 @@
O81 (do not remove - important for parameter handling)
IF[#0NE#19]GOTO15 (if no spindle speed has been programmed use the current speed)
#19=#4119
N15
IF[#0NE#9]GOTO16 (if no feed has been programmed use the current feed)
#9=#4109
N16
IF[17EQ#4016]GOTO17
IF[18EQ#4016]GOTO18
IF[19EQ#4016]GOTO19
M99
N17
G0 Z[#18]
G1 Z[#26] M3
IF[98EQ#4010] GOTO 1798
IF[90EQ#4003] GOTO 1790
IF[91EQ#4003] GOTO 1791
N1798
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N1790
G0 Z[#18]
GOTO 999
N1791
G0 Z[-#26]
GOTO 999
N18
G0 Y[#18]
G1 Y[#25] M3
IF[98EQ#4010] GOTO 1898
IF[90EQ#4003] GOTO 1890
IF[91EQ#4003] GOTO 1891
N1898
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N1890
G0 Y[#18]
GOTO 999
N1891
G0 Y[-#25]
GOTO 999
N19
G0 X[#18]
G1 X[#24] M3
IF[98EQ#4010] GOTO 1998
IF[90EQ#4003] GOTO 1990
IF[91EQ#4003] GOTO 1991
N1998
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N1990
G0 X[#18]
GOTO 999
N1991
G0 X[-#24]
GOTO 999
N999
M99

View File

@@ -0,0 +1,77 @@
O82 (do not remove - important for parameter handling)
IF[#0NE#19]GOTO15 (if no spindle speed has been programmed use the current speed)
#19=#4119
N15
IF[#0NE#9]GOTO16 (if no feed has been programmed use the current feed)
#9=#4109
N16
IF[17EQ#4016]GOTO17
IF[18EQ#4016]GOTO18
IF[19EQ#4016]GOTO19
M99
N17
G0 Z[#18]
G1 Z[#26] M3
G4 P[#16]
IF[98EQ#4010] GOTO 1798
IF[90EQ#4003] GOTO 1790
IF[91EQ#4003] GOTO 1791
N1798
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N1790
G0 Z[#18]
GOTO 999
N1791
G0 Z[-#26]
GOTO 999
N18
G0 Y[#18]
G1 Y[#25] M3
G4 P[#16]
IF[98EQ#4010] GOTO 1898
IF[90EQ#4003] GOTO 1890
IF[91EQ#4003] GOTO 1891
N1898
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N1890
G0 Y[#18]
GOTO 999
N1891
G0 Y[-#25]
GOTO 999
N19
G0 X[#18]
G1 X[#24] M3
G4 P[#16]
IF[98EQ#4010] GOTO 1998
IF[90EQ#4003] GOTO 1990
IF[91EQ#4003] GOTO 1991
N1998
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N1990
G0 X[#18]
GOTO 999
N1991
G0 X[-#24]
GOTO 999
N999
M99

View File

@@ -0,0 +1,109 @@
O83 (do not remove - important for parameter handling)
IF[#0NE#19]GOTO15 (if no spindle speed has been programmed use the current speed)
#19=#4119
N15
IF[#0NE#9]GOTO16 (if no feed has been programmed use the current feed)
#9=#4109
N16
#28=#18-#26 (total cut depth = start depth - target depth)
IF[91NE#4003] GOTO 10
#28=#26
N10
#29=0 (current cut depth)
#30=#4003
IF[17EQ#4016]GOTO17
IF[18EQ#4016]GOTO18
IF[19EQ#4016]GOTO19
M99
N17
G0 Z[#18]
IF[#28LE#17] GOTO1700
N1710
#29=#29+#17
IF[#28LE#29] GOTO1700
G1 G91 Z[-#17] M3
G0 G91 Z[ #29]
G0 G91 Z[-#29]
GOTO1710
N1700
G1 G[#30] Z[#26] M3
IF[98EQ#4010] GOTO 1798
IF[90EQ#4003] GOTO 1790
IF[91EQ#4003] GOTO 1791
N1798
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N1790
G0 Z[#18]
GOTO 999
N1791
G0 Z[-#26]
GOTO 999
N18
G0 Y[#18]
IF[#28LE#17] GOTO1800
N1810
IF[#28LE#29] GOTO1800
#29=#29+#17
G1 G91 Y[-#17] M3
G0 G91 Y[ #29]
G0 G91 Y[-#29]
GOTO1810
N1800
G1 G[#30] Y[#25] M3
IF[98EQ#4010] GOTO 1898
IF[90EQ#4003] GOTO 1890
IF[91EQ#4003] GOTO 1891
N1898
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N1890
G0 Y[#18]
GOTO 999
N1891
G0 Y[-#25]
GOTO 999
N19
G0 X[#18]
IF[#28LE#17] GOTO1900
N1910
IF[#28LE#29] GOTO1900
#29=#29+#17
G1 G91 X[-#17] M3
G0 G91 X[ #29]
G0 G91 X[-#29]
GOTO1910
N1900
G1 G[#30] X[#24] M3
IF[98EQ#4010] GOTO 1998
IF[90EQ#4003] GOTO 1990
IF[91EQ#4003] GOTO 1991
N1998
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N1990
G0 X[#18]
GOTO 999
N1991
G0 X[-#24]
GOTO 999
N999
M99

View File

@@ -0,0 +1,89 @@
O84 (do not remove - important for parameter handling)
IF[#0NE#19]GOTO15 (if no spindle speed has been programmed use the current speed)
#19=#4119
N15
IF[#0NE#9]GOTO16 (if no feed has been programmed use the current feed)
#9=#4109
N16
IF[17EQ#4016]GOTO17
IF[18EQ#4016]GOTO18
IF[19EQ#4016]GOTO19
M99
N17
G0 Z[#18]
G1 Z[#26] M3 S[#19]
M5
G4 P[#16]
IF[90EQ#4003] GOTO 1790
IF[91EQ#4003] GOTO 1791
N1790
G1 Z[#18] M4 S[#19]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N1791
G1 Z[-#26] M4 S[#19]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N18
G0 Y[#18]
G1 Y[#25] M3 S[#19]
M5
G4 P[#16]
IF[90EQ#4003] GOTO 1890
IF[91EQ#4003] GOTO 1891
N1890
G1 Y[#18] M4 S[#19]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N1891
G1 Y[-#25] M4 S[#19]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N19
G0 X[#18]
G1 X[#24] M3 S[#19]
M5
G4 P[#16]
IF[90EQ#4003] GOTO 1990
IF[91EQ#4003] GOTO 1991
N1990
G1 X[#18] M4 S[#19]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N1991
G1 X[-#24] M4 S[#19]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N999
G0
M99

View File

@@ -0,0 +1,83 @@
O85 (do not remove - important for parameter handling)
IF[#0NE#19]GOTO15 (if no spindle speed has been programmed use the current speed)
#19=#4119
N15
IF[#0NE#9]GOTO16 (if no feed has been programmed use the current feed)
#9=#4109
N16
IF[17EQ#4016]GOTO17
IF[18EQ#4016]GOTO18
IF[19EQ#4016]GOTO19
M99
N17
G0 Z[#18]
G1 Z[#26] M3 S[#19]
G4 P[#16]
IF[90EQ#4003] GOTO 1790
IF[91EQ#4003] GOTO 1791
N1790
G1 Z[#18]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N1791
G1 Z[-#26]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N18
G0 Y[#18]
G1 Y[#25] M3 S[#19]
G4 P[#16]
IF[90EQ#4003] GOTO 1890
IF[91EQ#4003] GOTO 1891
N1890
G1 Y[#18]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N1891
G1 Y[-#25]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N19
G0 X[#18]
G1 X[#24] M3 S[#19]
G4 P[#16]
IF[90EQ#4003] GOTO 1990
IF[91EQ#4003] GOTO 1991
N1990
G1 X[#18]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N1991
G1 X[-#24]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N999
M99

View File

@@ -0,0 +1,78 @@
O86 (do not remove - important for parameter handling)
IF[#0NE#19]GOTO15 (if no spindle speed has been programmed use the current speed)
#19=#4119
N15
IF[#0NE#9]GOTO16 (if no feed has been programmed use the current feed)
#9=#4109
N16
IF[17EQ#4016]GOTO17
IF[18EQ#4016]GOTO18
IF[19EQ#4016]GOTO19
M99
N17
G0 Z[#18]
G1 Z[#26] M3
M5
IF[98EQ#4010] GOTO 1798
IF[90EQ#4003] GOTO 1790
IF[91EQ#4003] GOTO 1791
N1798
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N1790
G0 Z[#18]
GOTO 999
N1791
G0 Z[-#26]
GOTO 999
N18
G0 Y[#18]
G1 Y[#25] M3
M5
IF[98EQ#4010] GOTO 1898
IF[90EQ#4003] GOTO 1890
IF[91EQ#4003] GOTO 1891
N1898
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N1890
G0 Y[#18]
GOTO 999
N1891
G0 Y[-#25]
GOTO 999
N19
G0 X[#18]
G1 X[#24] M3
M5
IF[98EQ#4010] GOTO 1998
IF[90EQ#4003] GOTO 1990
IF[91EQ#4003] GOTO 1991
N1998
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N1990
G0 X[#18]
GOTO 999
N1991
G0 X[-#24]
GOTO 999
N999
M3
M99

View File

@@ -0,0 +1,87 @@
O87 (do not remove - important for parameter handling)
IF[#0NE#19]GOTO15 (if no spindle speed has been programmed use the current speed)
#19=#4119
N15
IF[#0NE#9]GOTO16 (if no feed has been programmed use the current feed)
#9=#4109
N16
IF[17EQ#4016]GOTO17
IF[18EQ#4016]GOTO18
IF[19EQ#4016]GOTO19
M99
N17
G0 Z[#18]
G1 Z[#26] M3 S[#19]
G4 P[#16]
M5
IF[90EQ#4003] GOTO 1790
IF[91EQ#4003] GOTO 1791
N1790
G1 Z[#18]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N1791
G1 Z[-#26]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N18
G0 Y[#18]
G1 Y[#25] M3 S[#19]
G4 P[#16]
M5
IF[90EQ#4003] GOTO 1890
IF[91EQ#4003] GOTO 1891
N1890
G1 Y[#18]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N1891
G1 Y[-#25]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N19
G0 X[#18]
G1 X[#24] M3 S[#19]
G4 P[#16]
M5
IF[90EQ#4003] GOTO 1990
IF[91EQ#4003] GOTO 1991
N1990
G1 X[#18]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N1991
G1 X[-#24]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N999
M3
M99

View File

@@ -0,0 +1,87 @@
O88 (do not remove - important for parameter handling)
IF[#0NE#19]GOTO15 (if no spindle speed has been programmed use the current speed)
#19=#4119
N15
IF[#0NE#9]GOTO16 (if no feed has been programmed use the current feed)
#9=#4109
N16
IF[17EQ#4016]GOTO17
IF[18EQ#4016]GOTO18
IF[19EQ#4016]GOTO19
M99
N17
G0 Z[#18]
G1 Z[#26] M3 S[#19]
G4 P[#16]
M5
IF[90EQ#4003] GOTO 1790
IF[91EQ#4003] GOTO 1791
N1790
G1 Z[#18]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N1791
G1 Z[-#26]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N18
G0 Y[#18]
G1 Y[#25] M3 S[#19]
G4 P[#16]
M5
IF[90EQ#4003] GOTO 1890
IF[91EQ#4003] GOTO 1891
N1890
G1 Y[#18]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N1891
G1 Y[-#25]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N19
G0 X[#18]
G1 X[#24] M3 S[#19]
G4 P[#16]
M5
IF[90EQ#4003] GOTO 1990
IF[91EQ#4003] GOTO 1991
N1990
G1 X[#18]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N1991
G1 X[-#24]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N999
M3
M99

View File

@@ -0,0 +1,83 @@
O89 (do not remove - important for parameter handling)
IF[#0NE#19]GOTO15 (if no spindle speed has been programmed use the current speed)
#19=#4119
N15
IF[#0NE#9]GOTO16 (if no feed has been programmed use the current feed)
#9=#4109
N16
IF[17EQ#4016]GOTO17
IF[18EQ#4016]GOTO18
IF[19EQ#4016]GOTO19
M99
N17
G0 Z[#18]
G1 Z[#26] M3 S[#19]
G4 P[#16]
IF[90EQ#4003] GOTO 1790
IF[91EQ#4003] GOTO 1791
N1790
G1 Z[#18]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N1791
G1 Z[-#26]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Z[#27]
G[#99]
GOTO 999
N18
G0 Y[#18]
G1 Y[#25] M3 S[#19]
G4 P[#16]
IF[90EQ#4003] GOTO 1890
IF[91EQ#4003] GOTO 1891
N1890
G1 Y[#18]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N1891
G1 Y[-#25]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 Y[#27]
G[#99]
GOTO 999
N19
G0 X[#18]
G1 X[#24] M3 S[#19]
G4 P[#16]
IF[90EQ#4003] GOTO 1990
IF[91EQ#4003] GOTO 1991
N1990
G1 X[#18]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N1991
G1 X[-#24]
IF[98NE#4010] GOTO 999
#99=#4003
G0 G90 X[#27]
G[#99]
GOTO 999
N999
M99

View File

@@ -0,0 +1,60 @@
G0 G90 G49 M5
(Set the tool change position values in metric X,Y,Z)
#100001=0.0
#100002=225.425
#100003=606.425
(Position for the V axis to mount the tool)
#100004=-381.0
(Z Position over the tool changer)
#100005=711.2
IF[71EQ#4006] GOTO 10
IF[21EQ#4006] GOTO 10
#100001=#100001/25.4
#100002=#100002/25.4
#100003=#100003/25.4
#100004=#100004/25.4
#100005=#100005/25.4
N10
IF[0EQ#4121]GOTO20
G0 G53 X[#100001] Y[#100002] Z[#100003]
GOTO30
N20 G0 G53 Z[#100005]
N15 G0 G53 X[#100001] Y[#100002]
N30 G0 G53 V[#100004]
##LANGUAGE AC
INT nToolID;
nToolID = getVariable("#4120");
IF (nToolID > 0);
STRING strCarrierTool;
strCarrierTool = getCarrierTool ("1", ITOS(nToolID));
setNextTool (strCarrierTool, "S");
ENDIF;
IF (exist (getCurrentTool ("S")));
INT nPocketID;
nPocketID = getVariable("#4121");
grasp ( getCurrentTool ("S"), "POCKET_0"+ITOS(nPocketID)+"@T"+ITOS(nPocketID));
position ( getCurrentTool ("S"), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
ENDIF;
##LANGUAGE NATIVE
G0 G53 Z[#100005]
G0 G53 C[[#4120-1]*45.0]
G0 G53 Z[#100003]
##LANGUAGE AC
IF (exist (getNextTool ("S")));
grasp ( getNextTool ("S"), getSpindleObject ("S"));
position ( getNextTool("S"), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
activateNextTool ("S");
ENDIF;
##LANGUAGE NATIVE
#4121=#4120
G0 G53 V0.0
G43 H1
M99

View File

@@ -0,0 +1,40 @@
#
# Copyright (c) 2019 Siemens Industry Software Inc.
# Unpublished - All rights reserved
#
#
#
# ================================================================
import CSEWrapper
import CSEStandard
from CSEWrapper import Vector3
from CSEWrapper import ChannelState
from CseGeneric_Methods import ControllerMethods
from CseGeneric_Metacodes import ControllerMetacodes
class Generic_sim01_Methods(ControllerMethods):
# Use this class to add machine specific methods.
# DUMMY method shows exemplarily how to implement custom methods.
def DummyMethod(channel : ChannelState):
return True
class Generic_sim01_Metacodes(ControllerMetacodes):
# Use this class to add machine specific metacodes.
# DUMMY metacode shows exemplarily how to implement custom metacodes.
def DummyMetacode(channel : ChannelState):
return True
class Controller(CSEStandard.Controller):
def GetMethod(self, strMethodName : str):
return getattr(Generic_sim01_Methods, strMethodName, None)
def GetMetacode(self, strMetacodeName : str):
return getattr(Generic_sim01_Metacodes, strMetacodeName, None)
def CreateController():
# For profiling
# return CSEWrapper.Controller(TNC.Controller(), "c:\\Temp\\cse_profile.txt")
return CSEWrapper.Controller(Controller())
if __name__ == '__main__':
ctrl = CreateController()

View File

@@ -0,0 +1,29 @@
##LANGUAGE AC
INT nToolID;
STRING strCarrierName;
nToolID = GetSubProgParameter(0);
strCarrierName = "S";
IF (nToolID > 0);
generateTool (getToolNameByNumber(nToolID), strCarrierName);
ENDIF;
IF (exist (getCurrentTool (strCarrierName)));
visibility ( getCurrentTool (strCarrierName), OFF, TRUE);
collision (OFF, getCurrentTool (strCarrierName));
release ( getCurrentTool (strCarrierName));
ENDIF;
IF (exist (getNextTool (strCarrierName)));
grasp ( getNextTool (strCarrierName), getSpindleObject (strCarrierName));
position ( getNextTool (strCarrierName), 0, 0, 0, 0, 0, 0);
visibility ( getNextTool (strCarrierName), ON, TRUE);
collision (ON, getNextTool (strCarrierName), 2, -0.01);
activateNextTool (strCarrierName);
ENDIF;
##LANGUAGE NATIVE
M17

View File

@@ -0,0 +1,40 @@
#
# Copyright (c) 2019 Siemens Industry Software Inc.
# Unpublished - All rights reserved
#
#
#
# ================================================================
import CSEWrapper
import CSETNC
from CSEWrapper import Vector3
from CSEWrapper import ChannelState
from CseTNC_Methods import ControllerMethods
from CseTNC_Metacodes import ControllerMetacodes
class TNC_sim01_Methods(ControllerMethods):
# Use this class to add machine specific methods.
# DUMMY method shows exemplarily how to implement custom methods.
def DummyMethod(channel : ChannelState):
return True
class TNC_sim01_Metacodes(ControllerMetacodes):
# Use this class to add machine specific metacodes.
# DUMMY metacode shows exemplarily how to implement custom metacodes.
def DummyMetacode(channel : ChannelState):
return True
class Controller(CSETNC.Controller):
def GetMethod(self, strMethodName : str):
return getattr(TNC_sim01_Methods, strMethodName, None)
def GetMetacode(self, strMetacodeName : str):
return getattr(TNC_sim01_Metacodes, strMetacodeName, None)
def CreateController():
# For profiling
# return CSEWrapper.Controller(TNC.Controller(), "c:\\Temp\\cse_profile.txt")
return CSEWrapper.Controller(Controller())
if __name__ == '__main__':
ctrl = CreateController()

View File

@@ -0,0 +1,89 @@
0 ;BEGIN PGM 200 MM
1 Q195 = Q197
2 Q197 = 0
3 FN 9: IF +Q195 EQU +1 GOTO LBL 200
4 Q200 = ABS Q200
5 Q202 = ABS Q202
6 Q204 = ABS Q204
7 LBL 200
8 FN 17: SYSWRITE ID212 = +3
9 FN 18: SYSREAD Q0 = ID1000 NR7441
10 Q0 = 2 * FRAC (Q0 / 2)
11 FN 9: IF +Q0 EQU +1 GOTO LBL 199
12 FN 9: IF +Q110 EQU +0 GOTO LBL 199
13 FN 9: IF +Q110 EQU +1 GOTO LBL 199
14 FN 14: ERROR = 1000
15 LBL 199
16 FN 10: IF +Q109 NE -1 GOTO LBL 198
17 FN 14: ERROR = 1001
18 LBL 198
19 FN 9: IF +Q201 EQU +0 GOTO LBL 254
20 FN 12: IF +Q201 LT +0 GOTO LBL 197
21 FN 0: Q30 = -1
22 FN 9: IF +0 EQU +0 GOTO LBL 196
23 LBL 197
24 FN 0: Q30 = +1
25 LBL 196
26 FN 9: IF +Q195 EQU +1 GOTO LBL 194
27 CALL LBL 14
28 LBL 194
29 FN 1: Q19 = +Q203 + +Q200
30 Q51 = ABS Q200
31 Q52 = ABS Q204
32 FN 11: IF +Q51 GT +Q52 GOTO LBL 2
33 FN 1: Q19 = +Q203 + +Q204
34 LBL 2
35 FN 10: IF +Q202 NE +0 GOTO LBL 21
36 FN 14: ERROR = 1030
37 LBL 21
38 FN 1: Q20 = +Q203 + +Q200
39 FN 0: Q23 = +Q203
40 FN 0: Q27 = +Q202
41 FN 0: Q31 = +Q200
42 LBL 4
43 FN 1: Q24 = +Q203 + +Q201
44 L Z+Q20 R0 F MAX
45 Q51 = ABS Q201
46 Q52 = ABS Q202
47 FN 9: IF +Q51 EQU +Q52 GOTO LBL 14
48 LBL 6
49 FN 1: Q23 = +Q23 + -Q27
50 FN 1: Q22 = +Q23 + +Q31
51 FN 10: IF +Q30 NE -1 GOTO LBL 30
52 FN 11: IF +Q23 GT +Q24 GOTO LBL 14
53 FN 9: IF +Q23 EQU +Q24 GOTO LBL 14
54 FN 9: IF +0 EQU +0 GOTO LBL 31
55 LBL 30
56 FN 12: IF +Q23 LT +Q24 GOTO LBL 14
57 FN 9: IF +Q23 EQU +Q24 GOTO LBL 14
58 LBL 31
59 L Z+Q23 FQ206
60 L Z+Q20 F MAX
61 FN 9: IF +Q210 EQU +0 GOTO LBL 180
62 CYCL DEF 9.0 VERWEILZEIT
63 CYCL DEF 9.1 V.ZEIT Q210
64 LBL 180
65 L Z+Q22 F MAX
66 FN 10: IF +Q30 NE -1 GOTO LBL 32
67 FN 12: IF +Q23 LT +Q24 GOTO LBL 6
68 FN 11: IF +0 GT +0 GOTO LBL 14
69 LBL 32
70 FN 11: IF +Q23 GT +Q24 GOTO LBL 6
71 LBL 14
72 FN 9: IF +Q195 EQU +1 GOTO LBL 193
73 FN 3: Q200 = +Q200 * +Q30
74 FN 3: Q202 = +Q202 * +Q30
75 FN 3: Q204 = +Q204 * +Q30
76 LBL 0
77 LBL 193
78 L Z+Q24 R0 FQ206
79 FN 9: IF +Q211 EQU +0 GOTO LBL 181
80 CYCL DEF 9.0 VERWEILZEIT
81 CYCL DEF 9.1 V.ZEIT Q211
82 LBL 181
83 L Z+Q20 F MAX
84 FN 9: IF +Q195 EQU +1 GOTO LBL 254
85 L Z+Q19 F MAX
86 LBL 254
87 ;END PGM 200 MM

View File

@@ -0,0 +1,120 @@
0 ;BEGIN PGM 203 MM
1 Q195 = Q197
2 Q197 = 0
3 FN 9: IF +Q195 EQU +1 GOTO LBL 200
4 Q200 = ABS Q200
5 Q202 = ABS Q202
6 Q204 = ABS Q204
7 Q205 = ABS Q205
8 Q212 = ABS Q212
9 Q213 = ABS Q213
10 LBL 200
11 FN 17: SYSWRITE ID212 = +3
12 FN 18: SYSREAD Q0 = ID1000 NR7441
13 Q0 = 2 * FRAC (Q0 / 2)
14 FN 9: IF +Q0 EQU +1 GOTO LBL 199
15 FN 9: IF +Q110 EQU +0 GOTO LBL 199
16 FN 9: IF +Q110 EQU +1 GOTO LBL 199
17 FN 14: ERROR = 1000
18 LBL 199
19 FN 10: IF +Q109 NE -1 GOTO LBL 198
20 FN 14: ERROR = 1001
21 LBL 198
22 FN 9: IF +Q201 EQU +0 GOTO LBL 254
23 FN 12: IF +Q201 LT +0 GOTO LBL 197
24 FN 0: Q30 = -1
25 FN 9: IF +0 EQU +0 GOTO LBL 196
26 LBL 197
27 FN 0: Q30 = +1
28 LBL 196
29 FN 9: IF +Q212 EQU +0 GOTO LBL 195
30 FN 10: IF +Q205 NE +0 GOTO LBL 195
31 FN 14: ERROR = 1031
32 LBL 195
33 FN 9: IF +Q195 EQU +1 GOTO LBL 194
34 CALL LBL 14
35 LBL 194
36 FN 10: IF +Q256 NE +0 GOTO LBL 192
37 Q256 = Q200
38 LBL 192
39 FN 1: Q19 = +Q203 + +Q200
40 Q51 = ABS Q200
41 Q52 = ABS Q204
42 FN 11: IF +Q51 GT +Q52 GOTO LBL 2
43 FN 1: Q19 = +Q203 + +Q204
44 LBL 2
45 FN 10: IF +Q202 NE +0 GOTO LBL 21
46 FN 14: ERROR = 1030
47 LBL 21
48 FN 1: Q20 = +Q203 + +Q200
49 FN 0: Q23 = +Q203
50 FN 0: Q26 = +Q206
51 FN 9: IF +Q208 EQU +0 GOTO LBL 3
52 FN 0: Q26 = +Q208
53 LBL 3
54 FN 0: Q27 = +Q202
55 FN 0: Q31 = +Q256
56 LBL 4
57 FN 0: Q25 = +0
58 FN 1: Q24 = +Q203 + +Q201
59 L Z+Q20 R0 F MAX
60 Q51 = ABS Q201
61 Q52 = ABS Q202
62 FN 9: IF +Q51 EQU +Q52 GOTO LBL 14
63 LBL 6
64 FN 9: IF +Q205 EQU +0 GOTO LBL 8
65 FN 9: IF +Q212 EQU +0 GOTO LBL 8
66 FN 9: IF +Q30 EQU -1 GOTO LBL 9
67 FN 11: IF +Q27 GT +Q205 GOTO LBL 8
68 FN 0: Q27 = +Q205
69 FN 9: IF +0 EQU +0 GOTO LBL 8
70 LBL 9
71 FN 12: IF +Q27 LT +Q205 GOTO LBL 8
72 FN 0: Q27 = +Q205
73 LBL 8
74 FN 1: Q23 = +Q23 + -Q27
75 FN 1: Q22 = +Q23 + +Q31
76 FN 2: Q27 = +Q27 - +Q212
77 FN 10: IF +Q30 NE -1 GOTO LBL 30
78 FN 11: IF +Q23 GT +Q24 GOTO LBL 14
79 FN 9: IF +Q23 EQU +Q24 GOTO LBL 14
80 FN 9: IF +0 EQU +0 GOTO LBL 31
81 LBL 30
82 FN 12: IF +Q23 LT +Q24 GOTO LBL 14
83 FN 9: IF +Q23 EQU +Q24 GOTO LBL 14
84 LBL 31
85 L Z+Q23 FQ206
86 FN 12: IF +Q25 LT +Q213 GOTO LBL 10
87 L Z+Q20 FQ26
88 FN 9: IF +Q210 EQU +0 GOTO LBL 180
89 CYCL DEF 9.0 VERWEILZEIT
90 CYCL DEF 9.1 V.ZEIT Q210
91 LBL 180
92 FN 0: Q25 = -1
93 LBL 10
94 L Z+Q22 F MAX
95 FN 1: Q25 = +Q25 + +1
96 FN 10: IF +Q30 NE -1 GOTO LBL 32
97 FN 12: IF +Q23 LT +Q24 GOTO LBL 6
98 FN 11: IF +0 GT +0 GOTO LBL 14
99 LBL 32
100 FN 11: IF +Q23 GT +Q24 GOTO LBL 6
101 LBL 14
102 FN 9: IF +Q195 EQU +1 GOTO LBL 193
103 FN 3: Q200 = +Q200 * +Q30
104 FN 3: Q202 = +Q202 * +Q30
105 FN 3: Q204 = +Q204 * +Q30
106 FN 3: Q205 = +Q205 * +Q30
107 FN 3: Q212 = +Q212 * +Q30
108 LBL 0
109 LBL 193
110 L Z+Q24 R0 FQ206
111 FN 9: IF +Q211 EQU +0 GOTO LBL 181
112 CYCL DEF 9.0 VERWEILZEIT
113 CYCL DEF 9.1 V.ZEIT Q211
114 LBL 181
115 L Z+Q20 FQ26
116 FN 9: IF +Q195 EQU +1 GOTO LBL 254
117 L Z+Q19 R0 F MAX
118 LBL 254
119 ;END PGM 203 MM

View File

@@ -0,0 +1,86 @@
0 BEGIN PGM TOOLCHANGE MM
0 ; read the tool number from systemdata
1 M5
2 FN 18: SYSREAD Q1000 = ID20 NR2
3 FN 18: SYSREAD Q1001 = ID20 NR1
4 ; If actual tool identicall wiht preselected one skip AC block
5 FN 9: IF +Q1000 EQU +Q1001 GOTO LBL "NO_TOOLCHANGE"
0 ; Set the tool change position values in metric X,Y,Z)
0 Q1001=0.0
0 Q1002=225.425
0 Q1003=606.425
0 ; Position for the V axis to mount the tool)
0 Q1004=-381.0
0 ; Z Position over the tool changer)
0 Q1005=711.2
0 M1001 ; deactivate tool length correction
0 ; deactivate offset correction -> work like G53
0 ; NOT NEEDED use M91 as G53 !!!
0 ;CYCL DEF 7.0
0 ;CYCL DEF 7.1 X0.0
0 ;CYCL DEF 7.2 Y0.0
0 ;CYCL DEF 7.3 Z0.0
0 FN 10: IF +Q101 NE +0 GOTO LBL 199
0 L Z+Q1005 FMAX M91
0 ; How can this be done better ?
0 FN 10: IF 0 NE 1 GOTO LBL 200
0 LBL 199
0 L Z+Q1003 FMAX M91
0 LBL 200
0 L X+Q1001 Y+Q1002 FMAX M91
0 L V+Q1004 FMAX M91
##LANGUAGE AC
INT nToolID;
nToolID = getVariable("Q1000");
IF (nToolID > 0);
STRING strCarrierTool;
strCarrierTool = getCarrierTool ("1", ITOS(nToolID));
setNextTool (strCarrierTool, "S");
ENDIF;
IF (exist (getCurrentTool ("S")));
INT nPocketID;
nPocketID = getVariable("Q101");
grasp ( getCurrentTool ("S"), "POCKET_0"+ITOS(nPocketID)+"@T"+ITOS(nPocketID));
position ( getCurrentTool ("S"), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
ENDIF;
##LANGUAGE NATIVE
0 L Z+Q1005 FMAX M91
0 FN 2: Q102 = +Q1000 - +1
0 FN 3: Q102 = +Q102 * +45.0
0 L C+Q102 FMAX
0 L Z+Q1003 FMAX M91
##LANGUAGE AC
IF (exist (getNextTool ("S")));
grasp ( getNextTool ("S"), getSpindleObject ("S"));
position ( getNextTool("S"), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
activateNextTool ("S");
ENDIF;
##LANGUAGE NATIVE
0 Q101 = Q1000
0 L V0.0 FMAX M91
0 ; read the values of the actual offset
0 ; Offsets sored in 500, offsetno, 1/2/3 for X/Y/Z
0 ; All not needed any longer
0 ;FN 18: SYSREAD Q200 = ID500 NR1 IDX1
0 ;FN 18: SYSREAD Q201 = ID500 NR1 IDX2
0 ;FN 18: SYSREAD Q202 = ID500 NR1 IDX3
0 ;CYCL DEF 7.0
0 ;CYCL DEF 7.1 X+Q200
0 ;CYCL DEF 7.2 Y+Q201
0 ;CYCL DEF 7.3 Z+Q202
10 FN 17: SYSWRITE ID20 NR1 = +Q1000
11 LBL "NO_TOOLCHANGE"
12 M67 ; activate tool length correction
13 END PGM TOOLCHANGE MM

View File

@@ -0,0 +1,8 @@
PMAC
PGUD
CHAN_DATA
TO_INI
G40 D0
M17

View File

@@ -0,0 +1,39 @@
#
# Copyright (c) 2019 Siemens Industry Software Inc.
# Unpublished - All rights reserved
#
#
#
# ================================================================
import CSEWrapper
import CSES840D
from CSEWrapper import ChannelState
from CseS840D_Methods import ControllerMethods
from CseS840D_Metacodes import ControllerMetacodes
class S840D_sim01_Methods(ControllerMethods):
# Use this class to add machine specific methods.
# DUMMY method shows exemplarily how to implement custom methods.
def DummyMethod(channel : ChannelState):
return True
class S840D_sim01_Metacodes(ControllerMetacodes):
# Use this class to add machine specific metacodes.
# DUMMY metacode shows exemplarily how to implement custom metacodes.
def DummyMetacode(channel : ChannelState):
return True
class Controller(CSES840D.Controller):
def GetMethod(self, strMethodName : str):
return getattr(S840D_sim01_Methods, strMethodName, None)
def GetMetacode(self, strMetacodeName : str):
return getattr(S840D_sim01_Metacodes, strMetacodeName, None)
def CreateController():
# For profiling
# return CSEWrapper.Controller(CSES840D.Controller(), "c:\\Temp\\cse_profile.txt")
return CSEWrapper.Controller(Controller())
if __name__ == '__main__':
ctrl = CreateController()

View File

@@ -0,0 +1,3 @@
N18088 $MN_MM_NUM_TOOL_CARRIER=1
$TX_TOOLCOUNT=1000

View File

@@ -0,0 +1,63 @@
G0 G90 D0 M5
; Set the tool change position values in metric X,Y,Z
R501=0.0
R502=225.425
R503=606.425
; Position for the V axis to mount the tool
R504=-381.0
; Z Position over the tool changer
R505=711.2
; check the activ unit and change values if inch is in use
; 3 for G700
IF ($P_GG[13] == 1 OR $P_GG[13] == 3)
R501 = R501 / 25.4;
R502 = R502 / 25.4;
R503 = R503 / 25.4;
R504 = R504 / 25.4;
R505 = R505 / 25.4;
ENDIF
IF (R101 <> 0)
G0 G53 Z=R503
ELSE
G0 G53 Z=R505
ENDIF
G0 G53 X=R501 Y=R502
G0 G53 V=R504
##LANGUAGE AC
INT nToolID;
nToolID = getArrayElement("$TC_TP1",getVariable("$P_TOOLP"));
IF (nToolID > 0);
STRING strCarrierTool;
strCarrierTool = getCarrierTool ("1", ITOS(nToolID));
setNextTool (strCarrierTool, "S");
ENDIF;
IF (exist (getCurrentTool ("S")));
INT nPocketID;
nPocketID = getArrayElement("$R",101);
grasp ( getCurrentTool ("S"), "POCKET_0"+ITOS(nPocketID)+"@T"+ITOS(nPocketID));
position ( getCurrentTool ("S"), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
ENDIF;
##LANGUAGE NATIVE
G0 G53 Z=R503
G0 G53 C=($TC_TP1[$P_TOOLP]-1)*45.0
G0 G53 Z=R503
##LANGUAGE AC
IF (exist (getNextTool ("S")));
grasp ( getNextTool ("S"), getSpindleObject ("S"));
position ( getNextTool ("S"), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
activateNextTool ("S");
ENDIF;
##LANGUAGE NATIVE
R101=$TC_TP1[$P_TOOLP]
G0 G53 V0.0
D1
M99

View File

@@ -0,0 +1,48 @@
MACHINE FANUC
EVENT prefer_solution
{
UI_LABEL "Preferred Solution"
PARAM command_status
{
TYPE o
DEFVAL "Active"
OPTIONS "Active","Inactive","User Defined"
UI_LABEL "Status"
}
PARAM prefer_axis
{
TYPE o
DEFVAL "OFF"
OPTIONS "OFF", "A", "B", "C"
UI_LABEL "Preferred Axis"
}
PARAM prefer_output_min
{
TYPE d
DEFVAL "0.000000"
TOGGLE Off
UI_LABEL "Preferred Range Minimum"
}
PARAM prefer_output_max
{
TYPE d
DEFVAL "0.000000"
TOGGLE Off
UI_LABEL "Preferred Range Maximum"
}
}
EVENT program_control
{
UI_LABEL "Program Control"
CATEGORY MILL DRILL
PARAM ctrl_program_control
{
TYPE b
DEFVAL "FALSE"
UI_LABEL "Call External Subroutine for Each Operation"
}
}

View File

@@ -0,0 +1,207 @@
if {[catch {package require tbcload 1.6} err] == 1} {
return -code error "[info script]: The TclPro ByteCode Loader is not available or does not support the correct version -- $err"
}
tbcload::bceval {
TclPro ByteCode 2 0 1.7 8.4
29 0 397 62 0 0 120 0 7 29 29 -1 -1
397
w0E<!(H&s!/lSs!.EW<!.Qr<!=>YQ#3,tl#@|yTv0#>6#=8YUvF-1((+Ki<!;eQjw6)Ks!H=
;u!.lvpv62T=!8KW<!J)X<!.Qr<!E13-&3,tl#@|yTv0#>6#DbCVvMWp((+Ki<!;eQjw=>Ks
!OR;u!.lvpv62T=!?KW<!Q)X<!.Qr<!LpFB(B^a|(@|yTv0#>6#L=7WvU2d)(+Ki<!;eQjwE
VKs!Wj;u!.lvpv62T=!GKW<!Y)X<!.Qr<!Tcur*JQ;9+@|yTv0#>6#Tm*Xv|bW*(+Ki<!;eQ
jwMnKs!_-<u!.lvpv62T=!OKW<!a)X<!.Qr<!yVON-RDji-@|yTv0#>6#yHsXve=K+(+Ki<!
;eQjwU1Ls!gE<u!.lvpv62T=!WKW<!i)X<!.Qr<!dI)*0Z7DE0@|yTv0#>6#d#gYvmm>,(+K
i<!;eQjw|ILs!o|<u!dgU=!s<!%*=rtu2a99<3?/VW30oSs!EM7945un9v0xPT4z
29
?Lrg%|0Bh%|0Bh%|0Bh%|0Bh%|0Bh%M_bpv#!
29
VpAh%|0Bh%|0Bh%|0Bh%|0Bh%|0Bh%'ZZ/&)!
62
x
7
%6|,EYt|+
x
15
c_dX?sN;oA`t&7AXtB+
x
4
4/;EF
x
19
-WXiCa-IIDfVEU@e:+Y?i@w,
x
31
bVXiCAvHIDF54=63!0S/6`rO/mhk)F3+uD+cMc&
x
7
c_dX?i@w,
x
5
71GJ0M!
x
22
c_dX?,#cDF1wviCp<q-DwL6<@CSw
x
5
=G5cE1v
x
35
O7a:@(?#j@*C?<@l0p|;m!lSAsgs`:.en|;8G@BGZ1g+
x
6
;i7UAByw
x
44
ivcDF-D_`F0Y#D+69=iCGS2NDCxVE+xER.D3FME++OGA+iGoCF'4DTA
x
7
,'IIDfF-,
x
28
ivcDF-CVE+xER.D3FME++OGA+iGoCF'4DTA
x
6
F+MEFByw
x
40
R9R.D-#sJDwaSCFA62E+31VE+xER.D3FME++OGA+iGoCF'4DTA
x
8
39V5B(mIQB
x
8
6|<JD*mIQB
x
39
f@TC+2UVTAG!Uf_M.?iBrZmIDQjcM9+)3_Dp?7hC5/;EFn^c,
x
7
6BDTAxk,,
x
47
q7YhCGF2`F<MCiCiMWKF-#sJDwaSCFtBp|;m!lSAsgs`:.en|;8G@BGZ1g+
x
7
7l/bE^4c,
x
39
`4DEFc-?iBrZmIDQjcM9Qc7cD*gZ<@/2REC*C?<@%7HSAg@c,
x
10
DVTKDpWxlBFnw
x
55
LrHiEvQ7VCHG^e_`1QSA'!@;@-E|fDpwZW@wCQC+xER.D3FME++OGA+:!EoA9E0bEe4Q,
x
8
73?<@q6IID
x
31
avcDFvU?<@lXo|;m!lSAsgs`:.en|;8G@BGZ1g+
x
9
4K*+Et5K(F1v
x
51
LWebjVfD`JO_glLPfy,jN5E`Ja-lRTU2>-jEap|;m!lSAsgs`:.en|;8G@BGZ1g+
x
7
E_5cEV4c,
x
49
_.s'm0sj0QwaZ;S@B&L+>Xe|lo@HsMpP4lUc'GSA+QG)F+Ayh9jTCoA60aaE1v
x
10
Hh5cEwvMkBFnw
x
35
b%REC*C?<@9q3'D^Uo|;m!lSAsgs`:.en|;8G@BGZ1g+
x
7
D8=iCfF-,
x
37
q(Q)F;Vi|D5;sJD,<GDFc'GSA+QG)F+Ayh9jTCoA60aaE1v
x
11
Jn5cE=i>_F_4g+
x
43
f1ccEwiO.D-#sJD0EffD,oW/DkKo|;m!lSAsgs`:.en|;8G@BGZ1g+
x
8
SL2*F#7IID
x
60
AXj<^*iBgYX<.@KTwM^JL!AgYeR0vdxSZ#d3Q@CdQ>%Cd!^4H+xER.D3FME++OGA+iGoCF'4
DTA
x
14
B&v/Dk%ap@q3uSAOSw
x
30
ZbRdk(RdfZd.?iBrZmIDQjcM9Qc7cD*gZ<@NSw
x
7
GJseDdvH,
x
49
^3Bf_MsZJF&Q3<@1.TC+69=iCQS2NDoLx8Vc'GSA+QG)F+Ayh9jTCoA60aaE1v
x
10
GJseD*L7lBFnw
x
49
q(Q)F>Bo8/7/vNCIOoPN/Y#D+0g_5B+?>)F6ti|D,aR.Dm-?iBrZmIDQjcM9n!
x
8
=9p;@*mIQB
x
56
sBDE+wQ#gDP|-wEn&Y5B&V#D+#Z#j@*C?<@3@)E+-+uD+xER.D3FME++OGA+iGoCF'4DTA
x
8
H2rTAulIQB
x
39
N0YPDn^5SA5JgeD&=MLCjLo|;m!lSAsgs`:.en|;8G@BGZ1g+
x
13
@H-<@xCbOB'6K(F1v
x
30
*Ml_kI/^`yT.?iBrZmIDQjcM9Qc7cD*gZ<@NSw
x
8
TIlcE'mIQB
x
44
bL,MF&btD+xER.D3FME++OGA+piP-``IC,Zs,%RDf?C:@rCs`FPfGo/
x
11
o4jY?8ik)Fh^c,
x
3
f;Q&
x
5
sB-<@Ev
x
3
ndD-
x
33
X=@U?*7MaEomK;@gKi'Fn^(kBy%ap@id,<@&?0bE?v
x
3
bdD-
i
4
i
0
x
0
0
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,22 @@
if {[catch {package require tbcload 1.6} err] == 1} {
return -code error "[info script]: The TclPro ByteCode Loader is not available or does not support the correct version -- $err"
}
tbcload::bceval {
TclPro ByteCode 2 0 1.7 8.4
1 0 6 2 0 0 4 0 2 1 1 -1 -1
6
w0E<!4!!
1
z
1
&!
2
x
16
c_dX?fIbOBh++Y?r^oRA
x
4
P#AM9
0
0
}

View File

@@ -0,0 +1,22 @@
MACHINE FANUC
FORMATTING
{
SEQUENCE sequence_number 1 1 1 999999
BLOCK_TEMPLATE return_rotary_axis_to_zero
{
G_mode[$mom_sys_output_code(ABSOLUTE)]
G_return[$mom_sys_return_code]
G_motion[$mom_sys_rapid_code]
fourth_axis[0]\opt
fifth_axis[0]\opt
}
}

View File

@@ -0,0 +1,340 @@
if {[catch {package require tbcload 1.6} err] == 1} {
return -code error "[info script]: The TclPro ByteCode Loader is not available or does not support the correct version -- $err"
}
tbcload::bceval {
TclPro ByteCode 2 0 1.7 8.4
41 0 496 79 0 0 256 0 7 41 41 -1 -1
496
w0E<!:B`W!9ytt!*TA9v=|yTv0#>6#4,o9v/c8=!3iA=!9fAs!.lvpv<k60%/HW<!7Qr<!Ge
Uqv7YQK%:(NH&75o9v8D5>!<J>>!9fAs!72#pvL!f`'/HW<!.Qr<!IG(qv;(ic&@^FB(Dyo9
v?nt>!X%2?!a^!svCg'w)ExJE'y,@<*0KW<!Z7M?!^+;?!LlJs!Z,xW*dyWT+O.6Uv?nt>!j
x.@!o'OsvCg'w)l=53-a;@<*0KW<!J,f=!oa7@!QlJs!JFRK%ltWT+Jt5Uv?nt>!g%2?!k'O
svCg'w)hD_Z)fhro+0KW<!g0n@!_Ih?!LlJs!hU--/_MWT+Jt5Uv?nt>!k%2?!f^!svCg'w)
lP_Z)a;@<*0KW<!kH=A!_Ih?!LlJs!lwEE0u:XT+Jt5Uv?nt>!3aaA!f^!svCg'w)7N#w2a;
@<*0KW<!pfjA!%Jh?!QlJs!Njic&&MXT+Jt5Uv?nt>!m):B!k'OsvCg'w)G6^Z)fhro+0KW<
!AKi<!(Jh?!LlJs!AJ|Tv)VXT+O.6Uv?nt>!w&2?!f^!svfN594Iemo4M(OQ5Q@0362QW<!U
rQC!Y)dC!bbSv#wGt&:W-_c8vLq9vtXWD!dA3D!#LE!!
41
38PpvM=xOwM=xOwSaN1%UaN1%UaN1%UaN1%UaN1%UaN1%x6Th%,!
41
>e-OwM=xOwM=xOwUaN1%UaN1%UaN1%UaN1%UaN1%UaN1%Yg*Pw+!
79
x
25
u^sY?nR'Z?<OFY?-lo(Fpr<JDf!?r@>v
x
5
5+GJ0R!
x
25
u^sY?nR'Z?=OFY?-lo(Fpr<JDf!?r@>v
x
19
u^sY?nR'Z?@5--E56K^FmpD-
x
4
YvQ)<
x
17
H`ZS7jv-H;P3MTA73=JD3v
x
3
ndD-
x
22
#@IIDuV1`FEPMEF/56-E=;2EF@Pw
x
3
P'-)
x
16
H`ZS7jv-H;Y;5cEt`<JD
x
9
w;+Y?l4O:@8v
i
1
x
11
_%97AqE7IDUvg+
x
35
u^sY?3DccErvtJ:IZMg9|y,%=rvtJ:IZMg9qqXi9P6c)
x
13
H`ZS7j#mS7gKxhC1v
x
13
@5--E3wj'FvtCkBDv
x
3
!%!-
x
18
@5--E3wj'FvtCkB!%@hC?Yw
x
15
H`ZS7jv-H;Ti&fDp^;-
x
36
.XIIDh*)9Aq,BCFxv|RA-(wSA&3TfD8>d#H'#lDF1oG)F
x
19
hIa:@he`p@mFYjBi7|mAytf+
i
0
x
14
s9-x?!1q-Db!VkBJSw
x
22
82_`F+p/CF!YjY?g3IIDh0m*EY(%
x
81
82_`FtX>OBm(+Y?snATAAl9KDp)X/DBwf|=8JfCF,n'Z?.F?<@#;+:@+qTZ?4T(=H3:)E+V`
w<6!BK(FvpNaE.'aaE3?ffD(Q0bE;v
x
31
X=@U?P8NX6dddU?#k|Z?9cT,E<(vwHSq/q@m3<-
x
21
H`ZS7V?h-:'T_p@;2ccEw1cSA>v
x
3
xIQ,
x
14
Ao.Q8_qVp6Jp|V6UD#
x
4
<^977
x
14
H`ZS7V?h-:`Vep7:uv
x
11
@5--E&Y|mAPY|+
x
26
.F?<@gyEU@wQ5cE3tQfD&@VTAgrnCFN%%
x
5
Ao.Q8d!
x
8
>7Xp6dRMy=
x
11
H`ZS7lIxU?i@w,
x
83
0ot)FYk*Y?u9p;@EPiSA&k54BhWA(F|1J>+0ot)FYk*Y?u9p;@FPiSA&k54BhWA(F^7S>+0o
t)FYk*Y?u9p;@GPiSA&k54BhWA(F?qJ&
x
8
>Bpu5<I'q6
x
151
w3F/Ds0^Z?+sEiCU_*Y?kW`aEjEVTA1QiSA&k54BhWA(FD;I>+0ot)FYk*Y?9qm>HEPiSA&k
54BhWA(FEAR>+0ot)FYk*Y?9qm>HFPiSA&k54BhWA(FFGx>+0ot)FYk*Y?9qm>HGPiSA&k54
B&,7BGu-cOB4&O+Eb.fRAt|2TAfwhgCX.';@vaSCFl0<-
x
15
r!-x?u3uSAkWmIDeI-,
x
55
r!-x?u3uSAkWmID0k>D+hIa:@he`p@mFYjBi7|mA'A#D+b7a:@*.:Z?>A;EF/MMEF&@E-
x
16
H`ZS7lIxU?o-V5BoF5SA
x
13
H`ZS7lIxU?`=Bq@7v
x
12
H`ZS7j#mS7so.6B
x
18
H`ZS7j#mS7imK;@jX:LCNnw
x
20
H`ZS7j#mS7&Jm#H6S@2A,2lDF
x
16
H`ZS7j#mS7u&v/Dnl<JD
x
16
H`ZS7j#mS7|4sp@q3uSA
x
15
H`ZS7jv-H;NN&bEcIQ,
x
9
#a%hCfj><@<v
x
14
H`ZS7jv-H;x>ffDRhw
x
189
)W(`Fy%ap@k-V5Bj9VTAvnK;@3D3'DrHH<@%B>cE!x7hChd|Z?.0B,Es?VTA)BIIDn.jY?2B
K(FfIBq@m:K;@2-0CF&6FiC'Y#D+1,gfDX.';@fk*Y?.0B,Es?VTA7vMEF(B>cE!x7hChd|Z
?.0B,Es?VTA7vMEF(B>cE!x7hChd|Z?,l:EFrfR.D)!BCF5+dfDvFm*E'FMTAulSCF9(MEFk
^sY?%,_`FkWNaEpAP_F?v
x
17
H`ZS7jv-H;xA#-EtE.hC1v
x
55
u-V5B5.!-EtE.hCuV1`FEPMEFhireD3%,!F#+Z8Ajjp-Dv'OaE#@RdDFG;`FmxggCd%g+
x
22
'ji'F#+Z8AoBNaEjk*:@6;hAG@Pw
x
304
h?!eD7#Q)F`^CkB0@^Z?/!iTAsP5cEUqrp@v?ffDvFm*E*k>D+h?!eD7#Q)F`^CkB0@^Z?/!
iTAn0Bq@3QBfDj+|mA:J;EF)5M&Gp&BfD)plRA'NB,Es:+Y?,uk)F'j&fD%Li'F54fZEk!-8
ArfR.D)!BCF'ovlBsN`aErfR.D)!BCFs8&kB.6siCs&0CF&6FiC'Y#D+wLIlBq2TfD8>d#H+
N%QBm(+Y?.0B,Es?VTA5Q?<@rK`aEaRo;@jeEU@-6rTAq|NaE.'aaE,j&fD26sJD?h?fDkRK
Z?49BCF2!j'F3f1EF`44Y?0g_5B88=iCnNRdD|%BRAmwRdDcRo;@9h/wE&d`aEyI#SA#3BCF
1h?fDkRKZ?-RIID5T5DF
x
250
l@,SA6*OaEwI-<@e4FU@wQ5cEf?<eD;9SQBn&=mB4Q3<@0V!wHvKfCFvaSCFYF>nAr7+Y?!6
oCFmrXxG<O,!Fm&fCF'.DTAvDsp@gv|RAw^DTA!l1`F%PFY?-lo(Fpr<JD0|90DoKhgC:%,!
Fm&fCF'.DTAvDsp@gv|RAw^DTAajbnAiy*:@+qTZ?%X7lB&qsY?0Kk_F)oATAAl9KDYF>nAr
7+Y?,uk)F.?ffDj%ap@k-V5Bp&BfD7oATAAl9KD)`9fDcCbOBhm5SA)#Q)F8JfCF,n'Z?l@,
SA4mm*EAFfZE8JlcE!j&fD@Sw
x
160
kki:@0&6cE*mK;@n'RdDFG;`FwCUU@;uk_FvCNaEg3m*E2fbDFHIlcEj3q-D%)#D+'jur@v@
RdDYV*:@&FuSA+p9Z?1T>cE#mmID*dmlB'gi'F6g)s@8pDTA)Pl^F+pW/Dhd'Z?4sRQBj#Tb
E`%+Y?u5seD-&oC+'jur@v@RdD%p3mB'^/CF!YjY?-lo(FeN!iC't|7A
x
75
#@IIDuV1`FEPMEF/56-E=;2EF*+G<FlasY?@5--E3wj'F<ZBfD'k|7A4u<+Eui&fDl,B3@(B
=iC%>+Y?@5--E-Cq-DZyf+
x
15
H`ZS7jv-H;GgwhC`du,
x
33
X=@U?pY_p@vkT;@`YEU@sO,SAg+|7ArsYjB0<0bE@v
x
24
j<OV?2'aaEuwDoA(fTfDtH..DXjj:6
x
18
X=@U?WhvN9ytmX?_%97AN%%
x
19
V`w<6(fTfDtH..DZ+a:@|X2-
x
10
V`w<6hk,)<v/w
x
6
iQ<eDNSw
x
14
1^|R7X:p(<hk,)<v/w
x
33
X=@U?pY_p@vkT;@`YEU@sO,SAg+|7A&pNaE/5M&G1v
x
30
X=@U?jjdU?0g_5Bl4sY?_%97Af7ap@&:lSAY+%
x
14
47Xp6x_NX6PK687nt#
x
11
<Kc87@'(q6qWM*
x
5
;o`'<f!
x
9
E,+F;RNMg9f!
x
4
,CHr@
x
0
p
7 0 48 12 0 0 28 0 4 7 7 -1 -1
48
w0E<!-BW<!(?W<!-`vpv0#Gpv.fvpv6<W<!75bpv.o=6#6G:3w.EW<!39*!!
7
7b?0%6lr!
7
DVGUv5TE!
12
x
6
q'-W@Dhw
x
21
0g_5Bl4sY?_%97ArNRdDFG;`F@v
x
2
FVw
x
4
wm<eD
x
6
1lo(F^(%
x
8
8JfCFB4uD+
i
0
x
21
X=@U?pY_p@vkT;@`YEU@sO,SA>v
x
23
V`w<6biqg9(fTfDtH..DZ+a:@|X2-
x
51
6dV<+wQtc9;Xh'F#wj'FqKRdDm^;:+LdV<++Jvi9/MMEF0F^Z?&XVTA,JbD+5^Ww
x
14
xeb@Gg%vY?@5--E`+%
x
28
X=@U?pY_p@vkT;@`YEU@sO,SA-W1`FEPMEF
0
0
0 1
21
0g_5Bl4sY?_%97ArNRdDFG;`F@v
0 0 9
x
25
V`w<6!BK(FvpNaE.'aaE3?ffD(Q0bE;v
p
1 0 7 2 0 0 4 0 2 1 1 -1 -1
7
w0E<!)'!!
1
z
1
'!
2
x
29
X=@U?jjdU?'FMTA'j&fD26sJD-?ffD(Q0bE;v
x
3
v.E-
0
0
0 0
x
15
rpwhC;Z2b3<?<+EfqT+
0
0
}

View File

@@ -0,0 +1,53 @@
MACHINE Default
INCLUDE {
$POST_LIB_CURRENT_MACH_DIR/Controller/ctrl_fanuc_base.def
$POST_LIB_CURRENT_MACH_DIR/Controller/ctrl_fanuc_base.cdl
$POST_LIB_CURRENT_MACH_DIR/oem_ootb_5ax_fanuc.def
$POST_LIB_CURRENT_MACH_DIR/sim01_mill_3ax_fanuc.cdl
$POST_LIB_CURRENT_MACH_DIR/sim01_mill_3ax_fanuc_service.def
}

View File

@@ -0,0 +1,209 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Copyright>Siemens Product Lifecycle Management Software Inc.</Copyright>
<Version>2.0</Version>
<MachineName>sim01_mill_3ax_fanuc</MachineName>
<Sourcing>
<Sequence>
<Layer Name="Libraries" ReadOnly="true" SubFolder="Libraries">
<Copyright>Siemens Product Lifecycle Management Software Inc.</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 Product Lifecycle Management Software Inc.</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
<Layer Name="Fanuc" ReadOnly="true" SubFolder="Controller">
<Copyright>Siemens Product Lifecycle Management Software Inc.</Copyright>
<Template>${UGII_CAM_RESOURCE_DIR}post_configurator/post_template/controller/fanuc/base/ctrl_fanuc_base.psl</Template>
<Version>1.00</Version>
<Order>2001</Order>
<Scripts>
<Filename Name="ctrl_fanuc_base" Processing="true"/>
<Filename Name="ctrl_fanuc_base_msg" Processing="true"/>
</Scripts>
<DefinedEvents>
<Filename Include="true" Name="ctrl_fanuc_base" Processing="auto"/>
</DefinedEvents>
<CustomerDialogs>
<Filename Include="true" Name="ctrl_fanuc_base" Processing="auto"/>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Product Lifecycle Management Software Inc.</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
<Layer Name="Machine Tool Builder" ReadOnly="false">
<Copyright>Siemens Product Lifecycle Management Software Inc.</Copyright>
<Version>1.00</Version>
<Order>3001</Order>
<Scripts>
<Filename Name="sim01_mill_3ax_fanuc_mtb" Processing="true"/>
</Scripts>
<DefinedEvents>
</DefinedEvents>
<CustomerDialogs>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Product Lifecycle Management Software Inc.</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
<Layer Name="Fanuc OOTB" ReadOnly="false">
<Copyright>Siemens Product Lifecycle Management Software Inc.</Copyright>
<Template>${UGII_CAM_RESOURCE_DIR}post_configurator/post_template/controller/fanuc/manufacturer/oem_ootb_5ax_fanuc.psl</Template>
<Version>1.00</Version>
<Order>4001</Order>
<Scripts>
<Filename Name="oem_ootb_5ax_fanuc" Processing="true"/>
</Scripts>
<DefinedEvents>
<Filename Name="oem_ootb_5ax_fanuc" Processing="true"/>
</DefinedEvents>
<CustomerDialogs>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Product Lifecycle Management Software Inc.</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
<Layer Name="Fanuc Sample Machine Level" ReadOnly="false">
<Copyright>Siemens Product Lifecycle Management Software Inc.</Copyright>
<Template>${UGII_CAM_RESOURCE_DIR}post_configurator/post_template/controller/fanuc/machine/machine_ootb_5ax_fanuc.psl</Template>
<Version>1.00</Version>
<Order>5001</Order>
<Scripts>
<Filename Name="machine_ootb_5ax_fanuc" Processing="true"/>
</Scripts>
<DefinedEvents>
</DefinedEvents>
<CustomerDialogs>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Product Lifecycle Management Software Inc.</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
<Layer Name="Service" ReadOnly="false">
<Copyright>Siemens Product Lifecycle Management Software Inc.</Copyright>
<Version>1.00</Version>
<Order>8001</Order>
<Scripts>
<Filename Name="sim01_mill_3ax_fanuc_service_fanuc" Processing="true"/>
</Scripts>
<DefinedEvents>
<Filename Name="sim01_mill_3ax_fanuc_service" Processing="true"/>
</DefinedEvents>
<CustomerDialogs>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Product Lifecycle Management Software Inc.</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 Product Lifecycle Management Software Inc.</Copyright>
<Version>1.00</Version>
<Order>9001</Order>
<Scripts>
<Filename Name="sim01_mill_3ax_fanuc_custom" Processing="true"/>
</Scripts>
<DefinedEvents>
</DefinedEvents>
<CustomerDialogs>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Product Lifecycle Management Software Inc.</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>lili</User>
<Date>25.09.2019 21:48:45</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
<Comment>
<User>lili</User>
<Date>25.09.2019 21:48:45</Date>
<Text>'Postprocessor successfully upgraded from version 4.7.1 to version 5.2.0</Text>
</Comment>
<Comment>
<User>lili</User>
<Date>29.11.2019 10:47:29</Date>
<Text>'Postprocessor successfully upgraded from version 5.2.0 - Release to version 5.2.2</Text>
</Comment>
<Comment>
<User>lili</User>
<Date>30.03.2020 11:56:44</Date>
<Text>'Postprocessor successfully upgraded from version 5.2.2 - Release 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,322 @@
set pc_initial_library_release_of_post 50505
#############################################################################################
#
# Customer Data
#
# Company :
# Address :
# Contact person :
# Phone :
# Fax :
# Mail :
#
#############################################################################################
#
# Copyright 2014-2022 Siemens Product Lifecycle Management Software Inc.
# All Rights Reserved.
# Copyright (c) 2012-2020 Siemens Industry Software GmbH & Co. KG
#
# Die Quellcodes der Programme sind urheberrechtlich geschuetzt und
# duerfen ohne Zustimmung von Siemens Industry Software GmbH & Co. KG weder kopiert noch
# fuer andere Zwecke weiterverwendet werden.
#
# The source of the programs is protected by Copyright.
# You are not allowed to make any copies or modifications
# without consent of Siemens Industry Software GmbH & Co. KG.
#
# Le contenu de ces programmes sont protégés par copyright et ne
# peuvent pas être copiés ou réutilisés sans l'agrément de Siemens Industry Software GmbH & Co. KG
#
#############################################################################################
#____________________________________________________________________________________________
#
# 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]} {
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"
}
}
}
}
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)"
}
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 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,96 @@
set nondecrypted 1
proc postcon_initialize_sys_service {} {
uplevel #0 {
# ########## SYSTEM VARIABLE DECLARATIONS ##############
# set mom_sys_cir_vector "Vector - Arc Start to Center"
# set mom_sys_helix_pitch_type "rise_revolution"
# set mom_sys_zero "0"
# set mom_sys_opskip_block_leader "/"
# set mom_sys_seqnum_start "10"
# set mom_sys_seqnum_incr "10"
# set mom_sys_seqnum_freq "1"
# set mom_sys_seqnum_max "9999"
# set mom_sys_lathe_x_factor "1"
# set mom_sys_lathe_y_factor "1"
# set mom_sys_lathe_z_factor "1"
# set mom_sys_lathe_i_factor "1"
# set mom_sys_lathe_j_factor "1"
# set mom_sys_lathe_k_factor "1"
# set mom_sys_leader(N) "N"
# set mom_sys_cycle_feed_mode "MMPM"
# set mom_sys_feed_param(IPM,format) "Feed_IPM"
# set mom_sys_feed_param(IPR,format) "Feed_IPR"
# set mom_sys_feed_param(FRN,format) "Feed_INV"
# set mom_sys_contour_feed_mode(ROTARY) "MMPM"
# set mom_sys_contour_feed_mode(LINEAR_ROTARY) "MMPM"
# set mom_sys_feed_param(DPM,format) "Feed_DPM"
# set mom_sys_rapid_feed_mode(ROTARY) "MMPM"
# set mom_sys_rapid_feed_mode(LINEAR_ROTARY) "MMPM"
# set mom_sys_feed_param(MMPM,format) "Feed_MMPM"
# set mom_sys_feed_param(MMPR,format) "Feed_MMPR"
# set mom_sys_linearization_method "angle"
#
# ####### KINEMATIC VARIABLE DECLARATIONS ##############
# set mom_kin_4th_axis_direction "MAGNITUDE_DETERMINES_DIRECTION"
# set mom_kin_4th_axis_incr_switch "OFF"
# set mom_kin_4th_axis_rotation "standard"
# set mom_kin_5th_axis_direction "MAGNITUDE_DETERMINES_DIRECTION"
# set mom_kin_5th_axis_incr_switch "OFF"
# set mom_kin_5th_axis_rotation "standard"
# set mom_kin_clamp_time "2.0"
# set mom_kin_cycle_plane_change_per_axis "0"
# set mom_kin_cycle_plane_change_to_lower "0"
# set mom_kin_flush_time "2.0"
# set mom_kin_linearization_flag "1"
# set mom_kin_linearization_tol "0.01"
# set mom_kin_max_dpm "10000"
# set mom_kin_max_fpm "15000"
# set mom_kin_max_fpr "1000"
# set mom_kin_max_frn "1000"
# set mom_kin_min_dpm "0.0"
# set mom_kin_min_fpm "0.1"
# set mom_kin_min_fpr "0.1"
# set mom_kin_min_frn "0.01"
# set mom_kin_pivot_gauge_offset "0.0"
# set mom_kin_rapid_feed_rate "10000"
# set mom_kin_retract_distance "500"
# set mom_kin_rotary_axis_method "PREVIOUS"
# set mom_kin_tool_change_time "12.0"
# set mom_kin_x_axis_limit "1000"
# set mom_kin_y_axis_limit "1000"
# set mom_kin_z_axis_limit "1000"
}
}
postcon_initialize_sys_service
CONF_CTRL_moves set always_center_for_circle 1
CONF_GE_msg set message_dspa3 {\\\\}
CONF_SPF_warning set no_warningoutput {{SMALL ARC; ABORTED TO LINEAR MOVE}}
set ::mom_sys_home_pos(0) 0.000000
set ::mom_sys_home_pos(1) 225.425000
set ::mom_sys_home_pos(2) 606.425000
proc ootb_convert_home_pos {} {
# This proc is used to convert mom_sys_home_pos to inch ane metric units.
if {[info exists ::mom_sys_home_pos(0)]} {
set ::mom_sys_home_pos_metric(0) $::mom_sys_home_pos(0)
set ::mom_sys_home_pos_metric(1) $::mom_sys_home_pos(1)
set ::mom_sys_home_pos_metric(2) $::mom_sys_home_pos(2)
set ::mom_sys_home_pos_inch(0) [expr $::mom_sys_home_pos_metric(0)/25.4]
set ::mom_sys_home_pos_inch(1) [expr $::mom_sys_home_pos_metric(1)/25.4]
set ::mom_sys_home_pos_inch(2) [expr $::mom_sys_home_pos_metric(2)/25.4]
unset ::mom_sys_home_pos(0)
unset ::mom_sys_home_pos(1)
unset ::mom_sys_home_pos(2)
}
}
#This command must be called at very end of ootb service layer.
ootb_convert_home_pos

View File

@@ -0,0 +1,36 @@
MACHINE TEMPLATE
EVENT prefer_solution
{
UI_LABEL "Preferred Solution"
PARAM command_status
{
TYPE o
DEFVAL "Active"
OPTIONS "Active","Inactive","User Defined"
UI_LABEL "Status"
}
PARAM prefer_axis
{
TYPE o
DEFVAL "OFF"
OPTIONS "OFF", "A", "B", "C"
UI_LABEL "Preferred Axis"
}
PARAM prefer_output_min
{
TYPE d
DEFVAL "0.000000"
TOGGLE Off
UI_LABEL "Preferred Range Minimum"
}
PARAM prefer_output_max
{
TYPE d
DEFVAL "0.000000"
TOGGLE Off
UI_LABEL "Preferred Range Maximum"
}
}

View File

@@ -0,0 +1,119 @@
lappend lib_config_data [list "ctrl_template_base_msg" "Ctrl_Template_Base-MSG-Version 057"]
####C#O#P#Y#R#I#G#H#T########################################################################
#
# Copyright 2014-2024 Siemens Product Lifecycle Management Software Inc.
# All Rights Reserved.
#
####S#T#A#R#T##C#H#A#N#G#E##H#I#S#T#O#R#Y####################################################
#
# Last changes: 09.02.2019 - TJ 001 Initial Release and Installation
# 16.03.2019 - UR 002 Releaseversion 4.6.3
# 28.03.2019 - COE 003 Releaseversion 4.7
# 11.04.2019 - UR 004 Releaseversion 4.7.1
# 18.04.2019 - UR 005 Releaseversion 4.7.2
# 07.05.2019 - UR 006 Releaseversion 5.0
# 08.07.2019 - UR 007 Releaseversion 5.0.1
# 31.07.2019 - UR 008 Releaseversion 5.0.2
# 16.08.2019 - COE 009 Releaseversion 5.0.3
# 21.08.2019 - COE 010 Releaseversion 5.1.0
# 20.09.2019 - COE 011 Releaseversion 5.2.0
# 06.11.2019 - UR 012 Releaseversion 5.2.3
# 27.12.2019 - UR 013 Releaseversion 5.2.4
# 31.01.2020 - COE 014 Releaseversion 5.2.5
# 02.03.2020 - UR 015 Releaseversion 5.2.6
# 19.03.2020 - COE 016 Releaseversion 5.2.7
# 25.03.2020 - COE 017 Releaseversion 5.3.0
# 01.07.2020 - COE 018 Releaseversion 5.3.1
# 09.07.2020 - COE 019 Releaseversion 5.3.2
# 06.09.2020 - COE 020 Releaseversion 5.3.3
# 15.09.2020 - COE 021 Releaseversion 5.3.4
# 26.09.2020 - COE 022 Releaseversion 5.3.5
# 26.11.2020 - COE 023 Releaseversion 5.3.6
# 24.01.2021 - COE 024 Releaseversion 5.3.7
# 06.02.2021 - COE 025 Releaseversion 5.3.8
# 15.03.2021 - COE 026 Releaseversion 5.3.9
# 13.04.2021 - COE 027 Releaseversion 5.4.0
# 02.06.2021 - COE 028 Releaseversion 5.4.1
# 21.07.2021 - COE 029 Releaseversion 5.4.2
# 03.09.2021 - COE 030 Releaseversion 5.4.3
# 07.09.2021 - COE 031 Releaseversion 5.4.4
# 29.09.2021 - COE 032 Releaseversion 5.5.0
# 25.10.2021 - COE 033 Releaseversion 5.5.1
# 24.11.2021 - COE 034 Releaseversion 5.5.2
# 19.02.2022 - COE 035 Releaseversion 5.5.3
# 06.03.2022 - COE 036 Releaseversion 5.5.4
# 08.04.2022 - COE 037 Releaseversion 5.5.5
# 13.07.2022 - COE 038 Releaseversion 5.5.6
# 07.09.2022 - COE 039 Releaseversion 5.5.7
# 24.09.2022 - COE 040 Releaseversion 5.5.8
# 15.01.2023 - COE 041 Releaseversion 23.01.0
# 14.03.2023 - COE 042 Releaseversion 23.03.0
# 07.04.2023 - COE 043 Releaseversion 23.04.0
# 14.07.2023 - COE 044 Releaseversion 23.07.0
# 14.09.2023 - COE 045 Releaseversion 23.09.0
# 14.09.2023 - COE 046 Releaseversion 23.09.0
# 09.10.2023 - ET 047 Releaseversion 23.10.0
# 09.10.2023 - ET 048 Releaseversion 23.10.0
# 10.12.2023 - COE 049 Releaseversion 23.12.0
# 19.01.2024 - COE 050 Releaseversion 24.01.0
# 21.03.2024 - COE 051 Releaseversion 24.03.0
# 13.08.2024 - COE 052 Releaseversion 24.08.0
# 22.08.2024 - COE 053 Releaseversion 24.08.1
# 16.09.2024 - COE 054 Releaseversion 24.09.0
# 24.09.2024 - ET 055 Releaseversion 24.09.1
# 27.12.2024 - COE 056 Releaseversion 24.12.0
# 02.04.2025 - COE 057 Releaseversion 25.04.0
#
#
#
####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]
}
}

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