Centurion IV [IS] M387 89


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

{1/25/91
Modified: Centurion IV Comet M337.76.2
For: All American Racers & Jungst Scientific
Updated to Version 3.2 per Fanuc 6M M001.76.1 Format.
Moved SpinOff to be before FirstHome on the same line at end of prog.
NOTE: Control automatically enters into incremental mode when executing a subroutine.
Added sub format back in, made all sub output incremental per Yasnac MX3 Mat 1000 M265.76.1.
Modified Peck drilling parameters P306 and P307.
DWB}

{2/4/91
Modified: Centurion IV (IS) M387.76.1
For: All American Racers & Jungst Scientific
Modified Sub Cycle.
Added eight 'END's after main program per Milltronics instructions:
The control can hold 9 programs, with the ninth being reserved for subroutines. To signal
the END OF PROGRAM to the control, the last CR in the program must be followed by a three
character set, 'END', then a CR. The next program can then follow. The maximum number of
'END's that can be on a tape is 9. Subroutines are stored in Program 9, after eight 'END's
have been read.
Fixed Drill Peck Cycle with Chip Breaker. Was outputting 'G73' per Fanuc format.
Changed it to 'G87' per Centurion manual.
JC}

{4/3/91
Modified: Centurion IV (IS) M387.76.2
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 6M M001.80 Format.
DWB}

{5/3/91
Modified: Centurion IV (IS) M387.79
For: All American Racers & Jungst Scientific
Changes made per conversations with John O'Malley and Milltronics.
Control must read all FeedEnt, FeedRate and Speed output BEFORE axis motion on a block.
Moved FeedEnt between Feed and ZIn 6 places.
Moved FeedRateC between FeedC and MoveXYZC 4 places.
Moved DecelFeed between FeedC and MoveXYZC 1 place.
Split FormatArc sub into two parts to output ArcFeed and DecelFeed in correct position.
Moved SpeedC between FeedEnt and StrtPos in SameTool 2 places.
Interpretation of manual was incorrect concerning subroutine line numbers.
Originally it was thought that all blocks within the subroutine must start with 'N9xxx'.
Therefore SubSeq and DoSeq subs were created to output a literal 'N9?' The manual states
that the control will resequence any lines that do not contain a line number, and through
this resequencing, the 'N9' line numbers were converting them to an odd-looking output,
resulting in the controls inability to load the subroutine. When the 'N9' line numbers were
deleted from the output, the control happily accepted the subroutines.
Deleted SubSeq sub and changed all other occurances of SubSeq to SeqC.
Deleted DoSeq sub and changed all other occurances of DoSeq to SeqC.
Changed SetInc to SeqC IncValue EOL.
Changed SetAbsOrInc to SeqC AbsOrInc EOL.
Added logic to handle Arcs in all Planes.
Added literal 'M6' Program# to StartSub which allows control to handle ZMoves correctly in
incremental subs. The manual states that 'M6xx' forces subroutines specified by 'xx' to be
re-cutter compensated, and is used after a tool change, 'G20' or 'G21' command. 'G20'
Adds/Subtracts to Tool Offsets, and 'G21' enters the Tool Offset Table.
DWB}

{9/5/91
Modified: Centurion IV (IS) M387.80
For: All American Racers & Jungst Scientific
Changes made per Jungst Scientific.
Added comments explaining G & M codes.
Added 'G1' to Tool Length Offset Label in Strings 2 in Form.
Changed OpToolID to ToolOfst in FirstOperation and NewTool.
Added ToolOfst to SameTool ProgStop and NewToolOffset conditions.
Added ZCP1 to SameTool ProgStop and NewToolOffset conditions.
Added RapidC ZCP3 at end of AutoCycles that Repeat in Z in IF Milling? section.
Added RapidC ZCP3 at end of Exit/Entry Milling Operations that Repeat in Z in IF Milling? section.
Changed ZCP3C to ZCP3 at end of IF Drilling? section.
DWB}

{8/30/94
Modified: Centurion IV [IS] M387.81
Updated to Fanuc 6M IncSubs M001.81.2, this processor was not using inc subs for MultipleParts!
Changed to use Tag# instead of Program# for subs due to # needed at end of sub also.
Jim Radcliffe}

