<< Click to Display Table of Contents >> Navigation: »No topics above this level« Example Script |
Here is an example Python post script, (PostScriptExample.py), for a programmable post-processor which sets following data:
•Linear/Rapid motion format
•Start/End block format
•Setting "[SEQ_PRECHAR]" variable
•Tool Change block format (different for fist tool change)
•File extension for "File Extension from Post Processor" option
from post_ext import *
# Set output file extension GENERAL_OutputFileExt = ".nc"
# Define block format for outputten code LinearMotionCodeBlock = "[G_CODE][DELIMITER][NEXT_X][DELIMITER][NEXT_Y][DELIMITER][NEXT_Z]" RapidMotionCodeBlock = "[G_CODE][DELIMITER][NEXT_Z]\n[NEXT_X][DELIMITER][NEXT_Y]" StartProcessingBlock = "[START_CHAR]\n[SEQ_PRECHAR][SEQNUM][DELIMITER]G40[DELIMITER]G49[DELIMITER]G80[DELIMITER]G98 - Start processing" EndProcessingBlock = "[SEQ_PRECHAR][SEQNUM][DELIMITER]M30\n[STOP_CHAR] - End processing"
FirstToolChangeCodeBlock = ("; First Tool Change\n" "[SEQ_PRECHAR][SEQNUM][DELIMITER][OUTPUT_UNITS_CODE][DELIMITER]T[TOOL_NUM][DELIMITER]M06", "[SEQ_PRECHAR][SEQNUM][SPINDLE_BLK]", "[SEQ_PRECHAR][SEQNUM][DELIMITER][OUTPUT_MODE_CODE][DELIMITER][G_CODE][DELIMITER]X[NEXT_NONMDL_X][DELIMITER]Y[NEXT_NONMDL_Y]", "[SEQ_PRECHAR][SEQNUM][DELIMITER]G43[DELIMITER]Z[NEXT_NONMDL_Z][DELIMITER]H[TOOL_ADJST_REG]")
ToolChangeCodeBlock = ("[SEQ_PRECHAR][SEQNUM][DELIMITER][OUTPUT_UNITS_CODE][DELIMITER]T[TOOL_NUM][DELIMITER]M06", "[SEQ_PRECHAR][SEQNUM][SPINDLE_BLK]", "[SEQ_PRECHAR][SEQNUM][DELIMITER][OUTPUT_MODE_CODE][DELIMITER][G_CODE][DELIMITER]X[NEXT_NONMDL_X][DELIMITER]Y[NEXT_NONMDL_Y]", "[SEQ_PRECHAR][SEQNUM][DELIMITER]G43[DELIMITER]Z[NEXT_NONMDL_Z][DELIMITER]H[TOOL_ADJST_REG]")
# Global vars for processing ToolChangeNum = 0
# Helper functions def SetBlockData(blockData: PostBlockData, value): block = '\n' if type(value) == tuple: block = block.join(value) else: value = value.splitlines() block = block.join(value) blockData.Set(block)
# Set post vars def InitializeVars(globalData: PostGlobalData): globalData.SetStrVar("[SEQ_PRECHAR]", "#")
def OnStartProcessing(blockData: PostBlockData, globalData: PostGlobalData): InitializeVars(globalData) SetBlockData(blockData, StartProcessingBlock) return
def OnEndProcessing(blockData: PostBlockData, globalData: PostGlobalData): SetBlockData(blockData, EndProcessingBlock) return
def OnMOpStart(globalData: PostGlobalData): return
def OnMOpEnd(globalData: PostGlobalData): return
def OnComment(blockData: PostBlockData, globalData: PostGlobalData): return
def OnSetup(blockData: PostBlockData, globalData: PostGlobalData): return
def OnWorkZero(blockData: PostBlockData, globalData: PostGlobalData): return
def OnToolChange(blockData: PostBlockData, globalData: PostGlobalData): global ToolChangeNum
if ToolChangeNum == 0: SetBlockData(blockData, FirstToolChangeCodeBlock) # 1st tool change else: SetBlockData(blockData, ToolChangeCodeBlock) ToolChangeNum = ToolChangeNum + 1 return
def OnSpindleSpeed(blockData: PostBlockData, globalData: PostGlobalData): return
def OnFeedRate(blockData: PostBlockData, globalData: PostGlobalData): return
def OnToolCompensation(blockData: PostBlockData, globalData: PostGlobalData): return
def OnCoolant(blockData: PostBlockData, globalData: PostGlobalData): return
def OnRapidMotion(blockData: PostBlockData, globalData: PostGlobalData): SetBlockData(blockData, RapidMotionCodeBlock) return
def OnLinearMotion(blockData: PostBlockData, globalData: PostGlobalData): SetBlockData(blockData, LinearMotionCodeBlock) return
def OnCirclularMotion(blockData: PostBlockData, globalData: PostGlobalData): return
def OnSpiralMotion(blockData: PostBlockData, globalData: PostGlobalData): return
def OnHelicalMotion(blockData: PostBlockData, globalData: PostGlobalData): return
def On4AxisRapidMotion(blockData: PostBlockData, globalData: PostGlobalData): SetBlockData(blockData, RapidMotionCodeBlock) return
def On4AxLinearMotion(blockData: PostBlockData, globalData: PostGlobalData): SetBlockData(blockData, LinearMotionCodeBlock) return
def On5AxRapidMotion(blockData: PostBlockData, globalData: PostGlobalData): return
def On5AxLinearMotion(blockData: PostBlockData, globalData: PostGlobalData): return
def OnCycleStart(blockData: PostBlockData, globalData: PostGlobalData): return
def OnCyclePoint(blockData: PostBlockData, globalData: PostGlobalData): return
def OnCycleEnd(globalData: PostGlobalData): return
def OnDwell(blockData: PostBlockData, globalData: PostGlobalData): return
def OnRotateHead(blockData: PostBlockData, globalData: PostGlobalData): return
def OnRotateTable(blockData: PostBlockData, globalData: PostGlobalData): return
def OnMachineRewind(blockData: PostBlockData, globalData: PostGlobalData): return |