G & L 15V Bickford M314 81 3


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

{added separate sub call code and warning for not separate, 7/5/88 WFG}
{separate sub calls turned off in this post- 'UseSeparateSubCalls' commented out}
{ncPost3ż24 or better}
{added IF ToolChangeAtHome?, & SetHome 9/26/88 WFG}

{2/2/89
Copied Fanuc 6M M001.56 to make new processor for Angelus Can.
Gidding & Lewis 15 VF Numericenter Series 800
Jim Radcliffe}

{3/16/89
Modified; G & L 15VF 800 M178.55, for Angelus Can.
Delete CoolOff. Use decimal points. Add PostScript codes.
Jim Radcliffe}

{ NOTE: Needs command to output tapping feedrate.
Calc; Current ncPost RPM x ncCam threads per inch x .9
Currently using 'DirectTapFeed#' which does not work.
Suggest adding new command 'CalcTapFeed#' JR }

{***Reply: DirectTapFeed# works with TABLE in ncPost 3.10Åš10. It forces 100% feed in IPM.
This machine requires tapping in IPR. IPR for tapping is 1/ # threads. No RPM involved.
New command FeedTapIPR#('.9') where .9 is 90% of full feed. Should use the new TAP% in ncCAM
but this value is not in data structure. WFG 5/13/89}

{added PostScript command comments 5/9/89, WFG, use ncPost 3.10Åš9 or better}
{removed run time comments, 5/9/89, WFG}

{5/11/89
Modified; G & L 15VF 800 M178.57, for Angelus Can.
Delete Tool Length Offset Cancel code from format.
Add Rapid to OfstOff line.
Change Home at end of prog to FirstHome and delete boolean. Jim Radcliffe}

