Bostomatic SPC II [LAG] M458 87


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

{10/9/91
Copied & modified: Bostomatic SPC-II M081.81
For: L.A. Gauge
Changes made per conversations with Bud Franklin at L.A. Gauge and sample printout.
Changed FORMAT#6 from '###^####;' to '###.####;0.'.
Changed FORMAT#7 from '##^0' to '#;'.
Changed FORMAT#8 from '+##^0000' to '###^###0'.
Deleted FORMATs for FeedEntry#, ZDepth#, SPZ#, ClearancePlane1#, ClearancePlane2# and Peck#.
Added FORMATs for MUL#, Recall# and RapidF#.
Added literal ' ' EOL at beginning of all subs.
Deleted OptCycF, CheckOptCyc Sub and call to same for special PostScript output.
Changed SeqLab/SeqLabC to Seq/SeqC in Prog.
Changed Sequence Label from 'N?' to 'N' in MachSpec.
Added CRCOfstOn and CRCOfstOff subs for turning on/off Milling Tool Diameter Offsets.
Added DoCRCOff Sub.
Moved all occurances of CRCOff LastFeatExtend to DoCRCOff Sub.
Added ExitMove to output DoCRCOff with PRIME ZCP2C.
Deleted all occurances of EndSub.
Added one occurance of EndSub after initial OpenSub in FirstOperation.
Only needed after final Subroutine.
Changed AbsOrInc FeedC to Feed at G92Sub Sub move to StrtPos.
Replaced Canned Drilling Cycles with long-hand output.
FIFO Drilling Cycle will Feed out at 150% of FeedEntry# value.
Deleted call to DoR sub on all Drill Positions.
Added DoMasterSubs Sub to handle OriginPreset, HomePreset and Drill Position BackLash Compensation.
Moved literal 'G48' DoR, SpinOn and CoolOn at FirstOperation, NewTool and SameTool to OriginShift.
Moved literal 'G49' DoR, SpinOff and CoolOff at NewTool, SameTool and end of Prog to HomeShift.
Added Preset Home 'Z14.1' to FirstOperation.
Modified flow of output.
Main Program will contain ToolChng stuff only, rest of data is output to Subroutine until NewTool.
Combined ToolOfst and ProSpeed onto one line at FirstOperation, NewTool and SameTool.
Deleted literal 'G4X3.' for SpinOn Dwell at FirstOperation, NewTool and SameTool.
Combined LAST ZCP1C, SpinOff and CoolOff onto one line at NewTool and SameTool.
Combined ZCP1C, SpinOff and CoolOff onto one line at end of Prog.
Deleted literal 'G4X2.' for SpinOff Dwell at NewTool, SameTool and SameTool end of Prog.
Added LAST ToolOfst at NewTool and SameTool.
Added ToolOfst to end of Prog.
Deleted AbsOrInc Feed at NewTool and SameTool.
Added RapidF# at common point of Operations to force FeedRateC/FeedEntC.
Added literal 'N111' UnTool to end of Prog.
Deleted Retag at end of Prog.
DWB}

{2/9/96, Updated .81 version to .84, MPK}

{3/22/96, Tested ZOnlyRepAutCycle, Incremented number to .87, MPK}

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

