Heidenhain TNC 155 M281 84


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

{.68m, created metric version and .68 support, 12/14/89, Stefan VŠlimaa}
{.69m, new repeat offset shift commands, wfg}
{.70m, added missing END in ToolPath, wfg--TABLE resources are missing}

{7/24/90, Added InitProg globally to posts with this remark, DWB}
{7/24/90, Replaced all occurances of SetSRXYZero with SetSRXYtoSP, DWB}
{9/19/90, Updated to .71 with changes done for customer not reported to
GIBBS, sorry Stefan VŠlimaa}

{9/28/90 Comparison report from Stefan's version and our's:
Modified FORMAT(OriginUnShiftPX#,2).
Added FORMAT(SpeedRPM#,3).
Modified SetScale('24.5') to SetScale('25.4').
Modified all occurances of 'F2500' to 'F9999'.
Modified the literal M08 with the IF CoolantOff? postscript boolean in AutoCycCutSub2.
Modified the literal M09 with the IF CoolantOff? postscript boolean in FinishSub1, ZonlyRepAutoCycle and ZonlyRep.
Added IF ToolChangeAtHome? boolean and SetHome command to FirstOperation.
Modified BLK FORM MIN to BLK FORM 0.1 in FirstOperation.
Combined the StockMin# commands on one line.
Modified BLK FORM MAX to BLK FORM 0.2 in FirstOperation.
Combined the StockMax# commands on one line.
Deleted ' LBL 1' from FirstOperation
Deleted ' TOOL CALL 0 Z S 0.000' from FirstOperation.
Deleted ' L Z' ClearancePlane1# ' R0 F9999 M' from FirstOperation
Deleted ' L X' HomeX# ' Y' HomeY# ' R0 F9999 M06' from FirstOperation
Deleted ' LBL 0' from FirstOperation
Modified TABLE(1800,SpeedRPM#,1) to TABLE(4001,SpeedRPM#,1) in FirstOperation and NewTool.
Modified ' CALL LBL 1 REP' to ' L Z' ClearancePlane1# ' R0 F9999' SpinOff in NewTool.
Added IF ToolChangeAtHome? boolean at end of prog.
Moved Post to before literal END PGM at end of prog.
DWB}

{10/2/90
Copied & modified: Heidenhain TNC 155 M281.70m
For: Gibbs & Associates
Machine:
Control: Heidenhain TNC 155
Deleted argument from FORMAT(OriginUnShiftPX#,2).
Modified SetSRXYZero to SetSRXYtoSP in AutoCycCutSub1.
Added InitProg at beginning of executable prog.
Made massive changes to cleanup logic and readability.
Updated to Version 3.2 per Fanuc 6M M001.76.1 Format.
DWB}

{10/8/90
Copied & modified: Heid TNC 155 M281.76.1m
For: Gibbs & Associates
Machine:
Control: Heidenhain TNC 155
Added ArcI#, ArcJ# and SPZ# to FORMAT list.
Added SPZ# to EntryMove for AutoCycle entries.
Added IF Metric ' MM' ELSE ' INCH' END at FirstOperation and at end of prog.
DWB}

{12/16/92
Updated: Heid TNC 155 M281.76.1m
For: Gibbs & Associates
Updated to Version 4.1 per Fanuc 6M M001.81.2 Format.
Combined routines with Heid TNC 151 BP M139.81.2m
DWB}

{12/3/93
Modified: Heidenhain TNC 155 M281.81.2m
To: Heidenhain TNC 155 M281.81.3m
Fixed the RestoreScale function to work with both english and metric parts. Also removed
unneeded setscale commands and replaced them with math ( number ) commands.
[cwh]}

{2/22/96
Copied: Heidenhain TNC 155 M281.81.3m
Created: Heidenhain TNC 155 M281.81.3
For: Gibbs & Associates
Versions: ncCad 4.33.02/ncCAM 4.33.01/ncPost 4.33.09/Catalyst v3.02.02/Compost 4.21.34/1.0a
Changes made per Pete Jackson.
Converted from Metric to English.
DWB}

{3/24/96, Updated Heidenhain TNC 155 M281.81.3 to 84 format, JR}

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

#1 = '####0.000'
#2 = '###.###;0.'
#3 = '*###.###;0.'
#4 = 'Ä…###0.0000'
#5 = '#######0'
#6 = '###0'

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(Dwell#,1)
FORMAT(XStockMin#,4)
FORMAT(XStockMax#,4)
FORMAT(YStockMin#,4)
FORMAT(YStockMax#,4)
FORMAT(ZStockMin#,4)
FORMAT(ZStockMax#,4)
FORMAT(HomeX#,4)
FORMAT(HomeY#,4)
FORMAT(SPZ#,4)
FORMAT(EPX#,4)
FORMAT(EPY#,4)
FORMAT(EPZ#,4)
FORMAT(StartPosX#,4)
FORMAT(StartPosY#,4)
FORMAT(ArcI#,4)
FORMAT(ArcJ#,4)
FORMAT(ZDepth#,4)
FORMAT(ClearancePlane2#,4)
FORMAT(RepeatX#,4)
FORMAT(RepeatY#,4)
FORMAT(RepeatZ#,4)
FORMAT(PartShiftX#,4)
FORMAT(PartShiftY#,4)
FORMAT(PartShiftZ#,4)
FORMAT(OriginUnShiftPX#,4)
FORMAT(OriginUnShiftPY#,4)
FORMAT(OriginUnShiftPZ#,4)
FORMAT(OriginUnShiftRX#,4)
FORMAT(OriginUnShiftRY#,4)
FORMAT(OriginUnShiftRZ#,4)
FORMAT(Peck#,4)
FORMAT(ToolDiameter#,4)
FORMAT(TLLength#,4)
FORMAT(TLDia#,4)
FORMAT(DIV#,4)
FORMAT(TLNum#,5)
FORMAT(Program#,5)
FORMAT(Operation#,5)
FORMAT(Tool#,5)
FORMAT(Parts#,5)
FORMAT(SpeedRPM#,6)
FORMAT(FeedEntry#,6)

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

RestoreScale:
IF Metric? { CAM file is in Metric, tools and tool path }
SetScale('.03937007874') { change to English, this is an English post }
ELSE
SetScale('1')
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}
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

DoL:
' L '
Return

DoM:
' M'
Return

Space:
' '
Return

DoR0:
Space Space ' R0'
Return

DoZR0:
Space ' ' DoR0
Return

RF: { RapidF }
' F9999'
Return

CheckCoolOn:
IF CoolOff?
DoM
ELSE
CoolOn
END
RETURN

CheckCoolOff:
IF CoolOff?
DoM
ELSE
CoolOff
END
RETURN

EntryMove:
SeqLab DoL
IF AutoCycle? OR NOT AbsValue?
' IZ' SPZ#
ELSE
ZIn
END
DoZR0
IF FeedEntry?
FeedEnt
ELSE
RF
END
DoM EOL
RETURN

StartSub:
OpenSub
DoSubComment
SeqLab ' LBL ' Program# EOL
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?
SeqLab DoL ZCP3 DoZR0
IF AutoCycle?
RF
ELSE
IF FIFO? {.81}
FeedEnt
ELSE
RF
END
END
DoM EOL
END
RETURN

FinishSubG92: {part 2}
SeqLab ' CYCL DEF 7.0 NOLLPUNKT' 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 NOLLPUNKT' 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 EquallySpacedOffsets?
NewProg
SeqLab ' CALL LBL ' Program# ' REP ' Parts# ' / ' Parts# EOL
StartSub
ELSE
'( NOTE: This post processor does not support work fixture offsets!!! )' EOL
'( Reprocess using Equally Spaced Offsets!!! )' EOL
END
RETURN

CloseMP:
IF EquallySpacedOffsets?
SeqLab ' CYCL DEF 7.0 NOLLPUNKT' 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 NOLLPUNKT' 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
END
RETURN

DoAbsOrInc:
IF Flag?('1') AND AbsoluteMoves?
IF ZMove? AND AbsValue?
SetInc
ELSE
IF NOT ZMove? AND NOT AbsValue?
SetAbs
END
END
END
RETURN

RestoreAbsOrInc:
IF Flag?('1') AND AbsoluteMoves? AND NOT AbsValue?
SetAbs
END
RETURN

CRC:
IF CutterRadiusCompensation?
IF CRCleft?
' RL'
ELSE
' RR'
END
ELSE
DoZR0
END
RETURN

CheckMove:
IF AutoCycle? OR NOT AbsValue?
IF ArcFeat?
' IX' EPX# ' IY' EPY#
ELSE
IF XMove?
' IX' EPX#
END
IF YMove?
' IY' EPY#
END
END
IF ZMove?
' IZ' EPZ#
END
ELSE
IF RapidFeat?
MoveXYC
ELSE
MoveX MoveY
END
MoveZC
END
Space ' '
IF NOT ArcFeat?
' '
END
RETURN

FormatArc:
DoAbsOrInc
IF AutoCycle? OR NOT AbsValue?
SeqLab ' CC IX' ArcI# ' IY' ArcJ# EOL
ELSE
SeqLab ' CC ' ArcIJ EOL
END
SeqLab ' C ' CheckMove
IF ArcCW?
'DR-'
ELSE
'DR+'
END
CRC
RETURN

StdLine:
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqLab DoL DoAbsOrInc CheckMove CRC FeedRate DoM EOL
DecelMove2
END
SeqLab DoL DoAbsOrInc CheckMove CRC DecelFeed DoM EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqLab DoL DoAbsOrInc CheckMove CRC FeedRate DoM EOL
END
END
RETURN

ToolPath:
EACHFeat
IF PointFeat?
IF FirstFeat?
SeqLab ' CYCL CALL ' DoM EOL
ELSE
SeqLab DoL MoveSXYC DoR0 RF ' M99' EOL
END
IF AutoCycle?
SeqLab ' CALL LBL ' Program# ' REP' EOL
CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
END
ELSE
IF RapidFeat?
IF LastFeat? AND AutoCycle? {.70}
SeqLab DoL DoAbsOrInc CheckMove 'R0' RF DoM EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqLab DoL DoAbsOrInc CheckMove CRC RF DoM EOL
END
END
ELSE
IF LineFeat?
IF AutoCycle? {.70}
IF LastFeat?
SeqLab DoL DoAbsOrInc CheckMove 'R0' FeedRate DoM EOL
ELSE
IF ZMove? {skip CRCOn until first non-Z move line, skipping ramps}
SeqLab DoL DoAbsOrInc CheckMove 'R0' FeedRate DoM EOL
ELSE
StdLine {enables CRC on first call}
END
END
ELSE
StdLine
END
ELSE
IF ArcFeat?
EACHQuadrant
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
SeqLab FormatArc ArcFeed DoM EOL
DecelMove2
END
SeqLab FormatArc DecelFeed DoM EOL
ELSE
SeqLab FormatArc ArcFeed DoM EOL
END
NEXTQuadrant
END
END
END
END
NEXTFeat
RestoreAbsOrInc
RETURN

WFOStuff:
{ NOTE: This Post Processor does not support WorkFixtureOffsets. }
RETURN

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

AutoCycCutSub2: {part 2}
ToolPath
SetAbs
IF Repeats? AND FeedConnect? AND ZshiftOnly?
{.69 removed RapidC} {.71.2 removed CRCOffC, gets turned off in ToolPath}
ELSE
SeqLab DoL ZCP2 DoZR0
IF FIFO? {.81}
FeedEnt
ELSE
RF
END
DoM EOL
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
SetAbs
SeqLab DoL StrtPos ' ' DoR0
IF FeedConnect?
FeedEnt
ELSE
RF
END
DoM EOL
Milling
FinishSub1
FinishSubG92
RETURN

ZonlyRepAutoCycle:
AutoCycPat {write pattern moves and main calls}
StartSub
NewProg
EachCycle
SetSRXYtoEP
IF FeedConnect?
IF NOT FirstCycle?
IF SPXMove? OR SPYMove?
SetInc
SeqLab DoL 'IX' StartPosX# 'IY' StartPosY# ' ' DoR0 FeedRate DoM EOL
SetAbs
END
END
SeqLab DoL ZInPlusInc DoZR0 FeedEnt DoM EOL
ELSE
IF NOT FirstCycle?
IF SPXMove? OR SPYMove?
SetInc
SeqLab DoL 'IX' StartPosX# 'IY' StartPosY# ' ' DoR0 RF DoM EOL
SetAbs
IF FeedEntry?
SeqLab DoL ZCP2PlusIncC DoZR0 RF DoM EOL
SeqLab DoL ZInPlusInc DoZR0 FeedEnt DoM EOL
ELSE
SeqLab DoL ZInPlusInc DoZR0 RF DoM EOL
END
ELSE
IF FeedEntry?
SeqLab DoL ZCP2PlusIncC DoZR0 RF DoM EOL
SeqLab DoL ZInPlusInc DoZR0 FeedEnt DoM EOL
ELSE
SeqLab DoL ZInPlusInc DoZR0 RF DoM EOL
END
END
ELSE
IF FeedEntry?
SeqLab DoL ZInPlusInc DoZR0 FeedEnt DoM EOL
ELSE
SeqLab DoL ZInPlusInc DoZR0 RF DoM EOL
END
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}
SeqLab DoL ZCP2 DoZR0
IF FIFO? {.81}
FeedEnt
ELSE
RF
END
DoM EOL {.69}
END {.69}
SeqLab ' LBL 0' EOL
CloseSub
{Element shift, not pattern}
RETURN

ZonlyRep:
EachCycle
IF NOT FirstCycle?
SeqLab DoL StrtPos ' ' DoR0
IF FeedConnect?
FeedEnt
ELSE
RF
END
DoM EOL
END
IF FeedConnect?
SeqLab DoL ZInPlusInc DoZR0 FeedEnt DoM EOL
ELSE
IF FeedEntry?
IF NOT FirstCycle?
SeqLab DoL ZCP2PlusIncC DoZR0 RF DoM EOL
END
SeqLab DoL ZInPlusInc DoZR0 FeedEnt DoM EOL
ELSE
SeqLab DoL ZInPlusInc DoZR0 RF DoM EOL
END
END
SeqLab ' CALL LBL ' Program# ' REP' EOL
NextCycle
StartSub
TrackZNO# FIRST SPZ#
ToolPath
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
ReverseXZArcs
SetFlood
UseSeparateSubCalls
SetMaxSeparateSubCalls('50')
SetMaxRPM('10000')
SetFlagF('1') { Milling ZShiftOnly SepSubs }
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
END
EachOp {Start of post processing *********************}
IF FirstOperation?
SeqLab ' BEGIN PGM ' ProgramName$ ' INCH' EOL
IF ToolChangeAtHome?
SetHome
END
SeqLab ' BLK FORM 0.1 Z X' XStockMin# ' Y' YStockMin# ' Z' ZStockMin# EOL
SeqLab ' BLK FORM 0.2 X' XStockMax# ' Y' YStockMax# ' Z' ZStockMax# EOL
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
EachTool
SetScale('1')
SeqLab ' TOOL DEF ' TLNum#
RestoreScale
' L' TLLength#
Space Space ' R' DIV# TLDia# NUM#('2') EOL { TLRadius# }
NextTool
OpenSub
RestoreScale
IF MultipleParts? AND AllToolsOnePart?
OpenMP
END
SetAbs
Plane {no output}
DoOpComments
DoPostScript
SeqLab ' TOOL CALL ' Tool# ' Z ' TABLE(4001,SpeedRPM#,1) EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
END
CheckPass
SeqLab DoL StrtPos ' ' DoR0 RF SpinOn EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
SeqLab DoL StrtPos ' ' DoR0 RF DoM EOL
END
ELSE
IF NewTool?

{Finish off last Operation}

IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP
END
SeqLab DoL ZCP1 ' ' DoR0 RF SpinOff EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
IF LAST ProgStop?
SeqLab ' STOP M02' EOL
END

{Start new Operation}

DoOpComments
DoPostScript
SetAbs
Plane {no output}
SeqLab ' TOOL CALL ' Tool# ' Z ' TABLE(4001,SpeedRPM#,1) EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
END
CheckPass
SeqLab DoL StrtPos ' ' DoR0 RF SpinOn EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
SeqLab DoL StrtPos ' ' DoR0 RF DoM EOL
END
ELSE
IF SameTool?
DoEndOpPS
IF LAST ProgStop?
SeqLab ' STOP M02' EOL
END

{Start new Operation}

GetStartOfSameTool
SetAbs
Plane {no output}
SeqLab DoL StrtPos ' ' DoR0 RF DoM EOL
END
END
END {common point for all operations}
IF Milling?
SeqLab DoL ZCP2 DoZR0 RF CheckCoolOn EOL
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?
SetFlag('1') { Milling ZShiftOnly SepSubs }
ZonlyRep
SetFlagF('1')
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
SeqLab DoL ZCP3 DoZR0
IF AutoCycle?
RF
ELSE
IF FIFO? {.81}
FeedEnt
ELSE
RF
END
END
CheckCoolOff EOL
ELSE
IF Drilling?
IF Repeats?
NewProg
StdSub
SeqLab DoL StrtPos ' ' DoR0 RF DoM EOL
END
SeqLab DoL ZCP2 DoZR0 RF CheckCoolOn EOL
GetCycle
IF Tap?
SeqLab ' CYCL DEF 2.0 G€NGBORRNING' EOL
SeqLab ' CYCL DEF 2.1 AVST ' ClearancePlane2# EOL
SeqLab ' CYCL DEF 2.2 DJUP ' ZDepth# EOL
SeqLab ' CYCL DEF 2.3 V.TID 0' EOL
SeqLab ' CYCL DEF 2.4' FeedEnt EOL
ELSE
SeqLab ' CYCL DEF 1.0 DJUPBORRNING' EOL
SeqLab ' CYCL DEF 1.1 AVST ' ClearancePlane2# EOL
SeqLab ' CYCL DEF 1.2 DJUP ' ZDepth# EOL
SeqLab ' CYCL DEF 1.3 INSTICK '
IF Peck?
Peck#
ELSE
SetInc ZDepth# SetAbs
END
EOL
SeqLab ' CYCL DEF 1.4 V.TID '
IF Dwell?
Dwell#
ELSE
'0'
END
EOL
SeqLab ' CYCL DEF 1.5' FeedEnt EOL
END
ToolPath
IF Repeats?
FinishSubG92
END
SeqLab DoL ZCP3 DoZR0 RF CheckCoolOff 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 ' TOOL CALL 0 Z S0.000' EOL
SeqLab DoL ZCP1 DoZR0 RF EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
SeqLab DoL
IF ToolChangeAtHome?
Home
ELSE
Space Space
END
Space Space 'R0' RF SpinOff EOL
SeqLab ' STOP M02' EOL
IF MultipleParts? AND AllToolsOnePart?
CloseMP
END
Post
SeqLab ' END PGM ' ProgramName$ ' INCH' EOL
Close
Retag
IF UseComments?
SetScale('1') {restore scale for comments}
Reopen
IF FileBytesComment?
'( FILE LENGTH: ' FileBytes# ' CHARACTERS )' EOL
END
IF FileFeetComment?
'( FILE LENGTH: ' FileFeet# ' FEET )' EOL
END
IF FileMetersComment?
'( FILE LENGTH: ' FileMeters# ' METERS )' EOL
END
Close
END


Wyszukiwarka