{Changed DirectTapFeed# to FeedTapIPR#('.9') WFG 5/13/89}

{Modified; G & L 15VF 800 M178.59; for Angelus Can.
Changed FeedTapIPR#('.9') to FeedTapIPR#('1') per customer request.
Added missing SeqC 2 places. JR 5/17/89}

{6/9/89
Copied & modified; G & L 15VF 800 M178.60, for Angelus Can.
Gidding & Lewis 15 VFC Numericenter Series 80.
Change number format to trailing zero's.
Change 'E' To 'F' for Tapping & Change to IPM insted of IPR.
Use G85 cycle to move on Z. Will not move with G01.
Jim Radcliffe}

{7/7/89
Copied & modified; G & L 15VFC 80 M209.55, for Armco.
Machine is a "Giddings & Lewis Model 420 DiMiL"
with "Giddings & Lewis NumeriPath PCC80" control.
Added a fromat call for ZDepth# used in drilling.
PostScript commented out.
Changed TABLE command for speeds to typical speed command.
Various other format changes to reflect the needed output.
Jim Radcliffe}

{12/13/89
Modified: G & L Numeripath 80 M217.55
For: Armco
Change to IJ arcs and unconditional X,Y,I & J.
Changed FormatArc prog subroutine for unconditional ouput for arcs.
Updated, uncommented out PostScript, no SepSubs as no subroutines.
Changed format from forcing all decimal places to forcing trailing places only.
**NOTE: the above format is not working, ncPOST 3.19Åš14**
Jim Radcliffe}

{5/23/90
Modified: G & L Numeripath 80 M217.61
For: Geneva Steel
Add spaces globally to all address labels.
Modified globally to non-decimal format.
Partial update to Version 3.2 per Fanuc 6M M001.72 Format
DWB}

{6/12/90
Modified: G & L Numeripath 80 M217.61.1
For: Geneva Steel
Add 40 spaces in front of all comments to place in center of page.
Formatted line numbers in form to 4 places with leading/trailing zeros.
DWB}

{4/03/91
Modified: G & L 15V Bickford M314.62
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 6M M001.80 Format.
DWB}

{02/24/92
Modified: G & L 15V Bickford M314.80
For: Geneva Steel
Removed the 'R' for the RLevel in the form for the 'G81' cycle only.
Removed the 'SeqC Rapid Home OpToolID ToolChng EOL' at the end of FirstOp? and NewTool?
Changed the ToolChng line in NewTool? to only output if last op was a Sametool?
Moved the CoolOn to the end of the startup line and deleted
the ZCP1 line that it was on, per request.
Changed the 'H00' line output always in MP.
Changed the ToolChng to output at the beginning of a toolchange
operation only, instead of at the beginning, and at the end.
Kim Michelman}

{2/23/94
Modified: G & L 15V Bickford M314.80.1
For: Geneva Steel
Change Requests per Dan Baxter
Changed Plane commands to DoPlane sub to suppress output of control defaulted G17.
Deleted Plane commands from the MachSpec.
Deleted G17 G40 line from beginning of program, moved Plane to StrtPos line.
Changed Optional Stop Program code in MachSpec from M0 to M1.
Deleted ToolChng line, tool change takes place when OpToolID is called.
Added FeedEnt to StrtPos line, changed all other FeedEnt to FeedEntC, deleted RapidF#.
Removed RLevel from drill cycle line for FIRO (G81) or Tap (G84) or FIFO (G87),
these are sensing cycles and do not get an R Plane command.
Added Peck Full Out cycle (G88).
Update modifications.
Moved all ResetCRCNum commands to one in common area.
Updated per Fanuc 6M NoSubs M001.81.2; uses variables 1-3.
Changed PeckManual to maual pecking routine; uses variable 4.
Jim Radcliffe}

{12/16/95
Modified: G & L 15V Bickford M314.81.2
For: Geneva Steel /per Dan Baxter
Added ArcZRads# to FormatArc to output K radians in helical arcs.
Changed OfstOff to ZCP3 everywhere.
Completely changed logic for the rapid move to ZCP3 and the rapid move to cancel the Z offset.
These moves have been combined into one move which is made in NewTool and SameTool; no move
is made at the end of the Op. In addition, offset cancel has been added to this line.
Added literal 'M09' after all occurances of 'H00' tool length offset cancel.
Fixed G88 Peck Drill cycle (it was missing the peck value, which is Q).
Added G85 Boring cycle.
Changed tapping to force feedrate of F0.
Changed M00 (program stop) cycle.
Added literal move to Y150000 at program end and prog stop; they always move the
table out to this Y position for the operator.
Changed Sequence Number format to suppress leading zeroes (in MachSpec).
Added DrillOffset sub to force tool length offset to 'H00' in Drilling (G81), Tapping (G84),
and Boring (G87); they always make this 'H00' because no offset is required in sensing cycles.
Added CoolOnSub sub to suppress Coolant On in G84 (tapping) cycle.
Forced G81 drill cycle to always output K10000 (that's how Dan wants it).
G01/G02/G03's are not modal; changed accordingly.
Completely changed CRC offset format -
CRC On is being called on the very first line of an operation.
Vectoring has been completely deleted.
Deleted CRCOnC from StdLine sub because CRC is now cancelled on the same line
as the the Z Offset cancel.
Created AutoCycleStdLine sub to turn on CRC correctly between Autocycles and
changed StdLine in CutAutoCycle sub to AutoCycleStdLine.
Joe Cusimano}

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

#1 = '#.00'
#2 = '###^0000'
#3 = '####.####;0.'
#4 = '########;0'

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ClearancePlane1#,2)
FORMAT(ClearancePlane2#,2)
FORMAT(CRCNormalVectorX#,2)
FORMAT(CRCNormalVectorY#,2)
FORMAT(TrackZ#,2)
FORMAT(ArcZRads#,2)
FORMAT(ToolDiameter#,3)
FORMAT(Operation#,4)
FORMAT(Tool#,4)
FORMAT(Parts#,4)


{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?
' ( CYCLE START )' 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: {.72}
RETURN

PSStuff: {revised.72}
{No rotary stuff for this post}
RETURN

DoPostScript:
PSInit {reset flags from last Op, .72}
EachPS
SeqC PostScript EOL {literals}
PSStuff {commands}
NextPS
RETURN

DoEndOpPS:
PSInit {reset PS flags, .72}
EachEOPS
SeqC EndOpPS EOL
PSStuff
NextPS
RETURN

ExitType:
IF Drilling?
Rapid
ELSE
IF FIFO?
Feed
ELSE
RapidC
END
END
RETURN

ExitFeed:
IF Drilling?
{ no feed out in drilling }
ELSE
IF FIFO?
FeedEntC
END
END
RETURN

LastExitType:
IF LAST Drilling?
Rapid
ELSE
IF LAST FIFO?
Feed
ELSE
RapidC
END
END
RETURN

LastExitFeed:
IF LAST Drilling?
{ no feed out in drilling }
ELSE
IF LAST FIFO?
FeedEntC
END
END
RETURN

FormatArc:
IF ArcCW?
CWArc
ELSE
CCWArc
END
IF XYPlane?
MoveX MoveY MoveZC { force endpoints in proper plane }
ELSE
IF XZPlane?
MoveX MoveYC MoveZ
ELSE
MoveXC MoveY MoveZ { YZ plane }
END
END
IF ArcIJFormat?
ArcIJ
ELSE
ArcR
END
IF XYPlane? AND NotEqual? SPZ# EPZ# { helical arc }
' K' ArcZRads#
END
RETURN

StdRapid:
IF XMove? OR YMove? OR ZMove?
SeqC RapidC MoveXYZC EOL
END
RETURN

StdLine: {enables CRC on first call, .70}
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqC {CRCOnC} { commented out CRCOnC, they want it on very first line of operation }
IF EmptyLine?
Feed MoveXYZC FeedRateC EOL
ELSE
Feed MoveXYZC FeedRateC EOL
END
DecelMove2
END
SeqC {CRCOnC} { commented out CRCOnC, they want it on very first line of operation }
IF EmptyLine?
Feed MoveXYZC DecelFeed EOL
ELSE
Feed MoveXYZC DecelFeed EOL
END
ELSE
IF XMove? OR YMove? OR ZMove?
SeqC {CRCOnC} { commented out CRCOnC, they want it on very first line of operation }
IF EmptyLine?
Feed MoveXYZC FeedRateC EOL
ELSE
Feed MoveXYZC FeedRateC EOL
END
END
END
RETURN

AutoCycleStdLine: { enables CRC on first call on AutoCycles only }
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqC CRCOnC
IF EmptyLine?
Feed MoveXYZC FeedRateC EOL
ELSE
Feed MoveXYZC FeedRateC EOL
END
DecelMove2
END
SeqC CRCOnC
IF EmptyLine?
Feed MoveXYZC DecelFeed EOL
ELSE
Feed MoveXYZC DecelFeed EOL
END
ELSE
IF XMove? OR YMove? OR ZMove?
SeqC CRCOnC
IF EmptyLine?
Feed MoveXYZC FeedRateC EOL
ELSE
Feed MoveXYZC FeedRateC EOL
END
END
END
RETURN

StdArc:
EACHQuadrant
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
SeqC FormatArc ArcFeedC EOL
DecelMove2
END
SeqC FormatArc DecelFeed EOL
ELSE
SeqC FormatArc ArcFeedC EOL
END
NEXTQuadrant
RETURN

ToolPath2: {for AutoCycle element moves}
EACHFeat
IF RapidFeat?
IF LastFeat?
SeqC CRCOffC RapidC MoveXYZC EOL
ELSE
StdRapid
END
ELSE
IF LineFeat?
IF LastFeat?
SeqC CRCOffC Feed MoveXYZC FeedRateC EOL
ELSE
IF ZMove? {skip CRCOn until first non-Z move line, skipping ramps}
SeqC Feed MoveXYZC FeedRateC EOL
ELSE
AutoCycleStdLine {enables CRC on first call}
END
END
ELSE
IF ArcFeat?
StdArc
END
END
END
NEXTFeat
RETURN

EntryMove:
IF FeedEntry?
SeqC Feed ZInC FeedEntC EOL
ELSE
SeqC RapidC ZInC EOL
END
RETURN

CutAutoCycle:
SaveSubStatus {save tool position}
SetPass1 {element cut moves}
SetSRXYtoSP
SeqC IncValue EOL
IF Repeats? AND ZshiftOnly?
EachRep
EntryMove
ToolPath2
IF NOT FeedConnect?
IF FIFO?
SeqC Feed PRIME ZCP2 FeedEntC EOL
ELSE
SeqC RapidC PRIME ZCP2 EOL
END
END
NextRep
ELSE
EntryMove
ToolPath2
END
IF FIFO?
SeqC Feed AbsOrInc ZCP2 FeedEntC EOL
ELSE
SeqC RapidC AbsOrInc ZCP2 EOL
END
SetSRSubXY {restore tool position}
SetSRSubMove
ReSetPass2 {restore for positioning moves}
RETURN

DrillOffset:
IF Drilling?
IF FIRO? OR Tap? OR FIFO? { don't output offset in G81/G84/G87 cycles; these are sensing cycles }
' H00'
ELSE
ToolOfst
END
ELSE
ToolOfst
END
RETURN

CoolOnSub:
IF Tap?
{ no coolant during tap cycle }
ELSE
CoolOn
END
RETURN

DoLastPeck: {OldZ - Peck# ² Depth}
SeqC Feed ' Z' TrackZ# SPZ# FeedEntC EOL {move to Depth}
IF RetractToCP1?
SeqC Rapid ZCP1 EOL {move to CP1}
ELSE
SeqC Rapid ZCP2 EOL {move to CP2}
END
RETURN

DoPeck:
IF GreaterThan? SUB# Recall# Num#('4') Peck# SPZ# {IF OldZ - Peck# > Depth}
Save# Num#('4') SUB# Recall# Num#('4') Peck# {Save#1 = OldZ - Peck# = NewZ}
SeqC Feed ' Z' TrackZ# Recall# Num#('4') FeedEntC EOL {move to NewZ}
SeqC RapidC ' Z' TrackZ# ADD# Recall# Num#('4') Retract# EOL {move to RetractZ}
END
RETURN

ToolPath:
EACHFeat
IF PointFeat?
IF AutoCycle?
IF NOT FirstFeat?
SeqC
IF FIFO?
Rapid
END
MoveSXYC EOL
END
CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
CutAutoCycle
ELSE
IF PeckChipBreaker?
SeqC RapidC MoveSXYC EOL
SeqC ZCP2C EOL
Save# Num#('4') ClearancePlane2#
DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck
DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck
DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck
DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck
DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck
DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck
DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck
DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck
DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck
DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck DoPeck
DoLastPeck
ELSE
SeqC MoveSXYZC EOL {.80.01}
END
END
ELSE
IF RapidFeat?
StdRapid
ELSE
IF LineFeat?
StdLine
ELSE
IF ArcFeat?
StdArc
END
END
END
END
NEXTFeat
RETURN

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

GetStartOfSameTool:
DoOpComments
DoPostScript
CheckPass
RETURN

DoPlane:
Plane { no output }
IF XYPlane?
IF FirstOperation? OR LAST XYPlane?
{ G17 not needed, its the defaulted plane }
ELSE
'G17'
END
ELSE
IF XZPlane?
'G18'
ELSE
'G19'
END
END
RETURN

DoOp:
IF FirstOperation?
CheckPass
IF MultipleParts? AND OneToolAllParts? AND NOT FirstPart?
IF FullUp?
SeqC Rapid OfstOff ' H00' EOL
END
DoOpComments
SeqC Rapid CRCOnC StrtPos
IF FullUp?
DrillOffset
END
EOL
ELSE
DoOpComments
DoPostScript
SeqC Rapid DoPlane AbsOrInc CRCOnC StrtPos FeedEnt Speed OpToolID DrillOffset SpinOn CoolOnSub EOL
END
ELSE
IF NewTool?
{Finish off last Operation}

IF MultipleParts? AND OneToolAllParts? AND NOT FirstPart?
{only need to set up for tool change on 1st part}
ELSE
SeqC LastExitType CRCOffC LAST ZCP3 LastExitFeed ' H00 M09' EOL { replaced 'OfstOff' with ZCP3; added CRCOffC }
DoEndOpPS
IF ToolChangeAtHome?
SeqC RapidC Home EOL
END
IF LAST ProgStop?
SeqC ' Y150000' EOL
SeqC ' M00' EOL
ELSE
SeqC ProgStop EOL
END
END

{Start new Operation}

CheckPass
IF MultipleParts? AND OneToolAllParts? AND NOT FirstPart?
IF FullUp?
SeqC Rapid CRCOffC LAST ZCP3C ' H00' EOL { replaced 'OfstOff' with ZCP3C; added CRCOffC }
END
DoOpComments
SeqC Rapid CRCOnC StrtPos
IF FullUp?
DrillOffset
END
EOL
ELSE
DoOpComments
DoPostScript
SeqC Rapid DoPlane AbsOrInc CRCOnC StrtPos FeedEnt Speed OpToolID DrillOffset SpinOn CoolOnSub EOL
END
ELSE
IF SameTool?
DoEndOpPS
IF LAST ProgStop?
SeqC LastExitType CRCOffC LAST ZCP3 LastExitFeed
IF NewToolOffset?
' H00'
END
' M09' EOL
SeqC ' Y150000' EOL
SeqC ' M00' EOL

{Start new Operation}

GetStartOfSameTool
SeqC RapidC DoPlane CRCOnC StrtPos FeedEnt SpeedC
IF NewToolOffset?
DrillOffset
END
CoolOnSub EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
IF NewToolOffset?
SeqC LastExitType CRCOffC LAST ZCP3 LastExitFeed ' H00' EOL { replaced 'OfstOff' with ZCP3; added CRCOffC }

{Start new Operation}

GetStartOfSameTool
SeqC Rapid DoPlane CRCOnC StrtPos FeedEnt SpeedC DrillOffset EOL
ELSE
SeqC LastExitType CRCOffC LAST ZCP3 LastExitFeed EOL { replaced 'OfstOff' with ZCP3; added CRCOffC }

{Start new Operation}

GetStartOfSameTool
SeqC RapidC DoPlane CRCOnC StrtPos FeedEnt SpeedC EOL
END
IF NOT CoolOff? AND LAST CoolOff?
SeqC CoolOnSub EOL
END
END
END
END
END

{ Common Point for All Operations }

ResetCRCNum {call here to reset for each new operation only, call in tool path to reset for each repeat in an operation}

IF Milling?
SeqC ZCP2C EOL
IF Repeats?
IF ZshiftOnly? AND AutoCycle?
{done in CutAutoCycle called from ToolPath}
ELSE
EACHRep
DoSubComment
IF NOT FirstCycle?
SeqC Connect CRCOnC StrtPos EOL
IF NOT FeedConnect?
SeqC ZCP2C EOL
END
END
END
END
IF NOT AutoCycle?
EntryMove
END
ToolPath
IF Repeats?
IF ZshiftOnly? AND AutoCycle?
{done in CutAutoCycle called from ToolPath}
ELSE
SeqC CRCOffC
IF NOT FeedConnect?
ExitType PRIME ZCP3C
END
ExitFeed EOL
NEXTRep
END
END
ELSE
IF Drilling?
IF Repeats?
EACHRep
DoSubComment
END
GetCycle
IF NOT PeckChipBreaker?
SeqC Cycle StrtPos ZDepth
IF FIDRO? OR PeckFullRetract? OR FIFO?
{ These are the only non-sensing cycles used and they need the R Plane }
{ they don't have a feed-in/feed-out cycle, but they have two types of
feed-in/rapid out; the G81 is a special sensing cycle that doesn't require
an R plane; the G85 is called a 'boring' cycle, but it is merely a G81 cycle
with the addition of the R plane. Since they consider this their 'boring' cycle,
it has been assigned to the FIFO cycle.}
RLevel
END
IF FIRO?
' K10000'
ELSE
IF RetractToCP1?
' K' ClearancePlane1#
ELSE
' K' ClearancePlane2#
END
END
IF PeckFullRetract?
Peck
END
IF Tap?
' F0'
ELSE
FeedEntC EOL
END
TrackZNO# ZDepth# {.81}
END
ToolPath
IF RetractToCP1? {.81}
TrackZNO# ClearancePlane1#
ELSE
TrackZNO# ClearancePlane2#
END
IF Repeats? { Don't output move to clearance plane unless repeats }
SeqC Rapid ZCP3
IF ProgStop?
CoolOff
END
IF LastOp?
' H00 M09'
END
EOL
END
IF Repeats?
NEXTRep
END
IF Repeats? { Don't output move to clearance plane unless repeats }
SeqC RapidC ZCP3C EOL
END
END
END
RETURN

FinishLastOp:
SeqC ExitType CRCOffC ZCP3 ExitFeed ' H00 M09' EOL { replaced 'OfstOff' with ZCP3; added CRCOffC }
DoEndOpPS
IF FIRST ToolChangeAtHome?
SeqC RapidC FirstHome EOL
END
IF MultipleParts? AND AllToolsOnePart? AND NOT LastPart? {no tool change after doing last part}
IF ProgStop?
SeqC ' Y150000' EOL
SeqC ' M00' EOL
ELSE
SeqC ProgStop EOL
END
ELSE
SeqC ' Y150000' EOL
SeqC EOP EOL
END
RETURN

DoToolsOps:
EachOp
IF GTEqual? Operation# Recall# Num#('1') AND LTEqual? Operation# Recall# Num#('2')
{Tools1stOp ² op ² ToolsLastOp}
DoOp
END
NextOp
RETURN

NextTools1stOp:
SetNextToolOp Operation#
RETURN

GetToolsOps:
EachOp
IF Equal? Operation# Recall# Num#('1') {if op = Tools1stOp}
IF GreaterThan? NextTools1stOp Recall# Num#('1') {if NextTools1stOp is greater Tools1stOp}
Save# Num#('2') SUB# NextTools1stOp Num#('1') {ToolsLastOp becomes NextTools1stOp less 1}
ELSE {else}
Save# Num#('2') Recall# Num#('3') {ToolsLastOp becomes ncCAMsLastOp}
END
END
NextOp
RETURN

DoTool:
IF NOT Flag?('1')
GetToolsOps
EachPart
TagInc
DoToolsOps
NextPart
IF LessThan? Recall# Num#('2') Recall# Num#('3') {if ToolsLastOp < ncCAMsLastOp}
Save# Num#('1') ADD# Recall# Num#('2') Num#('1') {Tools1stOp becomes NextTools1stOp}
ELSE {else}
SetFlag('1') {set DoneFlag}
END
TagInit
END
RETURN

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

{setup and initializations}
InitProg
SetFlagF('1') {done flag}
ReverseXZArcs
SetFlood
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
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 ' MoveType$ ' )' EOL
END
IF PartsComment?
' ( PARTS PROGRAMMED: ' Parts# ' )' EOL
END
IF StartToolComment?
' ( FIRST TOOL IN SPINDLE )' EOL
END
END
OpenSub
RestoreScale
END
NextOp
IF MultipleParts?
IF AllToolsOnePart?
EachPart
TagInc
EachOp
DoOp
NextOp
FinishLastOp
NextPart
ELSE
IF OneToolAllParts?
EachOp
IF FirstOperation?
Save# Num#('1') Operation# {ncCAMs1stOp becomes Tools1stOp}
END
IF LastOp?
Save# Num#('3') Operation# {save ncCAMsLastOp}
END
NextOp
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
FinishLastOp
END
END
ELSE
EachOp
DoOp
NextOp
FinishLastOp
END
EOR EOL
CloseSub
Post2
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


Wyszukiwarka

Podobne podstrony:
Fanuc 10M (AGA) M147 81 2
Tosnuc 600M VMC 45 M442 81 3
DM 81 Diper Kenwooda
BP IIA (HAC) M200 81
30 (81)
Artran Contour MV83 81
Yas MX3 Mat [AbsZAC] M591 81 2
T81 2
node S0281
NumPath 800 Bick 15V M561 87
Fanuc 0M Wasino WM3 M525 81 2

więcej podobnych podstron