Heidenhain TNC 131 M721 81 4


{Change Comments ***********************************************************}

{12/8/94
Copied & modified: Fanuc 6M M001.81.2
For: Rexroth
Control: Heidenhain TNC 131
Machine: Bohle ( Vetical Machine Center )
Does not Support CRC.
Control requires inside/outside input, Gibbs System uses left/right output.
Does not support ConstantSurfaceFeed.
Just too much logic to use, can be added if needed.
Does not support arcs.
Control has no arcing capabilities, using linear segments.
Output is forced to absolute moves.
Flag('1') is used to control the output of the absolute or incremental labels and
gets set true/false along with SetInc/SetAbs for AutoCycles.
Jim Radcliffe}

{1/6/95
Modified: Heidenhain TNC 131 M721.81.2
For: Rexroth
Changed format to show leading zeros on M codes
Added DoM sub and calls to output 'M' as needed.
Added ascii decimal character 27 to end of program,
I do not know if this is correct as the customer just said
he wanted an unrecognizable ascii character!
Jim Radcliffe}

{8/3/95
Initial: Heidenhain TNC 131 M721.81.3
Created: Heidenhain TNC 131 M721.81.4
Comment: Added initializer command UseCommaForDecPt
Jim Radcliffe}

{Prog Numeric Format Definitions *******************************************}

