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 @@
(#19696=0 : rotating table coordinate system for G43.4/5. Change in INI program to 32 for non-rotating workpiece coordinate system)
#19696=0
(This part sets the position of the reference point G28)
G54
(Implement the setting of the reference point unit dependent)
G10L52
N1240P1R0000
N1240P2R0000
N1240P3R0000
G11

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_sim08_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_sim08_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_sim08_Methods, strMethodName, None)
def GetMetacode(self, strMetacodeName : str):
return getattr(Fanuc_sim08_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,66 @@
G0 G90 G49 M5
(Set the tool change position values in metric)
#100001=0.000
#100002=0.000
#100003=-100.000
#100004=250.000
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
N10
##LANGUAGE AC
// deactivate softlimits and activate hard limits for the tool change
activateSoftLimitCheck(FALSE);
##LANGUAGE NATIVE
G0 G53 Z0.0
G0 G53 X[#100001] Y[#100002]
G0 G53 Z[#100003]
##LANGUAGE AC
// Open Door
move (AXIS,"D1", 250,"D2",250, 2.0);
##LANGUAGE NATIVE
G0 G53 Y[#100004]
##LANGUAGE AC
INT nToolID;
nToolID = getVariable("#4120");
IF (nToolID > 0);
generateTool (getToolNameByNumber(nToolID), "S");
ENDIF;
IF (exist (getCurrentTool ("S")));
visibility ( getCurrentTool ("S"), OFF, TRUE);
//collision (OFF, getCurrentTool ("S"));
release ( getCurrentTool ("S"));
ENDIF;
IF (exist (getNextTool ("S")));
grasp ( getNextTool ("S"), getSpindleObject ("S"));
position ( getNextTool ("S"), 0, 0, 0, 0, 0, 0);
visibility ( getNextTool ("S"), ON, TRUE);
//collision (ON, getNextTool ("S"), 2, -0.01);
activateNextTool ("S");
ENDIF;
##LANGUAGE NATIVE
G0 G53 Y[#100002]
##LANGUAGE AC
// Close Door
move (AXIS,"D1", 0,"D2",0, 2.0);
// activate softlimits and activate hard limits for the tool change
activateSoftLimitCheck(TRUE);
##LANGUAGE NATIVE
G43 H1
M99

View File

@@ -0,0 +1,43 @@
#
# Copyright (c) 2019 Siemens Industry Software Inc.
# Unpublished - All rights reserved
#
#
#
# ================================================================
import math
import CSEWrapper
import CSETNC
from CSEWrapper import ChannelState
from CSEWrapper import Matrix4
from CSEWrapper import Vector3
from CSEBasic import BasicMethods
from CseTNC_Methods import ControllerMethods
from CseTNC_Metacodes import ControllerMetacodes
class TNC_Sim08_Methods(ControllerMethods):
def ToolLengthToMachAx(channel : ChannelState) -> Vector3:
vecToolOffsets = Vector3(channel.GetQCorrection(), channel.GetZCorrection(), channel.GetLCorrection())
channel.SetStateAttribute("GV_dSpindleOffset", 0.0)
return vecToolOffsets
class TNC_Sim08_Metacodes(ControllerMetacodes):
# This class contains the following DUMMY metacode to show exemplarily how to implement custom metacodes
def DUMMY(channel : ChannelState):
return True
class Controller(CSETNC.Controller):
def GetMetacode(self, strMetacodeName : str):
return getattr(TNC_Sim08_Metacodes, strMetacodeName, None)
def GetMethod(self, strMethodName : str):
return getattr(TNC_Sim08_Methods, strMethodName, 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,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,65 @@
0 BEGIN PGM TOOLCHANGE MM
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=0.0
0 Q1003=-100.0
0 Q1004=250.0
##LANGUAGE AC
// deactivate softlimits and activate hard limits for the tool change
activateSoftLimitCheck(FALSE);
##LANGUAGE NATIVE
0 L Z0.0 FMAX M91
0 L X+Q1001 Y+Q1002 FMAX M91
0 L Z+Q1003 FMAX M91
##LANGUAGE AC
// Open Door
move (AXIS,"D1", 250,"D2",250, 2.0);
##LANGUAGE NATIVE
0 L Y+Q1004 FMAX M91
##LANGUAGE AC
INT nToolID;
nToolID = getVariable ("Q1000");
STRING strToolName;
strToolName = nToolID;
IF (nToolID > 0);
generateTool (getToolNameByNumber(nToolID), "S");
ENDIF;
IF (exist(getCurrentTool("S")));
visibility ( getCurrentTool("S"), OFF, TRUE);
release ( getCurrentTool("S"));
ENDIF;
IF (exist(getNextTool("S")));
grasp ( getNextTool("S"), getJunction("SPINDLE", "S"));
position ( getNextTool("S"), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
visibility ( getNextTool("S"), ON, TRUE);
activateNextTool ("S");
ENDIF;
##LANGUAGE NATIVE
0 L Y+Q1002 FMAX M91
##LANGUAGE AC
// Close Door
move (AXIS,"D1", 0,"D2",0, 2.0);
// activate softlimits and activate hard limits for the tool change
activateSoftLimitCheck(TRUE);
##LANGUAGE NATIVE
10 FN 17: SYSWRITE ID20 NR1 = +Q1000
11 LBL "NO_TOOLCHANGE"
12 M67
13 END PGM TOOLCHANGE MM

View File

@@ -0,0 +1,11 @@
TO_INI
PMAC
PGUD
CHAN_DATA
TC_CARR
TC_KIN
G40 D0
M17

View File

@@ -0,0 +1,57 @@
#
# 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
from CSEWrapper import Vector3
class S840D_sim08_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
def ToolLengthToMachAx(channel: ChannelState):
#Customize this method to map tool length offsets to machine axes
return Vector3(channel.GetQCorrection(), #tool offset on y direction of tool mount junction to X axis
channel.GetZCorrection(), #tool offset on Z direction of tool mount junction to Y axis
channel.GetLCorrection()) #tool offset on X direction of tool mount junction to Z axis
class S840D_sim08_Metacodes(ControllerMetacodes):
# Use this class to add machine specific metacodes.
def M74(channel : ChannelState):
channel.SetToolMode(channel.GetCurrentTool(channel.GetMainSpindle()), "AddMaterial")
return True
def M75(channel : ChannelState):
channel.SetToolMode(channel.GetCurrentTool(channel.GetMainSpindle()), "Off")
return True
def COMMENT(channel : ChannelState, Value):
if len(Value) > 0 and Value.find(" DEPOSITION HEIGHT=") == 0:
channel.SetDepositionHeight(float(Value[19:]))
if len(Value) > 0 and Value.find(" DEPOSITION WIDTH=") == 0:
channel.SetDepositionWidth(float(Value[18:]))
return True
class Controller(CSES840D.Controller):
def GetMethod(self, strMethodName : str):
return getattr(S840D_sim08_Methods, strMethodName, None)
def GetMetacode(self, strMetacodeName : str):
return getattr(S840D_sim08_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,129 @@
$TX_TOOLCOUNT=5000
$MA_MISC_FUNCTION_MASK[AX1]='H0'
$MA_MISC_FUNCTION_MASK[AX2]='H0'
$MA_MISC_FUNCTION_MASK[AX3]='H0'
$MA_MISC_FUNCTION_MASK[AX4]='H0'
$MA_MISC_FUNCTION_MASK[AX5]='H5'
;CYCLE800 Turning MD settings
$MA_SPIND_ASSIGN_TO_MACHAX[AX1]=0
$MA_SPIND_ASSIGN_TO_MACHAX[AX2]=0
$MA_SPIND_ASSIGN_TO_MACHAX[AX3]=0
$MA_SPIND_ASSIGN_TO_MACHAX[AX4]=0
$MA_SPIND_ASSIGN_TO_MACHAX[AX5]=5
$MA_SPIND_ASSIGN_TO_MACHAX[AX6]=6
$MA_IS_ROT_AX[AX1]=0
$MA_IS_ROT_AX[AX2]=0
$MA_IS_ROT_AX[AX3]=0
$MA_IS_ROT_AX[AX4]=1
$MA_IS_ROT_AX[AX5]=1
$MA_IS_ROT_AX[AX6]=1
$MA_SAFE_IS_ROT_AX[AX1]=0
$MA_SAFE_IS_ROT_AX[AX2]=0
$MA_SAFE_IS_ROT_AX[AX3]=0
$MA_SAFE_IS_ROT_AX[AX4]=1
$MA_SAFE_IS_ROT_AX[AX5]=1
$MA_SAFE_IS_ROT_AX[AX6]=1
$MC_SPIND_ASSIGN_TAB_ENABLE=0
$MC_TOOL_PARAMETER_DEF_MASK='H40000'
$MC_TOCARR_ROT_OFFSET_FROM_FR=1
$MC_TOCARR_ROTAX_MODE='H2'
$MC_ORI_IPO_WITH_G_CODE=0
$MC_TOOL_MANAGEMENT_TOOLHOLDER=1
$MC_LIFTFAST_MODE_MASK=1
$MCS_FUNCTION_MASK_TECH='H409'
$MCS_FUNCTION_MASK_DRILL='H0'
$MCS_FUNCTION_MASK_DRILL='H0'
$MCS_FUNCTION_MASK_TURN='H0'
$MCS_DISP_COORDINATE_SYSTEM=0
$MCS_AXIS_USAGE[4]=3
$MCS_AXIS_USAGE_ATTRIB[4]='B1000'
$MCS_AXIS_USAGE[0]=0
$MCS_AXIS_USAGE[1]=0
$MCS_AXIS_USAGE[2]=0
$MCS_AXIS_USAGE[3]=0
$MCS_AXIS_USAGE[4]=3 ;C axis
$MCS_AXIS_USAGE[5]=1 ;S spindle
$MN_MM_NUM_TOOL_CARRIER=2
$MN_MM_NUM_KIN_TRAFOS=2
$MN_MM_MAXNUM_KIN_CHAIN_ELEM=50
$MN_G53_TOOLCORR='H0'
$MNS_FUNCTION_MASK_SIM='H20'
$ON_TRAFO_TYPE_MASK='H11'
$P_GG[22]=2
$P_GG[53]=1
$P_CUTMOD_ERR='H0'
$P_LIFTFAST=0
; get this out of the KIM by Variable Method
;$MA_ROT_IS_MODULO[AX1]=0
;$MA_ROT_IS_MODULO[AX2]=0
;$MA_ROT_IS_MODULO[AX3]=0
;$MA_ROT_IS_MODULO[AX4]=0
;$MA_ROT_IS_MODULO[AX5]=0
;$MA_ROT_IS_MODULO[AX6]=1
; For the use case to set/overwrite the dynamic axis properties of the KIM in Sinumerik controller differents sets can be defined and activated.
; See details in the FB1 Functional Basic Manual (Dynamic response mode for path interpolation).
;
; As a show case below axis properties are defined, which are more realistic as the one define inside the sim08 KIM.
; They are set with index 0 dobe activated by DYNNORM.
; Other sets of the array
; 1 can be set by DYNPOS
; 2 can be set by DYNROUGH
; 3 can be set by DYNSEMIFIN
; 4 can be set by DYNFINISH
$MA_MAX_AX_VELO[AX1]=40000
$MA_MAX_AX_VELO[AX2]=40000
$MA_MAX_AX_VELO[AX3]=40000
$MA_MAX_AX_VELO[AX4]=150
$MA_MAX_AX_VELO[AX5]=100
$MA_MAX_AX_VELO[AX6]=100
$MA_MAX_AX_VELO[AX6]=100
; for D1 D2 to avoid warning message
$MA_MAX_AX_VELO[AX7]=100
$MA_MAX_AX_VELO[AX8]=100
$MA_MAX_AX_ACCEL[0,AX1]=25
$MA_MAX_AX_ACCEL[0,AX2]=25
$MA_MAX_AX_ACCEL[0,AX3]=25
$MA_MAX_AX_ACCEL[0,AX4]=40
$MA_MAX_AX_ACCEL[0,AX5]=81
$MA_MAX_AX_ACCEL[0,AX6]=180
; for D1 D2 to avoid warning message
$MA_MAX_AX_ACCEL[0,AX7]=180
$MA_MAX_AX_ACCEL[0,AX8]=180
$MA_MAX_AX_JERK[0,AX1]=70
$MA_MAX_AX_JERK[0,AX2]=60
$MA_MAX_AX_JERK[0,AX3]=200
$MA_MAX_AX_JERK[0,AX4]=10000
$MA_MAX_AX_JERK[0,AX5]=300
$MA_MAX_AX_JERK[0,AX1]=162
$MN_MAX_ACCEL_OVL_FACTOR[0,AX1]=1.2
$MN_MAX_ACCEL_OVL_FACTOR[0,AX2]=1.2
$MN_MAX_ACCEL_OVL_FACTOR[0,AX3]=1.2
$MN_MAX_ACCEL_OVL_FACTOR[0,AX4]=1.2
$MN_MAX_ACCEL_OVL_FACTOR[0,AX5]=1.2
$MN_MAX_ACCEL_OVL_FACTOR[0,AX6]=1.01
$MA_POSCTRL_GAIN[0,AX1]=10
$MA_POSCTRL_GAIN[0,AX2]=10
$MA_POSCTRL_GAIN[0,AX3]=10
$MA_POSCTRL_GAIN[0,AX4]=5
$MA_POSCTRL_GAIN[0,AX5]=10
$MA_POSCTRL_GAIN[0,AX6]=1

View File

@@ -0,0 +1,24 @@
PROC DOOR(INT OPEN)
##LANGUAGE AC
// Define motion of the Door
INT nDoorOpenFlag;
nDoorOpenFlag = getVariable("OPEN");
FLOAT step;
INT nCount;
IF (nDoorOpenFlag);
// Open Door
move (AXIS,"D1", 250,"D2",250, 1.0);
ELSE;
// Close Door
FOR (nCount, 1, 10);
move (AXIS,"D1", 250 - 25. * nCount,"D2",250 -25. *nCount, 0.1);
ENDFOR;
ENDIF;
##LANGUAGE NATIVE
ret

View File

@@ -0,0 +1,10 @@
PROC ORIRESET(REAL AX1, REAL AX2, REAL AX3)
TRAFOOF
if (AX1)
G53 A=AX1
endif
if (AX2)
G53 C=AX2
endif
TRAORI

View File

@@ -0,0 +1,42 @@
$TC_CARR1[1]=0.003
$TC_CARR2[1]=0
$TC_CARR3[1]=100.012
$TC_CARR4[1]=-0.003
$TC_CARR5[1]=0
$TC_CARR6[1]=-100.012
$TC_CARR7[1]=-1 ;;;x component of rotary axis v1
$TC_CARR8[1]=0 ;;;y component of rotary axis v1
$TC_CARR9[1]=0 ;;;z component of rotary axis v1
$TC_CARR10[1]=0 ;;;x component of rotary axis v2
$TC_CARR11[1]=0 ;;;y component of rotary axis v2
$TC_CARR12[1]=-1 ;;;z component of rotary axis v2
$TC_CARR13[1]=0
$TC_CARR14[1]=0
$TC_CARR15[1]=0
$TC_CARR16[1]=-225
$TC_CARR17[1]=-480
$TC_CARR18[1]=-625.583
$TC_CARR19[1]=700.675
$TC_CARR20[1]=0
$TC_CARR21[1]=(X)
$TC_CARR22[1]=(X)
$TC_CARR23[1]="P" ;;;Kinematic type T M P
$TC_CARR24[1]=0 ;;;Offset of rotary axis v1
$TC_CARR25[1]=0 ;;;Offset of rotary axis v2
$TC_CARR26[1]=0
$TC_CARR27[1]=0
$TC_CARR28[1]=0
$TC_CARR29[1]=0
$TC_CARR30[1]=-115 ;;;Minimum position of rotary axis v1
$TC_CARR31[1]=-9999 ;;;Minimum position of rotary axis v2
$TC_CARR32[1]=115 ;;;Maximum position of rotary axis v1
$TC_CARR33[1]=9999 ;;;Maximum position of rotary axis v2
$TC_CARR34[1]="R_DATA" ;;;Toolholder name
$TC_CARR35[1]="A" ;;;Axis name 1
$TC_CARR36[1]="C" ;;;Axis name 2
$TC_CARR37[1]=201003003 ;;;Identifier
$TC_CARR38[1]=1250.6
$TC_CARR39[1]=0.4
$TC_CARR40[1]=-0.6 ;;;z axis retract
M17

View File

@@ -0,0 +1,481 @@
N10 $NK_NAME[0] = "MACHINE_BASE"
N20 $NK_TYPE[0] = "OFFSET"
N30 $NK_OFF_DIR[0,0] = 0
N40 $NK_OFF_DIR[0,1] = 0
N50 $NK_OFF_DIR[0,2] = 0
N60 $NK_NEXT[0] = "A-TABLE_OFFSET"
N70 $NK_NAME[1] = "A-TABLE_OFFSET"
N80 $NK_TYPE[1] = "OFFSET"
N90 $NK_OFF_DIR[1,0] = 0
N100 $NK_OFF_DIR[1,1] = 0
N110 $NK_OFF_DIR[1,2] = 0
N120 $NK_A_OFF[1] = 0
N130 $NK_NEXT[1] = "A_AXIS"
N140 $NK_PARALLEL[1] = "Y-SLIDE_OFFSET"
N150 $NK_NAME[2] = "A_AXIS"
N160 $NK_TYPE[2] = "AXIS_ROT"
N170 $NK_OFF_DIR[2,0] = -1
N180 $NK_OFF_DIR[2,1] = 0
N190 $NK_OFF_DIR[2,2] = 0
N200 $NK_AXIS[2] = "A"
N210 $NK_NEXT[2] = "TABLE_FIXTURES_OFFSET"
N220 $NK_NAME[3] = "TABLE_FIXTURES_OFFSET"
N230 $NK_TYPE[3] = "OFFSET"
N240 $NK_OFF_DIR[3,0] = 0
N250 $NK_OFF_DIR[3,1] = 0
N260 $NK_OFF_DIR[3,2] = 0
N270 $NK_NEXT[3] = ""
N280 $NK_PARALLEL[3] = "C-BASE_OFFSET"
N290 $NK_NAME[4] = "C-BASE_OFFSET"
N300 $NK_TYPE[4] = "OFFSET"
N310 $NK_OFF_DIR[4,0] = 0
N320 $NK_OFF_DIR[4,1] = -225
N330 $NK_OFF_DIR[4,2] = -555
N340 $NK_NEXT[4] = "C-TABLE_OFFSET"
N350 $NK_NAME[5] = "C-TABLE_OFFSET"
N360 $NK_TYPE[5] = "OFFSET"
N370 $NK_OFF_DIR[5,0] = 0
N380 $NK_OFF_DIR[5,1] = 0
N390 $NK_OFF_DIR[5,2] = 0
N400 $NK_A_OFF[5] = 0
N410 $NK_NEXT[5] = "C_AXIS"
N420 $NK_NAME[6] = "C_AXIS"
N430 $NK_TYPE[6] = "AXIS_ROT"
N440 $NK_OFF_DIR[6,0] = 0
N450 $NK_OFF_DIR[6,1] = 0
N460 $NK_OFF_DIR[6,2] = -1
N470 $NK_AXIS[6] = "C"
N480 $NK_NEXT[6] = "SETUP_OFFSET"
N490 $NK_NAME[7] = "SETUP_OFFSET"
N500 $NK_TYPE[7] = "OFFSET"
N510 $NK_OFF_DIR[7,0] = 0
N520 $NK_OFF_DIR[7,1] = 0
N530 $NK_OFF_DIR[7,2] = 25
N540 $NK_NEXT[7] = "PART_OFFSET"
N550 $NK_NAME[8] = "PART_OFFSET"
N560 $NK_TYPE[8] = "OFFSET"
N570 $NK_OFF_DIR[8,0] = 0
N580 $NK_OFF_DIR[8,1] = 0
N590 $NK_OFF_DIR[8,2] = 0
N600 $NK_NEXT[8] = ""
N610 $NK_PARALLEL[8] = "WORKPIECE_OFFSET"
N620 $NK_NAME[9] = "WORKPIECE_OFFSET"
N630 $NK_TYPE[9] = "OFFSET"
N640 $NK_OFF_DIR[9,0] = 0
N650 $NK_OFF_DIR[9,1] = 0
N660 $NK_OFF_DIR[9,2] = 0
N670 $NK_NEXT[9] = ""
N680 $NK_PARALLEL[9] = "FIXTURES_OFFSET"
N690 $NK_NAME[10] = "FIXTURES_OFFSET"
N700 $NK_TYPE[10] = "OFFSET"
N710 $NK_OFF_DIR[10,0] = 0
N720 $NK_OFF_DIR[10,1] = 0
N730 $NK_OFF_DIR[10,2] = 0
N740 $NK_NEXT[10] = ""
N750 $NK_NAME[11] = "Y-SLIDE_OFFSET"
N760 $NK_TYPE[11] = "OFFSET"
N770 $NK_OFF_DIR[11,0] = 0
N780 $NK_OFF_DIR[11,1] = 0
N790 $NK_OFF_DIR[11,2] = 0
N800 $NK_A_OFF[11] = 0
N810 $NK_NEXT[11] = "Y_AXIS"
N820 $NK_PARALLEL[11] = "WZW_DOOR_LEFT_OFFSET"
N830 $NK_NAME[12] = "Y_AXIS"
N840 $NK_TYPE[12] = "AXIS_LIN"
N850 $NK_OFF_DIR[12,0] = 0
N860 $NK_OFF_DIR[12,1] = 1
N870 $NK_OFF_DIR[12,2] = 0
N880 $NK_AXIS[12] = "Y"
N890 $NK_NEXT[12] = "X-SLIDE_OFFSET"
N900 $NK_NAME[13] = "X-SLIDE_OFFSET"
N910 $NK_TYPE[13] = "OFFSET"
N920 $NK_OFF_DIR[13,0] = 0
N930 $NK_OFF_DIR[13,1] = 0
N940 $NK_OFF_DIR[13,2] = 0
N950 $NK_A_OFF[13] = 0
N960 $NK_NEXT[13] = "X_AXIS"
N970 $NK_NAME[14] = "X_AXIS"
N980 $NK_TYPE[14] = "AXIS_LIN"
N990 $NK_OFF_DIR[14,0] = 1
N1000 $NK_OFF_DIR[14,1] = 0
N1010 $NK_OFF_DIR[14,2] = 0
N1020 $NK_AXIS[14] = "X"
N1030 $NK_NEXT[14] = "Z-SLIDE_OFFSET"
N1040 $NK_NAME[15] = "Z-SLIDE_OFFSET"
N1050 $NK_TYPE[15] = "OFFSET"
N1060 $NK_OFF_DIR[15,0] = 0
N1070 $NK_OFF_DIR[15,1] = 0
N1080 $NK_OFF_DIR[15,2] = 0
N1090 $NK_A_OFF[15] = 0
N1100 $NK_NEXT[15] = "Z_AXIS"
N1110 $NK_NAME[16] = "Z_AXIS"
N1120 $NK_TYPE[16] = "AXIS_LIN"
N1130 $NK_OFF_DIR[16,0] = 0
N1140 $NK_OFF_DIR[16,1] = 0
N1150 $NK_OFF_DIR[16,2] = 1
N1160 $NK_AXIS[16] = "Z"
N1170 $NK_NEXT[16] = "SPINDLE_OFFSET"
N1180 $NK_NAME[17] = "SPINDLE_OFFSET"
N1190 $NK_TYPE[17] = "OFFSET"
N1200 $NK_OFF_DIR[17,0] = 0
N1210 $NK_OFF_DIR[17,1] = 0
N1220 $NK_OFF_DIR[17,2] = 0
N1240 $NK_NEXT[17] = "S_AXIS"
N1250 $NK_NAME[18] = "S_AXIS"
N1260 $NK_TYPE[18] = "AXIS_ROT"
N1270 $NK_OFF_DIR[18,0] = 0
N1280 $NK_OFF_DIR[18,1] = 0
N1290 $NK_OFF_DIR[18,2] = -1
N1230 $NK_A_OFF[18] = 0
N1300 $NK_AXIS[18] = "S"
N1310 $NK_NEXT[18] = "POCKET_01_OFFSET"
N1320 $NK_NAME[19] = "POCKET_01_OFFSET"
N1330 $NK_TYPE[19] = "OFFSET"
N1340 $NK_OFF_DIR[19,0] = 0
N1350 $NK_OFF_DIR[19,1] = 0
N1360 $NK_OFF_DIR[19,2] = 0
N1370 $NK_NEXT[19] = ""
N1380 $NK_PARALLEL[19] = "POCKET_02_OFFSET"
N1390 $NK_NAME[20] = "POCKET_02_OFFSET"
N1400 $NK_TYPE[20] = "OFFSET"
N1410 $NK_OFF_DIR[20,0] = 0
N1420 $NK_OFF_DIR[20,1] = 0
N1430 $NK_OFF_DIR[20,2] = 0
N1440 $NK_NEXT[20] = ""
N1450 $NK_PARALLEL[20] = "POCKET_03_OFFSET"
N1460 $NK_NAME[21] = "POCKET_03_OFFSET"
N1470 $NK_TYPE[21] = "OFFSET"
N1480 $NK_OFF_DIR[21,0] = 0
N1490 $NK_OFF_DIR[21,1] = 0
N1500 $NK_OFF_DIR[21,2] = 0
N1510 $NK_NEXT[21] = ""
N1520 $NK_PARALLEL[21] = "POCKET_04_OFFSET"
N1530 $NK_NAME[22] = "POCKET_04_OFFSET"
N1540 $NK_TYPE[22] = "OFFSET"
N1550 $NK_OFF_DIR[22,0] = 0
N1560 $NK_OFF_DIR[22,1] = 0
N1570 $NK_OFF_DIR[22,2] = 0
N1580 $NK_NEXT[22] = ""
N1590 $NK_PARALLEL[22] = "POCKET_05_OFFSET"
N1600 $NK_NAME[23] = "POCKET_05_OFFSET"
N1610 $NK_TYPE[23] = "OFFSET"
N1620 $NK_OFF_DIR[23,0] = 0
N1630 $NK_OFF_DIR[23,1] = 0
N1640 $NK_OFF_DIR[23,2] = 0
N1650 $NK_NEXT[23] = ""
N1660 $NK_PARALLEL[23] = "POCKET_06_OFFSET"
N1670 $NK_NAME[24] = "POCKET_06_OFFSET"
N1680 $NK_TYPE[24] = "OFFSET"
N1690 $NK_OFF_DIR[24,0] = 0
N1700 $NK_OFF_DIR[24,1] = 0
N1710 $NK_OFF_DIR[24,2] = 0
N1720 $NK_NEXT[24] = ""
N1730 $NK_PARALLEL[24] = "POCKET_07_OFFSET"
N1740 $NK_NAME[25] = "POCKET_07_OFFSET"
N1750 $NK_TYPE[25] = "OFFSET"
N1760 $NK_OFF_DIR[25,0] = 0
N1770 $NK_OFF_DIR[25,1] = 0
N1780 $NK_OFF_DIR[25,2] = 0
N1790 $NK_NEXT[25] = ""
N1800 $NK_PARALLEL[25] = "POCKET_08_OFFSET"
N1810 $NK_NAME[26] = "POCKET_08_OFFSET"
N1820 $NK_TYPE[26] = "OFFSET"
N1830 $NK_OFF_DIR[26,0] = 0
N1840 $NK_OFF_DIR[26,1] = 0
N1850 $NK_OFF_DIR[26,2] = 0
N1860 $NK_NEXT[26] = ""
N1870 $NK_PARALLEL[26] = "POCKET_09_OFFSET"
N1880 $NK_NAME[27] = "POCKET_09_OFFSET"
N1890 $NK_TYPE[27] = "OFFSET"
N1900 $NK_OFF_DIR[27,0] = 0
N1910 $NK_OFF_DIR[27,1] = 0
N1920 $NK_OFF_DIR[27,2] = 0
N1930 $NK_NEXT[27] = ""
N1940 $NK_PARALLEL[27] = "POCKET_10_OFFSET"
N1950 $NK_NAME[28] = "POCKET_10_OFFSET"
N1960 $NK_TYPE[28] = "OFFSET"
N1970 $NK_OFF_DIR[28,0] = 0
N1980 $NK_OFF_DIR[28,1] = 0
N1990 $NK_OFF_DIR[28,2] = 0
N2000 $NK_NEXT[28] = ""
N2010 $NK_PARALLEL[28] = "POCKET_11_OFFSET"
N2020 $NK_NAME[29] = "POCKET_11_OFFSET"
N2030 $NK_TYPE[29] = "OFFSET"
N2040 $NK_OFF_DIR[29,0] = 0
N2050 $NK_OFF_DIR[29,1] = 0
N2060 $NK_OFF_DIR[29,2] = 0
N2070 $NK_NEXT[29] = ""
N2080 $NK_PARALLEL[29] = "POCKET_12_OFFSET"
N2090 $NK_NAME[30] = "POCKET_12_OFFSET"
N2100 $NK_TYPE[30] = "OFFSET"
N2110 $NK_OFF_DIR[30,0] = 0
N2120 $NK_OFF_DIR[30,1] = 0
N2130 $NK_OFF_DIR[30,2] = 0
N2140 $NK_NEXT[30] = ""
N2150 $NK_PARALLEL[30] = "POCKET_13_OFFSET"
N2160 $NK_NAME[31] = "POCKET_13_OFFSET"
N2170 $NK_TYPE[31] = "OFFSET"
N2180 $NK_OFF_DIR[31,0] = 0
N2190 $NK_OFF_DIR[31,1] = 0
N2200 $NK_OFF_DIR[31,2] = 0
N2210 $NK_NEXT[31] = ""
N2220 $NK_PARALLEL[31] = "POCKET_14_OFFSET"
N2230 $NK_NAME[32] = "POCKET_14_OFFSET"
N2240 $NK_TYPE[32] = "OFFSET"
N2250 $NK_OFF_DIR[32,0] = 0
N2260 $NK_OFF_DIR[32,1] = 0
N2270 $NK_OFF_DIR[32,2] = 0
N2280 $NK_NEXT[32] = ""
N2290 $NK_PARALLEL[32] = "POCKET_15_OFFSET"
N2300 $NK_NAME[33] = "POCKET_15_OFFSET"
N2310 $NK_TYPE[33] = "OFFSET"
N2320 $NK_OFF_DIR[33,0] = 0
N2330 $NK_OFF_DIR[33,1] = 0
N2340 $NK_OFF_DIR[33,2] = 0
N2350 $NK_NEXT[33] = ""
N2360 $NK_PARALLEL[33] = "POCKET_16_OFFSET"
N2370 $NK_NAME[34] = "POCKET_16_OFFSET"
N2380 $NK_TYPE[34] = "OFFSET"
N2390 $NK_OFF_DIR[34,0] = 0
N2400 $NK_OFF_DIR[34,1] = 0
N2410 $NK_OFF_DIR[34,2] = 0
N2420 $NK_NEXT[34] = ""
N2430 $NK_PARALLEL[34] = "POCKET_17_OFFSET"
N2440 $NK_NAME[35] = "POCKET_17_OFFSET"
N2450 $NK_TYPE[35] = "OFFSET"
N2460 $NK_OFF_DIR[35,0] = 0
N2470 $NK_OFF_DIR[35,1] = 0
N2480 $NK_OFF_DIR[35,2] = 0
N2490 $NK_NEXT[35] = ""
N2500 $NK_PARALLEL[35] = "POCKET_18_OFFSET"
N2510 $NK_NAME[36] = "POCKET_18_OFFSET"
N2520 $NK_TYPE[36] = "OFFSET"
N2530 $NK_OFF_DIR[36,0] = 0
N2540 $NK_OFF_DIR[36,1] = 0
N2550 $NK_OFF_DIR[36,2] = 0
N2560 $NK_NEXT[36] = ""
N2570 $NK_PARALLEL[36] = "POCKET_19_OFFSET"
N2580 $NK_NAME[37] = "POCKET_19_OFFSET"
N2590 $NK_TYPE[37] = "OFFSET"
N2600 $NK_OFF_DIR[37,0] = 0
N2610 $NK_OFF_DIR[37,1] = 0
N2620 $NK_OFF_DIR[37,2] = 0
N2630 $NK_NEXT[37] = ""
N2640 $NK_PARALLEL[37] = "POCKET_20_OFFSET"
N2650 $NK_NAME[38] = "POCKET_20_OFFSET"
N2660 $NK_TYPE[38] = "OFFSET"
N2670 $NK_OFF_DIR[38,0] = 0
N2680 $NK_OFF_DIR[38,1] = 0
N2690 $NK_OFF_DIR[38,2] = 0
N2700 $NK_NEXT[38] = ""
N2710 $NK_NAME[39] = "WZW_DOOR_LEFT_OFFSET"
N2720 $NK_TYPE[39] = "OFFSET"
N2730 $NK_OFF_DIR[39,0] = 0
N2740 $NK_OFF_DIR[39,1] = 0
N2750 $NK_OFF_DIR[39,2] = 0
N2760 $NK_A_OFF[39] = 0
N2770 $NK_NEXT[39] = "D1_AXIS"
N2780 $NK_PARALLEL[39] = "WZW_DOOR_RIGHT_OFFSET"
N2790 $NK_NAME[40] = "D1_AXIS"
N2800 $NK_TYPE[40] = "AXIS_LIN"
N2810 $NK_OFF_DIR[40,0] = -1
N2820 $NK_OFF_DIR[40,1] = 0
N2830 $NK_OFF_DIR[40,2] = 0
N2840 $NK_AXIS[40] = "D1"
N2850 $NK_NEXT[40] = ""
N2860 $NK_NAME[41] = "WZW_DOOR_RIGHT_OFFSET"
N2870 $NK_TYPE[41] = "OFFSET"
N2880 $NK_OFF_DIR[41,0] = 0
N2890 $NK_OFF_DIR[41,1] = 0
N2900 $NK_OFF_DIR[41,2] = 0
N2910 $NK_A_OFF[41] = 0
N2920 $NK_NEXT[41] = "D2_AXIS"
N2930 $NK_NAME[42] = "D2_AXIS"
N2940 $NK_TYPE[42] = "AXIS_LIN"
N2950 $NK_OFF_DIR[42,0] = 1
N2960 $NK_OFF_DIR[42,1] = 0
N2970 $NK_OFF_DIR[42,2] = 0
N2980 $NK_AXIS[42] = "D2"
N2990 $NK_NEXT[42] = ""
$NT_NAME[1] = "TURN"
$NT_T_CHAIN_LAST_ELEM[1] = "Basetool"
$NT_P_CHAIN_LAST_ELEM[1] = "Tischoffset"
$NT_TRAFO_TYPE[1] = "TRAORI_STAT"
$NT_ROT_AX_NAME[1,0] = "C_AXIS" ;"ORI_PART"
$NT_ROT_AX_NAME[1,1] = "A_AXIS" ;
$NT_ROT_AX_NAME[1,2] = "S_AXIS" ;"ORI_TOOL"
$NT_GEO_AX_NAME[1,0] = "X-Achse"
$NT_GEO_AX_NAME[1,1] = "Y-Achse"
$NT_GEO_AX_NAME[1,2] = "Z-Achse"
$NT_CNTRL[1]=3
$NT_ROT_AX_POS[0,0]=0
$NT_ROT_AX_POS[0,1]=0
$NT_ROT_AX_POS[0,2]=0
$NT_ROT_AX_POS[1,0]=0
$NT_ROT_AX_POS[1,1]=0
$NT_ROT_AX_POS[1,2]=0
$NT_ROT_AX_POS[2,0]=0
$NT_ROT_AX_POS[2,1]=0
$NT_ROT_AX_POS[2,2]=0
$NT_ROT_AX_POS[3,0]=0
$NT_ROT_AX_POS[3,1]=0
$NT_ROT_AX_POS[3,2]=0
$NT_ROT_AX_POS[4,0]=0
$NT_ROT_AX_POS[4,1]=0
$NT_ROT_AX_POS[4,2]=0
$NT_ROT_AX_POS[5,0]=0
$NT_ROT_AX_POS[5,1]=0
$NT_ROT_AX_POS[5,2]=0
$NT_ROT_AX_POS[6,0]=0
$NT_ROT_AX_POS[6,1]=0
$NT_ROT_AX_POS[6,2]=0
$NT_ROT_AX_POS[7,0]=0
$NT_ROT_AX_POS[7,1]=0
$NT_ROT_AX_POS[7,2]=0
$NT_ROT_AX_POS[8,0]=0
$NT_ROT_AX_POS[8,1]=0
$NT_ROT_AX_POS[8,2]=0
$NT_ROT_AX_POS[9,0]=0
$NT_ROT_AX_POS[9,1]=0
$NT_ROT_AX_POS[9,2]=0
$NT_ROT_AX_POS[10,0]=0
$NT_ROT_AX_POS[10,1]=0
$NT_ROT_AX_POS[10,2]=0
$NT_ROT_AX_POS[11,0]=0
$NT_ROT_AX_POS[11,1]=0
$NT_ROT_AX_POS[11,2]=0
$NT_ROT_AX_POS[12,0]=0
$NT_ROT_AX_POS[12,1]=0
$NT_ROT_AX_POS[12,2]=0
$NT_ROT_AX_POS[13,0]=0
$NT_ROT_AX_POS[13,1]=0
$NT_ROT_AX_POS[13,2]=0
$NT_ROT_AX_POS[14,0]=0
$NT_ROT_AX_POS[14,1]=0
$NT_ROT_AX_POS[14,2]=0
$NT_ROT_AX_POS[15,0]=0
$NT_ROT_AX_POS[15,1]=0
$NT_ROT_AX_POS[15,2]=0
$NT_ROT_AX_POS[16,0]=0
$NT_ROT_AX_POS[16,1]=0
$NT_ROT_AX_POS[16,2]=0
$NT_ROT_AX_POS[17,0]=0
$NT_ROT_AX_POS[17,1]=0
$NT_ROT_AX_POS[17,2]=0
$NT_ROT_AX_POS[18,0]=0
$NT_ROT_AX_POS[18,1]=0
$NT_ROT_AX_POS[18,2]=0
$NT_ROT_AX_POS[19,0]=0
$NT_ROT_AX_POS[19,1]=0
$NT_ROT_AX_POS[19,2]=0
$NT_ROT_AX_POS[20,0]=0
$NT_ROT_AX_POS[20,1]=0
$NT_ROT_AX_POS[20,2]=0
$NT_IDENT[0,0]=0
$NT_IDENT[0,1]=0
$NT_IDENT[0,2]=0
$NT_IDENT[1,0]=400039000
$NT_IDENT[1,1]=0
$NT_IDENT[1,2]=0
$NT_IDENT[2,0]=0
$NT_IDENT[2,1]=0
$NT_IDENT[2,2]=0
$NT_IDENT[3,0]=0
$NT_IDENT[3,1]=0
$NT_IDENT[3,2]=0
$NT_IDENT[4,0]=0
$NT_IDENT[4,1]=0
$NT_IDENT[4,2]=0
$NT_IDENT[5,0]=0
$NT_IDENT[5,1]=0
$NT_IDENT[5,2]=0
$NT_IDENT[6,0]=0
$NT_IDENT[6,1]=0
$NT_IDENT[6,2]=0
$NT_IDENT[7,0]=0
$NT_IDENT[7,1]=0
$NT_IDENT[7,2]=0
$NT_IDENT[8,0]=0
$NT_IDENT[8,1]=0
$NT_IDENT[8,2]=0
$NT_IDENT[9,0]=0
$NT_IDENT[9,1]=0
$NT_IDENT[9,2]=0
$NT_IDENT[10,0]=0
$NT_IDENT[10,1]=0
$NT_IDENT[10,2]=0
$NT_IDENT[11,0]=0
$NT_IDENT[11,1]=0
$NT_IDENT[11,2]=0
$NT_IDENT[12,0]=0
$NT_IDENT[12,1]=0
$NT_IDENT[12,2]=0
$NT_IDENT[13,0]=0
$NT_IDENT[13,1]=0
$NT_IDENT[13,2]=0
$NT_IDENT[14,0]=0
$NT_IDENT[14,1]=0
$NT_IDENT[14,2]=0
$NT_IDENT[15,0]=0
$NT_IDENT[15,1]=0
$NT_IDENT[15,2]=0
$NT_IDENT[16,0]=0
$NT_IDENT[16,1]=0
$NT_IDENT[16,2]=0
$NT_IDENT[17,0]=0
$NT_IDENT[17,1]=0
$NT_IDENT[17,2]=0
$NT_IDENT[18,0]=0
$NT_IDENT[18,1]=0
$NT_IDENT[18,2]=0
$NT_IDENT[19,0]=0
$NT_IDENT[19,1]=0
$NT_IDENT[19,2]=0
$NT_IDENT[20,0]=0
$NT_IDENT[20,1]=0
$NT_IDENT[20,2]=0

View File

@@ -0,0 +1,79 @@
G0 G90 D0 M5
; Set the tool change position values in metric X,Y,Z
R501=0.0
R502=0.0 ; Y Start-Pos
R503=-100.0
R504=250.0 ; Y Change-Pos
; 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;
ENDIF
##LANGUAGE AC
// deactivate softlimits and activate hard limits for the tool change
activateSoftLimitCheck(FALSE);
##LANGUAGE NATIVE
G0 G53 Z0.0
G0 G53 X=R501 Y=R502
G0 G53 Z=R503
; Open Door
DOOR (1)
G0 G53 Y=R504
##LANGUAGE AC
INT nToolID;
STRING sToolName;
nToolID = getVariable("$P_TOOLP");
sToolName = getArrayElement("$TC_TP2",nToolID);
IF (sToolName != "");
generateTool (sToolName, "S");
ELSE;
IF (nToolID > 0);
generateTool (getToolNameByNumber(nToolID), "S");
ELSE;
// ERROR no Tool preselected - ?? Send error message ??
ENDIF;
ENDIF;
IF (exist(getCurrentTool("S")));
// collision (OFF, getCurrentTool("S"));
visibility ( getCurrentTool("S"), OFF, TRUE);
release ( getCurrentTool("S"));
ENDIF;
IF (exist(getNextTool("S")));
grasp ( getNextTool ("S"), getSpindleObject ("S"));
position ( getNextTool("S"), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
visibility ( getNextTool("S"), ON, TRUE);
// collision (ON, getNextTool("S"), 2, -0.01);
activateNextTool ("S");
ENDIF;
##LANGUAGE NATIVE
G0 G53 Y=R502
M66
DOOR (0)
##LANGUAGE AC
// activate softlimits and activate hard limits for the tool change
activateSoftLimitCheck(TRUE);
##LANGUAGE NATIVE
; Overwrite dynamic axis properties of KIM with more real ones defined
; in the file CAHN_DATA.def
DYNNORM
D1
RET

View File

@@ -0,0 +1,2 @@
PROC WRTPR(STRING[32] STR, INT _ST)
RET

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,51 @@
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/sim08_mill_5ax_fanuc.cdl
$POST_LIB_CURRENT_MACH_DIR/sim08_mill_5ax_fanuc_service.def
}

View File

@@ -0,0 +1,214 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Copyright>Siemens Product Lifecycle Management Software Inc.</Copyright>
<Version>2.0</Version>
<MachineName>sim08_mill_5ax_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="sim08_mill_5ax_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="sim08_mill_5ax_fanuc_service_fanuc" Processing="true"/>
</Scripts>
<DefinedEvents>
<Filename Name="sim08_mill_5ax_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="sim08_mill_5ax_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> 3.09.2019 10:51:02</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
<Comment>
<User>lili</User>
<Date> 3.09.2019 10:51:02</Date>
<Text>'Postprocessor successfully upgraded from version 4.7.1 to version 5.1.0</Text>
</Comment>
<Comment>
<User>lili</User>
<Date>25.09.2019 21:50:13</Date>
<Text>'Postprocessor successfully upgraded from version 5.1.0 - Release to version 5.2.0</Text>
</Comment>
<Comment>
<User>lili</User>
<Date>18.02.2020 9:50:44</Date>
<Text>'Postprocessor successfully upgraded from version 5.2.0 - Release to version 5.2.5</Text>
</Comment>
<Comment>
<User>lili</User>
<Date>30.03.2020 11:59:57</Date>
<Text>'Postprocessor successfully upgraded from version 5.2.5 - 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,106 @@
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_setting set local_ns_output 1
CONF_CTRL_moves set decompose_first_move_pos 1
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) 0.000000
set ::mom_sys_home_pos(2) 0.000000
#------------------------------------------------------------
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)
}
}
#For sim08 only, set 4th axis preferred angle to negative.
CONF_SPF_setting set prefer_solution_axis 4th
CONF_SPF_setting set prefer_solution_max 0.000000
#This command must be called at very end of ootb service layer.
ootb_convert_home_pos

View File

@@ -0,0 +1,378 @@
MACHINE HEIDENHAIN
EVENT auxfun
{
UI_LABEL "Auxfun"
PARAM command_status
{
TYPE o
DEFVAL "Active"
OPTIONS "Active","Inactive","User Defined"
UI_LABEL "Status"
}
PARAM auxfun
{
TYPE i
DEFVAL "0"
UI_LABEL "Auxfun Value"
}
PARAM auxfun_text
{
TYPE s
TOGGLE Off
UI_LABEL "Text"
}
}
EVENT dwell
{
POST_EVENT "delay"
UI_LABEL "Dwell"
PARAM command_status
{
TYPE o
DEFVAL "Active"
OPTIONS "Active","Inactive","User Defined"
UI_LABEL "Status"
}
PARAM delay_mode
{
TYPE o
DEFVAL "Seconds"
OPTIONS "Seconds","Revolutions"
UI_LABEL "Dwell Type"
}
PARAM delay_value
{
TYPE d
DEFVAL "10.0000"
UI_LABEL "Dwell Value"
}
PARAM delay_text
{
TYPE s
TOGGLE Off
UI_LABEL "Text"
}
}
EVENT insert
{
UI_LABEL "Insert"
PARAM Instruction
{
TYPE s
}
}
EVENT opskip_on
{
UI_LABEL "Optional Skip On"
PARAM command_status
{
TYPE o
DEFVAL "Active"
OPTIONS "Active","Inactive","User Defined"
UI_LABEL "Status"
}
PARAM opskip_text
{
TYPE s
TOGGLE Off
UI_LABEL "Text"
}
}
EVENT opskip_off
{
UI_LABEL "Optional Skip Off"
PARAM command_status
{
TYPE o
DEFVAL "Active"
OPTIONS "Active","Inactive","User Defined"
UI_LABEL "Status"
}
PARAM opskip_text
{
TYPE s
TOGGLE Off
UI_LABEL "Text"
}
}
EVENT opstop
{
UI_LABEL "Optional Stop"
PARAM command_status
{
TYPE o
DEFVAL "Active"
OPTIONS "Active","Inactive","User Defined"
UI_LABEL "Status"
}
PARAM opstop_text
{
TYPE s
TOGGLE Off
UI_LABEL "Text"
}
}
EVENT prefun
{
UI_LABEL "Prefun"
PARAM command_status
{
TYPE o
DEFVAL "Active"
OPTIONS "Active","Inactive","User Defined"
UI_LABEL "Status"
}
PARAM prefun
{
TYPE i
DEFVAL "0"
UI_LABEL "Prefun Value"
}
PARAM prefun_text
{
TYPE s
TOGGLE Off
UI_LABEL "Text"
}
}
EVENT rotate
{
UI_LABEL "Rotate"
CATEGORY MILL DRILL LATHE
PARAM command_status
{
TYPE o
DEFVAL "Active"
OPTIONS "Active","Inactive","User Defined"
UI_LABEL "Status"
}
PARAM rotate_axis_type
{
TYPE o
DEFVAL "Table"
OPTIONS "Table","Head","Aaxis","Baxis","Caxis","Fourth_Axis","Fifth_Axis"
UI_LABEL "Rotation Axis"
}
PARAM rotation_mode
{
TYPE o
DEFVAL "None"
OPTIONS "None","Angle","Absolute","Incremental"
UI_LABEL "Type"
}
PARAM rotation_direction
{
TYPE o
DEFVAL "CLW"
OPTIONS "CLW","CCLW","NONE"
UI_LABEL "Direction"
}
PARAM rotation_angle
{
TYPE d
DEFVAL "0.0000"
TOGGLE On
UI_LABEL "Angle"
}
PARAM rotation_reference_mode
{
TYPE b
DEFVAL "FALSE"
UI_LABEL "Reference Only - No Output"
}
PARAM rotation_text
{
TYPE s
TOGGLE Off
UI_LABEL "Text"
}
}
EVENT sequence_number
{
UI_LABEL "Sequence Number"
PARAM command_status
{
TYPE o
DEFVAL "Active"
OPTIONS "Active","Inactive","User Defined"
UI_LABEL "Status"
}
PARAM sequence_mode
{
TYPE o
DEFVAL "N"
OPTIONS "N","Off","On","Auto"
UI_LABEL "Number Type"
}
PARAM sequence_number
{
TYPE i
DEFVAL "0"
UI_LABEL "Number"
}
PARAM sequence_increment
{
TYPE i
DEFVAL "0"
UI_LABEL "Increment"
}
PARAM sequence_frequency
{
TYPE i
DEFVAL "0"
UI_LABEL "Frequency"
}
PARAM sequence_text
{
TYPE s
TOGGLE Off
UI_LABEL "Text"
}
}
EVENT stop
{
UI_LABEL "Stop"
PARAM command_status
{
TYPE o
DEFVAL "Active"
OPTIONS "Active","Inactive","User Defined"
UI_LABEL "Status"
}
PARAM stop_text
{
TYPE s
TOGGLE Off
UI_LABEL "Text"
}
}
EVENT text
{
UI_LABEL "User Defined"
PARAM user_defined_text
{
TYPE s
TOGGLE On
UI_LABEL "User Defined Command"
}
}
EVENT coolant_off
{
UI_LABEL "Coolant Off"
CATEGORY MILL DRILL LATHE
PARAM command_status
{
TYPE o
DEFVAL "Active"
OPTIONS "Active","Inactive","User Defined"
UI_LABEL "Status"
}
PARAM coolant_text
{
TYPE s
TOGGLE Off
UI_LABEL "Text"
}
}
EVENT length_compensation
{
UI_LABEL "Tool Length Compensation"
CATEGORY MILL DRILL LATHE
PARAM command_status
{
TYPE o
DEFVAL "Active"
OPTIONS "Active","Inactive","User Defined"
UI_LABEL "Status"
}
PARAM Overide_operation_param
{
TYPE b
DEFVAL "TRUE"
UI_LABEL "Override Operation Parameter"
}
PARAM length_comp_register
{
TYPE i
DEFVAL "2"
UI_LABEL "Adjust Register"
}
PARAM length_comp_register_text
{
TYPE s
TOGGLE Off
UI_LABEL "Text"
}
}
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"
}
}

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