Centurion IV Comet M337 80


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

{6/8/90, Updated: Tree IIC M034.53 to .72.1 format, JR}
{7/24/90, Replaced all occurances of SetSRXYZero with SetSRXYtoSP, DWB}

{9/12/90
Copied & modified: Tree IIC M034.73
For: All American Racers
Machine: RetroFit
Control: Centurian IV
Modified Format of Arcs to be output G02/G03 R I J X Y.
Modified Arc output MoveXYZC to be MoveXY MoveZC.
Added G29 ZCP2 to before move to ZCP1 to preset Z axis.
Added ZCP1 back in.
Moved FeedEnt between Feed and ZIn.
Deleted IncValue at all occurances of OfstOff with literal 'Z0'.
DWB}

{10/19/90
Modified: Centurion IV Comet M337.73
For: All American Racers
Moved SpinOff to be before Home on the same line.
Change to a No Subs format per Fanuc M015.76.1
JR}

{12/12/90
Modified: Centurion IV Comet M337.76.1
For: All American Racers
Note: This change is a bug fix and should apply to anyone using this post.
Changed 'G3000' to 'G300' in IF Drilling? section.
Added 'StartPos' before call to ToolPath in IF Drilling? section.
Note: Machine will not drill first hole if it is already in position when Cycle is called.
Changed 'Use Absolute Drill Depths' Boolean to true in Mach Spec.
JC}

{4/3/91
Modified: Centurion IV (IS) M387.76.2
For: Gibbs & Associates
DWB}

{5/2/91
Modified: Centurion IV Comet M337.76.2
For: All American Racers
Updated to Version 4.0 per Fanuc 6M M001.80 Format.
Modified Peck drilling parameters P306 and P307.
Control must read all FeedEnt, FeedRate and Speed output BEFORE axis motion on a block.
Moved FeedRateC between FeedC and MoveXYZC 4 places.
Moved DecelFeed between FeedC and MoveXYZC 2 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.
Added logic to handle Arcs in all Planes.
DWB}

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

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

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

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

DoPartSubComment:
IF UseComments? AND SubComment?
TagInc
'( Part Number: ' Tag# ' )' EOL
IF LastPart?
TagInit
END
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
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

EntryMove:
IF FeedEntry?
SeqC Feed FeedEnt ZIn EOL
ELSE
SeqC RapidC ZIn 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

StdLine: {enables CRC on first call, .70}
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
RETURN

ToolPath2: {for AutoCycle element moves}
EACHFeat
IF RapidFeat?
IF LastFeat?
SeqC CRCOffC RapidC MoveXYZC EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqC RapidC MoveXYZC EOL
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
StdLine {enables CRC on first call}
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
NEXTFeat
RETURN

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

ToolPath:
EACHFeat
IF PointFeat?
SeqC MoveSXYC EOL
IF AutoCycle?
CutAutoCycle
CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
END
ELSE
IF RapidFeat?
IF XMove? OR YMove? OR ZMove?
SeqC RapidC MoveXYZC EOL
END
ELSE
IF LineFeat?
StdLine
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

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
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
OpenSub
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?
EACHPart
DoPartSubComment
END
DoOpComments
Seq OpToolID ToolChng EOL
SeqC Plane DrillOff CRCOff EOL
DoPostScript
SeqC Speed SpinOn CoolOn EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
EACHPart
DoPartSubComment
IF NOT FirstPart?
DoOpComments
END
END
CheckPass
SeqC AbsOrInc Rapid FeedEnt StrtPos EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
EACHPart
DoPartSubComment
IF NOT FirstPart?
DoOpComments
SeqC StrtPos EOL
END
END
SeqC 'G29' ZCP2 EOL
SeqC ZCP1 EOL
ELSE
IF NewTool?

{Finish off last Operation}

IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
NEXTPart
END
SeqC CoolOff EOL
SeqC OfstOff 'Z0' EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
NEXTPart
END
DoEndOpPS
IF ToolChangeAtHome?
SeqC AbsOrInc 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 OpToolID ToolChng EOL
SeqC Plane DrillOff CRCOffC EOL
DoPostScript
SeqC Speed SpinOn CoolOn EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
EACHPart
DoPartSubComment
IF NOT FirstPart?
DoOpComments
END
END
CheckPass
SeqC AbsOrInc Rapid FeedEnt StrtPos EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
EACHPart
DoPartSubComment
IF NOT FirstPart?
DoOpComments
SeqC StrtPos EOL
END
END
SeqC 'G29' ZCP2 EOL
SeqC ZCP1 EOL
ELSE
IF SameTool?
DoEndOpPS
IF LAST ProgStop?
SeqC CoolOff EOL
SeqC OfstOff 'Z0' EOL
SeqC SpinOff EOL
SeqC 'M00' EOL

{Start new Operation}

GetStartOfSameTool
SeqC Speed SpinOn CoolOn EOL
SeqC PlaneC AbsOrInc Rapid FeedEnt StrtPos EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
IF NewToolOffset?
SeqC OfstOff 'Z0' EOL

{Start new Operation}

GetStartOfSameTool
SeqC PlaneC AbsOrInc Rapid FeedEnt SpeedC StrtPos EOL
ELSE

{Start new Operation}

GetStartOfSameTool
SeqC PlaneC AbsOrInc Rapid FeedEnt SpeedC StrtPos EOL
END
IF NOT CoolOff? AND LAST CoolOff?
SeqC CoolOn EOL
END
END
END
END
END {common point for all operations}
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 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?
RapidC PRIME ZCP3C
END
EOL
NEXTRep
END
END
SeqC RapidC CRCOffC ZCP3C EOL
ELSE
IF Drilling?
IF Repeats?
EACHRep
DoSubComment
IF NOT FirstCycle?
SeqC AbsOrInc Rapid StrtPos EOL
END
END
SeqC FromCP EOL
SeqC DrillCP EOL
GetCycle
SeqC 'G300' RLevel EOL
IF Peck?
SeqC 'G306P' Peck# EOL
SeqC 'G307' Peck EOL
END
SeqC 'G308' ZDepth EOL
IF FIDRO?
SeqC 'G323' Dwell EOL
END
SeqC Cycle EOL
SeqC StrtPos EOL
ToolPath
SeqC DrillOff EOL
IF Repeats?
NEXTRep
END
SeqC RapidC ZCP3C EOL
END
END
{NEXTOp} { modified to prevent endless looping in ncPOST }

IF MultipleParts?
IF LastOp?
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
NEXTPart
END
SeqC CoolOff EOL
SeqC OfstOff 'Z0' EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
NEXTPart
END
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqC AbsOrInc Rapid SpinOff FirstHome EOL
ELSE
SeqC SpinOff EOL
END
IF ProgStop?
SeqC 'M00' EOL
END
IF MultipleParts? AND AllToolsOnePart?
NEXTPart
END
ELSE
NEXTOp
END
ELSE
NEXTOp
SeqC CoolOff EOL
SeqC OfstOff 'Z0' EOL
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqC AbsOrInc Rapid SpinOff FirstHome EOL
ELSE
SeqC SpinOff EOL
END
IF ProgStop?
SeqC 'M00' EOL
END
END

SeqC EOP EOL
Post
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 IV [PP] M724 81 2
Centurion IV [IS] M387 89
Bandit IV WI [BM] M459 80
żuraw 80
Bandit IV AB [DM] MV32 89 1
IV CSK 109 09 1
Dynapath 20M M074 80 1
Budownictwo Ogólne semestr IV 1 Stropodachy(1)
Wyk ad IV Minimalizacja funkcji logicznych

więcej podobnych podstron