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,10 @@
PMAC
PGUD
CHAN_DATA
to_ini
robotic_to_ini_Main
##LANGUAGE AC
//set robot external rotary offset for positioner
SetRobotExtOffset();
##LANGUAGE NATIVE

View File

@@ -0,0 +1,237 @@
#
# Copyright (c) 2020 Siemens Industry Software Inc.
# Unpublished - All rights reserved
#
#
#
# ================================================================
import CSEWrapper
from CSEWrapper import ChannelState
from CSEWrapper import NCExpressionSystem
from CSEWrapper import VariableManager
from CSEWrapper import NCValueFactory
from CSEWrapper import NCBasicType
import CseRobotBasic
from CseRobotBasic import RobotMethods
from CseRobotBasic import RobotControllerState
from CseRobotBasic import RobotControllerCommands
from CseRobotBasic import RobotControllerMethods
from CseRobotBasic import RobotControllerMetacodes
from CseRobotBasic import RobotCartType
import CSES840D
import CseS840D_Lex
import CseS840D_Methods
import CseS840D_Metacodes
import CseS840D_Commands
class S840D_KUKA_RMR_SINUMERIK_ControllerState(RobotControllerState):
def __init__(self):
super().__init__()
self.m_strState = "S840D_KUKA_RMR_SINUMERIK"
def InitializeChannel(self, channel : ChannelState):
super().InitializeChannel(channel)
exprSystem = channel.GetExprSystem()
valFactory = exprSystem.GetValueFactory()
varManager = exprSystem.GetVarManager()
#register robotic variables
intValue = valFactory.CreateIntegerValue(0)
varManager.RegisterVariable("$MC_ROBX_CC_TOA_START_NUM", varManager.GLOBAL_ONLY, NCBasicType.INTEGER, intValue)
intValue = valFactory.CreateIntegerValue(1)
varManager.RegisterVariable("$MC_ROBX_TOOL_DIR", varManager.GLOBAL_ONLY, NCBasicType.INTEGER, intValue)
doubleType = exprSystem.CreateBasicType(NCBasicType.DOUBLE)
arrayType = exprSystem.CreateArrayType(doubleType, [3], True)
varManager.RegisterArrayVariable("$MC_ROBX_TTCFL_POS", VariableManager.GLOBAL_ONLY, arrayType.CreateArray())
varManager.RegisterArrayVariable("$MC_ROBX_TTCFL_RPY", VariableManager.GLOBAL_ONLY, arrayType.CreateArray())
varManager.RegisterArrayVariable("$MC_ROBX_EXT_ROT_BASE_OFFSET", VariableManager.GLOBAL_ONLY, arrayType.CreateArray())
varManager.RegisterArrayVariable("$MC_ROBX_EXT_ROT_PART_OFFSET", VariableManager.GLOBAL_ONLY, arrayType.CreateArray())
class S840D_KUKA_RMR_SINUMERIK_Methods(CseS840D_Methods.ControllerMethods, RobotControllerMethods):
def CSEInitializeChannel_py(channel: ChannelState):
RobotMethods.CSEInitializeRobotChannel(channel)
#create spindle axis
channel.CreateJoint("S", "S", "spindle", "no_axis", RobotMethods.FindFirstAvailableAxisNumber(channel))
channel.SetMainSpindle("S")
#set default robot interpolation mode
channel.CallMethod("SetRobotOriIpoMode", "oriwcs")
return True
def ActivateToolCorrection_RMR(channel: ChannelState, ToolNo : int, DNo : int):
cartType = channel.GetControllerState().m_cartType
channel.GetControllerState().m_cartType = RobotCartType.CART_TYPE_RPY
dToolOffsetZ = channel.GetLCorrection()
dToolOffsetY = channel.GetQCorrection()
dToolOffsetX = channel.GetZCorrection()
dToolOffsetC = channel.GetArrayElement("$TC_DPC1", [ToolNo, DNo])
dToolOffsetB = channel.GetArrayElement("$TC_DPC2", [ToolNo, DNo])
dToolOffsetA = channel.GetArrayElement("$TC_DPC3", [ToolNo, DNo])
matTool = RobotMethods.BuildMatrix(channel, dToolOffsetX, dToolOffsetY, dToolOffsetZ, dToolOffsetA, dToolOffsetB, dToolOffsetC)
dHeadOffsetX = channel.GetArrayElement("$MC_ROBX_TTCFL_POS", [0])
dHeadOffsetY = channel.GetArrayElement("$MC_ROBX_TTCFL_POS", [1])
dHeadOffsetZ = channel.GetArrayElement("$MC_ROBX_TTCFL_POS", [2])
dHeadOffsetA = channel.GetArrayElement("$MC_ROBX_TTCFL_RPY", [0])
dHeadOffsetB = channel.GetArrayElement("$MC_ROBX_TTCFL_RPY", [1])
dHeadOffsetC = channel.GetArrayElement("$MC_ROBX_TTCFL_RPY", [2])
matHead = RobotMethods.BuildMatrix(channel, dHeadOffsetX, dHeadOffsetY, dHeadOffsetZ, dHeadOffsetA, dHeadOffsetB, dHeadOffsetC)
matTool.Invert()
toolTrafo = matTool * matHead
vecGeo = toolTrafo.GetRowVec(3)
(A, B, C) = RobotMethods.MatToRPY(toolTrafo)
RobotMethods.SetToolTipTrafo(channel, vecGeo[0], vecGeo[1], vecGeo[2], A, B, C)
channel.GetControllerState().m_cartType = cartType
return True
def SetRobotOriIpoMode(channel: ChannelState, ipoMode: str) -> bool:
if (ipoMode == "orimcs"):
channel.CallMethod("GMe_SetOrientationInterpolation", 1)
if (channel.GetArrayElement("$P_GG", [25]) == 1):
channel.SetInterpolationMode("tcp_onlytarget")
if (ipoMode == "oriwcs"):
channel.CallMethod("GMe_SetOrientationInterpolation", 2)
if (channel.GetArrayElement("$P_GG", [25]) == 2):
channel.SetInterpolationMode("tcp_oriwcs_conormal")
return True
def RobotAdditiveActivateOn(channel: ChannelState) -> bool:
nCurrentIdx = channel.GetControllerState().m_currentToolCarrierIndex
channel.Assert(nCurrentIdx >= 0, "Fatal", "Invalid current tool carrier index " + str(nCurrentIdx) + ".")
sToolName = channel.GetControllerState().GetToolCarrierDataWithCheck(channel, nCurrentIdx).m_toolName
if channel.GetToolParameter(sToolName, "purpose") == "additive":
channel.SetToolMode(sToolName, "AddMaterial")
elif channel.GetToolParameter(sToolName, "purpose") == "coloring":
channel.SetToolMode(sToolName, "ColorMaterial")
return True
def RobotAdditiveActivateOff(channel: ChannelState) -> bool:
nCurrentIdx = channel.GetControllerState().m_currentToolCarrierIndex
channel.Assert(nCurrentIdx >= 0, "Fatal", "Invalid current tool carrier index " + str(nCurrentIdx) + ".")
sToolName = channel.GetControllerState().GetToolCarrierDataWithCheck(channel, nCurrentIdx).m_toolName
channel.SetToolMode(sToolName, "Off")
return True
def RobotHandleLineStartEvent(channel : ChannelState) -> bool:
channel.CallMethod("ResetCartesianData")
channel.CallMethod("GMe_HandleLineStartEvent")
return True
def RobotHandleLineEndEvent(channel : ChannelState) -> bool:
channel.CallMethod("PassCartesianData")
channel.CallMethod("GMe_HandleLineEndEvent")
return True
def InitializeAllRobotAxes(channel : ChannelState) -> bool:
RobotControllerMethods.InitializeAllRobotAxes(channel)
channel.Assert(CseRobotBasic.DebugRobot==0, "Warning", "GV_strSwivelingChainName=" + str(channel.GetControllerState().m_activeChain))
channel.SetStateAttribute("GV_strSwivelingChainName", channel.GetControllerState().m_activeChain)
def SetRobotContinuousPath(channel : ChannelState) -> bool:
channel.CallMethod("ActivateContinuousMotions")
return True
class S840D_KUKA_RMR_SINUMERIK_Commands(CseS840D_Commands.ControllerCommands, RobotControllerCommands):
def RegisterRobotAxes(channel: ChannelState) -> bool:
channel.CallMethod("InitializeAllRobotAxes")
for axisName in channel.GetControllerState().m_internalAxesMap:
CseS840D_Lex.RegisterToken('ROBOT_AXIS_ADDRESS', axisName)
for axisName in channel.GetControllerState().m_externalAxesMap:
CseS840D_Lex.RegisterToken('ROBOT_AXIS_ADDRESS', axisName)
return True
def SetRobotExtOffset(channel: ChannelState) -> bool:
cartType = channel.GetControllerState().m_cartType
channel.GetControllerState().m_cartType = RobotCartType.CART_TYPE_RPY
dExtRotBaseOffsetX = channel.GetArrayElement("$MC_ROBX_EXT_ROT_BASE_OFFSET", [0])
dExtRotBaseOffsetY = channel.GetArrayElement("$MC_ROBX_EXT_ROT_BASE_OFFSET", [1])
dExtRotBaseOffsetZ = channel.GetArrayElement("$MC_ROBX_EXT_ROT_BASE_OFFSET", [2])
matExtRotBaseOffset = RobotMethods.BuildMatrix(channel, dExtRotBaseOffsetX, dExtRotBaseOffsetY, dExtRotBaseOffsetZ, .0, .0, .0)
dExtRotPartOffsetX = channel.GetArrayElement("$MC_ROBX_EXT_ROT_PART_OFFSET", [0])
dExtRotPartOffsetY = channel.GetArrayElement("$MC_ROBX_EXT_ROT_PART_OFFSET", [1])
dExtRotPartOffsetZ = channel.GetArrayElement("$MC_ROBX_EXT_ROT_PART_OFFSET", [2])
matExtRotPartOffset = RobotMethods.BuildMatrix(channel, dExtRotPartOffsetX, dExtRotPartOffsetY, dExtRotPartOffsetZ, .0, .0, .0)
matExtRotOffset = matExtRotPartOffset * matExtRotBaseOffset
RobotMethods.SetTransformationMatrix(channel, "EXTOFFSET", matExtRotOffset)
channel.GetControllerState().m_cartType = cartType
return True
class S840D_KUKA_RMR_SINUMERIK_Metacodes(CseS840D_Metacodes.ControllerMetacodes, RobotControllerMetacodes):
# Use this class to add machine specific metacodes.
# We do not output messages from the machine code, we just parse them.
def MSG(channel : ChannelState, value):
return True
# Robot configuration status bits
def STAT(channel : ChannelState, Value : int):
channel.CallMethod("SetCartesianComponent", "S", Value)
return True
# Robot configuration turn bits
def TU(channel : ChannelState, Value : int):
channel.CallMethod("SetCartesianComponent", "T", Value)
return True
# PTP motion with Cartesian target, configuration (STAT TU)
def PTP(channel : ChannelState, X : "MCParam" = None,
Y : "MCParam" = None,
Z : "MCParam" = None,
A : "MCParam" = None,
B : "MCParam" = None,
C : "MCParam" = None,
STAT : "MCParam" = None,
TU : "MCParam" = None):
RobotMethods.Ptp(channel)
if X != None:
channel.CallMethod("SetCartesianComponent", "X", X)
if Y != None:
channel.CallMethod("SetCartesianComponent", "Y", Y)
if Z != None:
channel.CallMethod("SetCartesianComponent", "Z", Z)
if A != None:
channel.CallMethod("SetCartesianComponent", "A", A)
if B != None:
channel.CallMethod("SetCartesianComponent", "B", B)
if C != None:
channel.CallMethod("SetCartesianComponent", "C", C)
if STAT != None:
channel.CallMethod("SetCartesianComponent", "S", STAT)
if TU != None:
channel.CallMethod("SetCartesianComponent", "T", TU)
channel.CallMethod("SetRobotOriIpoMode", "orimcs")
channel.CallMethod("ActivateFineMotions")
return True
class S840D_KUKA_RMR_SINUMERIK_Controller(CSES840D.Controller):
def GetMethod(self, strMethodName : str):
return getattr(S840D_KUKA_RMR_SINUMERIK_Methods, strMethodName, None)
def GetMetacode(self, strMetacodeName : str):
return getattr(S840D_KUKA_RMR_SINUMERIK_Metacodes, strMetacodeName, None)
def ExecuteCommand(self, strCommandName, listArgsNC, state):
if hasattr(S840D_KUKA_RMR_SINUMERIK_Commands, strCommandName):
command = getattr(S840D_KUKA_RMR_SINUMERIK_Commands, strCommandName)
listArgsNative = []
for arg in listArgsNC:
listArgsNative.append(None if arg == None else arg.GetNativeValue())
return command(state, *listArgsNative)
return super().ExecuteCommand(strCommandName, listArgsNC, state)
def InitializeChannel(self, state):
newCtrlState = S840D_KUKA_RMR_SINUMERIK_ControllerState()
newCtrlState.InitializeChannel(state)
return newCtrlState
def CreateController():
return CSEWrapper.Controller(S840D_KUKA_RMR_SINUMERIK_Controller())
if __name__ == '__main__':
ctrl = CreateController()

