Bostomatic SPC I [CS] M377 87


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

{1/3/91
Copied & modified: Bostomatic SPC-I M301.76.2
For: CS Draper Labs
Machine: Bostomatic
Control: SPC-I
Added NullFoot command and 60 space characters to output 18' of tape leader at start.
DWB}

{4/3/91
Modified: Bostomatic SPC-I [CS] M377.76.2
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 6M M001.80 Format.
DWB}

{4/12/91
Modified: Bostomatic SPC-I [CS] M377.79
For: C.S. Draper Labs
Changed SetMaxRPM('10000') to SetMaxRPM('7000')
Added SetMinRPM('700')
Added Feed CRCOff OfstOff to AbsOrInc in start-up block in FirstOperation.
Changed MachSpec to suppress output of Z0 in OfstOff command in start-up block.
Added ToolChng to FirstOperation and NewTool.
Changed Change Tool to 'M0' in Commands 4 in MachSpec.
Combined literal 'S100', SpinOn and CoolOn lines and added literal 'G4X30000' onto one line.
Outputting this line after MP-OTAP-FU loop in FirstOperation and NewTool.
Deleted ZCP1 from FirstOperation, NewTool and SameTool.
Added ToolOfst at FirstOperation, NewTool and SameTool.
Added SpinOff 'G4X20000' at NewTool and end of Prog.
Deleted ProgStop from end of Prog.
Deleted 'XYR' line from end of Prog.
JR}

{7/8/91
Modified: Bostomatic SPC-I [CS] M377.79.1
For C.S. Draper Labs
Modified Dwell FORMAT#6 from '####^####;' to ####^###0'.
Changed SetMaxRPM('7000') to SetMaxRPM('4800')
Changed SetMinRPM('700') to SetMaxRPM('480')
Changed literal 'S100' to ProSpeed at FirstOperation, NewTool and SameTool.
Added ProSpeed two more places at SameTool.
Added 'G4X30000' to SpinOn at SameTool.
Changed ZCP2C to ZCP2 at IF Milling?.
Deleted IF RetractToCP1? at beginning of IF Drilling?
Left ZCP2 DoR at beginning of IF Drilling?
Modified EachFeat/NextFeat loop in IF Drilling? and moved to DrillPath sub.
Deleted DrillPlane sub.
Added ZCP3C DoR at end of IF Drilling?
Changed seven occurances of SeqLabC to SeqC.
JR}

{10/7/91
Modified: Bostomatic SPC-I [CS] M377.80
For: Gibbs & Associates
Updated to Version 4.1 per No Subs M001.81 Format.
DWB}

{2/9/96, Updated .81 number to .84, no changes necessary, 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 = '#;'

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

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

DoPartCycleComment:
IF UseComments? AND SubComment?
TagInc
'( START PART NO. ' Tag# ' )' EOL
IF LastPart?
TagInit
END
END
RETURN

DoCycleComment:
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
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

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

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

CycleWarning:
{ NOTE: This Post Processor takes care of Z Clearance. }
RETURN

FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXYZC 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?
SeqC MoveSXYZC DoR EOL {.80.01}
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}
SeqC FeedC MoveSXYC DoR EOL
CalcACSRXY {calc tool position, CalcAutoCycleStatusRecordXY}
SaveSubStatus {save tool position}
SetPass1 {element cut moves}
SetSRXYtoSP
SeqC IncValue EOL
RETURN

AutoCycCutSub2: {part 2}
SeqC AbsOrInc FeedC ZCP2C {.71.2 removed CRCOffC, gets turned off in ToolPath}
IF FIFO? {.81}
FeedRateC
ELSE
DoR
END
EOL
SetSRSubXY {restore SR to 1st position value}
ReSetPass2 {restore for positioning moves}
RETURN

Milling:
EntryMove
ToolPath
RETURN

XYZRep:
CycleWarning
EachRep
SeqC FeedC CRCOffC StrtPosC
IF NOT FeedConnect?
DoR
END
EOL
DoCycleComment
IF NOT FirstCycle? AND NOT FeedConnect? AND FeedEntry?
SeqC ZCP2C DoR EOL
END
Milling
ExitMove
NextRep
RETURN

