WH WaterJet [SW] M560 89


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

{10/30/91
Copied & modified: Fanuc 11M Kitamura M022.81
For: Alexandria Pro Fab
Machine: Mitsubishi 320M
Control: Generic
DWB}

{1/22/93
Modified: Mitsubishi 320M M466.81
For: Gibbs & Associates
Updated to Version 4.1 per Fanuc 6M M001.81.2 Format.
DWB}

{4/21/93
Modified: Mitsubishi 320M M466.81.03
For: Stillwater Metals
Machine: Agee Ultimate Series 6000 Robot WaterJet
Control: Westinghouse Producer CNC Controller
Changed to 3 place decimals.
Commented out all ZMoves.
CWH}

{5/24/93
Modified: WH WaterJet [SW] M560.81.03
For: Stillwater Metals
Changed Prog to match Fanuc 6M M001.81.2.
Post was customized for another customer but doesnt reflect manual supplied.
Set "Keep subs in front of program" in Mach Specs Booleans dialog.
Deleted all ZMove related stuff.
Changed FORMAT#2 from '###.###;0.' to '###.##;0' for FourthDegree# and FifthDegree#.
Changed FORMAT#3 from '*###.###;0.' to '*###.##;0' for FourthDegree# and FifthDegree#.
Changed FORMAT#6 from '####^##0' to '###^#0' for Dwell#.
Added Repeats# to FORMAT#5.
Changed output for Preset at FinishSubG92 and CloseMP subs.
Deleted output at EntryMove, SubWarning, FinishSub1, ZonlyRepAutoCycle and ZonlyRep subs.
Deleted all WorkFixtureOffset support.
Added comment regarding WorkFixtureOffset at OpenMP, forcing EquallySpacedOffsets.
Deleted all CutterRadiusCompensation, Spindle, OpToolID, Offsets, ToolChng and Canned Drilling
support.
IF Coolant? = TRUE, post will output M52/M54 to turn abrasives on/off.
Added PressureOn and PressureOff subs to output various M-code combinations for Pressure on/off.
Changed SubID to SeqC '(DFS,' Program# ')' at StartSub.
Changed SubCall CallLab RepLab RepCycs to '(CLS,' Program# ',' Repeats# ')' at StdSub.
Changed SubCall CallLab RepLab Parts to '(CLS,' Program# ',' Parts# ')' at OpenMP.
Changed SubCall CallLab to '(CLS,' Program# ',1)' at ToolPath PointFeat AutoCycle.
Changed EndSub to '(DFE)' at FinishSubG92 and AutoCycCutSub2 subs.
Forcing call to G92Sub for all Milling Repeats.
Deleted UseSeparateSubCalls at setup and initializations.
Deleted SetMaxSeparateSubCalls('50') at setup and initializations.
Deleted ArcRC at FormatArc, forcing ArcIJC.
Changed ReverseXZArcs to SkipZ at setup and initializations.
Changed SetMaxFeed from ('500') to ('1000') at setup and initializations.
Changed to FIRST TOOL IN SPINDLE at FirstOperation.
Replaced all occurances of Rapid command to Feed and RapidF
DWB}

{7/2/93
Modified: WH WaterJet [SW] M560.81.2
For: Stillwater Metals
Changes made per Phil Wahlquist at Stillwater Metals.
Deleted EOR EOL at FirstOperation and end of Prog.
Moved ProgStop, OptionalStops and G04F1.1 Delay following all occurances of literal 'M52'.
Added ProgStop, OptionalStops and G04F1.1 Delay prior to all occurances of literal 'M51'.
Deleted RapidF at end of Prog.
Deleted Feed 'X0.0Y0.0' at end of Prog.
DWB}

{4/11/94
Modified: WH WaterJet [SW] M560.81.3
For: Stillwater Metals
Changes made per Phil Wahlquist at Stillwater Metals.
Set Use Absolute Arc Centers to TRUE in Compost Booleans dialog.
Changed from 3 place decimals to 4 place decimals in Compost General Defaults dialog.
For I, J, X and Y axis.
Changed from 2 place decimals to 3 place decimals in Compost General Defaults dialog and Prog.
For A & B Axis.
Added M8 to Coolant On field in Compost Commands 3 Dialog.
Added M9 to Coolant Off field in Compost Commands 3 Dialog.
Deleted literal 'M51' at FirstOperation, NewTool and SameTool.
Deleted literal 'M52' at FirstOperation, NewTool, SameTool and end of Prog.
M51/M52 controlled the Water Jet On/Off respectfully.
Deleted condition to test CoolOff at FirstOperation, NewTool, SameTool and end of Prog.
Changed literal 'M53' to CoolOn at FirstOperation, NewTool and SameTool.
Changed literal 'M54' to CoolOff at FirstOperation, NewTool, SameTool and end of Prog.
M53/M54 controlled the Abrasive On/Off respectfully.
DWB}