View File

@@ -0,0 +1,17 @@
;
$MN_MM_NUM_TOOL_CARRIER=0 ;number of available tool carriers
$MN_G53_TOOLCORR='H0' ;consider tool length with G53 call
$MC_ROBX_CC_TOA_START_NUM = 1
$MC_ROBX_TTCFL_POS[0]=0.000000 ; tool carrier (e.g. milling spindle) robot transformation
$MC_ROBX_TTCFL_POS[1]=0.000000
$MC_ROBX_TTCFL_POS[2]=0.000000
$MC_ROBX_TTCFL_RPY[0]=0.000000
$MC_ROBX_TTCFL_RPY[1]=0.000000
$MC_ROBX_TTCFL_RPY[2]=0.000000
$MC_ROBX_TOOL_DIR=1 ; tool direction according to the NC convention: positive tool lengths in the negative X, Y, Z axes
$MC_ROBX_EXT_ROT_BASE_OFFSET[0]=0.000000 ; positioner robot data
$MC_ROBX_EXT_ROT_BASE_OFFSET[1]=0.000000
$MC_ROBX_EXT_ROT_BASE_OFFSET[2]=0.000000
$MC_ROBX_EXT_ROT_PART_OFFSET[0]=0.000000
$MC_ROBX_EXT_ROT_PART_OFFSET[1]=0.000000
$MC_ROBX_EXT_ROT_PART_OFFSET[2]=0.000000

View File