NoRepAutoCycle:
EACHFeat
AutoCycCutSub1
DoCycleComment
IF FeedEntry? AND FeedConnect? AND NOT FirstCycle?
FeedC
END
Milling
AutoCycCutSub2
NEXTFeat
RETURN

XYZRepAutoCycle:
CycleWarning
EachRep
EACHFeat
AutoCycCutSub1
DoCycleComment
Milling
AutoCycCutSub2
NEXTFeat
NextRep
RETURN

ZonlyRepAutoCycle:
EACHFeat
AutoCycCutSub1
EachRep
IF FirstCycle?
DoCycleComment
EntryMove
ELSE
ExitMove
IF FeedConnect?
SeqC FeedC MoveSXYC EOL
DoCycleComment
ELSE
SeqC FeedC MoveSXYC DoR EOL
DoCycleComment
EntryMove
END
END
ToolPath
NextRep
AutoCycCutSub2
ReSetPass2 {restore for positioning moves}
NEXTFeat
RETURN

DoPeck:
Save# Num#('1') SUB# Recall# Num#('1') Peck#
IF GTEqual? Recall# Num#('1') SPZ#
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:
EACHFeat
SeqC FeedC MoveSXYC DoR EOL
SeqC ZCP2C DoR EOL
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 MoveSXYZC EOL
ELSE
SeqC FeedC MoveSXYZC FeedEntC EOL
IF Tap?
SeqC InverseSpinOn 'G4X30000' EOL
SeqC ZCP2C EOL
SeqC SpinOn 'G4X30000' EOL
ELSE
IF Dwell?
SeqC 'G4X' Dwell# EOL
END
IF FIFO?
SeqC ZCP2C EOL
END
END
END
SeqC DrillCP DoR EOL
NEXTFeat
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
ArcsNeedXYZ
SetFlood
SetMaxRPM('4800')
SetMinRPM('480')
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?
NullFoot ' ' EOL {18' Leader}
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$ ' INCHES )' EOL
END
IF PartsComment?
'( PARTS PROGRAMMED: ' Parts# ' )' EOL
END
IF StartToolComment?
'( FIRST TOOL NOT IN SPINDLE )' EOL
END
END
OpenSub
IF Metric? {CAM file is in Metric, tools and tool path}
SetScale('.03937007874') { change to English, this is an English post}
END
Seq Feed CRCOff OfstOff AbsOrInc EOL
SeqC 'G26XYZ0' EOL {edited at machine to preset position}
IF MultipleParts? AND AllToolsOnePart?
EachPart
DoPartCycleComment
END
SeqC OpToolID EOL
SeqC ToolChng EOL
DoOpComments
DoPostScript
IF MultipleParts? AND OneToolAllParts? AND FullUp?
EachPart
DoPartCycleComment
IF NOT FirstPart?
DoOpComments
END
END
SeqC ProSpeed SpinOn CoolOn 'G4X30000' EOL
CheckPass
SeqC Plane Feed StrtPos DoR EOL
SeqC ToolOfst 'G48' DoR EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
EachPart
DoPartCycleComment
IF NOT FirstPart?
DoOpComments
SeqC StrtPos DoR EOL
END
END
ELSE
IF NewTool?

{Finish off last Operation}

IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
NextPart
END
SeqC CoolOff EOL
SeqC OfstOff DoR EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
NextPart
END
DoEndOpPS
IF ToolChangeAtHome?
SeqC FeedC Home DoR EOL
END
SeqC SpinOff 'G4X20000' EOL
IF LAST ProgStop?
SeqC 'M0' EOL
ELSE
SeqC ProgStop EOL
END

{Start new Operation}

Seq OpToolID EOL
SeqC ToolChng EOL
DoOpComments
DoPostScript
IF MultipleParts? AND OneToolAllParts? AND FullUp?
EachPart
DoPartCycleComment
IF NOT FirstPart?
DoOpComments
END
END
SeqC ProSpeed SpinOn CoolOn 'G4X30000' EOL
CheckPass
SeqC Plane Feed StrtPos DoR EOL
SeqC ToolOfst 'G48' DoR EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
EachPart
DoPartCycleComment
IF NOT FirstPart?
DoOpComments
SeqC StrtPos DoR EOL
END
END
ELSE
IF SameTool?
DoEndOpPS
IF LAST ProgStop?
SeqC CoolOff EOL
SeqC OfstOff DoR EOL
SeqC 'M0' EOL

{Start new Operation}

GetStartOfSameTool
SeqC ProSpeed SpinOn 'G4X30000' EOL
SeqC Plane Feed StrtPos DoR EOL
SeqC ToolOfst 'G48' DoR EOL
SeqC CoolOn EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
IF NewToolOffset?
SeqC OfstOff DoR EOL

{Start new Operation}

GetStartOfSameTool
IF NotEqual? SpeedRPM# LAST SpeedRPM#
SeqC ProSpeed EOL
END
SeqC Plane Feed StrtPos DoR EOL
SeqC ToolOfst 'G48' DoR EOL
ELSE

{Start new Operation}

GetStartOfSameTool
IF NotEqual? SpeedRPM# LAST SpeedRPM#
SeqC ProSpeed EOL
END
SeqC Plane Feed StrtPos DoR EOL
END
IF NOT CoolOff? AND LAST CoolOff?
SeqC CoolOn EOL
END
END
END
END
END {common point for all operations}
ResetCRCNum {.72}
RapidF# { No Output, forces FeedRate/FeedEnt }
IF Milling?
SeqC ZCP2 DoR EOL
IF AutoCycle?
IF Repeats?
IF ZshiftOnly?
ZonlyRepAutoCycle
ELSE
XYZRepAutoCycle
END
IF NOT FeedConnect?
SeqC FeedC ZCP3C
IF FIFO?
FeedRateC
ELSE
DoR
END
EOL
END
ELSE
NoRepAutoCycle
SeqC FeedC ZCP3C
IF FIFO?
FeedRateC
ELSE
DoR
END
EOL
END
ELSE { NOT AutoCycle }
IF Repeats?
XYZRep
ELSE
Milling
END
SeqC FeedC CRCOffC ZCP3C
IF FIFO?
FeedRateC
ELSE
DoR
END
EOL
END
ELSE
IF Drilling?
IF RetractToCP1?
SeqC ZCP1 DoR EOL
ELSE
SeqC ZCP2 DoR EOL
END
IF Repeats?
EachRep
SeqC StrtPosC DoR EOL
DoCycleComment
Drill
NextRep
ELSE
Drill
END
SeqC ZCP3C DoR EOL
END
END
IF MultipleParts? AND LastOp?

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

{finish last operation}
IF OneToolAllParts? AND ExitClearancePlane?
NEXTPart
END
SeqC CoolOff EOL
SeqC OfstOff DoR EOL
IF OneToolAllParts? AND FullUp?
NEXTPart
END
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqC FeedC FirstHome DoR EOL
END
SeqC SpinOff 'G4X20000' EOL
IF ProgStop?
SeqC 'M0' EOL
END
IF AllToolsOnePart?
NEXTPart
END
ELSE { NOT MultipleParts }
NextOp {loops back to EachOP until last Operation}

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

{finish last operation}
SeqC CoolOff EOL
SeqC OfstOff DoR EOL
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqC FeedC FirstHome DoR EOL
END
SeqC SpinOff 'G4X20000' EOL
END
SeqC EOP EOL
SeqC EOR EOL
Post
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 [LAG] M458 87
Mazak V515 [CS] M737 87
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
Fanuc 10M MS [CS] M735 87
Bostomatic SPC I M301 79 1
Bostomatic SPC1 [LAG] M457 87
Fanuc 10M MVJr[G43r] M192 87
cs part7
cs t24
Tosnuc 600M BMC 40 M440 87

więcej podobnych podstron