{11/9/95
Modified: WH WaterJet [SW] M560.81.4
For: Stillwater Metals
Versions: ncCad 4.33.01/ncCAM 4.33.01/ncPost 4.33.08/Catalyst v2.28.04/Compost 4.21.33/1.0a
Changes made per Joel Kuhn at Stillwater Metals.
Updated to Version 4.2 per Fanuc 6M M001.85.02 Format.
Changed MoveXYC ArcIJC to MoveXY ArcIJ at FormatArc.
Added literal 'G04F1.0', Delay, following CoolOff at FirstOperation, NewTool, SameTool and end of
Prog.
Deleted literal 'G04F1.1', Delay, at NewTool, SameTool and end of Prog.
DWB}

{2/12/96, Updated .85 number to .86, no changes necessary, MPK}

{3/22/96, Tested ZOnlyRepAutoCycle, Changed version # to .89, MPK}

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

#1 = '#.00'
#2 = '###.###;0.0'
#3 = '*###.###;0.0'
#4 = '####.####;0'
#5 = '#######0'
#6 = '###^#0'
#7 = '###.0'

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(OriginShiftRX#,4)
FORMAT(OriginShiftRY#,4)
FORMAT(OriginUSRXCTP#,4)
FORMAT(OriginUSRYCTP#,4)
FORMAT(OriginShiftPX#,4)
FORMAT(OriginShiftPY#,4)
FORMAT(OriginUSPXCTP#,4)
FORMAT(OriginUSPYCTP#,4)
FORMAT(ToolDiameter#,4) {.72}
FORMAT(Repeats#,5)
FORMAT(CallMasterNum#,5)
FORMAT(Program#,5) {.72}
FORMAT(Operation#,5) {.72}
FORMAT(Tool#,5) {.72}
FORMAT(Parts#,5) {.72}
FORMAT(Dwell#,6) {.72}
FORMAT(RapidF#,7)

{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}
RotateF
OptCyc1F
MasterOpF
CallMasterOpF
RETURN

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

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

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

EntryMove:
{ This post does not support ZMoves }
RETURN

StartSub:
OpenSub
SeqC '(DFS,' Program# ')' EOL
DoSubComment
RETURN

SubWarning:
{ This post does not support ZMoves }
RETURN

StdSub:
SeqC '(CLS,' Program# ',' Repeats# ')' EOL
StartSub
RETURN

FinishSub1: {part 1}
{ This post does not support CutterRadiusCompensation or ZMoves }
RETURN

FinishSubG92: {part 2}
IF NotEqual? RepeatX# Num#('0')
SeqC Preset 'X' OriginShiftRX#
IF NotEqual? RepeatY# Num#('0')
'Y' OriginShiftRY#
END
EOL
ELSE
IF NotEqual? RepeatY# Num#('0')
SeqC Preset 'Y' OriginShiftRY# EOL
END
END
SeqC '(DFE)' EOL
CloseSub
IF NotEqual? RepeatX# Num#('0')
SeqC Preset 'X' OriginUSRXCTP#('1')
IF NotEqual? RepeatY# Num#('0')
'Y' OriginUSRYCTP#('1')
END
EOL
ELSE
IF NotEqual? RepeatY# Num#('0')
SeqC Preset 'Y' OriginUSRYCTP#('1') EOL
END
END
RETURN

OpenMP:
IF EquallySpacedOffsets?
NewProg
SeqC '(CLS,' Program# ',' Parts# ')' EOL
StartSub
END
RETURN

CloseMP:
IF EquallySpacedOffsets?
IF NotEqual? PartShiftX# Num#('0')
SeqC Preset 'X' OriginShiftPX#
IF NotEqual? PartShiftY# Num#('0')
'Y' OriginShiftPY#
END
EOL
ELSE
IF NotEqual? PartShiftY# Num#('0')
SeqC Preset 'Y' OriginShiftPY# EOL
END
END
SeqC '(DFE)' EOL
CloseSub
IF NotEqual? PartShiftX# Num#('0')
SeqC Preset 'X' OriginUSPXCTP#('1')
IF NotEqual? RepeatY# Num#('0')
'Y' OriginUSPYCTP#('1')
END
EOL
ELSE
IF NotEqual? PartShiftY# Num#('0')
SeqC Preset 'Y' OriginUSPYCTP#('1') EOL
END
END
END
RETURN

DoAbsOrInc:
{ Post does not support ZMoves }
RETURN

DoDrillAbsOrInc:
{ Post does not support ZMoves }
RETURN

RestoreAbsOrInc:
{ Post does not support ZMoves }
RETURN

FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXY ArcIJ
RETURN

ckCRC:
{ This post does not support CutterRadiusCompensation }
RETURN

FormatLine:
DoAbsOrInc ckCRC FeedC MoveXYC
RETURN

ckCRCNum:
{ This post does not support CutterRadiusCompensation }
RETURN

ToolPath:
EACHFeat
IF PointFeat?
IF AutoCycle?
SeqC MoveSXYC EOL
SeqC '(CLS,' Program# ',1)' EOL
CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
ELSE
SeqC MoveSXYC EOL
END
ELSE
IF RapidFeat?
IF XMove? OR YMove?
SeqC RapidFC EOL
SeqC FormatLine EOL
END
ELSE
IF LineFeat?
IF XMove? OR YMove?
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqC FeedRateC EOL
SeqC FormatLine EOL
DecelMove2
END
SeqC DecelFeed EOL
SeqC FormatLine EOL
ELSE
SeqC FeedRateC EOL
SeqC FormatLine EOL
END
END
ELSE
IF ArcFeat?
EACHQuadrant { Do not use NOT, FIRST, LAST or NEXT modifiers in this loop }
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
SeqC ArcFeedC EOL
SeqC FormatArc EOL
DecelMove2
END
SeqC DecelFeed EOL
SeqC FormatArc EOL
ELSE
SeqC ArcFeedC EOL
SeqC FormatArc EOL
END
NEXTQuadrant
END
END
END
END
NEXTFeat
RETURN

WFOStuff:
{ This post does not support WorkFixtureOffsets }
RETURN

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

AutoCycCutSub2: {part 2}
ToolPath
SeqC AbsOrInc EOL
SeqC '(DFE)' 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
AbsOrInc
IF FeedConnect?
SeqC FeedEnt EOL
ELSE
SeqC RapidF EOL
END
SeqC Feed StrtPos EOL
Milling
FinishSub1
FinishSubG92
RETURN

ZonlyRepAutoCycle:
AutoCycPat {write pattern moves and main calls}
StartSub
NewProg
EachCycle
SeqC 'M00' EOL { Lower Spindle }
SeqC '(CLS,' Program# ',1)' EOL
NextCycle
SetStatusOn
AutoCycCutSub1 {build element sub}
AutoCycCutSub2
{.69, removed FinishSub1}
SeqC '(DFE)' EOL
CloseSub
{Element shift, not pattern}
RETURN

ZonlyRep:
EachCycle
IF NOT FirstCycle?
IF FeedConnect?
SeqC FeedEnt EOL
ELSE
SeqC RapidF EOL
END
SeqC StrtPos EOL
END
SeqC 'M00' EOL { Lower Spindle }
SeqC '(CLS,' Program# ',1)' EOL
NextCycle
StartSub
ToolPath
IF NOT FeedConnect?
SeqC 'M00' EOL { Raise Spindle }
END
SeqC '(DFE)' EOL
CloseSub
IF FeedConnect?
SeqC 'M00' EOL { Raise Spindle }
END
RETURN

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

PressureOn:
Save# Num#('0') SpeedRPM#
Save# Num#('1') Num#('0')
Save# Num#('2') Num#('0')
Save# Num#('3') Num#('0')
Save# Num#('4') Num#('0')
Save# Num#('5') Num#('0')
Save# Num#('6') Num#('0')
Save# Num#('7') Num#('0')
Save# Num#('8') Num#('0')
IF GTEqual? Recall# Num#('0') Num#('60000')
Save# Num#('8') Num#('1')
Save# Num#('0') Num#('0')
END
IF GTEqual? Recall# Num#('0') Num#('30000')
Save# Num#('7') Num#('1')
Save# Num#('0') SUB# Recall# Num#('0') Num#('30000')
END
IF GTEqual? Recall# Num#('0') Num#('15000')
Save# Num#('6') Num#('1')
Save# Num#('0') SUB# Recall# Num#('0') Num#('15000')
END
IF GTEqual? Recall# Num#('0') Num#('7500')
Save# Num#('5') Num#('1')
Save# Num#('0') SUB# Recall# Num#('0') Num#('7500')
END
IF GTEqual? Recall# Num#('0') Num#('3800')
Save# Num#('4') Num#('1')
Save# Num#('0') SUB# Recall# Num#('0') Num#('3800')
END
IF GTEqual? Recall# Num#('0') Num#('1800')
Save# Num#('3') Num#('1')
Save# Num#('0') SUB# Recall# Num#('0') Num#('1800')
END
IF GTEqual? Recall# Num#('0') Num#('940')
Save# Num#('2') Num#('1')
Save# Num#('0') SUB# Recall# Num#('0') Num#('940')
END
IF GTEqual? Recall# Num#('0') Num#('470')
Save# Num#('1') Num#('1')
Save# Num#('0') SUB# Recall# Num#('0') Num#('470')
END
SeqC
IF Equal? Recall# Num#('1') Num#('1')
'M67'
END
IF Equal? Recall# Num#('2') Num#('1')
'M69'
END
IF Equal? Recall# Num#('3') Num#('1')
'M71'
END
IF Equal? Recall# Num#('4') Num#('1')
'M73'
END
IF Equal? Recall# Num#('5') Num#('1')
'M75'
END
IF Equal? Recall# Num#('6') Num#('1')
'M77'
END
IF Equal? Recall# Num#('7') Num#('1')
'M79'
END
IF Equal? Recall# Num#('8') Num#('1')
'M81'
END
EOL
RETURN

PressureOff:
SeqC
IF Equal? Recall# Num#('1') Num#('1')
'M68'
END
IF Equal? Recall# Num#('2') Num#('1')
'M70'
END
IF Equal? Recall# Num#('3') Num#('1')
'M72'
END
IF Equal? Recall# Num#('4') Num#('1')
'M74'
END
IF Equal? Recall# Num#('5') Num#('1')
'M76'
END
IF Equal? Recall# Num#('6') Num#('1')
'M78'
END
IF Equal? Recall# Num#('7') Num#('1')
'M80'
END
IF Equal? Recall# Num#('8') Num#('1')
'M82'
END
EOL
RETURN

SkipToLastFeat:
EachFeat
IF LastFeat?
TrackXNO# SPX#
TrackYNO# SPY#
END
NextFeat
RETURN

SetDrillEndOpZ:
{ Post does not support ZMoves }
RETURN

GetStartOfSameTool:
DoOpComments
DoPostScript
PlaneC
CheckPass
RETURN

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

{setup and initializations}
InitProg
SkipZ
UseSeparateSubCalls
SetMaxSeparateSubCalls('50')
SetMaxRPM('60000')
SetMaxFeed('1000')
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?
ProgID1
IF UseComments? AND ProgramNameComment?
'( PROGRAM: ' ProgramName$ ' )'
END
EOL
IF ToolChangeAtHome?
SetHome
END
IF UseComments?
IF ProgramComment?
'( ' ProgramComment$ ' )' EOL
END
IF FormatNameComment?
'( FORMAT: ' FormatName$ ' )' EOL
END
IF TimeComment?
'( ' Date$ ' AT ' Time$ ' )' EOL
END
IF MovesComment?
'( OUTPUT IN ' MoveType$ ' INCHES )' EOL
END
IF PartsComment?
'( PARTS PROGRAMMED: ' Parts# ' )' EOL
END
IF StartToolComment?
'( FIRST TOOL IN SPINDLE )' EOL
END
END
OpenSub
RestoreScale
IF MultipleParts? AND AllToolsOnePart?
OpenMP
END
Plane
Seq CoolOff EOL
SeqC 'G04F1.0' EOL { Delay }
SeqC AbsOrInc RapidF EOL
SeqC Feed 'X0.0Y0.0' EOL { A start point for the Water Jet }
SeqC 'M00' EOL
DoOpComments
DoPostScript
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
AbsOrInc
END
CheckPass
SeqC Feed StrtPos EOL
IF Drilling?
SeqC FeedEnt EOL
ELSE
SeqC FeedRate EOL
END
PressureOn
IF ProgStop? { Stop here so Operator can check Z Height }
SeqC 'M00' EOL
ELSE
IF OptionalStops?
SeqC ProgStop EOL
ELSE
SeqC 'G04F1.1' EOL
END
END
SeqC CoolOn EOL
SeqC 'G04F1.0' EOL { Delay }
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
SeqC StrtPos EOL
END
ELSE
IF NewTool?

{Finish off last Operation}

IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP
END
PressureOff
SeqC CoolOff EOL
SeqC 'G04F1.0' EOL { Delay }
IF LAST ProgStop?
SeqC 'M00' EOL { Customer Request }
ELSE
IF OptionalStops?
SeqC ProgStop EOL
END
END
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
IF ToolChangeAtHome?
SeqC RapidFC EOL
SeqC AbsOrInc Feed Home EOL
END

{Start new Operation}

PlaneC
Seq AbsOrInc RapidF EOL
DoOpComments
DoPostScript
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
AbsOrInc
END
CheckPass
SeqC Feed StrtPos EOL
SeqC ProgStop EOL { Optional Stop here so Operator can check Z Height }
IF Drilling?
SeqC FeedEnt EOL
ELSE
SeqC FeedRate EOL
END
PressureOn
IF ProgStop? { Stop here so Operator can check Z Height }
SeqC 'M00' EOL
ELSE
IF OptionalStops?
SeqC ProgStop EOL
ELSE
SeqC 'G04F1.1' EOL
END
END
SeqC CoolOn EOL
SeqC 'G04F1.0' EOL { Delay }
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
SeqC StrtPos EOL
END
ELSE
IF SameTool?
DoEndOpPS
PressureOff
SeqC CoolOff EOL
SeqC 'G04F1.0' EOL { Delay }
IF LAST ProgStop?
SeqC 'M00' EOL { Customer Request }
ELSE
IF OptionalStops?
SeqC ProgStop EOL { Make sure cut part is not in the way of cutting nozzle }
END
END

{Start new Operation}

GetStartOfSameTool
SeqC AbsOrInc RapidF EOL
SeqC Feed StrtPos EOL
SeqC ProgStop EOL { Optional Stop here so Operator can check Z Height }
IF Drilling?
SeqC FeedEnt EOL
ELSE
SeqC FeedRate EOL
END
PressureOn
IF ProgStop? { Stop here so Operator can check Z Height }
SeqC 'M00' EOL
ELSE
IF OptionalStops?
SeqC ProgStop EOL
ELSE
SeqC 'G04F1.1' EOL
END
END
SeqC CoolOn EOL
SeqC 'G04F1.0' EOL { Delay }
END
END
END {common point for all operations}
IF Milling?
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
ELSE
IF Drilling?
IF Repeats?
NewProg
StdSub
SeqC RapidFC EOL
SeqC AbsOrInc Feed StrtPos EOL
END
GetCycle
IF CallMasterOp?
SeqC '(CLS,' CallMasterNum# ',1)' EOL
SkipToLastFeat
ELSE
TrackZNO# FIRST SPZ#
IF MasterOp?
SetFlag('1') {std sep sub Zreps in effect}
NewMasterProg
SeqC '(CLS,' CallMasterNum# ',1)' EOL
StartSub
ToolPath
SeqC '(DFE)' EOL
CloseSub
SetFlagF('1') {not std sep sub Zreps in effect}
ELSE
ToolPath
END
END
SetDrillEndOpZ
IF Repeats?
FinishSubG92
END
END
END
NextOp {loops back to EachOP until last Operation}

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

{finish last operation}
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP
END
PressureOff
SeqC CoolOff EOL
SeqC 'G04F1.0' EOL { Delay }
IF ProgStop?
SeqC 'M00' EOL { Customer Request }
ELSE
IF OptionalStops?
SeqC ProgStop EOL
END
END
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqC RapidFC EOL
SeqC AbsOrInc Feed FirstHome EOL
END
IF MultipleParts? AND AllToolsOnePart?
CloseMP
END
SeqC EOP EOL
CloseSub
Post2 {organize Subs into one program}
Close
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

Podobne podstrony:
sw gimnazjum 6
Bandit IV AB [DM] MV32 89 1
CO ZYSKUJE SAMOBÓJCA (Słowa mistyków Kościoła św )
ŻYCIE I MISJA ŚW BERNADETTY SOUBIROUS
Godzinki ku czci Św Michała Archanioła tekst
Fadal Format 2 [MM] MW60 89
Fadal Format 2 [PEP] M116 89 1
Fanuc MF M4 MS NS SSI M421 89 2
Fanuc 10M MVJR [DM] M740 89
SW B
Yasnac MX1 MS [BI] M076 89 2

więcej podobnych podstron