@@ -0,0 +1,26 @@
##LANGUAGE AC
INT nNextIndex;
nNextIndex = GetRobotNextToolCarrierIndex();
STRING sHeadName;
STRING sHeadTargetKinCarrier;
sHeadName = GetRobotHead(nNextIndex);
sHeadTargetKinCarrier = GetRobotHeadTargetKinCarrier(nNextIndex);
IF(sHeadName != "");
IF(getCurrentHead(sHeadTargetKinCarrier) != "");
visibility(getCurrentHead(sHeadTargetKinCarrier),OFF,TRUE);
unmountHead(sHeadTargetKinCarrier);
ENDIF;
mountHead (sHeadName, sHeadTargetKinCarrier);
grasp (sHeadName, sHeadTargetKinCarrier);
position (sHeadName, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
visibility (sHeadName, ON, TRUE);
ENDIF;
##LANGUAGE NATIVE
M17

View File

@@ -0,0 +1,29 @@
##LANGUAGE AC
INT nToolID;
nToolID = getVariable("$P_TOOLP");
STRING sToolName;
sToolName = getArrayElement("$TC_TP2",nToolID);
INT nNextIndex;
nNextIndex = GetRobotNextToolCarrierIndex();
STRING sToolTargetKinCarrier;
sToolTargetKinCarrier = GetRobotToolTargetKinCarrier(nNextIndex);
generateTool (sToolName,sToolTargetKinCarrier);
IF(exist (getCurrentTool(sToolTargetKinCarrier)));
visibility (getCurrentTool(sToolTargetKinCarrier),OFF,TRUE);
release (getCurrentTool(sToolTargetKinCarrier));
ENDIF;
IF (exist (getNextTool(sToolTargetKinCarrier)));
grasp (getNextTool(sToolTargetKinCarrier), sToolTargetKinCarrier);
position (getNextTool(sToolTargetKinCarrier), 0, 0, 0, 0, 0, 0);
visibility (getNextTool(sToolTargetKinCarrier), ON, TRUE);
activateNextTool (sToolTargetKinCarrier);
ENDIF;
##LANGUAGE NATIVE
M17

View File

@@ -0,0 +1,13 @@
UNMOUNT_CURRENT_TOOL()
UNMOUNT_CURRENT_HEAD()
IF ($P_TOOLP <> 0)
MOUNT_NEXT_HEAD()
MOUNT_NEXT_TOOL()
ENDIF
##LANGUAGE AC
//activate the chain for the next tool carrier
ActivateNextRobotToolCarrier();
##LANGUAGE NATIVE
M17

View File

@@ -0,0 +1,40 @@
PROGRAM Main(STRING strToolID);
INT nToolID;
STRING sToolName;
STRING sToolMountPocket;
STRING sPocketJct;
STRING sHeadName;
nToolID = getVariable("$P_TOOLP");
sToolName = getArrayElement("$TC_TP2",nToolID);
sPocketJct = "POCKET_JCT";
sHeadName = getHeadOfTool(sToolName);
sToolMountPocket = getPocketOfTool(sToolName);
IF(getCurrentHead(sPocketJct) != "");
unmountHead(sPocketJct);
ENDIF;
mountHead (sHeadName, sPocketJct);
grasp (sHeadName, sPocketJct);
visibility (sHeadName, ON, TRUE);
generateTool (sToolName,sHeadName);
IF(exist (getCurrentTool(sHeadName)));
visibility (getCurrentTool(sHeadName),OFF,TRUE);
release (getCurrentTool(sHeadName));
ENDIF;
IF (exist (getNextTool(sHeadName)));
grasp (getNextTool(sHeadName), sToolMountPocket);
position (getNextTool (sHeadName), 0, 0, 0, 0, 0, 0);
visibility (getNextTool(sHeadName), ON, TRUE);
ENDIF;
ENDPROG;

View File

@@ -0,0 +1,26 @@
##LANGUAGE AC
INT nCurrentIndex;
nCurrentIndex = GetRobotCurrentToolCarrierIndex();
IF(nCurrentIndex > 0);
STRING sHeadName;
STRING sHeadInitialKinCarrier;
STRING sHeadTargetKinCarrier;
sHeadName = GetRobotHead(nCurrentIndex);
sHeadInitialKinCarrier = GetRobotHeadInitialKinCarrier(nCurrentIndex);
sHeadTargetKinCarrier = GetRobotHeadTargetKinCarrier(nCurrentIndex);
IF((sHeadName != "") AND exists(sHeadName));
IF ((sHeadInitialKinCarrier != ""));
release(sHeadName,sHeadInitialKinCarrier);
ELSE;
visibility(sHeadName,OFF,TRUE);
unmountHead(sHeadTargetKinCarrier);
ENDIF;
ENDIF;
ENDIF;
##LANGUAGE NATIVE
M17

View File

@@ -0,0 +1,26 @@
##LANGUAGE AC
INT nCurrentIndex;
nCurrentIndex = GetRobotCurrentToolCarrierIndex();
IF(nCurrentIndex >= 0);
STRING sToolName;
STRING sToolInitialKinCarrier;
sToolName = GetRobotTool(nCurrentIndex);
sToolInitialKinCarrier = GetRobotToolInitialKinCarrier(nCurrentIndex);
IF((sToolName != "") AND exists(sToolName));
IF(sToolInitialKinCarrier == "");
visibility(sToolName,OFF,TRUE);
release(sToolName);
ELSE;
release(sToolName,sToolInitialKinCarrier);
position(sToolName, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
ENDIF;
ENDIF;
ENDIF;
##LANGUAGE NATIVE
M17

View File

@@ -0,0 +1,2 @@
KUKA_KR300_R2500,${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}KUKA_KR300_R2500\postprocessor\RMR_SINUMERIK\rmr_sinumerik_post.tcl,${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}KUKA_KR300_R2500\postprocessor\RMR_SINUMERIK\rmr_sinumerik_post.def
CSE_FILES, ${UGII_CAM_LIBRARY_INSTALLED_MACHINES_DIR}kuka_kr300_r2500\cse_driver\RMR_SINUMERIK\kuka_kr300_r2500.MCF

View File

@@ -0,0 +1,75 @@
MACHINE SIEMENS
EVENT high_speed_setting
{
UI_LABEL "Sinumerik CYCLE832"
CATEGORY MILL
PARAM command_status
{
TYPE o
DEFVAL "Active"
OPTIONS "Active","Inactive"
UI_LABEL "Status"
}
PARAM ude_siemens_tolerance_group
{
TYPE g
DEFVAL "start_closed"
UI_LABEL "Tolerance"
}
PARAM siemens_tol
{
TYPE d
DEFVAL "0.01"
TOGGLE Off
UI_LABEL "User Defined Tolerance"
}
PARAM ude_siemens_tolerance_group_end
{
TYPE g
DEFVAL "end"
}
PARAM ude_siemens_hsm
{
TYPE g
DEFVAL "start_open"
UI_LABEL "High Speed Machining"
}
PARAM siemens_compressor
{
TYPE o
DEFVAL "On"
OPTIONS "On","Off"
UI_LABEL "Compressor"
}
PARAM siemens_smoothing
{
TYPE o
DEFVAL "On"
OPTIONS "On","Off"
UI_LABEL "Smoothing"
}
PARAM siemens_feedforward
{
TYPE o
DEFVAL "On"
OPTIONS "On","Off"
UI_LABEL "Feed Forward"
}
PARAM siemens_method
{
TYPE o
DEFVAL "Auto"
OPTIONS "Auto","Rough","Semi","Finish"
UI_LABEL "Method"
}
PARAM ude_siemens_hsm_end
{
TYPE g
DEFVAL "end"
}
}

View File

@@ -0,0 +1,5 @@
MACHINE SIEMENS840D
INCLUDE { $UGII_CAM_USER_DEF_EVENT_DIR/ude.cdl }

View File

@@ -0,0 +1,535 @@
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
96 0 989 144 1 0 476 1 14 96 116 -1 -1
989
w0E<!(H&s!/lSs!.EW<!@Iy*'-W&=!@uW<!Ha++'1oJ=!DuW<!>,f=!?2o=!Ik^qv2&5pvV+
uc/qdic&JjJE'ASo9v8D5>!U:@rvKSa<!Mk2-&V|C?)T9asvccn<vh:P3-Q-TlwAy25.g-^Z
)d0w!*W4L=!Lnt>!pbB0.g-^Z)d0w!*U(:=!iZZW*d*!%*bP<9+0uS=!j!Fsv<EB`:?9H##F
5v!!>-9-&^Pro+65uW,eO^r+FF7<vt/86,VFp=!nS^R-^C,9OL9(w)EYTs!g-^Z)d0w!*U(:
=!c?^Z)PWbsvccn<vf(oQ,X8#>!^^!svOes<!cSa<!#WIL&LtT=!pmI@!wR9tvOb-n-J3WW!
r8#>!sg@@!rsR@!y,>pvjKnJ/I*<<!i@,>!>,f=!Ik^qv?FA*'iF#!!N_,-/)Odc/.EW<!T%
:-8ww1%!m@3D!|*e@!Uv.w;Ujr?!-OFA!1xXA!5gjA!9s'B!!MWkwbXLs!Sd_w!:bb>!A6LB
!d%=)!3Bv!!eW594muPT4Kq365v2`!#<uW<!q_6C!r/Ts!Qdi?!a&|=!WP4pw@btt!a080%M
e794sqQC!xRS*'`aa|(kvxC!!)dC!mGgB!y#af7q'u<!s6Ms!4lSs!-#|c8!rEK7muPT4k'V
=!bbSv#sjSyv4,>pv;uW<!gSND!lbt&:@btt!j#y`9wRV=!6GA*'!eiD!!)q#;wRV=!,w5pv
#YU|:&XV=!o11qw'RMs!.EW<!#n6rw2fPH&2LP|v0`8s!m8=B:/.BE!tUNW<2iSs!(:TE!,'
9X!(:TE!/'9X!WTOA!*GfE!.S#F!mGgB!+0Ts!5<SpvxSa<!Ewbl>`c`EC6IFN?c(%w2/HW<
!8vZF!@U@%#2-(3?<aai?Yl^Z)0KW<!B:)G!FF;G!RM8EB>;S`BCfSpv<|_G!K@2G!Tp%H!X
'8H!y3JH!`?yH!dKnH!@NGt!Uu?HABQWs!IV+I!q;p'#:CvD!|*e@!L#.w;Tdi?!poOI!OAp
iwe_WT+G'^Z)3FB`:R)Os!T2Xs!6QUfIji?9+0uS=!j!Fsv<EB`:9^jD!Ww5pvJSa<!`Sa<!
Mk2-&gMp,J65uW,eO^r+FF7<v(-6HJ_bs=!vOC7-OUOA!bZ?jw?_tt!/ul&LJ%2?!ee.BL2o
n9v;)LV,eO^r+FF7<v7)J|L`k#m#h<<cvifYT4._6>!5t-K!ee.BL0|8X!xSa<!`Sa<!v>|r
NsTf|(eks9vz
96
6P(qv3WW!!C@*Pwpx1@*;OX|()rr*(KCeE'1i&v!;`!!!^C6Y!>&oX!CVYY!>M,Y!>M,Y!JX
SI&yX@S#FXn*'JO<1%id.4w18P:v@=.<vA7Dw!K|r!!gsn`'
116
D>PpvnFah&Fh^R#w?rr!R'Pa'S+_R##6WW!oow4w#6WW!.t/.&363<!T:^Z')w*!!r|NR#cm
r1%n17n#t.'')nh&')Nv7n#Y<5J&SvDR#xe5:vZWC((B;0L7`,MK&f);K&|.L|#/Ow4&Q=@4
w
144
x
7
%6|,EYt|+
x
15
c_dX?sN;oA`t&7AXtB+
x
4
4/;EF
x
15
-WXiC`PTc1vYEU@x4g+
x
27
bVXiC@ESc17,3=63!0S/mhk)F3+uD+gJH&
x
19
c_dX?,#cDF1wviCp<q-DZLc,
x
19
-WXiC!0=JD1*0bEbnEU@x4g+
x
19
c_dX?,#cDF1wviCv'0CFp+g+
x
11
PWqg9@R`)3tL8(
x
22
c_dX?,#cDF1wviCp<q-DwL6<@CSw
x
9
7o(`F%dxlB7v
x
27
c_dX?,#cDF1wviCg@'7A0HFiCtZ7IDUvg+
x
12
PWqg9(w)B+WGgn6
x
4
m'cSA
x
4
v=xhC
x
8
<)lDFnjkSA
x
4
wm<eD
x
6
)^xlBx+%
x
9
njkSAt=sp@1v
x
4
uKhgC
x
11
qEV5B1&?cEm*E-
x
1131
^HSpFja0;@u@#D+3n'd0NbJdAtIa:@G*rZ3D|<JD&No,E5fbDFkg#lBh|2jB0k(E+mC97AhM
/C+crgm#6y)!Fh!cr@1APQB#?m;@=7G<F8APQB-PpeDx:|7A)W!iCFngm#7pZQHko<JD.I%F
+us_iApm5SA50ylB#A_|3w&|C+b#nW4k!8s+MC97AC|N3I%#um#_Y+7,6!yhCQPVp/%&#D+8
tLE+)h|7A4GTfD.Q3<@#H>0ApxBq@Fhd#HFngm#vMfCFqs_iApm5SA50ylB#A_|36!yhCC'/
F+cKxhC+D^eDtfI9>m'cSA,&TbEnjkSAruwlB'E(yG/Ny|3qEV5B1&?cER7oc3>XKV@,-T!?
?JnlB:b!wH3xfRAErgm#|=faE|'X>wd2g0Ie2g0IQ(GaBD>Ya+e<;oA9v&yG;J)*Fqs_iApm
5SA50ylB#A_|36!yhC+OUw?Dn<@wy>/:+91VE+eCBkBwm/bE1-=JD*RMZF*L%lBQ/;s+cKxh
C+D^eD=upT,kg#lBZ@5SAukC&G?yG)F%O!iCbgp-Db!VkBrdTZ?5-9<.xE;JD?JnlB:b!wH3
xfRA^kqm#e(um#-sQ,E5RbWF*L%lBXEZ%ER6tm#vMfCFqs_iApm5SA50ylB#A_|3r>+dD0bt
D+us_iApm5SA50ylB#A_|36!yhCC'/F+Z':4wR#Hq@w7DkB+pDTA/Ny|3qEV5B1&?cER7oc3
dXeK/-RIID,!BCF3+uD+gd|;@urtm#&(KTA8oATAvy/wE7f5DF3+uD+|-<w3Mm%vH9+ME+iQ
<eD*ZtfA'A#D+cwn=wa.JTA6lpT,eCBkBwm/bE1-=JDpt_iA,X:K0wsY8A`Y+7,i%97Aq_P>
+kW`aE&?0bExrgm#91VE+eCBkBwm/bE1-=JD'7Q|EtuCTA+WpT,eCBkBwm/bE1-=JDpt_iAY
2vr>Gqgm#)lP)FZh>x3D|<JD&No,E5fbDFx=)>wd9;j@0shTA<MqcBD+dfD'bG@=J>3L@vj`
aE<cir@5upT,eCBkBwm/bE1-=JD'7Q|E)o|=+eCBkBwm/bE1-=JD'7Q|E1#qm#U`PaD(p`aE
/k2DFE?)E+.5#D+l*)9Ah^oRA(cN<@r?v>wJNvL8%osdD%Vi|D<^JEF*Q5DFG&Or@.bl(Fn-
';@kC|7AJ@PQBr/`OBuIYD+0Kk_Fpcw;@C+dfD)v#D+!.2kB%FHSALrgm#7pZQH3>EP8O|U7
70AccEj7=Y?wRH<@ah>x3D|<JD&No,E5fbDFPa-98<w3j@##QMA*H7q@'RiA3waO11(,?2A_
@,nAsgC,1TPRRAGw%c1%RA.2-(4iA%M%2ArmpG1t^bJ0mG'5@do(u+B`xQHFngm#0lTfDB!(
aCrGYKA=u5cE6w_G1Gu'aCrGYKA=u5cE6w_G1_qgm#y!s!
x
6
gpbSAPSw
x
13
eCBkBwm/bE1-=JD@v
x
0
x
6
1lo(F^(%
x
4
jgTq@
i
0
i
1
x
4
(iY%G
x
13
H`ZS7Mo297_JvJ:o!
x
6
82_`FWnw
x
6
%RIIDCSw
x
3
Yt|+
x
23
ijkIDUItn7+&Mn6NuVL9ST687BlC%
x
5
ijkIDBv
x
16
Oo.29.Df^<Rbse:Vk,)<
x
11
U`;L9Cl`'<|<?)
x
6
gd|;@b:%
x
6
,Qs/DL+%
x
2
>Kv
x
16
';H2Ask,l@K*hG1M97c1
x
8
w3F/Ds/B(F
x
42
Tw+iAU*4iAL9d)2X-4iAM0.H1K'h,1)/#E2)DuMAK3Ic1-Y;iAgRw
x
7
ld^LCOef+
x
7
5uC`Fb1g+
x
2
6ew
x
13
#(q-DwL6<@J#JaDDv
x
5
5K!eD:v
x
5
0lTfD>v
x
5
WOZ-E1v
x
2
Qew
x
6
Kh5DFHSw
x
5
ekTfD>v
x
8
?2K(FmF5SA
x
6
M'cSAhAv
x
21
-EL:@8y-fD(dZRA/c%UA)'WTA0v
x
9
E;=JD5PD*FK!
x
12
o4jY?)!BCF,Qs/D
x
8
)!BCF,Qs/D
x
16
>A;EFsN;oA/#lcE.&6cE
x
4
(w=JD
x
3
k6W-
x
4
.0B,E
x
16
s@;EFSN;oA/#lcE.&6cE
x
5
1lo(F@v
x
5
r!2kB>v
x
9
3DccE,&MEF1v
x
7
/^,8AY@c,
x
9
g-ur@q<..D1v
x
10
wdmlBvY|;@ISw
x
7
0ot)FOef+
x
3
_e|+
x
4
2WACF
x
8
g-ur@+<0(F
x
4
F;0(F
x
11
0ot)FhHmIDUvg+
x
4
*dmID
x
2
nNv
x
10
0ot)Fp;G%GL(%
x
4
DP)*F
x
8
vVbD+Yk:s+
x
1
C!
x
14
6@(>6K,;s+M'cSAhAv
x
36
-EL:@8y-fD(dZRA/c%UA)'WTAI^n=+*Eo=+mSOcEEik<+
x
47
LwraEH&)p/HIa:@WQ^S@slSCF8bA!=^|xlB20E_;rZ!iCen%h/v=uD+2UWw
x
7
^8Z0/Y#6&
x
5
)lP)F1v
x
4
rmBq@
x
3
Vq|+
x
2
^Lw
x
5
2'aaE@v
x
1
G!
x
4
2u5DF
x
2
xkw
x
5
5BjiC1v
x
1
O!
x
8
uuW/D<ve#H
x
15
1!DVG3Yik.4Yik.^)-&
x
9
+jdlB!hpgC1v
x
5
a(|RA8v
x
6
*(XU@Hhw
x
5
Kt(yG@v
x
6
M'cSARAv
x
21
lWK:@8y-fD(dZRA/c%UA)'WTA0v
x
7
0s:kBemD-
i
4
x
6
7YDEFTnw
x
7
F%MEFs^c,
x
6
B^>r@Hhw
x
6
BQ?<@PSw
x
6
nimlBRSw
x
7
=W7hCVeo+
x
6
''o(F@Pw
x
3
qm#,
x
16
+_;EFVqBxF=WsJDr@hEF
x
3
ma#,
x
16
+_;EFVqBxF=WsJD<.fRA
x
8
9oW/DmgY8A
x
4
ld^LC
x
6
/LZ<@T+%
x
8
*XxlBagbSA
x
6
49BCF_(%
x
20
X=@U?nG):@/;2EFq2K(FmF5SA
x
10
M'cSA,nfb;72#
x
20
iuncB=y-fD8oATA//;EFmd|7A
x
41
hLqcB=YpJD;yqcB7APQB1h?fD7l#j@.gVTA>)ZKA-!o^FpgpgC1v
x
28
j<OV?@5--E4-0CFp-%lB63=JDy.oRAtFfRA
x
18
c_dX?w:7hC<JfTA59XeDcHv
x
9
c_dX?w:7hC8v
x
7
8ik)Fh^c,
i
2
x
17
X=@U?nG):@gHi'F1^cr@1v
x
20
X=@U?wVTgC#O`aE`OYjB'E(yG
x
18
c_dX?*mi'F1^cr@`^CkBHSw
x
4
so.6B
x
5
,pMTA@v
x
13
c_dX?<Udt-71GJ0M!
x
6
=G5cEZHv
x
13
X=@U?+@h'F1^cr@1v
x
4
,CHr@
x
22
j<OV?mw2PBt|2TAhHi'F.HnlBLYw
p
11 0 70 12 0 0 48 0 4 11 11 -1 -1
70
nVxR5PEE<!HSa<!(B`W!*TA9v-fSs!4wsr!.lvpv-BW<!/W&=!5`8s!2ir<!+Ki<!6Z/s!3D
UNw3#Ts!4;kpvv!!
11
1uJX!=kUm#6lr!
11
I%@n#>DPUv5TE!
12
x
29
kg#lBZ@5SAs`DTAwJa:@,xmID2iL`F0*v/D1v
x
0
x
28
j<OV?mw2PBt|2TAhHi'F.HnlBFy0:7o3/|=
x
4
wm<eD
x
8
w3F/Ds/B(F
x
21
X=@U?pY_p@vkT;@`YEU@sO,SA>v
x
34
j<OV?mw2PBt|2TAhHi'F.HnlBFy0:7o3/|=tQ?<@|+%
x
85
7pZQH0oW/DmgY8A`=Bq@Q6EJ:JjUkBnTi'Fk=|7A#NfCF*FV5Bhk,)<s;84IY0HJ:JjUkBnT
i'Fk=|7A#NfCF*FV5Bhk,)<`U+!F3f1EFIv
x
14
1^|R7X:p(<hk,)<v/w
x
28
X=@U?pY_p@vkT;@`YEU@sO,SA-W1`FEPMEF
x
32
j<OV?mw2PBt|2TAhHi'F.HnlBFy0:7o3/|=csY8A
x
83
7pZQH0oW/DmgY8A`=Bq@Q6EJ:JjUkBnTi'Fk=|7A#NfCF*FV5Bhk,)<s;84IY0HJ:JjUkBnT
i'Fk=|7A#NfCF*FV5Bhk,)<R,YKAqBA.
0
0
0 1
12
w3F/DcI9q@hp^LC
0 0 10
x
15
rpwhC;Z2b3<?<+EfqT+
1
C 1 334 8 -1 -1 347
0
}

View File

@@ -0,0 +1,726 @@
MACHINE SIEMENS
SYS_CYCLE Drill
{
UI_LABEL "Drill"
PARAM legend_group
{
TYPE g
DEFVAL "start_closed"
UI_LABEL "Legend"
}
PARAM siemens_drill_map
{
TYPE l
DEFVAL "sinumerik_840d_cycle81"
}
PARAM legend_group_end
{
TYPE g
DEFVAL "end"
}
}
SYS_CYCLE Drill_Bore
{
UI_LABEL "Drill,Bore"
PARAM ude_siemens_cycle_group
{
TYPE g
DEFVAL "START_OPEN"
UI_LABEL "Other Parameters"
}
PARAM siemens_cycle_rff
{
TYPE d
DEFVAL "0.0"
TOGGLE Off
UI_LABEL "Retract Feed Rate"
}
PARAM ude_siemens_cycle_group_end
{
TYPE g
DEFVAL "END"
}
PARAM legend_group
{
TYPE g
DEFVAL "start_closed"
UI_LABEL "Legend"
}
PARAM siemens_bore_map
{
TYPE l
DEFVAL "sinumerik_840d_cycle85"
}
PARAM legend_group_end
{
TYPE g
DEFVAL "end"
}
}
SYS_CYCLE Drill_Bore_Back
{
UI_LABEL "Drill,Bore,Back"
PARAM ude_siemens_cycle_group
{
TYPE g
DEFVAL "START_OPEN"
UI_LABEL "Retract Distance"
}
PARAM siemens_cycle_liftoff
{
TYPE o
DEFVAL "Yes"
OPTIONS "Yes","No"
UI_LABEL "Lift Off(Solution Line)"
}
PARAM siemens_cycle_rpa
{
TYPE d
DEFVAL "0.0"
UI_LABEL "X"
}
PARAM siemens_cycle_rpo
{
TYPE d
DEFVAL "0.0"
UI_LABEL "Y"
}
PARAM siemens_cycle_rpap
{
TYPE d
DEFVAL "0.0"
UI_LABEL "Z"
}
PARAM ude_siemens_cycle_group_end
{
TYPE g
DEFVAL "END"
}
PARAM legend_group
{
TYPE g
DEFVAL "start_closed"
UI_LABEL "Legend"
}
PARAM siemens_bore_back_map
{
TYPE l
DEFVAL "sinumerik_840d_cycle86"
}
PARAM legend_group_end
{
TYPE g
DEFVAL "end"
}
}
SYS_CYCLE Drill_Bore_Drag
{
UI_LABEL "Drill,Bore,Drag"
PARAM legend_group
{
TYPE g
DEFVAL "start_closed"
UI_LABEL "Legend"
}
PARAM siemens_bore_drag_map
{
TYPE l
DEFVAL "sinumerik_840d_cycle89"
}
PARAM legend_group_end
{
TYPE g
DEFVAL "end"
}
}
SYS_CYCLE Drill_Bore_Manual
{
UI_LABEL "Drill,Bore,Manual"
PARAM legend_group
{
TYPE g
DEFVAL "start_closed"
UI_LABEL "Legend"
}
PARAM siemens_bore_manual
{
TYPE l
DEFVAL "sinumerik_840d_cycle87"
}
PARAM legend_group_end
{
TYPE g
DEFVAL "end"
}
}
SYS_CYCLE Drill_Bore_Nodrag
{
UI_LABEL "Drill,Bore,Nodrag"
PARAM ude_siemens_cycle_group
{
TYPE g
DEFVAL "START_OPEN"
UI_LABEL "Retract Distance"
}
PARAM siemens_cycle_rpa
{
TYPE d
DEFVAL "0.0"
UI_LABEL "X"
}
PARAM siemens_cycle_rpo
{
TYPE d
DEFVAL "0.0"
UI_LABEL "Y"
}
PARAM siemens_cycle_rpap
{
TYPE d
DEFVAL "0.0"
UI_LABEL "Z"
}
PARAM ude_siemens_cycle_group_end
{
TYPE g
DEFVAL "END"
}
PARAM legend_group
{
TYPE g
DEFVAL "start_closed"
UI_LABEL "Legend"
}
PARAM siemens_bore_nodrag_map
{
TYPE l
DEFVAL "sinumerik_840d_cycle86"
}
PARAM legend_group_end
{
TYPE g
DEFVAL "end"
}
}
SYS_CYCLE Drill_Csink
{
UI_LABEL "Drill,Csink"
PARAM ude_siemens_cycle_group
{
TYPE g
DEFVAL "start_closed"
UI_LABEL "Other Parameters"
}
PARAM siemens_cycle_gmode
{
TYPE o
DEFVAL "Depth"
OPTIONS "Depth","Diameter"
UI_LABEL "Geometrical Output Mode(Solution Line)"
}
PARAM ude_siemens_cycle_group_end
{
TYPE g
DEFVAL "end"
}
PARAM legend_group
{
TYPE g
DEFVAL "start_closed"
UI_LABEL "Legend"
}
PARAM siemens_csink_map
{
TYPE l
DEFVAL "sinumerik_840d_cycle82"
}
PARAM legend_group_end
{
TYPE g
DEFVAL "end"
}
}
SYS_CYCLE Drill_Deep
{
UI_LABEL "Drill,Deep"
PARAM ude_siemens_cycle_group
{
TYPE g
DEFVAL "START_OPEN"
UI_LABEL "Other Parameters"
}
PARAM siemens_cycle_dts_mode
{
TYPE o
DEFVAL "Off"
OPTIONS "Off","On","Seconds","Revolutions"
UI_LABEL "Top Dwell"
}
PARAM siemens_cycle_dts
{
TYPE i
DEFVAL "0"
UI_LABEL "Top Dwell Value"
}
PARAM siemens_cycle_o_dtd_mode
{
TYPE o
DEFVAL "Off"
OPTIONS "Off","On","Seconds","Revolutions"
UI_LABEL "Final Dwell"
}
PARAM siemens_cycle_o_dtd
{
TYPE i
DEFVAL "0"
UI_LABEL "Final Dwell Value"
}
PARAM siemens_cycle_frf
{
TYPE d
DEFVAL "1"
UI_LABEL "Feed Rate Factor"
}
PARAM siemens_cycle_o_dis1
{
TYPE d
DEFVAL "0.0"
TOGGLE Off
UI_LABEL "Step Clearance"
}
PARAM ude_siemens_cycle_group_end
{
TYPE g
DEFVAL "END"
}
PARAM legend_group
{
TYPE g
DEFVAL "start_closed"
UI_LABEL "Legend"
}
PARAM siemens_drill_deep_map
{
TYPE l
DEFVAL "sinumerik_840d_cycle83_deep"
}
PARAM legend_group_end
{
TYPE g
DEFVAL "end"
}
}
SYS_CYCLE Drill_Deep_Breakchip
{
UI_LABEL "Drill,Deep,BreakChip"
PARAM ude_siemens_cycle_group
{
TYPE g
DEFVAL "START_OPEN"
UI_LABEL "Other Parameters"
}
PARAM siemens_cycle_o_dtd_mode
{
TYPE o
DEFVAL "Off"
OPTIONS "Off","On","Seconds","Revolutions"
UI_LABEL "Final Dwell"
}
PARAM siemens_cycle_o_dtd
{
TYPE i
DEFVAL "0"
UI_LABEL "Final Dwell Value"
}
PARAM siemens_cycle_frf
{
TYPE d
DEFVAL "1"
UI_LABEL "Feed Rate Factor"
}
PARAM siemens_cycle_o_vrt
{
TYPE d
DEFVAL "0.0"
TOGGLE Off
UI_LABEL "Step Retract Value"
}
PARAM ude_siemens_cycle_group_end
{
TYPE g
DEFVAL "END"
}
PARAM legend_group
{
TYPE g
DEFVAL "start_closed"
UI_LABEL "Legend"
}
PARAM siemens_drill_breakchip_map
{
TYPE l
DEFVAL "sinumerik_840d_cycle83_breakchip"
}
PARAM legend_group_end
{
TYPE g
DEFVAL "end"
}
}
SYS_CYCLE Drill_Tap
{
UI_LABEL "Drill,Tap"
PARAM ude_siemens_thread_group
{
TYPE g
DEFVAL "START_OPEN"
UI_LABEL "Pitch"
}
PARAM siemens_cycle_mpit
{
TYPE i
DEFVAL "3"
TOGGLE Off
UI_LABEL "Thread Size"
}
PARAM siemens_cycle_o_ptab
{
TYPE o
DEFVAL "Post Defined"
OPTIONS "Post Defined","Millimeter","Groove per Inch","Inch per Revolution","Module(Solution Line)"
UI_LABEL "Pitch"
}
PARAM siemens_cycle_pit
{
TYPE d
DEFVAL "0.0"
UI_LABEL "Pitch Value"
}
PARAM ude_siemens_thread_group_end
{
TYPE g
DEFVAL "END"
}
PARAM ude_siemens_float_group
{
TYPE g
DEFVAL "START_CLOSED"
UI_LABEL "Float Tap Parameters"
}
PARAM siemens_cycle_sdr
{
TYPE o
DEFVAL "Reversal"
OPTIONS "CLW","CCLW","Reversal"
UI_LABEL "Spindle Retract Direction"
}
PARAM siemens_cycle_enc
{
TYPE o
DEFVAL "Use Encoder-Dwell Off"
OPTIONS "Use Encoder-Dwell Off","Use Encoder-Dwell On","No Encoder-Feed Rate before Cycle","No Encoder-Feed Rate in Cycle"
UI_LABEL "Encoder"
}
PARAM ude_siemens_float_group_end
{
TYPE g
DEFVAL "end"
}
PARAM legend_float_group
{
TYPE g
DEFVAL "start_closed"
UI_LABEL "Legend"
}
PARAM siemens_float_tap_map
{
TYPE l
DEFVAL "sinumerik_840d_cycle840"
}
PARAM legend_float_group_end
{
TYPE g
DEFVAL "end"
}
PARAM ude_siemens_rigid_group
{
TYPE g
DEFVAL "START_OPEN"
UI_LABEL "Rigid Tap Parameters"
}
PARAM siemens_cycle_o_var1
{
TYPE o
DEFVAL "Single Pass"
OPTIONS "Single Pass","Break Chip","Remove Chip"
UI_LABEL "Type"
}
PARAM siemens_cycle_poss
{
TYPE d
DEFVAL "0.0"
TOGGLE Off
UI_LABEL "Spindle Orient Angle"
}
PARAM siemens_cycle_sst1
{
TYPE d
DEFVAL "0.0"
TOGGLE Off
UI_LABEL "Spindle Retract Speed"
}
PARAM siemens_cycle_o_dam
{
TYPE d
DEFVAL "0.0"
TOGGLE Off
UI_LABEL "Deep Hole Incremental Depth"
}
PARAM siemens_cycle_o_vrt
{
TYPE d
DEFVAL "0.0"
TOGGLE Off
UI_LABEL "Break Chip Retract Value"
}
PARAM ude_siemens_rigid_group_end
{
TYPE g
DEFVAL "end"
}
PARAM legend_rigid_group
{
TYPE g
DEFVAL "start_closed"
UI_LABEL "Legend"
}
PARAM siemens_rigid_tap_map
{
TYPE l
DEFVAL "sinumerik_840d_cycle84"
}
PARAM legend_rigid_group_end
{
TYPE g
DEFVAL "end"
}
PARAM ude_siemens_other_group
{
TYPE g
DEFVAL "start_open"
UI_LABEL "Other Parameters"
}
PARAM siemens_cycle_sdac
{
TYPE o
DEFVAL "CLW"
OPTIONS "CLW","CCLW","Off"
UI_LABEL "Spindle Direction After Cycle"
}
PARAM siemens_cycle_o_techno
{
TYPE i
DEFVAL "0"
TOGGLE Off
UI_LABEL "Technological Setting"
}
PARAM ude_siemens_other_end
{
TYPE g
DEFVAL "end"
}
}
SYS_CYCLE Drill_Tap_Breakchip
{
UI_LABEL "Drill,Tap,Breakchip"
PARAM ude_siemens_rigid_group
{
TYPE g
DEFVAL "START_OPEN"
UI_LABEL "Rigid Tap Parameters"
}
PARAM cycle_step_clearance
{
TYPE d
DEFVAL "0.5"
UI_LABEL "Step Clearance"
}
PARAM ude_siemens_rigid_group_end
{
TYPE g
DEFVAL "end"
}
PARAM legend_rigid_group
{
TYPE g
DEFVAL "start_closed"
UI_LABEL "Rigid Tap Legend"
}
PARAM siemens_rigid_tap_map
{
TYPE l
DEFVAL "sinumerik_840d_cycle84"
}
PARAM legend_rigid_group_end
{
TYPE g
DEFVAL "end"
}
PARAM ude_siemens_other_group
{
TYPE g
DEFVAL "start_open"
UI_LABEL "Other Parameters"
}
PARAM siemens_cycle_sdac
{
TYPE o
DEFVAL "CLW"
OPTIONS "CLW","CCLW","Off"
UI_LABEL "Spindle Direction After Cycle"
}
PARAM siemens_cycle_o_techno
{
TYPE i
DEFVAL "0"
TOGGLE Off
UI_LABEL "Technological Setting"
}
PARAM ude_siemens_other_end
{
TYPE g
DEFVAL "end"
}
}
SYS_CYCLE Drill_Tap_Deep
{
UI_LABEL "Drill,Tap,Deep"
PARAM legend_rigid_group
{
TYPE g
DEFVAL "start_closed"
UI_LABEL "Rigid Tap Legend"
}
PARAM siemens_rigid_tap_map
{
TYPE l
DEFVAL "sinumerik_840d_cycle84"
}
PARAM legend_rigid_group_end
{
TYPE g
DEFVAL "end"
}
PARAM ude_siemens_other_group
{
TYPE g
DEFVAL "start_open"
UI_LABEL "Other Parameters"
}
PARAM siemens_cycle_sdac
{
TYPE o
DEFVAL "CLW"
OPTIONS "CLW","CCLW","Off"
UI_LABEL "Spindle Direction After Cycle"
}
PARAM siemens_cycle_o_techno
{
TYPE i
DEFVAL "0"
TOGGLE Off
UI_LABEL "Technological Setting"
}
PARAM ude_siemens_other_end
{
TYPE g
DEFVAL "end"
}
}
SYS_CYCLE Drill_Tap_Float
{
UI_LABEL "Drill,Tap,Float"
PARAM ude_siemens_float_group
{
TYPE g
DEFVAL "start_closed"
UI_LABEL "Float Tap Parameters"
}
PARAM siemens_cycle_enc
{
TYPE o
DEFVAL "Use Encoder-Dwell Off"
OPTIONS "Use Encoder-Dwell Off","Use Encoder-Dwell On","No Encoder-Feed Rate before Cycle","No Encoder-Feed Rate in Cycle"
UI_LABEL "Encoder"
}
PARAM ude_siemens_float_group_end
{
TYPE g
DEFVAL "end"
}
PARAM legend_float_group
{
TYPE g
DEFVAL "start_closed"
UI_LABEL "Float Tap Legend"
}
PARAM siemens_float_tap_map
{
TYPE l
DEFVAL "sinumerik_840d_cycle840"
}
PARAM legend_float_group_end
{
TYPE g
DEFVAL "end"
}
PARAM ude_siemens_other_group
{
TYPE g
DEFVAL "start_open"
UI_LABEL "Other Parameters"
}
PARAM siemens_cycle_sdac
{
TYPE o
DEFVAL "CLW"
OPTIONS "CLW","CCLW","Off"
UI_LABEL "Spindle Direction After Cycle"
}
PARAM siemens_cycle_o_techno
{
TYPE i
DEFVAL "0"
TOGGLE Off
UI_LABEL "Technological Setting"
}
PARAM ude_siemens_other_end
{
TYPE g
DEFVAL "end"
}
}

View File

@@ -0,0 +1,501 @@
MACHINE SINUMERIK
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 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 set_pocket4_parameters
{
UI_LABEL "Set POCKET4 Parameters"
CATEGORY MILL DRILL
PARAM command_status
{
TYPE o
DEFVAL "Active"
OPTIONS "Active","Inactive","User Defined"
UI_LABEL "Status"
}
PARAM pocket4_maximum_infeed_width
{
TYPE d
DEFVAL "0.0000"
UI_LABEL "Maximum Infeed Width"
}
PARAM pocket4_helical_path_radius
{
TYPE d
DEFVAL "2.0000"
UI_LABEL "Helical Path Radius"
}
}
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 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 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 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 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 structure_representation_mode
{
UI_LABEL "Operation representation in collpased mode"
PARAM output_status
{
TYPE o
DEFVAL "On"
OPTIONS "On","Off"
UI_LABEL "Output"
}
PARAM display_name
{
TYPE s
TOGGLE Off
UI_LABEL "Display name"
}
PARAM readonly_status
{
TYPE o
DEFVAL "Editable"
OPTIONS "Editable","Readonly"
UI_LABEL "Status"
}
PARAM type_status
{
TYPE o
DEFVAL "Operation"
OPTIONS "Header","Operation"
UI_LABEL "Status"
}
}
EVENT LIB_manual_CYCLE800_setting
{
UI_LABEL "Manual CYCLE800 setting"
PARAM lib_cycle800_dir
{
TYPE o
DEFVAL "Auto"
OPTIONS "Auto","+1","-1"
UI_LABEL "Direction"
}
}
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"
}
}
EVENT dnc_header
{
UI_LABEL "DNC Header"
CATEGORY MILL DRILL LATHE WEDM
PARAM command_status
{
TYPE o
DEFVAL "Active"
OPTIONS "Active","Inactive","User Defined"
UI_LABEL "Status"
}
PARAM dnc_machine_name
{
TYPE s
TOGGLE Off
UI_LABEL "Machine Name"
}
PARAM dnc_program_name
{
TYPE s
TOGGLE Off
UI_LABEL "Program Name"
}
PARAM dnc_data_type
{
TYPE s
DEFVAL "MPF"
TOGGLE On
UI_LABEL "Data Type"
}
PARAM dnc_version_number
{
TYPE i
DEFVAL "1"
TOGGLE On
UI_LABEL "Version Number"
}
PARAM dnc_release_number
{
TYPE i
DEFVAL "1"
TOGGLE On
UI_LABEL "Release Number"
}
PARAM dnc_user_name
{
TYPE s
TOGGLE Off
UI_LABEL "User Name"
}
}

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
23
-WXiC!0=JD1*0bEbnEU@e:+Y?i@w,
x
35
bVXiCVw<JD1*0bEBM4=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 @@
]ÄÅ à˜Ø½hSGÍwçϯe/ND²#£•3˱

View File

@@ -0,0 +1,440 @@
#
MACHINE Default
FORMATTING
{
WORD_SEPARATOR " "
END_OF_LINE ""
FORMAT Vector "%-.7f"
FORMAT Real "%-.6f"
FORMAT Real_x "%-.4f"
FORMAT Real_y "%-.4f"
FORMAT Real_z "%-.4f"
FORMAT Int "%d"
FORMAT String "%s"
# Following adresses are required by Post Configurator infrastructure
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 Zero_real "&_01.10"
# Override addresses required by Post Configurator infrastructure
# ===================================================================
# Address to output a plain string
ADDRESS robot_string
{
LEADER ""
FORMAT String
FORCE always
}
ADDRESS A
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER "A="
ZERO_FORMAT Zero_real
}
ADDRESS B
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER "B="
ZERO_FORMAT Zero_real
}
ADDRESS C
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER "C="
ZERO_FORMAT Zero_real
}
ADDRESS F {
FORMAT Feed
FORCE off
MAX 999999.9 Warning
MIN .0001 Warning
LEADER "F"
ZERO_FORMAT Zero_real
}
ADDRESS I1
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER "I1="
ZERO_FORMAT Zero_real
}
ADDRESS J1
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER "J1="
ZERO_FORMAT Zero_real
}
ADDRESS K1
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER "K1="
ZERO_FORMAT Zero_real
}
ADDRESS E1
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER [$RMR_external_name(0)=]
ZERO_FORMAT Zero_real
}
ADDRESS E2
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER [$RMR_external_name(1)=]
ZERO_FORMAT Zero_real
}
ADDRESS E3
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER [$RMR_external_name(2)=]
ZERO_FORMAT Zero_real
}
ADDRESS E4
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER [$RMR_external_name(3)=]
ZERO_FORMAT Zero_real
}
ADDRESS E5
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER [$RMR_external_name(4)=]
ZERO_FORMAT Zero_real
}
ADDRESS E6
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER [$RMR_external_name(5)=]
ZERO_FORMAT Zero_real
}
ADDRESS FGREF1
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER [$RMR_fgref_external_name(0)=]
ZERO_FORMAT Zero_real
}
ADDRESS FGREF2
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER [$RMR_fgref_external_name(1)=]
ZERO_FORMAT Zero_real
}
ADDRESS FGREF3
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER [$RMR_fgref_external_name(2)=]
ZERO_FORMAT Zero_real
}
ADDRESS FGREF4
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER [$RMR_fgref_external_name(3)=]
ZERO_FORMAT Zero_real
}
ADDRESS FGREF5
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER [$RMR_fgref_external_name(4)=]
ZERO_FORMAT Zero_real
}
ADDRESS FGREF6
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER [$RMR_fgref_external_name(5)=]
ZERO_FORMAT Zero_real
}
ADDRESS Motion_type
{
LEADER ""
FORMAT String
FORCE off
}
ADDRESS X
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER "X"
ZERO_FORMAT Zero_real
}
ADDRESS Y
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER "Y"
ZERO_FORMAT Zero_real
}
ADDRESS Z
{
FORMAT Coordinate
FORCE always
MAX 99999.999 Truncate
MIN -99999.999 Truncate
LEADER "Z"
ZERO_FORMAT Zero_real
}
BLOCK_TEMPLATE linear_move
{
G_cutcom[$mom_sys_cutcom_code($mom_cutcom_status)]\opt
G_plane[$mom_sys_cutcom_plane_code($mom_cutcom_plane)]\opt
G_feed[$mom_sys_feed_rate_mode_code($feed_mode)]
G_motion[$mom_sys_linear_code]
G_mode[$mom_sys_output_code($mom_output_mode)]
Motion_type[$RMR_motion_type(1)]
X[$mom_rob_pos(0)]
Y[$mom_rob_pos(1)]
Z[$mom_rob_pos(2)]
A[$mom_rob_pos(3)]
B[$mom_rob_pos(4)]
C[$mom_rob_pos(5)]
E1[$mom_rob_ext(0)]
E2[$mom_rob_ext(1)]
E3[$mom_rob_ext(2)]
E4[$mom_rob_ext(3)]
E5[$mom_rob_ext(4)]
E6[$mom_rob_ext(5)]
S[$mom_spindle_rpm]
D[$mom_tool_adjust_register]\opt
M_spindle[$mom_sys_spindle_direction_code($mom_spindle_direction)]\opt
M_coolant[$mom_sys_coolant_code($mom_coolant_mode)]\opt
F[$mom_feed_rate]
FGREF1[$mom_rob_fgref_ext(0)]
FGREF2[$mom_rob_fgref_ext(1)]
FGREF3[$mom_rob_fgref_ext(2)]
FGREF4[$mom_rob_fgref_ext(3)]
FGREF5[$mom_rob_fgref_ext(4)]
FGREF6[$mom_rob_fgref_ext(5)]
}
BLOCK_TEMPLATE circular_move_cip
{
G_cutcom[$mom_sys_cutcom_code($mom_cutcom_status)]\opt
G_plane[$mom_sys_cutcom_plane_code($mom_cutcom_plane)]\opt
G_feed[$mom_sys_feed_rate_mode_code($feed_mode)]
"CIP"
G_mode[$mom_sys_output_code($mom_output_mode)]
X[$mom_rob_pos(0)]
Y[$mom_rob_pos(1)]
Z[$mom_rob_pos(2)]
I1[$mom_rob_circ_via_pos(0)]
J1[$mom_rob_circ_via_pos(1)]
K1[$mom_rob_circ_via_pos(2)]
E1[$mom_rob_ext(0)]
E2[$mom_rob_ext(1)]
E3[$mom_rob_ext(2)]
E4[$mom_rob_ext(3)]
E5[$mom_rob_ext(4)]
E6[$mom_rob_ext(5)]
helix_turn[$mom_helix_turn_number]\opt
R[$mom_arc_radius]
S[$mom_spindle_rpm]
D[$mom_tool_adjust_register]
M_spindle[$mom_sys_spindle_direction_code($mom_spindle_direction)]\opt
M_coolant[$mom_sys_coolant_code($mom_coolant_mode)]\opt
F[$mom_feed_rate]
FGREF1[$mom_rob_fgref_ext(0)]
FGREF2[$mom_rob_fgref_ext(1)]
FGREF3[$mom_rob_fgref_ext(2)]
FGREF4[$mom_rob_fgref_ext(3)]
FGREF5[$mom_rob_fgref_ext(4)]
FGREF6[$mom_rob_fgref_ext(5)]
}
BLOCK_TEMPLATE circular_move
{
G_cutcom[$mom_sys_cutcom_code($mom_cutcom_status)]\opt
G_plane[$mom_sys_cutcom_plane_code($mom_cutcom_plane)]\opt
G_feed[$mom_sys_feed_rate_mode_code($feed_mode)]
G_motion[$mom_sys_circle_code($mom_arc_direction)]\opt
G_mode[$mom_sys_output_code($mom_output_mode)]
Motion_type[$RMR_motion_type(1)]
X[$mom_rob_pos(0)]
Y[$mom_rob_pos(1)]
Z[$mom_rob_pos(2)]
I[$mom_pos_arc_center(0) - $mom_prev_pos(0)]
J[$mom_pos_arc_center(1) - $mom_prev_pos(1)]
K[$mom_pos_arc_center(2) - $mom_prev_pos(2)]
E1[$mom_rob_ext(0)]
E2[$mom_rob_ext(1)]
E3[$mom_rob_ext(2)]
E4[$mom_rob_ext(3)]
E5[$mom_rob_ext(4)]
E6[$mom_rob_ext(5)]
helix_turn[$mom_helix_turn_number]\opt
R[$mom_arc_radius]
S[$mom_spindle_rpm]
D[$mom_tool_adjust_register]
M_spindle[$mom_sys_spindle_direction_code($mom_spindle_direction)]\opt
M_coolant[$mom_sys_coolant_code($mom_coolant_mode)]\opt
F[$mom_feed_rate]
FGREF1[$mom_rob_fgref_ext(0)]
FGREF2[$mom_rob_fgref_ext(1)]
FGREF3[$mom_rob_fgref_ext(2)]
FGREF4[$mom_rob_fgref_ext(3)]
FGREF5[$mom_rob_fgref_ext(4)]
FGREF6[$mom_rob_fgref_ext(5)]
}
BLOCK_TEMPLATE rapid_move
{
G_cutcom[$mom_sys_cutcom_code($mom_cutcom_status)]\opt
G_motion[$mom_sys_rapid_code]
Motion_type[$RMR_motion_type(0)]
X[$mom_rob_pos(0)]
Y[$mom_rob_pos(1)]
Z[$mom_rob_pos(2)]
A[$mom_rob_pos(3)]
B[$mom_rob_pos(4)]
C[$mom_rob_pos(5)]
robot_string[$mom_rob_config]
E1[$mom_rob_ext(0)]
E2[$mom_rob_ext(1)]
E3[$mom_rob_ext(2)]
E4[$mom_rob_ext(3)]
E5[$mom_rob_ext(4)]
E6[$mom_rob_ext(5)]
S[$mom_spindle_rpm]
D[$mom_tool_adjust_register]
M_spindle[$mom_sys_spindle_direction_code($mom_spindle_direction)]\opt
}
BLOCK_TEMPLATE robot_axis_motion
{
G_cutcom[$mom_sys_cutcom_code($mom_cutcom_status)]\opt
G_motion[$mom_sys_rapid_code]
robot_string[$RMR_axis_coord]
E1[$mom_rob_ext(0)]
E2[$mom_rob_ext(1)]
E3[$mom_rob_ext(2)]
E4[$mom_rob_ext(3)]
E5[$mom_rob_ext(4)]
E6[$mom_rob_ext(5)]
}
BLOCK_TEMPLATE rob_frame_trans
{
Text[TRANS]
X[$mom_trans_x]
Y[$mom_trans_y]
Z[$mom_trans_z]
}
BLOCK_TEMPLATE rob_frame_arot_x
{
rot_x[$mom_arot_x]\opt
}
BLOCK_TEMPLATE rob_frame_arot_y
{
rot_y[$mom_arot_y]\opt
}
BLOCK_TEMPLATE rob_frame_arot_z
{
rot_z[$mom_arot_z]\opt
}
BLOCK_TEMPLATE rob_frame_trans_cancel
{
Text[TRANS]
}
BLOCK_TEMPLATE rob_frame_rot_cancel
{
Text[ROT]
}
BLOCK_TEMPLATE rob_traori
{
Text[TRAORI]
}
}

View File

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

View File

@@ -0,0 +1,13 @@
MACHINE Default
INCLUDE {
$POST_LIB_CURRENT_MACH_DIR/Controller/ctrl_s840d_base.def
$POST_LIB_CURRENT_MACH_DIR/../../robots/Robotics.cdl
$POST_LIB_CURRENT_MACH_DIR/Controller/ctrl_sinumerik_base.cdl
$POST_LIB_CURRENT_MACH_DIR/Controller/ctrl_sinumerik_base.def
$POST_LIB_CURRENT_MACH_DIR/Controller/ctrl_s840d_base.cdl
$POST_LIB_CURRENT_MACH_DIR/Controller/ctrl_s840d_base_cycle$POST_SYS_CYCL_VERS.cdl
$POST_LIB_CURRENT_MACH_DIR/rmr_sinumerik_post.cdl
$POST_LIB_CURRENT_MACH_DIR/rmr_sinumerik_ctrl.def
}

View File

@@ -0,0 +1,211 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Copyright>Siemens Digital Industry Software</Copyright>
<Version>2.0</Version>
<MachineName>RMR_SINUMERIK</MachineName>
<Sourcing>
<Sequence>
<Layer Name="Libraries" ReadOnly="true" SubFolder="Libraries">
<Copyright>Siemens Digital Industry Software</Copyright>
<Template>${UGII_CAM_RESOURCE_DIR}post_configurator/post_template/libraries/libraries.psl</Template>
<Version>1.00</Version>
<Order>1001</Order>
<Scripts>
<Filename Name="lib_sourcing" Processing="auto"/>
<Filename Name="lib_general" Processing="auto"/>
<Filename Name="lib_xml_handling" Processing="auto"/>
<Filename Name="lib_msg" Processing="true"/>
<Filename Name="lib_file_handling" Processing="true"/>
<Filename Name="lib_standard_post_func" Processing="true"/>
<Filename Name="lib_document" Processing="true"/>
<Filename Include="pretreatment" Name="lib_pretreatment" Processing="auto"/>
<Filename Include="pretreatment" Name="lib_pretreatment_post" Processing="auto"/>
</Scripts>
<DefinedEvents>
<Filename Include="pretreatment" Name="lib_pretreatment" Processing="auto"/>
</DefinedEvents>
<CustomerDialogs>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Digital Industry Software</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
<Layer Name="Robotic Standard Layer" ReadOnly="false">
<Copyright>Siemens Digital Industry Software</Copyright>
<Template>${UGII_CAM_RESOURCE_DIR}post_configurator/post_template/nx_olp_util/RMR_SINUMERIK_standard_layer.psl</Template>
<Version>1.00</Version>
<Order>1999</Order>
<Scripts>
<Filename Name="nx_olp_util_init" Processing="true"/>
<Filename Name="nx_olp_util_maths" Processing="true"/>
<Filename Name="nx_olp_util_robotics" Processing="true"/>
<Filename Name="nx_olp_util_cse_simulation_ini" Processing="true"/>
</Scripts>
<DefinedEvents>
<Filename Include="true" Name="nx_olp_util_base" Processing="true"/>
</DefinedEvents>
<CustomerDialogs>
<Filename Name="Robotics" Processing="true"/>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Digital Industry Software</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
<Layer Name="Sinumerik 840D" ReadOnly="true" SubFolder="Controller">
<Copyright>Siemens Digital Industry Software</Copyright>
<Template>${UGII_CAM_RESOURCE_DIR}post_configurator/post_template/controller/sinumerik/base/ctrl_s840d_base.psl</Template>
<Version>1.00</Version>
<Order>2001</Order>
<Scripts>
<Filename Name="ctrl_sinumerik_base" Processing="true"/>
<Filename Name="ctrl_s840d_base" Processing="true"/>
<Filename Name="ctrl_sinumerik_base_msg" Processing="true"/>
</Scripts>
<DefinedEvents>
<Filename Include="true" Name="ctrl_sinumerik_base" Processing="auto"/>
<Filename Include="true" Name="ctrl_s840d_base" Processing="auto"/>
</DefinedEvents>
<CustomerDialogs>
<Filename Include="true" Name="ctrl_sinumerik_base" Processing="auto"/>
<Filename Include="true" Name="ctrl_s840d_base" Processing="auto"/>
<Filename Include="true" Name="ctrl_s840d_base_cycle" Processing="auto"/>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Digital Industry Software</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
<Layer Name="Sinumerik Sample Machine Level" ReadOnly="false">
<Copyright>Siemens Digital Industry Software</Copyright>
<Template>${UGII_CAM_RESOURCE_DIR}post_configurator/post_template/controller/sinumerik/machine/machine_ootb_5ax_sinumerik.psl</Template>
<Version>1.00</Version>
<Order>5001</Order>
<Scripts>
<Filename Name="machine_ootb_5ax_sinumerik" Processing="true"/>
</Scripts>
<DefinedEvents>
</DefinedEvents>
<CustomerDialogs>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Digital Industry Software</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
<Layer Name="Service" ReadOnly="false">
<Copyright>Siemens Digital Industry Software</Copyright>
<Version>1.00</Version>
<Order>8001</Order>
<Scripts>
<Filename Name="rmr_sinumerik_post_service_s840d" Processing="true"/>
</Scripts>
<DefinedEvents>
</DefinedEvents>
<CustomerDialogs>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Digital Industry Software</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
<Layer Name="RMR Sinumerik Layer" ReadOnly="false">
<Copyright>Siemens Digital Industry Software</Copyright>
<Template>${UGII_CAM_RESOURCE_DIR}post_configurator/post_template/controller/RMR_SINUMERIK/base/RMR_SINUMERIK_base.psl</Template>
<Version>1.00</Version>
<Order>8002</Order>
<Scripts>
<Filename Name="rmr_sinumerik_ctrl" Processing="true"/>
<Filename Name="rmr_sinumerik_ctrl_msg" Processing="true"/>
<Filename Name="rmr_sinumerik_user_custom" Processing="true"/>
<Filename Name="rmr_sinumerik_cse_simulation_ini" Processing="true"/>
</Scripts>
<DefinedEvents>
<Filename Name="rmr_sinumerik_ctrl" Processing="true"/>
</DefinedEvents>
<CustomerDialogs>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Digital Industry Software</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
<Layer Name="Customer" ReadOnly="true">
<Copyright>Siemens Digital Industry Software</Copyright>
<Version>1.00</Version>
<Order>9001</Order>
<Scripts>
<Filename Name="rmr_sinumerik_post_custom" Processing="true"/>
</Scripts>
<DefinedEvents>
</DefinedEvents>
<CustomerDialogs>
</CustomerDialogs>
<Functions>
</Functions>
<Comments>
<Comment>
<User>Siemens Digital Industry Software</User>
<Date>01.01.2019 12:00:00</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
</Comments>
</Layer>
</Sequence>
</Sourcing>
<History>
<Comments>
<Comment>
<User>xd2oht</User>
<Date>21.07.2020 11:55:25</Date>
<Text>Initial generated by Post Configurator</Text>
</Comment>
<Comment>
<User>xd2oht</User>
<Date>21.07.2020 11:55:25</Date>
<Text>Postprocessor successfully upgraded from version 4.7.1 to version 5.3.0</Text>
</Comment>
</Comments>
<Customer>
<Company/>
<Address/>
<Contact/>
<Phone/>
<Fax/>
<Mail/>
</Customer>
</History>
<Units>Millimeters and Inches</Units>
</Configuration>

View File

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

View File

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

View File

@@ -0,0 +1,137 @@
#set ::mom_kin_linearization_tol "0.0001"
#set ::mom_kin_machine_resolution "0.00000001"
# Numerical precisions overrides
set RMR_PRECISION_FRAME_DEG 6
set RMR_PRECISION_FRAME_MM 6
set RMR_PRECISION_JOINT_DEG 6
set RMR_PRECISION_EXTERNAL 6
set RMR_PRECISION_MASS_KG 3
set RMR_PRECISION_INERTIA 3
set ::mom_kin_read_ahead_next_motion FALSE
# Unused function declarations can be removed from this file. They are all here for the example.
#----------------------------------------------------------------------
# Triggered on start of program
# position: start, end
#----------------------------------------------------------------------
proc RMR_start_of_program {position} {
}
#----------------------------------------------------------------------
# Triggered on end of program before/after @END_OF_PROG
# position: start, end
#----------------------------------------------------------------------
proc RMR_end_of_program {position} {
}
#----------------------------------------------------------------------
# Triggered MOM_start_of_program_LIB writing output header
# position: start, end
#----------------------------------------------------------------------
proc RMR_write_output_header {position} {
}
#----------------------------------------------------------------------
# Triggered MOM_start_of_program_LIB writing output header
# position: start, end
#----------------------------------------------------------------------
proc RMR_write_output_header {position} {
}
#----------------------------------------------------------------------
# Triggered during MOM_rapid_move
# position: start, end
#----------------------------------------------------------------------
proc RMR_rapid_move {position} {
}
#----------------------------------------------------------------------
# Triggered during MOM_linear_move
# position: start, end
#----------------------------------------------------------------------
proc RMR_linear_move {position} {
}
#----------------------------------------------------------------------
# Triggered during MOM_circular_move
# position: start, end
#----------------------------------------------------------------------
proc RMR_circular_move {position} {
}
#----------------------------------------------------------------------
# Triggered during MOM_robot_pose_move
# position: start, end
#----------------------------------------------------------------------
proc RMR_robot_pose_move {position} {
}
#----------------------------------------------------------------------
# Triggered on each TRAORI
# position: start, end
#----------------------------------------------------------------------
proc RMR_traori {position} {
}
#----------------------------------------------------------------------
# Triggered on each TRAFOOF
# position: start, end
#----------------------------------------------------------------------
proc RMR_trafoof {position} {
}
#----------------------------------------------------------------------
# Create a formatted string with the selected external axis of the robot
# if defined in the switch instruction
# INPUTS:
# sCoordName = Name of the external axis. Ex: E1 or E2
# dValue = Value of the external axis
# OUTPUTS:
# Return external format string Ex: E2=DC(25.255544)
# Default: <sCoordName>=<dValue> Ex: E1=12.22333
#----------------------------------------------------------------------
proc RMR_external_format_string {sCoordName dValue} {
return "$sCoordName=$dValue"
}

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,59 @@
* CONFIGURATION
default_config dont_care ;
use_config dont_use ;
config_family cf_over_head_pos ;
joint_config_family j3 joint_cf_elbow_up ;
joint_default_config j3 dont_care ;
joint_config_family j5 joint_cf_pos ;
joint_default_config j5 dont_care ;
* TURNS
* Changes for axis 1 +/- 185 deg
* Volker Miegel Dec 1997
default_turns j1 0 0.0, j4 0 0.0, j6 0 0.0;
joint_default_turn all 0;
joint_default_turn j1 5;
* ZONES
* FINE
zone_define fine no_smooth;
* MEDIUM
* $APO.CPTP = 3
* Only realistic if angles > 6 deg
zone_joint_type medium dist ;
zone_joints_param medium 0.052 0.052 0.052 0.052 0.052 0.052 ;
* $APO.CDIS = 20
* Only realistic if distance > 40 mm
zone_type medium dist ;
zone_cart_param medium 20 ;
* COARSE
* $APO.CPTP = 9
* Only realistic if angles > 18 degrees
zone_joint_type coarse dist ;
zone_joints_param coarse 0.157 0.157 0.157 0.157 0.157 0.157 ;
* $APO.CDIS = 50 mm
* Only realistic if distance > 100 mm
zone_type coarse dist ;
zone_cart_param coarse 50 ;
* NODECEL
* PTP: workaround to emulate way smaller than $APO.CPTP/2
zone_joint_type nodecel speed ;
zone_joints_param nodecel 99.0 99.0 99.0 99.0 99.0 99.0 ;
* $APO.CVEL 99%
* (workaround to emulate way smaller than $APO.CDIS/2)
zone_type nodecel speed ;
zone_cart_param nodecel 99 ;