{9/27/95, Updated Centurion IV [IS] M387.81.2 to .85 format per Fanuc 6M IncSubs M001.85, JR}

{2/6/96, Updated .85 version to .86, MPK}

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


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

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

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ToolDiameter#,4) {.72}
FORMAT(ClearancePlane1#,4)
FORMAT(SUB#,4)
FORMAT(Operation#,5) {.72}
FORMAT(Tool#,5) {.72}
FORMAT(Parts#,5) {.72}
FORMAT(Dwell#,6) {.72}
FORMAT(Peck#,7)
FORMAT(Tag#,8)
FORMAT(CallMasterNum#,5)

{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: ' Tag# ' )' 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

CheckAbsOrInc:
IF Flag?('1') {we are in a MultipleParts sub}
IncValue
ELSE
IF Flag?('2') {we are in a Repeats sub}
IncValue
ELSE {we are not in a sub}
AbsOrInc
END
END
RETURN

EntryMove:
IF FeedEntry?
SeqC Feed FeedEnt ZIn EOL
ELSE
SeqC RapidC ZIn EOL
END
RETURN

StartSub:
OpenSub
SeqC 'G7' Tag# EOL { G7xx Defines Subroutines }
SeqC 'M6' Tag# EOL { M6xx Forces Subroutines to be re-Cutter Compensated }
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

FinishSub1: {part 1}
SeqC CRCOffC
IF NOT FeedConnect?
IF AutoCycle?
ZCP3C
ELSE
IF FIFO? {.81}
FeedC ZCP3C FeedEntC
ELSE
RapidC ZCP3C
END
END
END
EOL
RETURN

HomeOrStrtPos:
IF AllToolsOnePart?
Home
ELSE {OneToolAllParts}
StrtPos
END
RETURN

DrillClearancePlane:
IF RetractToCP1?
IF SameTool?
IF NotEqual? LAST ClearancePlane3# ClearancePlane1#
SeqC 'Z' ClearancePlane1# EOL {ZCP1 does not output in incremental}
END
END
ELSE
SeqC ZCP2C EOL
END
RETURN

ECPZmove:
IF OneToolAllParts? AND ExitClearancePlane?
IF Milling?
SeqC ZCP2 EOL
ELSE {Drilling}
IF RetractToCP1?
SeqC ZCP1 EOL
ELSE
SeqC ZCP2 EOL
END
END
END
RETURN

OpenMP:
IF WorkFixtureOffsets?
'( This Processor does not support Work Fixture Offsets )' EOL
ELSE
TagUp TagInc
EachPart
SeqC AbsOrInc Rapid HomeOrStrtPos EOL
ECPZmove
SeqC 'G8' Tag# EOL
IF FirstPart?
SetStatusOff
END
NextPart
SetStatusOn
StartSub
SeqC IncValue EOL
SetFlag('1') {set true, we are in a MP sub}
END
RETURN

CloseMP:
IF WorkFixtureOffsets?
'( This Processor does not support Work Fixture Offsets )' EOL
ELSE
SeqC 'G7' Tag# EOL
CloseSub
TagDown
SetFlagF('1')
SeqC AbsOrInc EOL
END
RETURN

FormatArc1:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
RETURN

FormatArc2:
ArcR ArcIJ
IF XYPlane?
MoveXY MoveZC
ELSE
IF XZPlane?
MoveX MoveYC MoveZ
ELSE { YZPlane }
MoveXC MoveY MoveZ
END
END
RETURN

ToolPath:
EACHFeat
IF PointFeat?
IF AutoCycle?
IF NOT FirstFeat?
SeqC RapidC MoveSXYC EOL
END
SeqC 'G8' Tag# EOL { G8xx Call Subroutine }
CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
ELSE
IF NOT FirstFeat?
SeqC MoveSXYC EOL
END
END
ELSE
IF RapidFeat?
IF LastFeat?
SeqC CRCOffC RapidC MoveXYZC EOL
ELSE
IF ZMove? {skip CRCOn until first non-Z move line, skipping ramps}
SeqC RapidC MoveXYZC EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqC CRCOnC RapidC MoveXYZC EOL
END
END
END
ELSE
IF LineFeat?
IF LastFeat?
SeqC CRCOffC FeedC FeedRateC MoveXYZC EOL
ELSE
IF ZMove? {skip CRCOn until first non-Z move line, skipping ramps}
SeqC FeedC FeedRateC MoveXYZC EOL
ELSE
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqC CRCOnC FeedC FeedRateC MoveXYZC EOL
DecelMove2
END
SeqC CRCOnC FeedC DecelFeed MoveXYZC EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqC CRCOnC FeedC FeedRateC MoveXYZC EOL
END
END
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 FormatArc1 ArcFeedC FormatArc2 EOL
DecelMove2
END
SeqC FormatArc1 DecelFeed FormatArc2 EOL
ELSE
SeqC FormatArc1 ArcFeedC FormatArc2 EOL
END
NEXTQuadrant
END
END
END
END
NEXTFeat
RETURN

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

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

AutoCycCutSub2: {part 2}
ToolPath
SeqC CheckAbsOrInc
IF Repeats? AND FeedConnect? AND ZshiftOnly?
ELSE
IF FIFO? {.81}
FeedC ZCP2 FeedEntC
ELSE
RapidC ZCP2
END
END
EOL
SeqC 'G7' Tag# EOL { G7xx Defines Subroutines }
CloseSub
TagDown
SetSRSubXY {restore SR to 1st position value}
SetSRSubMove
RETURN

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

NoReps:
IF AutoCycle?
TagUp TagInc
AutoCycCutSub1
EntryMove
AutoCycCutSub2
AutoCycPat
ELSE
EntryMove
ToolPath
END
RETURN

RepAutoCycle:
EachRep
IF FirstCycle?
SeqC 'G8' Tag# EOL
StartSub
SetFlag('2') {set true, we are in a Repeats sub}
SeqC IncValue EOL
TagUp TagInc
AutoCycPat
AutoCycCutSub1
EntryMove
AutoCycCutSub2
SeqC 'G7' Tag# EOL { G7xx Defines Subroutines }
CloseSub
SetFlagF('2')
ELSE
ResetPass2
SeqC CheckAbsOrInc StrtPos EOL
SeqC 'G8' Tag# EOL
SetSRSubXYRC
END
NextRep
TagDown
RETURN

RepZOnlyAutoCycle:
AutoCycPat
StartSub
SetFlag('2') {set true, we are in a Repeats sub}
SeqC IncValue EOL
TagUp TagInc
EachRep
SetSRXYtoEP
IF FeedConnect?
IF NOT FirstCycle?
IF SPXMove? OR SPYMove?
SeqC Feed StrtPosC EOL
ELSE
SeqC
END
ELSE
SeqC Feed
END
ZIn FeedEnt EOL
ELSE
IF NOT FirstCycle?
IF SPXMove? OR SPYMove?
SeqC Rapid StrtPosC EOL
END
END
IF FeedEntry?
SeqC ZCP2C EOL
SeqC Feed ZIn FeedEnt EOL
ELSE
SeqC ZIn EOL
END
END
SeqC 'G8' Tag# EOL
IF FirstCycle?
AutoCycCutSub1 {save substatus at Z depth}
AutoCycCutSub2 {goes to ZCP2}
ELSE
IF NOT FeedConnect?
TrackZNo# ClearancePlane2#
END
END
NextRep
SeqC
IF NOT MultipleParts?
AbsOrInc
END
RapidC ZCP2C EOL
SeqC 'G7' Tag# EOL { G7xx Defines Subroutines }
CloseSub
TagDown
SetFlagF('2')
IF NOT FeedConnect?
SetStatusRapid
END
RETURN

SetDrillEndOpZ:
IF RetractToCP1?
TrackZNO# ClearancePlane1#
ELSE
TrackZNO# ClearancePlane2#
END
RETURN

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

DrillStuff:
GetCycle
SeqC 'G300' RLevel EOL { R-Plane Value }
IF Peck?
SeqC 'G306P' Peck# EOL { Z-Axis 1st Pass Depth (signed) }
SeqC 'G307' Peck EOL { Z-Axis Increment (unsigned) }
END
SeqC 'G308'
IF MultipleParts? OR Repeats?
SetAbs
'Z' SUB# ZDepth# ClearancePlane2# {calculate incremental depth}
SetInc
ELSE
ZDepth
END
EOL { Z-Axis Final Depth (signed) }
IF FIDRO?
SeqC 'G323' Dwell EOL { Dwell for Canned Cycle }
END
SeqC Cycle EOL
SeqC StrtPos EOL
IF CallMasterOp?
SeqC 'G8' CallMasterNum# EOL
SkipToLastFeat
ELSE
TrackZNO# FIRST SPZ#
IF MasterOp?
TagUp NewMasterTag
SeqC 'G8' Tag# EOL
StartSub
SeqC IncValue EOL
ToolPath
IF NOT Repeats? AND NOT MultipleParts?
SeqC AbsOrInc EOL
END
SeqC 'G7' Tag# EOL { G7xx Defines Subroutines }
CloseSub
ELSE
ToolPath
END
END
SetDrillEndOpZ
SeqC DrillOff EOL
RETURN

StdRep:
EachRep
IF FirstCycle?
SubWarning
EntryMove
SeqC 'G8' Tag# EOL
StartSub
SetFlag('2') {set true, we are in a Repeats sub}
SeqC IncValue EOL
ToolPath
FinishSub1
SaveSubStatus
SeqC 'G7' Tag# EOL { G7xx Defines Subroutines }
CloseSub
SetFlagF('2')
ELSE
SeqC CheckAbsOrInc Connect StrtPos EOL
IF FeedConnect?
SeqC ZinC EOL {takes care of different tool path start and end Z values}
ELSE
IF NOT Equal? ClearancePlane2# ClearancePlane3#
SeqC ZCP2 EOL
END
EntryMove
END
SeqC 'G8' Tag# EOL
SetSRSubXYRC
SetSRSubZRC
END
NextRep
TagDown
RETURN

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

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

{setup and initializations}
InitProg
TagInit
NeedIJandR
ReverseXZArcs
SetFlood
UseSeparateSubCalls
SetMaxSeparateSubCalls('50')
SetMaxRPM('10000')
SetMaxFeed('500')
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?
EOR EOL
IF ToolChangeAtHome?
SetHome
END
IF UseComments?
IF ProgramNameComment?
'( ' 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 ' MoveType$ ' INCHES )' EOL
END
IF PartsComment?
'( PARTS PROGRAMMED: ' Parts# ' )' EOL
END
IF StartToolComment?
'( FIRST TOOL NOT IN SPINDLE )' EOL
END
END
IF MultipleParts? AND WorkFixtureOffsets?
'( This Procesor does not Support Work Fixture Offsets! )' EOL
'( The Multiple Parts are not being processed! )' EOL
'( PARTS PROGRAMMED: 1 )' EOL
END
OpenSub
RestoreScale
CheckPass
IF MultipleParts? AND AllToolsOnePart?
OpenMP
END
DoOpComments
Seq ToolOfst ToolChng EOL { G1xx Activates Tool Offsets }
SeqC Plane DrillOff CRCOff EOL
DoPostScript
SeqC Speed SpinOn CoolOn EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
ELSE
SeqC CheckAbsOrInc Rapid FeedEnt StrtPos EOL
END
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
END
SeqC 'G29' ZCP2 EOL { Set R-Plane }
SeqC ZCP1 EOL
ELSE
IF NewTool?

{Finish off last Operation}

IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP
END
SeqC CoolOff EOL
SeqC OfstOff 'Z0' EOL { G100 Deactivates Tool Offsets }
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
IF ToolChangeAtHome?
SeqC CheckAbsOrInc Rapid SpinOff Home EOL
ELSE
SeqC SpinOff EOL
END
IF LAST ProgStop?
SeqC 'M00' EOL
ELSE
SeqC ProgStop EOL
END

{Start new Operation}

DoOpComments
Seq ToolOfst ToolChng EOL { G1xx Activates Tool Offsets }
SeqC Plane DrillOff CRCOffC EOL
DoPostScript
SeqC Speed SpinOn CoolOn EOL
CheckPass
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
ELSE
SeqC CheckAbsOrInc Rapid FeedEnt StrtPos EOL
END
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
END
SeqC 'G29' ZCP2 EOL { Set R-Plane }
SeqC ZCP1 EOL
ELSE
IF SameTool?

{Finish off last Operation}

IF LAST ProgStop? OR CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
IF LAST ProgStop? OR NewToolOffset?
SeqC OfstOff 'Z0' EOL { G100 Deactivates Tool Offsets }
END
DoEndOpPS
IF LAST ProgStop?
SeqC SpinOff EOL
SeqC 'M0' EOL
END

{Start new Operation}

DoOpComments
DoPostScript
CheckPass
IF LAST ProgStop? OR NewToolOffset?
SeqC ToolOfst EOL { G1xx Activates Tool Offsets }
END
SeqC
IF LAST ProgStop?
Speed SpinOn
END
IF LAST ProgStop? OR NOT CoolOff? AND LAST CoolOff?
CoolOn
END
EOL
SeqC PlaneC CheckAbsOrInc Rapid FeedEnt SpeedC StrtPos EOL
IF LAST ProgStop? OR NewToolOffset?
SeqC ZCP1 EOL
END
END
END
END {common point for all operations}
IF Milling?
SeqC ZCP2C EOL
IF Repeats?
TagUp TagInc
IF AutoCycle?
IF ZshiftOnly?
RepZOnlyAutoCycle
ELSE
RepAutoCycle
END
ELSE {not AutoCycle}
StdRep
END {end Auto Cycle IF}
ELSE {no repeat OPs}
NoReps
END
SeqC CheckAbsOrInc
IF AutoCycle?
ZCP3C EOL
ELSE
IF FIFO? {.81}
FeedC CRCOffC ZCP3C FeedEntC EOL
ELSE
RapidC CRCOffC ZCP3C EOL
END
END
ELSE
IF Drilling?
IF Repeats?
TagUp TagInc
EachRep
IF FirstCycle?
SeqC FromCP EOL
DrillClearancePlane
SeqC 'G8' Tag# EOL
StartSub
SetFlag('2') {set true, we are in a Repeats sub}
SeqC IncValue EOL
DrillStuff
SeqC
IF NOT MultipleParts?
AbsOrInc
END
RapidC ZCP3 EOL
SaveSubStatus
SeqC 'G7' Tag# EOL { G7xx Defines Subroutines }
CloseSub
TagDown
SetFlagF('2')
ELSE
SeqC Rapid StrtPos EOL
IF RetractToCP1?
IF NOT Equal? ClearancePlane3# ClearancePlane1#
SeqC 'Z' ClearancePlane1# EOL {ZCP1 does not output in incremental}
END
ELSE
SeqC ZCP2C EOL
END
SeqC 'G8' Tag# EOL
SetSRSubXYRC
SetSRSubZRC
END
NextRep
ELSE
SeqC FromCP EOL
DrillClearancePlane
DrillStuff
SeqC RapidC ZCP3 EOL
END
SeqC RapidC ZCP3C 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
SeqC CoolOff EOL
SeqC OfstOff 'Z0' EOL { G100 Deactivates Tool Offsets }
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqC CheckAbsOrInc Rapid SpinOff FirstHome EOL
ELSE
SeqC SpinOff EOL
END
IF ProgStop?
SeqC 'M00' EOL
END
IF MultipleParts? AND AllToolsOnePart?
CloseMP
END
SeqC EOP EOL
SeqC 'END' EOL
SeqC 'END' EOL
SeqC 'END' EOL
SeqC 'END' EOL
SeqC 'END' EOL
SeqC 'END' EOL
SeqC 'END' EOL
SeqC 'END' EOL
CloseSub
Post2 {organize Subs into one program}
SeqC 'END' EOL
EOR EOL
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:
Centurion VI [DT] MX62 89 1
Sharnoa Tiger IV CO M389 89 2
Centurion IV Comet M337 80
Centurion IV [PP] M724 81 2
Sharnoa Tiger IV [WT] MX24 89 2
Bandit IV AB M089 89
Centurion V LH [TPIS] MV82 89
Bandit IV AB [DM] MV32 89 1
Centurion I [PDS] MX35 89
Centurion V [LB] MV60 89
Centurion V M589 89 1m
Centurion V [SS] M977 89
IS Multiroom Standard HD

więcej podobnych podstron