G&L Numeripath 800M M713 87 1


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

{7/7/89
Copied & modified: G & L 15VFC 80 M209.55
For: Armco.
Machine: Giddings & Lewis Model 420 DiMiL
Control: G & L NumeriPath PCC80.
Added a FORMAT call for ZDepth# used in Drilling.
Commented out PostScript.
Changed Speed TABLE command to typical Speed command.
Various other FORMAT changes to reflect the needed output.
JR}

{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 and uncommented out PostScript.
Modified for no SepSubs as this control does not support subroutines.
Changed FORMAT from forcing all decimal places to forcing trailing places only.
**NOTE: the above format is not working, ncPOST 3.19Ś14**
JR}

{7/24/90
Modified: G & L Numeripath 80 M217.61
Added InitProg globally to posts with this remark.
DWB}

{5/12/92
Modified: G & L Numeripath 80 M217.79
For: Gibbs & Associates
Updated to Version 4.1 per LongHand [AbsOrInc] M001.81 Format.
DWB}

{11/16/94
Copied & modified: G & L Numeripath 80 M217.81
For: General Tool Co., Inc.
Control: G&L Numeripath 800 M
Machine: G&L HBM
Changed all '(' to '&T' and all ')' to &R''
Modified program start up blocks.
Format T to 3 digits.
Changed W to Z for Z addresses.
Max RPM is 1120
Modified begin and end tool blocks.
Deleted CRCOfst.
Added manual drill pecking routine.
Minor other format stuff.
Jim Radcliffe}

{5/10/95
Initial: G&L Numeripath 800M M713.81
ForUser: General Tool
Comment: Change tapping cycle to use E instead of F
Jim Radcliffe}

{2/9/96, Updated .81 number to .84, no changes necessary, MPK}

{10/25/95
Initial: G&L Numeripath 800M M713.84
Created: G&L Numeripath 800M M713.84.1
ForUser: General Tool Co., Inc.
Develop: ComPost 4.21.34, Catalyst68K v3.02.02C
Comment: Changed format of FeedEntIPR# to six decimal places.
Jim Radcliffe}

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

{11/22/96
Initial: G&L Numeripath 800M M713.87
Created: G&L Numeripath 800M M713.87.1
ForUser: General Tool Co., Inc.
Develop: ComPost2 68k v1.0b4, Catalyst68K v3.09.05C
Comment: Modifed per marked up readout and conversation with David Bishop
Added ArcZRads for third axis value in helical interpolation.
Changed G87 FI-FO drill cycle to output G86 FI-Stop-RO,
there is no G87 command nor FI-FO cycle on his control.
Jim Radcliffe}

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