#1 = '#.00'
#2 = '###.###;0.'
#3 = '*###.###;0.'
#4 = '####.####;0.'
#5 = '#######0'
#6 = '###0.000'
#7 = 'ą##0.0000'
#8 = '*ą##0.0000'
#9 = '###^0'

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ToolDiameter#,4) {.72}
FORMAT(Program#,5) {.72}
FORMAT(Operation#,5) {.72}
FORMAT(Tool#,5) {.72}
FORMAT(Parts#,5) {.72}
FORMAT(Repeats#,5)
FORMAT(TLNum#,5)
FORMAT(Dwell#,6)
FORMAT(TLLength#,7)
FORMAT(DIV#,7)
FORMAT(StartPosX#,7)
FORMAT(StartPosY#,8)
FORMAT(HomeX#,7)
FORMAT(HomeY#,8)
FORMAT(TCZ#,7)
FORMAT(ClearancePlane2#,7)
FORMAT(ZDepth#,7)
FORMAT(Peck#,7)
FORMAT(FeedEntry#,9)
FORMAT(PartShiftX#,7)
FORMAT(PartShiftY#,7)
FORMAT(PartShiftZ#,7)
FORMAT(OriginUnShiftPX#,7)
FORMAT(OriginUnShiftPY#,7)
FORMAT(OriginUnShiftPZ#,7)
FORMAT(RepeatX#,7)
FORMAT(RepeatY#,7)
FORMAT(RepeatZ#,7)
FORMAT(OriginUnShiftRX#,7)
FORMAT(OriginUnShiftRY#,7)
FORMAT(OriginUnShiftRZ#,7)

{Special Defined Subs ******************************************************}

DoM:
' M'
RETURN

NoCRC:
' R0'
RETURN

CRC:
{ this control requires CRC be addressed as inside or outside }
{ we do not support this }
{ we only support left or right }
NoCRC
RETURN

CallTool:
' TOOL CALL ' Tool# ' Z' Speed
RETURN

DoStrtPos:
' CYCL DEF 0.0 DIAGONAL PATH' EOL
SeqLab ' CYCL DEF 0.1 A X' StartPosX# EOL
SeqLab ' CYCL DEF 0.2 A Y' StartPosY# EOL
SeqLab ' CYCL DEF 0.3'
RETURN

DoAbs:
' A'
RETURN

DoInc:
' I'
RETURN

DoAbsOrInc:
IF Flag?('1')
DoInc
ELSE
DoAbs
END
RETURN

DoTCZ:
DoAbs ' Z' TCZ# NoCRC RapidF
RETURN

NoMove:
DoInc ' Z' NoCRC RapidF
RETURN

StopProg:
' Stop M0'
RETURN

{Prog Subroutines **********************************************************}

RestoreScale:
IF Metric? {CAM file is in Metric, tools and tool path}
SetScale('.03937007874') { change to English, this is an English post}
END
RETURN

DoSubComment:
IF UseComments? AND SubComment?
'( SUB NUMBER: ' Program# ' )' EOL
END
RETURN

DoOpComments:
IF UseComments?
SetScale('1')
IF OperationIDComment?
'( OPERATION ' Operation# ': ' OperationType$ ' )' EOL
END
IF OperationComment?
'( ' OperationComment$ ' )' EOL
END
IF WorkGroupComment?
'( ' WorkGroupComment$ ' )' EOL
END
IF ToolTypeComment?
'( TOOL ' Tool# ': ' ToolDiameter# ' ' ToolType$ ' )' EOL
END
IF ToolComment?
'( ' ToolComment$ ' )' EOL
END
RestoreScale
END
RETURN

PSInit: {reset flags}
NewWFOF
RotateF
RETURN

PSStuff: {revised.72}
IF FourthCW?
FORMAT(FourthDegree#,2)
SeqLab 'A' FourthDegree# EOL
FourthCWF {reset flag}
END
IF FourthCCW?
FORMAT(FourthDegree#,3)
SeqLab 'A' FourthDegree# EOL
FourthCCWF {reset flag}
END
IF FifthCW?
FORMAT(FifthDegree#,2)
SeqLab 'B' FifthDegree# EOL
FifthCWF {reset flag}
END
IF FifthCCW?
FORMAT(FifthDegree#,3)
SeqLab 'B' FifthDegree# EOL
FifthCCWF {reset flag}
END
RETURN

DoPostScript:
PSInit
EachPS
SeqLab PostScript EOL {literals}
PSStuff {commands}
NextPS
RETURN

DoEndOpPS:
PSInit
EachEOPS
SeqLab EndOpPS EOL {literals}
PSStuff {commands}
NextPS
RETURN

EntryMove:
IF FeedEntry?
SeqLab DoAbsOrInc ZIn NoCRC FeedEnt DoM EOL
ELSE
SeqLab DoAbsOrInc ZIn NoCRC RapidF DoM EOL
END
RETURN

StartSub:
OpenSub
SeqLab ' LBL' Program# EOL
DoSubComment
RETURN

SubWarning:
IF NOT FeedConnect?
IF AnyZshift?
' ' EOL
'( WARNING Z CLEARANCE WILL CHANGE WITH EACH CYCLE OF SUB REPEAT )' EOL
' ' EOL
END
END
RETURN

StdSub:
SeqLab ' CALL LBL ' Program# ' REP ' Repeats# '/' Repeats# EOL
StartSub
RETURN

FinishSub1: {part 1}
IF NOT FeedConnect?
IF AutoCycle?
SeqLab DoAbs ZCP3 NoCRC RapidF DoM EOL
ELSE
IF FIFO? {.81}
SeqLab DoAbs ZCP3 NoCRC FeedEnt DoM EOL
ELSE
SeqLab DoAbs ZCP3 NoCRC RapidF DoM EOL
END
END
END
RETURN

FinishSubG92: {part 2}
SeqLab ' CYCL DEF 7.0 DATUM SHIFT' EOL
SeqLab ' CYCL DEF 7.1 IX' RepeatX# EOL
SeqLab ' CYCL DEF 7.2 IY' RepeatY# EOL
SeqLab ' CYCL DEF 7.3 IZ' RepeatZ# EOL
SeqLab ' LBL 0' EOL
CloseSub
SeqLab ' CYCL DEF 7.0 DATUM SHIFT' EOL
SeqLab ' CYCL DEF 7.1 IX' OriginUnShiftRX#('0') EOL
SeqLab ' CYCL DEF 7.2 IY' OriginUnShiftRY#('0') EOL
SeqLab ' CYCL DEF 7.3 IZ' OriginUnShiftRZ#('0') EOL
RETURN

OpenMP:
IF WorkFixtureOffsets?
'( NOTE: This post processor does not support work fixture offsets!!! )' EOL
ELSE
NewProg
SeqLab ' CALL LBL ' Program# ' REP ' Parts# '/' Parts# EOL
StartSub
END
RETURN

CloseMP:
SeqLab ' CYCL DEF 7.0 DATUM SHIFT' EOL
SeqLab ' CYCL DEF 7.1 IX' PartShiftX# EOL
SeqLab ' CYCL DEF 7.2 IY' PartShiftY# EOL
SeqLab ' CYCL DEF 7.3 IZ' PartShiftZ# EOL
SeqLab ' LBL 0' EOL
CloseSub
SeqLab ' CYCL DEF 7.0 DATUM SHIFT' EOL
SeqLab ' CYCL DEF 7.1 IX' OriginUnShiftPX#('0') EOL
SeqLab ' CYCL DEF 7.2 IY' OriginUnShiftPY#('0') EOL
SeqLab ' CYCL DEF 7.3 IZ' OriginUnShiftPZ#('0') EOL
RETURN

StdLine: {enables CRC on first call, .70}
IF XMove?
IF YMove?
SeqLab ' CYCL DEF 0.0 DIAGONAL PATH' EOL
SeqLab ' CYCL DEF 0.1' DoAbsOrInc MoveX EOL
SeqLab ' CYCL DEF 0.2' DoAbsOrInc MoveY EOL
SeqLab ' CYCL DEF 0.3' FeedRate DoM EOL
IF ZMove?
SeqLab DoAbsOrInc MoveZ CRC FeedRate DoM EOL
END
ELSE
IF ZMove?
SeqLab ' CYCL DEF 0.0 DIAGONAL PATH' EOL
SeqLab ' CYCL DEF 0.1' DoAbsOrInc MoveX EOL
SeqLab ' CYCL DEF 0.2' DoAbsOrInc MoveZ EOL
SeqLab ' CYCL DEF 0.3' FeedRate DoM EOL
ELSE
SeqLab DoAbsOrInc MoveX CRC FeedRate DoM EOL
END
END
ELSE
IF YMove?
IF ZMove?
SeqLab ' CYCL DEF 0.0 DIAGONAL PATH' EOL
SeqLab ' CYCL DEF 0.1' DoAbsOrInc MoveY EOL
SeqLab ' CYCL DEF 0.2' DoAbsOrInc MoveZ EOL
SeqLab ' CYCL DEF 0.3' FeedRate DoM EOL
ELSE
SeqLab DoAbsOrInc MoveY CRC FeedRate DoM EOL
END
ELSE
IF ZMove?
SeqLab DoAbsOrInc MoveZ CRC FeedRate DoM EOL
END
END
END
RETURN

ToolPath:
ResetCRCNum {.72}
EACHFeat
IF PointFeat?
IF NOT FirstFeat?
IF XMove? AND YMove?
SeqLab ' CYCL DEF 0.0 DIAGONAL PATH' EOL
SeqLab ' CYCL DEF 0.1' DoAbs MoveSX EOL
SeqLab ' CYCL DEF 0.2' DoAbs MoveSY EOL
SeqLab ' CYCL DEF 0.3' RapidF DoM EOL
ELSE
SeqLab DoAbs MoveSXYC NoCRC RapidF DoM EOL
END
END
IF AutoCycle?
SeqLab ' CALL LBL ' Program# ' REP' EOL
CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
ELSE
SeqLab ' CYCL CALL' DoM EOL
END
ELSE
IF RapidFeat?
IF XMove?
IF YMove?
SeqLab ' CYCL DEF 0.0 DIAGONAL PATH' EOL
SeqLab ' CYCL DEF 0.1' DoAbsOrInc MoveX EOL
SeqLab ' CYCL DEF 0.2' DoAbsOrInc MoveY EOL
SeqLab ' CYCL DEF 0.3' RapidF DoM EOL
IF ZMove?
SeqLab DoAbsOrInc MoveZ CRC RapidF DoM EOL
END
ELSE
IF ZMove?
SeqLab ' CYCL DEF 0.0 DIAGONAL PATH' EOL
SeqLab ' CYCL DEF 0.1' DoAbsOrInc MoveX EOL
SeqLab ' CYCL DEF 0.2' DoAbsOrInc MoveZ EOL
SeqLab ' CYCL DEF 0.3' RapidF DoM EOL
ELSE
SeqLab DoAbsOrInc MoveX CRC RapidF DoM EOL
END
END
ELSE
IF YMove?
IF ZMove?
SeqLab ' CYCL DEF 0.0 DIAGONAL PATH' EOL
SeqLab ' CYCL DEF 0.1' DoAbsOrInc MoveY EOL
SeqLab ' CYCL DEF 0.2' DoAbsOrInc MoveZ EOL
SeqLab ' CYCL DEF 0.3' RapidF DoM EOL
ELSE
SeqLab DoAbsOrInc MoveY CRC RapidF DoM EOL
END
ELSE
IF ZMove?
SeqLab DoAbsOrInc MoveZ CRC RapidF DoM EOL
END
END
END
ELSE
IF LineFeat?
StdLine
ELSE
IF ArcFeat?
EACHArcSegment
StdLine
NEXTArcSegment
END
END
END
END
NEXTFeat
RETURN

AutoCycCutSub1: {part 1}
SaveSubStatus {save tool position}
SetPass1 {element cut moves}
StartSub
SetSRXYtoSP
SetInc SetFlag('1')
RETURN

AutoCycCutSub2: {part 2}
ToolPath
SetInc SetFlagF('1')
IF Repeats? AND FeedConnect? AND ZshiftOnly?
{.69 removed RapidC} {.71.2 removed CRCOffC, gets turned off in ToolPath}
ELSE
IF FIFO? {.81}
Feed
SeqLab DoAbs ZCP2 NoCRC FeedEnt DoM EOL
ELSE
Rapid
SeqLab DoAbs ZCP2 NoCRC RapidF DoM EOL
END
END
SeqLab ' LBL 0' EOL
CloseSub
SetSRSubXY {restore SR to 1st position value}
SetSRSubMove
RETURN

AutoCycPat:
SetPass2 {position pattern}
ToolPath {call after NewProg for correct sub calls}
SetPass1 {reset}
RETURN

Milling:
IF AutoCycle?
NewProg
AutoCycCutSub1
EntryMove
AutoCycCutSub2
AutoCycPat
ELSE
EntryMove
ToolPath
END
RETURN

G92Sub:
SubWarning
StdSub
IF FeedConnect?
SeqLab DoStrtPos FeedRate DoM EOL
ELSE
SeqLab DoStrtPos RapidF DoM EOL
END
Milling
FinishSub1
FinishSubG92
RETURN

ZonlyRepAutoCycle:
AutoCycPat {write pattern moves and main calls}
StartSub
NewProg
EachCycle
IF FeedConnect?
SeqLab DoAbs ZInPlusInc NoCRC FeedEnt DoM EOL
ELSE
IF FeedEntry?
IF NOT FirstCycle?
SeqLab DoAbs ZCP2PlusInc NoCRC RapidF DoM EOL
END
SeqLab DoAbs ZInPlusInc NoCRC FeedEnt DoM EOL
ELSE
SeqLab DoAbs ZInPlusInc NoCRC RapidF DoM EOL
END
END
IF FirstCycle?
SetStatusOff {protect Z position for incremental sub}
END
SeqLab ' CALL LBL ' Program# ' REP' EOL
NextCycle
SetStatusOn
AutoCycCutSub1 {build element sub}
AutoCycCutSub2
{.69, removed FinishSub1}
IF FeedConnect? {there is no Z up in the sub, .69}
IF FIFO? {.81}
SeqLab DoAbs ZCP2 NoCRC FeedEnt DoM EOL {.69}
ELSE
SeqLab DoAbs ZCP2 NoCRC RapidF DoM EOL {.69}
END
END {.69}
SeqLab ' LBL 0' EOL
CloseSub
{Element shift, not pattern}
RETURN

ZonlyRep:
EachCycle
IF NOT FirstCycle?
IF FeedConnect?
SeqLab DoStrtPos FeedRate DoM EOL
ELSE
SeqLab DoStrtPos RapidF DoM EOL
END
END
IF FeedConnect?
SeqLab DoAbs ZInPlusInc NoCRC FeedEnt DoM EOL
ELSE
IF FeedEntry?
IF NOT FirstCycle?
SeqLab DoAbs ZCP2PlusInc NoCRC RapidF DoM EOL
END
SeqLab DoAbs ZInPlusInc NoCRC FeedEnt DoM EOL
ELSE
SeqLab DoAbs ZInPlusInc NoCRC RapidF DoM EOL
END
END
SeqLab ' CALL LBL ' Program# ' REP' EOL
NextCycle
StartSub
SkipZ
ToolPath
UnSkipZ { Moved from FinishSub1 }
FinishSub1
SeqLab ' LBL 0' EOL
CloseSub
RETURN

CheckPass:
IF AutoCycle? {use the correct StrtPos}
SetPass2
ELSE
SetPass1
END
RETURN

GetStartOfSameTool:
DoOpComments
DoPostScript
CheckPass
RETURN

{Start of executable Prog **************************************************}

{setup and initializations}
InitProg
UseCommaForDecPt
UseSeparateSubCalls
SetMaxSeparateSubCalls('50')
SetMaxRPM('9000')
SetMaxFeed('399.9')
SetAbs
SetFlagF('1')
SetTCZ('4')
IF PSComment? AND UseComments?
'PostScript:' EOL
' Literals: put between single or double quotes.' EOL
' Separate commands and literals with at least one space.' EOL
' A CR ( RETURN key ) will start a new line.' EOL
' Commands: may be capital and/or lower case letters. Separate commands with a space.' EOL
' EndOP -' EOL
' all literals and commands before an ENDOP command' EOL
' will appear at the beginning of the operation. All ' EOL
' literals and commands after an ENDOP command will appear' EOL
' at the end of the operation. ' EOL
' 4thAxisCW(12.5), 4ACW(12.5) -' EOL
' generates a + A move of the value you specify' EOL
' 4thAxisCCW(22.5), 4ACCW(22.5) -' EOL
' generates a - A move of the value you specify' EOL
' 5thAxisCW(30), 5ACW(30) -' EOL
' generates a + B move of the value you specify' EOL
' 5thAxisCCW(22.5), 5ACCW(22.5) -' EOL
' generates a - B move of the value you specify' EOL
' ToolChangeZ(4), TCZ(4) -' EOL
' A modal command used to set the Z value for a tool change position.' EOL
' The ouput processor defaults to Z4.000' EOL
END
EachOp {Start of post processing *********************}
IF FirstOperation?
EOR EOL
IF ToolChangeAtHome?
SetHome
END
IF UseComments?
IF ProgramNameComment?
'( PROGRAM: ' ProgramName$ ' )' EOL
END
IF ProgramComment?
'( ' ProgramComment$ ' )' EOL
END
IF FormatNameComment?
'( FORMAT: ' FormatName$ ' )' EOL
END
IF TimeComment?
'( ' Date$ ' AT ' Time$ ' )' EOL
END
IF MovesComment?
'( OUTPUT IN ABSOLUTE INCHES )' EOL
END
IF PartsComment?
'( PARTS PROGRAMMED: ' Parts# ' )' EOL
END
IF StartToolComment?
'( FIRST TOOL NOT IN SPINDLE )' EOL
END
END
OpenSub
RestoreScale

EachTool
SeqLab ' TOOL DEF ' TLNum# ' L' TLLength# EOL
SeqLab ' TOOL DEF ' TLNum# ' R' DIV# TLDia# NUM#('2') EOL
NextTool

IF MultipleParts? AND AllToolsOnePart?
OpenMP
END
Plane {no output}
SeqLab CallTool EOL
DoOpComments
DoPostScript
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
END
CheckPass
SeqLab DoStrtPos RapidF GearRange EOL
SeqLab DoAbs ZCP1 NoCRC RapidF SpinOn EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
SeqLab DoStrtPos RapidF DoM EOL
END
ELSE
IF NewTool?

{Finish off last Operation}

IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP
END
SeqLab DoTCZ DoM EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
IF ToolChangeAtHome?
SeqLab ' CYCL DEF 0.0 DIAGONAL PATH' EOL
SeqLab ' CYCL DEF 0.1 A X' HomeX# EOL
SeqLab ' CYCL DEF 0.2 A X' HomeY# EOL
SeqLab ' CYCL DEF 0.3' RapidF SpinOff EOL
ELSE
SeqLab NoMove SpinOff EOL
END
SeqLab StopProg EOL

{Start new Operation}

Plane {no output}
SeqLab CallTool EOL
DoOpComments
DoPostScript
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
END
CheckPass
SeqLab DoStrtPos RapidF GearRange EOL
SeqLab DoAbs ZCP1 NoCRC RapidF SpinOn EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
SeqLab DoStrtPos RapidF DoM EOL
END
ELSE
IF SameTool?
DoEndOpPS
IF LAST ProgStop?
SeqLab DoTCZ SpinOff EOL
SeqLab StopProg EOL

{Start new Operation}

GetStartOfSameTool
SeqLab DoStrtPos RapidF GearRange EOL
SeqLab DoAbs ZCP1 NoCRC RapidF SpinOn EOL
ELSE
{Start new Operation}

GetStartOfSameTool
SeqLab DoStrtPos RapidF DoM EOL
END
END
END
END {common point for all operations}
IF Milling?
IF SameTool? AND LAST NOT ProgStop?
IF NOT Equal? LAST ClearancePlane3# ClearancePlane2#
SeqLab DoAbs ZCP2 NoCRC RapidF DoM EOL
END
ELSE
IF NOT Equal? ClearancePlane1# ClearancePlane2#
SeqLab DoAbs ZCP2 NoCRC RapidF DoM EOL
END
END
IF Repeats?
NewProg
IF ZshiftOnly?
IF AutoCycle? {incremental Autocycle sub can have Z moves}
ZonlyRepAutoCycle
ELSE {Z shift only, NOT Auto Cycle}
IF UseSeparateSubCalls? AND CyclesLessThanMaxSubCalls?
FindAnyZMoves {for normal abs subroutine}
IF NoZMoves?
ZonlyRep
ELSE
G92Sub {pattern shift, not element}
END
ELSE {no sep subs desired}
G92Sub
END
END {end Auto Cycle IF}
ELSE {not Z only}
G92Sub
END {end Z only IF}
ELSE {no repeat OPs}
Milling
END
IF AutoCycle?
SeqLab DoAbs ZCP3 NoCRC RapidF DoM EOL
ELSE
IF FIFO? {.81}
SeqLab DoAbs ZCP3 NoCRC FeedEnt DoM EOL
ELSE
SeqLab DoAbs ZCP3 NoCRC RapidF DoM EOL
END
END
ELSE
IF Drilling?
IF Repeats?
NewProg
StdSub
SeqLab DoStrtPos RapidF DoM EOL
END
IF RetractToCP1?
SeqLab DoAbs ZCP1 NoCRC RapidF DoM EOL
ELSE
SeqLab DoAbs ZCP2 NoCRC RapidF DoM EOL
END
GetCycle
IF Tap?
SeqLab ' CYCL DEF 2.0 TAPPING' EOL
SeqLab ' CYCL DEF 2.1 SETUP ' ClearancePlane2# EOL
SeqLab ' CYCL DEF 2.2 DEPTH ' ZDepth# EOL
SeqLab ' CYCL DEF 2.3 DWELL 0' EOL
SeqLab ' CYCL DEF 2.4 F' FeedEntry# EOL
ELSE
SeqLab ' CYCL DEF 1.0 PECKING' EOL
SeqLab ' CYCL DEF 1.1 SETUP ' ClearancePlane2# EOL
SeqLab ' CYCL DEF 1.2 DEPTH ' ZDepth# EOL
SeqLab ' CYCL DEF 1.3 PECKG '
IF Peck?
Peck# EOL
ELSE
IncValue
ZDepth# EOL
AbsOrInc
END
SeqLab ' CYCL DEF 1.4 DWELL '
IF Dwell?
Dwell# EOL
ELSE
'0'EOL
END
SeqLab ' CYCL DEF 1.5 F' FeedEntry# EOL
END
ToolPath
IF Repeats?
FinishSubG92
END
SeqLab DoAbs ZCP3 NoCRC RapidF DoM EOL
END
END
NextOp {loops back to EachOP until last Operation}

{End of program ************************************************************}

{finish last operation}
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP
END
SeqLab DoTCZ DoM EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqLab ' CYCL DEF 0.0 DIAGONAL PATH' EOL
SeqLab ' CYCL DEF 0.1 A X' FIRST HomeX# EOL
SeqLab ' CYCL DEF 0.2 A X' FIRST HomeY# EOL
SeqLab ' CYCL DEF 0.3' RapidF SpinOff EOL
ELSE
SeqLab NoMove SpinOff EOL
END
IF ProgStop?
SeqLab StopProg EOL
END
IF MultipleParts? AND AllToolsOnePart?
CloseMP
END
SeqLab NoMove EOP EOL
ASCII('27') EOL
CloseSub
Post2 {organize Subs into one program}
EOR EOL
IF UseComments?
SetScale('1') {restore scale for comments}
IF FileBytesComment?
'( FILE LENGTH: ' FileBytes# ' CHARACTERS )' EOL
END
IF FileFeetComment?
'( FILE LENGTH: ' FileFeet# ' FEET )' EOL
END
IF FileMetersComment?
'( FILE LENGTH: ' FileMeters# ' METERS )' EOL
END
END
Close
Retag


Wyszukiwarka

Podobne podstrony:
Heidenhain TNC 155 M281 81 3m
Heidenhain TNC 145C M082 79 1
Heidenhain 355 [OT] M566 81 3
Heidenhain 145C (MM) M260 81 3
Heidenhain TNC 151 M115 89 3m
Heidenhain 355 BP M290 81 6m
Heidenhain TNC 155 M281 84
Heid TNC 155 [P&A] M694 81 10m
Heidenhain 355 BP M290 81 4
Heid TNC 151 155 [BS] M891 81 4
Heid TNC 155 [FMI] M816 81 2
Heid TNC 151 BP S1 [MM] M853 81
Heid TNC 151 155 BP M344 81 3
Heid TNC 151A BP S1 M508 81
programow heidenhain 1 Programowanie TNC
Heid TNC 151 [FMI] M815 81

więcej podobnych podstron