AB 9 230 [XY] M720 81 4


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

{12/8/94
Copied: Fanuc 6M M001.81.2e
Created: AB 9/230 [XY] M720.81.2
For: Flow International Corporation/Pemco
Machine: WaterJet
Control: Allen Bradley 9/230
Versions: ncCad 4.33/ncCAM 4.33/ncPost 4.33.04/Compost 4.21.23
Versions: Catalyst v2.14.14C/Compost 4.21.23
Changes made per Sean Vaughan of Flow International Corporation and Wilson of Pemco.
Support is for XY Axes only, no ZMoves.
DWB}

{12/15/94
Modified: AB 9/230 [XY] M720.81.2
For: Flow International Corporation/Pemco
Versions: ncCad 4.33/ncCAM 4.33/ncPost 4.33.04/Compost 4.21.23
Versions: Catalyst v2.14.22C/Catalyst v2.14.22PPC/Compost 4.21.23
Changes made per Wilson and Andy of Pemco.
Added CkCRC sub for CRCOffC per version 4.2.
CutterRadiusCompensation ExitLength will output G40 on LastFeat AND LineFeat at StdLine sub.
Added support of CRC during multiple pocket dog-bone operation.
Added condition to output CRCOnC for XMove OR YMove only at CkCRC sub.
Outputs G41/G42 on First LineFeat of ToolPath.
Modified condition to output CRCOffC on block following ExitLength Feature.
Changed logic to output CRCOnC in OneFeat ToolPath.
Added logic to suppress output of CRCOnC on Non-MoveXYC Feature.
Changed all literal ' G04 P0.5' to ' G04 P2.0'
Changed all literal ' G04 P1.0' to ' G04 P2.0'
Changed all literal ' G04 P1.5' to ' G04 P2.0'
Deleted EOR EOL at FirstOperation and end of Prog.
DWB}