#1 = '#.00'
#2 = '###.###;0.'
#3 = '*###.###;0.'
#4 = '####.####;0.'
#5 = '#######0'
#6 = '####^0'
#7 = '#;'
#8 = '###.####;0.'
#9 = '###.######;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(Tag#,5)
FORMAT(Dwell#,6) {.72}
FORMAT(RapidF#,7)
FORMAT(ClearancePlane1#,8)
FORMAT(ClearancePlane2#,8)
FORMAT(CRCNormalVectorX#,8)
FORMAT(CRCNormalVectorY#,8)
FORMAT(TCZ#,8)
FORMAT(Recall#,8)
FORMAT(SPZ#,8)
FORMAT(ArcZRads#,8)
FORMAT(FeedEntIPR#,9)

{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

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

DoCycleComment:
IF UseComments? AND SubComment?
'&T CYCLE START &R' EOL
END
RETURN

DoOpComments:
IF UseComments?
SetScale('1')
IF OperationIDComment?
'&T OPERATION ' Operation# ': ' OperationType$ ' &R' EOL
END
IF OperationComment?
'&T ' OperationComment$ ' &R' EOL
END
IF WorkGroupComment?
'&T ' WorkGroupComment$ ' &R' EOL
END
IF ToolTypeComment?
'&T TOOL ' Tool# ': ' ToolDiameter# ' ' ToolType$ ' &R' EOL
END
IF ToolComment?
'&T ' ToolComment$ ' &R' EOL
END
RestoreScale
END
RETURN

PSInit: {reset flags}
RotateF
OptCyc1F
RETURN

PSStuff: {revised.72}
RETURN

DoPostScript:
PSInit
EachPS
SeqC PostScript EOL {literals}
PSStuff {commands}
NextPS
RETURN

DoEndOpPS:
PSInit
EachEOPS
SeqC EndOpPS EOL {literals}
PSStuff {commands}
NextPS
RETURN

CheckCRCVector:
IF Flag?('2')
SetFlagF('2')
'I' CRCNormalVectorX# 'J' CRCNormalVectorY#
END
RETURN

CheckCRCOn:
IF CutterRadiusCompensation? AND NOT Flag?('1')
SetFlag('1')
SetFlag('2')
CRCOnC
END
RETURN

CheckCRCOff:
IF Flag?('1')
SetFlagF('1')
CRCOffC
END
RETURN

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

GetConnect:
IF FeedConnect?
FeedC
ELSE
RapidC
END
RETURN

ExitMove:
SeqC
IF NOT FeedConnect?
IF FIFO? { .81 }
FeedC
ELSE
IF NOT AutoCycle?
RapidC
END
END
CheckCRCOff PRIME ZCP2C
END
IF FIFO? { .81 }
FeedEntC
END
EOL
RETURN

ExitMove2:
IF FIFO?
SeqC FeedC CheckCRCOff ZCP3C FeedEntC EOL
ELSE
SeqC RapidC CheckCRCOff ZCP3C EOL
END
RETURN

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

FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
IF XYPlane?
IF ZMove?
MoveX MoveY MoveZC ArcIJ 'K' ArcZRads#
ELSE
MoveX MoveY MoveZC ArcIJ
END
ELSE
IF XZPlane?
IF YMove?
MoveX MoveY MoveZ ArcI 'J' ArcZRads# ArcJ
ELSE
MoveX MoveZ ArcIJ
END
ELSE
IF XMove?
MoveX MoveY MoveZ 'I' ArcZRads# ArcI ArcJ
ELSE
MoveXC MoveY MoveZ ArcIJ
END
END
END
RETURN

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

DoPeck:
IF GreaterThan? SUB# Recall# Num#('1') Peck# SPZ#
Save# Num#('1') SUB# Recall# Num#('1') Peck#
'Z' Recall# Num#('1')
'R' Recall# Num#('2')
Save# Num#('2') ADD# Recall# Num#('1') Retract#
IF PeckChipBreaker?
{ needs K value }
END
ELSE
'Z' SPZ#
'R' Recall# Num#('2')
SetFlagF('3')
END
RETURN

DoPeckC:
IF Flag?('3')
SeqC DoPeck EOL
END
RETURN

ToolPath:
EACHFeat
IF PointFeat? { Drilling Only }
IF Peck?
IF NOT FirstFeat?
Save# Num#('1') ClearancePlane2# { var #1 = next Z depth }
Save# Num#('2') ClearancePlane2# { var #2 = next R Plane }
SetFlag('3') { NeedsPeck = true }
SeqC MoveSXYC DoPeck EOL
END
DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC
DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC
DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC
DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC
DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC
DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC
DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC
DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC
DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC
DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC DoPeckC
ELSE
SeqC MoveSXYZC EOL
END
ELSE
IF RapidFeat?
IF LastFeat? AND AutoCycle? {.70}
SeqC RapidC MoveXYZC EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqC RapidC MoveXYZC EOL
END
END
ELSE
IF LineFeat?
IF AutoCycle? {.70}
IF LastFeat?
SeqC FeedC 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 MoveSXYC EOL
CalcACSRXY {calc tool position, CalcAutoCycleStatusRecordXY}
SaveSubStatus {save tool position}
SetPass1 {element cut moves}
SetSRXYtoSP
SeqC IncValue EOL
RETURN

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

Milling:
EntryMove
ToolPath
RETURN

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

NoRepAutoCycle:
EACHFeat
RapidC
AutoCycCutSub1
DoCycleComment
Milling
AutoCycCutSub2
NEXTFeat
RETURN

XYZRepAutoCycle:
CycleWarning
EachRep
EACHFeat
IF FirstCycle? AND FirstFeat?
ELSE
GetConnect
END
AutoCycCutSub1
DoCycleComment
Milling
AutoCycCutSub2
NEXTFeat
NextRep
RETURN

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

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

GetStartOfSameTool:
DoOpComments
DoPostScript
CheckPass
RETURN

RetractSpindle:
Rapid 'Z0.M12'
RETURN

HomeW:
'W' TCZ#
RETURN

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

{setup and initializations}
InitProg
ReverseXZArcs
SetMaxRPM('1120')
SetMaxFeed('500')
SetFlagF('1') { For CRCOn }
SetFlagF('2') { For CRCNormalVector }
SetTCZ('15.')
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
' ToolChangeZ(15.), TCZ(15.) -' EOL
' Modal. Sets the tool change position for the W axis. Defaults to W15.' EOL
END
EachOp {Start of post processing *********************}
IF FirstOperation?
EOR EOL
IF ToolChangeAtHome?
SetHome
END
IF UseComments?
IF ProgramNameComment?
'&T PROGRAM: ' ProgramName$ ' &R' EOL
END
IF ProgramComment?
'&T ' ProgramComment$ ' &R' EOL
END
IF FormatNameComment?
'&T FORMAT: ' FormatName$ ' &R' EOL
END
IF TimeComment?
'&T ' Date$ ' AT ' Time$ ' &R' EOL
END
IF MovesComment?
'&T OUTPUT IN ' MoveType$ ' INCHES &R' EOL
END
IF PartsComment?
'&T PARTS PROGRAMMED: ' Parts# ' &R' EOL
END
IF StartToolComment?
'&T FIRST TOOL IN SPINDLE &R' EOL
END
END
OpenSub
RestoreScale
Seq AbsOrInc RetractSpindle EOL
SeqC Plane CRCOff EOL
SeqC Rapid Home HomeW 'M50' EOL
IF MultipleParts? AND AllToolsOnePart?
EachPart
DoPartCycleComment
END
SeqC RetractSpindle EOL
SeqC HomeW OfstOff EOL
SeqC OpToolID ToolChng EOL
DoOpComments
DoPostScript
IF MultipleParts? AND OneToolAllParts? AND FullUp?
EachPart
DoPartCycleComment
IF NOT FirstPart?
DoOpComments
END
END
CheckPass
SeqC Rapid AbsOrInc StrtPos Speed SpinOn EOL
SeqC OfstOn CoolOn EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
EachPart
DoPartCycleComment
IF NOT FirstPart?
DoOpComments
CheckPass
SeqC StrtPos EOL
END
END
ELSE
IF NewTool?

{Finish off last Operation}

IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
NextPart
END
SeqC CoolOff EOL
SeqC RetractSpindle EOL
SeqC HomeW OfstOff EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
NextPart
END
DoEndOpPS
IF ToolChangeAtHome?
SeqC Rapid Home EOL
END
IF LAST ProgStop?
SeqC 'M00' EOL
ELSE
SeqC ProgStop EOL
END

{Start new Operation}

Seq OpToolID SpinOff ToolChng EOL
SeqC PlaneC EOL
DoOpComments
DoPostScript
IF MultipleParts? AND OneToolAllParts? AND FullUp?
EachPart
DoPartCycleComment
IF NOT FirstPart?
DoOpComments
END
END
CheckPass
SeqC Rapid AbsOrInc StrtPos HomeW EOL
SeqC Speed SpinOn EOL
SeqC OfstOn CoolOn EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
EachPart
DoPartCycleComment
IF NOT FirstPart?
DoOpComments
CheckPass
SeqC StrtPos EOL
END
END
ELSE
IF SameTool?
DoEndOpPS
IF LAST ProgStop?
SeqC CoolOff EOL
SeqC RetractSpindle EOL
SeqC HomeW OfstOff EOL
SeqC 'M00' EOL

{Start new Operation}

GetStartOfSameTool
SeqC RapidC PlaneC StrtPos SpinOn SpeedC EOL
SeqC OfstOn CoolOn EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
IF NewToolOffset?
SeqC RetractSpindle EOL
SeqC HomeW OfstOff EOL

{Start new Operation}

GetStartOfSameTool
SeqC RapidC PlaneC StrtPos SpeedC EOL
SeqC OfstOn EOL
ELSE

{Start new Operation}

GetStartOfSameTool
SeqC RapidC PlaneC StrtPos SpeedC 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 }
IF Milling?
SeqC RapidC ZCP2C EOL
IF AutoCycle?
IF Repeats?
IF ZshiftOnly?
ZonlyRepAutoCycle
ELSE
XYZRepAutoCycle
END
IF NOT FeedConnect?
ExitMove2
END
ELSE
NoRepAutoCycle
ExitMove2
END
ELSE { NOT AutoCycle }
IF Repeats?
XYZRep
ELSE
Milling
END
ExitMove2
END
ELSE
IF Drilling?
IF Repeats?
EachRep
DoCycleComment
END
GetCycle
SeqC Cycle StrtPos
IF Peck?
Save# Num#('1') ClearancePlane2# { var #1 = next Z depth }
Save# Num#('2') ClearancePlane2# { var #2 = next R Plane }
SetFlag('3') { NeedsPeck = true }
DoPeck
ELSE
ZDepth RLevel
END
IF RetractToCP1?
'K' ClearancePlane1#
ELSE
'K' ClearancePlane2#
END
IF Tap?
'E' FeedEntIPR#
ELSE
FeedEnt EOL
END
TrackZNO# ZDepth# {.81}
ToolPath
SeqC Rapid ZCP3 EOL
IF Repeats?
NextRep
END
SeqC RapidC ZCP3C EOL
END
END
IF MultipleParts? AND LastOp?

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

{finish last operation}
IF OneToolAllParts? AND ExitClearancePlane?
NextPart
END
SeqC CoolOff EOL
SeqC RetractSpindle EOL
SeqC HomeW OfstOff EOL
IF OneToolAllParts? AND FullUp?
NextPart
END
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqC Rapid FirstHome EOL
END
IF ProgStop?
SeqC 'M00' 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 RetractSpindle EOL
SeqC HomeW OfstOff EOL
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqC Rapid FirstHome 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?
'&T FILE LENGTH: ' FileBytes# ' CHARACTERS &R' EOL
END
IF FileFeetComment?
'&T FILE LENGTH: ' FileFeet# ' FEET &R' EOL
END
IF FileMetersComment?
'&T FILE LENGTH: ' FileMeters# ' METERS &R' EOL
END
Close
END



Wyszukiwarka

Podobne podstrony:
G & L Numeripath 8000 M499 87
Fanuc 10M MVJr[G43r] M192 87
Tosnuc 600M BMC 40 M440 87
function is numeric
Fanuc 6M [MC] M710 87
Numerics
pref 87
Numericke metody
87 Omow znaczenie czynnika geometrycznego dla przeplywu krwi
Mazatrol M32 [CKC] M709 87

więcej podobnych podstron