#1 = '#.00'
#2 = '###.###;0.'
#3 = '*###.###;0.'
#4 = '####.####;0.'
#5 = '########;0'
#6 = '###.####;0.'
#7 = '#;'
#8 = '###^###0' { See CRCOfstOn Sub }

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(MUL#,6)
FORMAT(Dwell#,6) {.72}
FORMAT(Recall#,6)
FORMAT(RapidF#,7)

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

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

PSInit: {reset flags}
RotateF
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

DoR: { Rapid Moves need 'R' }
IF NOT EmptyLine?
'R'
END
RETURN

CRCOfstOn:
IF Milling?
FORMAT(ToolDiameter#,8)
SeqC 'G29' CRCOfst 'D' ToolDiameter# EOL
FORMAT(ToolDiameter#,4)
END
RETURN

CRCOfstOff:
FORMAT(ToolDiameter#,8)
IF LastOp?
IF Milling?
SeqC 'G29' CRCOfst 'D-' ToolDiameter# EOL
END
ELSE
IF LAST Milling?
SeqC 'G29' LAST CRCOfst 'D-' LAST ToolDiameter# EOL
END
END
FORMAT(ToolDiameter#,4)
RETURN

DoCRCOff:
IF CutterRadiusCompensation? AND NOT AutoCycle?
CRCOffC LastFeatExtend
END
RETURN

EntryMove:
IF FeedEntry?
SeqC FeedC ZIn FeedEnt EOL
ELSE
SeqC FeedC ZIn DoR EOL
END
RETURN

ExitMove:
SeqC FeedC DoCRCOff
IF NOT FeedConnect?
PRIME ZCP2C
END
IF FIFO? { .81 }
FeedRateC
ELSE
IF Repeats? AND FeedConnect?
ELSE
DoR
END
END
EOL
RETURN

StartSub:
OpenSub
DoSubComment
SeqC 'G92' SubID EOL { G92 = Canned Shape Identifier }
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:
SeqC SubCall CallLab RepLab RepCycs EOL
StartSub
RETURN

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

FinishSubG92: {part 2}
SeqC Preset ShiftRC EOL
CloseSub
SeqC Preset UnshftRC EOL
RETURN

OpenMP:
NewProg
SeqC SubCall CallLab RepLab Parts EOL
StartSub
RETURN

CloseMP:
SeqC Preset ShiftPC EOL
CloseSub
SeqC Preset UnshftPC EOL
RETURN

FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
IF XYPlane?
MoveX MoveY MoveZC
ELSE
IF XZPlane?
MoveX MoveYC MoveZ
ELSE
MoveXC MoveY MoveZ
END
END
ArcIJ
RETURN

StdLine: {enables CRC on first call, .70}
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqC FeedC CRCOnC MoveXYZC FeedRateC EOL
DecelMove2
END
SeqC FeedC CRCOnC MoveXYZC DecelFeed EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqC FeedC CRCOnC MoveXYZC FeedRateC EOL
END
END
RETURN

ToolPath:
EACHFeat
IF PointFeat?
IF AutoCycle?
SeqC MoveSXYC DoR EOL
SeqC SubCall CallLab EOL
CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
ELSE
SeqC MoveSXYC EOL {.80.01}
SeqC SubCall CallLab EOL
END
ELSE
IF RapidFeat?
IF LastFeat? AND AutoCycle? {.70}
SeqC FeedC CRCOffC MoveXYZC DoR EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqC FeedC MoveXYZC DoR EOL
END
END
ELSE
IF LineFeat?
IF AutoCycle? {.70}
IF LastFeat?
SeqC FeedC CRCOffC MoveXYZC FeedRateC EOL
ELSE
IF ZMove? {skip CRCOn until first non-Z move line, skipping ramps}
SeqC FeedC MoveXYZC FeedRateC EOL
ELSE
StdLine {enables CRC on first call}
END
END
ELSE
StdLine
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 FormatArc ArcFeedC EOL
DecelMove2
END
SeqC FormatArc DecelFeed EOL
ELSE
SeqC FormatArc ArcFeedC EOL
END
NEXTQuadrant
END
END
END
END
NEXTFeat
RETURN

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

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

AutoCycCutSub2: {part 2}
ToolPath
IF Repeats? AND FeedConnect? AND ZshiftOnly?
SeqC AbsOrInc EOL {.69 removed RapidC} {.71.2 removed CRCOffC, gets turned off in ToolPath}
ELSE
IF FIFO? {.81}
SeqC AbsOrInc FeedC ZCP2 FeedRateC EOL
ELSE
SeqC AbsOrInc FeedC ZCP2 DoR EOL {.71.2 removed CRCOffC, gets turned off in ToolPath}
END
END
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
ExitMove
END
RETURN

G92Sub:
SubWarning
StdSub
SeqC Feed StrtPos
IF FeedConnect?
IF AutoCycle?
DoR
END
ELSE
DoR
END
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?
SeqC Feed IncValue StrtPosC EOL
SeqC AbsOrInc
ELSE
SeqC Feed
END
ELSE
SeqC Feed
END
ZInPlusInc FeedEnt EOL
ELSE
IF NOT FirstCycle?
IF SPXMove? OR SPYMove?
SeqC Rapid IncValue StrtPosC EOL
IF FeedEntry?
SeqC AbsOrInc ZCP2PlusInc EOL
SeqC Feed ZInPlusInc FeedEnt EOL
ELSE
SeqC AbsOrInc ZInPlusInc EOL
END
ELSE
IF FeedEntry?
SeqC Rapid ZCP2PlusInc EOL
SeqC Feed ZInPlusInc FeedEnt EOL
ELSE
SeqC Rapid ZInPlusInc EOL
END
END
ELSE
IF FeedEntry?
SeqC Feed ZInPlusInc FeedEnt EOL
ELSE
SeqC Rapid ZInPlusInc EOL
END
END
END
IF FirstCycle?
SetStatusOff {protect Z position for incremental sub}
END
SeqC SubCall CallLab 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}
SeqC FeedC ZCP2 FeedRate EOL {.69}
ELSE
SeqC FeedC ZCP2 DoR EOL {.69}
END
END {.69}
CloseSub
{Element shift, not pattern}
RETURN

ZonlyRep:
EachCycle
IF NOT FirstCycle?
SeqC FeedC StrtPos {.71.2, added FeedC}
IF NOT FeedConnect?
DoR
END
EOL
END
IF FeedConnect?
SeqC FeedC ZInPlusInc FeedEnt EOL {.71.2, changed to FeedC}
ELSE {Entry/Exit Connect}
IF FeedEntry?
IF NOT FirstCycle?
SeqC FeedC ZCP2PlusIncC DoR EOL {can't call for cycle =1} {.69 added Rapid, reads better} {.71.2, changed to RapidC, reads better}
END
SeqC FeedC ZInPlusInc FeedEnt EOL
ELSE
SeqC FeedC ZInPlusInc DoR EOL {.69 added Rapid, reads better} {.71.2, changed to RapidC, reads better}
END
END
SeqC SubCall CallLab EOL
NextCycle
StartSub
SkipZ
ToolPath
UnSkipZ { Moved from FinishSub1 }
ExitMove
FinishSub1
CloseSub
RETURN

DoPeck:
Save# Num#('1') SUB# Recall# Num#('1') Peck#
IF GTEqual? Recall# Num#('1') ZDepth#
SeqC 'Z' Recall# Num#('1') FeedEntC EOL
IF PeckFullRetract?
SeqC ZCP2 DoR EOL
END
Save# Num#('1') ADD# Recall# Num#('1') Retract#
SeqC 'Z' Recall# Num#('1') DoR EOL
Save# Num#('1') SUB# Recall# Num#('1') Retract#
END
RETURN

Drill:
StartSub
SeqC DrillCP DoR EOL
SeqC FeedC ZCP2C DoR EOL
SeqC SubCall 'D4' RapidF# EOL { Call Backlash Compensation Sub }
RapidF# { No Output }
GetCycle
IF Peck?
Save# Num#('1') 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
SeqC ZDepth EOL
TrackZNO# ZDepth# {.81}
ELSE
SeqC ZDepth FeedEnt EOL
TrackZNO# ZDepth# {.81}
IF Tap?
SeqC InverseSpinOn EOL
SeqC ZCP2 EOL
SeqC SpinOn EOL
TrackZNO# ClearancePlane2# {.81}
ELSE
IF Dwell?
SeqC 'G4X' Dwell# EOL
END
IF FIFO?
SeqC ZCP2 'F' MUL# FeedEntry# Num#('1.5') EOL
TrackZNO# ClearancePlane2# {.81}
END
END
END
SeqC DrillCP DoR EOL
CloseSub
RETURN

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

GetStartOfSameTool:
DoOpComments
DoPostScript
CheckPass
PlaneC { No Output }
RETURN

DoMasterSubs:
NewProg
StartSub
IF UseComments? AND SubComment?
'( Preset Origin Sub )' EOL
END
SeqC 'XV1YV2ZV3' DoR SpinOn EOL
SeqC Preset 'XY' ZCP1 EOL
SeqC 'G48' DoR CoolOn EOL { G48 = OfstOn }
CloseSub

NewProg
StartSub
IF UseComments? AND SubComment?
'( Preset Home Sub )' EOL
END
SeqC ZCP1 DoR SpinOff CoolOff EOL
SeqC 'XY' EOL
SeqC 'G49' DoR EOL { G49 = OfstOff }
SeqC Preset 'XV1YV2ZV3' EOL
SeqC Home 'Z14.1' DoR EOL
CloseSub

NewProg
StartSub
IF UseComments? AND SubComment?
'( Backlash Compensation Sub )' EOL
END
SeqC IncValue 'X-20Y-20F10' EOL
SeqC 'X20Y20' EOL
SeqC AbsOrInc 'F400' EOL
CloseSub
RETURN

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

{setup and initializations}
InitProg
ReverseXZArcs
ArcsNeedXYZ
SetFlood
UseSeparateSubCalls
SetMaxSeparateSubCalls ('50')
SetMaxRPM('1000')
SetMinRPM('100')
SetMaxFeed('100')
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?
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$ ' INCHES )' EOL
END
IF PartsComment?
'( PARTS PROGRAMMED: ' Parts# ' )' EOL
END
IF StartToolComment?
'( FIRST TOOL NOT IN SPINDLE )' EOL
END
END
OpenSub
SeqC EndSub EOL
' ' EOL
EOR ' SPCII_1' EOL
IF Metric? {CAM file is in Metric, tools and tool path}
SetScale('.03937007874') { change to English, this is an English post}
END
IF MultipleParts? AND AllToolsOnePart?
OpenMP
END
IF UseComments?
'( START OF MAIN PROGRAM )' EOL
END
Plane { No Output }
SeqC AbsOrInc Feed CRCOff 'G49' EOL { G49 = OfstOff }
SeqC Preset Home 'Z14.1' EOL
DoMasterSubs
Seq OpToolID EOL
SeqC ProgStop EOL
SeqC '/' OpToolID ToolChng EOL
NewProg
SeqC '/' SubCall CallLab EOL
StartSub
DoOpComments
DoPostScript
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
END
CRCOfstOn
SeqC ToolOfst ProSpeed EOL
SeqC SubCall 'D2' EOL { Call Origin Shift Sub }
CheckPass
SeqC Feed StrtPos DoR EOL
SeqC ZCP1 DoR EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
SeqC Feed StrtPos DoR EOL
END
ELSE
IF NewTool?

{Finish off last Operation}

IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP
END
IF MultipleParts? AND OneToolAllParts? AND FullUp?
SeqC LAST ZCP1C DoR CoolOff EOL
CRCOfstOff
SeqC LAST ToolOfst EOL
CloseMP
DoEndOpPS
SeqC SpinOff EOL
ELSE
SeqC LAST ZCP1C DoR SpinOff CoolOff EOL
DoEndOpPS
CRCOfstOff
SeqC LAST ToolOfst EOL
END
SeqC SubCall 'D3' EOL { Call Origin Un-Shift Sub }
IF LAST ProgStop?
SeqC 'M0' EOL
ELSE
SeqC ProgStop EOL
END
CloseSub

{Start new Operation}

PlaneC { No Output }
Seq OpToolID EOL
SeqC ProgStop EOL
SeqC '/' OpToolID ToolChng EOL
NewProg
SeqC '/' SubCall CallLab EOL
StartSub
DoOpComments
DoPostScript
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
END
CRCOfstOn
SeqC ToolOfst ProSpeed EOL
SeqC SubCall 'D2' EOL { Call Origin Shift Sub }
CheckPass
SeqC Feed StrtPos DoR EOL
SeqC ZCP1 DoR EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
SeqC Feed StrtPos DoR EOL
END
ELSE
IF SameTool?
DoEndOpPS
IF LAST ProgStop?
SeqC LAST ZCP1C DoR SpinOff CoolOff EOL
SeqC LAST ToolOfst 'G49' DoR EOL { G49 = OfstOff }
SeqC 'M0' EOL

{Start new Operation}

GetStartOfSameTool
SeqC ToolOfst 'G48' DoR ProSpeed SpinOn EOL { G48 = OfstOn }
SeqC Feed StrtPos DoR EOL
SeqC ZCP1 DoR EOL
SeqC CoolOn EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
IF NewToolOffset?
SeqC LAST ZCP1C DoR EOL
SeqC LAST ToolOfst 'G49' DoR EOL { G49 = OfstOff }

{Start new Operation}

GetStartOfSameTool
SeqC ToolOfst 'G48' DoR { G48 = OfstOn }
IF NotEqual? SpeedRPM# LAST SpeedRPM#
ProSpeed
END
EOL
SeqC Feed StrtPos DoR EOL
SeqC ZCP1 DoR EOL
ELSE

{Start new Operation}

GetStartOfSameTool
IF NotEqual? SpeedRPM# LAST SpeedRPM#
SeqC ProSpeed EOL
END
SeqC Feed StrtPos DoR EOL
END
IF NOT CoolOff? AND LAST CoolOff?
SeqC CoolOn EOL
END
END
END
END
END {common point for all operations}
RapidF# { No Output, forces FeedRate/FeedEnt }
IF Milling?
SeqC ZCP2C DoR 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?
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
SeqC FeedC ZCP3C
IF FIFO? AND NOT AutoCycle? {.81}
FeedRateC
ELSE
DoR
END
EOL
ELSE
IF Drilling?
NewProg
IF Repeats?
StdSub
SeqC StrtPos EOL
NewProg
ToolPath
FinishSubG92
Drill
ELSE
ToolPath
Drill
END
SeqC FeedC ZCP3C DoR 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
IF MultipleParts? AND OneToolAllParts? AND FullUp?
SeqC ZCP1C DoR CoolOff EOL
CRCOfstOff
SeqC ToolOfst EOL
CloseMP
DoEndOpPS
SeqC SpinOff EOL
ELSE
SeqC ZCP1C DoR SpinOff CoolOff EOL
DoEndOpPS
CRCOfstOff
SeqC ToolOfst EOL
END
SeqC SubCall 'D3' EOL { Call Origin Un-Shift Sub }
IF ProgStop?
SeqC 'M0' EOL
END
IF MultipleParts? AND AllToolsOnePart?
CloseMP
END
CloseSub
'N111' UnTool EOL
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:
Bostomatic SPC II M411 15
Bostomatic SPC II MX42 85
Bostomatic SPC II D411 15 3
Bostomatic SPC II CSD MX41 85
Bostomatic SPC II CSD MX41 85
Bostomatic SPC II PM947 17 3
Bostomatic SPC I [CS] M377 87
Bostomatic SPC1 [LAG] M457 87
Bostomatic SPC I M301 79 1
Servo II M693 87
Anomatic II Ano [QI] M578 87
Alchemia II Rozdział 8
Do W cyrkulacja oceaniczna II rok
Fanuc 10M MVJr[G43r] M192 87

więcej podobnych podstron