{
Format: AB 9/230 [XY] M720.81.4
For: Pemco
9/20/95
Changed literal P2.0 after literal M10 to be P ToolLength#
TH}

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

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

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ToolDiameter#,4) {.72}
FORMAT(Program#,5) {.72}
FORMAT(Operation#,5) {.72}
FORMAT(Tool#,5) {.72}
FORMAT(NewWFO#,5) {.72}
FORMAT(Parts#,5) {.72}
FORMAT(Dwell#,6) {.72}
FORMAT(ToolLength#,6)

{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: ' 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
RestoreScale
END
RETURN

PSInit: {reset flags}
NewWFOF
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:
{ Processor does not support ZMoves }
RETURN

StartSub:
OpenSub
SubID EOL
DoSubComment
RETURN

SubWarning:
{ Processor does not support ZMoves }
RETURN

StdSub:
SeqC SubCall CallLab RepLab RepCycs EOL
StartSub
RETURN

FinishSub1: {part 1}
SeqC CRCOffC EOL
{ Processor does not support ZMoves }
RETURN

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

OpenMP:
NewProg
IF WorkFixtureOffsets?
NewWFO
EachWFO
SeqC SetWFO EOL
SeqC SubCall CallLab RepLab OnePart EOL
IncWFO
NextWFO
ELSE
SeqC SubCall CallLab RepLab Parts EOL
END
StartSub
RETURN

CloseMP:
IF WorkFixtureOffsets?
SeqC EndSub EOL
CloseSub
SeqC WFO1 EOL
ELSE
SeqC Preset ShiftPC EOL
SeqC EndSub EOL
CloseSub
SeqC Preset UnshftPC EOL
END
RETURN

FormatArc:
IF ArcCW?
CWArc
ELSE
CCWArc
END
MoveXY ArcIJ
RETURN

CkCRC: { 4.2 }
IF XMove? OR YMove? { Approach Length Feature and Multiple Pockets }
CRCOnC
END
RETURN

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

ToolPath:
ResetCRCNum {.72}
EACHFeat
IF PointFeat?
IF AutoCycle?
SeqC MoveSXYC EOL
SeqC SubCall CallLab EOL
CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
ELSE
SeqC MoveSXYC EOL {.80.01}
END
ELSE
IF RapidFeat?
IF XMove? OR YMove?
SeqC RapidC MoveXYC 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 FormatArc ArcFeedC EOL
DecelMove2
END
SeqC FormatArc DecelFeed EOL
ELSE
SeqC FormatArc ArcFeedC EOL
END
NEXTQuadrant
END
END
IF LastFeat? AND CutterRadiusCompensation? { Exit Length Feature }
SeqC FeedC EOL
SeqC CRCOffC EOL
END
END
END
NEXTFeat
RETURN

WFOStuff:
IF NewWFO?
IF MultipleParts?
'*** WARNING *** DO NOT USE NEWWFO() WITH NCPOST MULTIPLE PARTS' EOL
ELSE
SeqC ' G' NewWFO# EOL
END
ELSE
IF NOT SameTool?
IF NeedWFO1?
SeqC ' G' NewWFO# EOL
END
END
END
RETURN

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

AutoCycCutSub2: {part 2}
ToolPath
SeqC AbsOrInc EOL
SeqC EndSub EOL
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
AutoCycCutSub2
AutoCycPat
ELSE
ToolPath
END
RETURN

G92Sub:
SubWarning
StdSub
SeqC AbsOrInc Connect StrtPos EOL
Milling
FinishSub1
FinishSubG92
RETURN

ZonlyRepAutoCycle:
AutoCycPat {write pattern moves and main calls}
StartSub
NewProg
EachCycle
IF FeedConnect?
SeqC FeedEntC EOL
ELSE
IF FeedEntry?
SeqC FeedEntC EOL
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}
SeqC EndSub EOL
CloseSub
{Element shift, not pattern}
RETURN

ZonlyRep:
EachCycle
IF NOT FirstCycle?
SeqC Connect StrtPos EOL {.71.2, added Connect}
END
IF FeedConnect?
SeqC FeedEntC EOL
ELSE {Entry/Exit Connect}
IF FeedEntry?
SeqC FeedEntC EOL
END
END
SeqC SubCall CallLab EOL
NextCycle
StartSub
ToolPath
FinishSub1
SeqC EndSub EOL
CloseSub
RETURN

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

GetStartOfSameTool:
DoOpComments
DoPostScript
WFOStuff
CheckPass
RETURN

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

{setup and initializations}
InitProg
ReverseXZArcs
SkipZ
InitWFONum
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
' NewWFO(56), NWFO(56) -' EOL
' The Work Fixture Offset # you specify will be used for all following operations.' EOL
' Do not use with the ncPost multiple part option.' 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
RestoreScale
IF MultipleParts? AND AllToolsOnePart?
OpenMP
END
Seq OpToolID EOL
DoOpComments
DoPostScript
SeqC ' G92.1' EOL { Coordinate System Offset Cancel }
SeqC FeedEnt EOL
SeqC Plane EOL
SeqC Preset Home EOL
SeqC CRCOff EOL
WFOStuff
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
END
CheckPass
SeqC AbsOrInc Rapid StrtPos EOL
SeqC CoolOn EOL
SeqC ' G04 P2.0' EOL { Dwell }
SeqC ' M10' EOL { Abrasive On }
SeqC ' G04 P' ToolLength# EOL { Dwell }
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
SeqC StrtPos EOL
END
ELSE
IF NewTool?

{Finish off last Operation}

IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP
END
SeqC ' M11' EOL { Abrasive Off }
SeqC ' G04 P2.0' EOL { Dwell }
SeqC CoolOff EOL
SeqC ' G04 P2.0' EOL { Dwell }
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
IF ToolChangeAtHome?
SeqC AbsOrInc Rapid Home EOL
END
IF LAST ProgStop?
SeqC ' M00' EOL
ELSE
SeqC ProgStop EOL
END

{Start new Operation}

Seq OpToolID EOL
DoOpComments
DoPostScript
SeqC ' G92.1' EOL { Coordinate System Offset Cancel }
SeqC FeedEnt EOL
SeqC Plane EOL
SeqC Preset Home EOL
SeqC CRCOff EOL
WFOStuff
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
END
CheckPass
SeqC AbsOrInc Rapid StrtPos EOL
SeqC CoolOn EOL
SeqC ' G04 P2.0' EOL { Dwell }
SeqC ' M10' EOL { Abrasive On }
SeqC ' G04 P' ToolLength# EOL { Dwell }
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
SeqC StrtPos EOL
END
ELSE
IF SameTool?
DoEndOpPS
SeqC ' M11' EOL { Abrasive Off }
SeqC ' G04 P2.0' EOL { Dwell }
SeqC CoolOff EOL
SeqC ' G04 P2.0' EOL { Dwell }
IF LAST ProgStop?
SeqC 'M0' EOL
END

{Start new Operation}

GetStartOfSameTool
SeqC FeedEntC EOL
SeqC PlaneC AbsOrInc Rapid StrtPos EOL
SeqC CoolOn EOL
SeqC ' G04 P2.0' EOL { Dwell }
SeqC ' M10' EOL { Abrasive On }
SeqC ' G04 P' ToolLength# EOL { Dwell }
END
END
END {common point for all operations}
IF Milling?
IF CutterRadiusCompensation?
SeqC FeedC EOL
END
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?
ZonlyRep
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
ELSE
IF Drilling?
IF Repeats?
NewProg
StdSub
SeqC AbsOrInc Rapid StrtPos EOL
END
GetCycle
SeqC Cycle FromCP StrtPos Dwell Peck Retract FeedEnt EOL
ToolPath
SeqC ' G80' EOL
IF Repeats?
FinishSubG92
END
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 ' M11' EOL { Abrasive Off }
SeqC ' G04 P2.0' EOL { Dwell }
SeqC CoolOff EOL
SeqC ' G04 P2.0' EOL { Dwell }
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqC AbsOrInc Rapid FirstHome EOL
END
IF ProgStop?
SeqC ' M00' EOL
END
IF MultipleParts? AND AllToolsOnePart?
CloseMP
END
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:
Stromlaufplan Passat 81 Climatronic Motor AHU,AHH,AFN,AVG,AJM,ATJ,AVB,AFB,AKN ab 05 1998
Stromlaufplan Passat 81 Radio Navigationssystem (MFD) mit schwarz weiß Display ab 05 2001
AB 8600MC V M537 81 5m
AB 4300 Router [SP] M572 81 3
Fanuc 10M (AGA) M147 81 2
Bandit IV AB [DM] MV32 89 1
Tosnuc 600M VMC 45 M442 81 3
Stromlaufplan Passat 6 Motor 1,9l 66kW AHU, 1,9l 81kW AFN mit Schaltgetriebe ab 10 1996
Stromlaufplan Passat 52 Automatisches 4 Gang Getriebe (AG4) ab 10 2000
DM 81 Diper Kenwooda
BP IIA (HAC) M200 81
25 (230)
30 (81)
Artran Contour MV83 81

więcej podobnych podstron