Prototrak MX3E NASA NMX75 89 3m


{
MILL=T
LATHE=F
SIMPLE_ROT_POS=F
ROTARY_MILL=F
ADV_MILL=F
SUBS=F
MILLTURN_Y-AXIS=F
METRIC=T
}

{5/24/93
created initial NoSubs Processor to .81 format
FIFO stuff not supported
variables: 1 = tools 1st op; 2 = tools last op; 3 = ncCAMs last op
Jim Radcliffe}

{7/29/93, v.81.1, added FIFO handling, JR}
{8/3/93, v.81.2, SameTool WFO, RapidF#, additional FIFO handling, JR}

{1/21/94
Copied & Modified: Fanuc 6M NoSubs M001.81.2
For: CNCCS / Goddard Enterprises
Machine: Proto MX2
Modified FormatArc to output unconditional IJ arc centers.
Jim Radcliffe}

{4/14/94
Modified: Prototrak MX2 M622.81.2
For: CNCCS / Goddard Enterprises
Control has no Z drive. When it reads a G0 it stops for Manual Operation.
Stripped output accordingly per requests.
Cutter comp is not turned off on the last feature or at the end of the operation.
We set it at the beginning to be either CRCOn or CRCOff.
Jim Radcliffe}

{5/25/94, created .81.4, arcs stop on quads when doing full 360 deg circle, JR}

{9/11/95
Initial: Prototrak MX2 M622.81.4
Created: Prototrak MX2 M622.85
ForUser: Goddard Enterprises & Perkin Elmer
Comment: Changed Connect StrtPos to Rapid StrtPos in Milling Repeats.
Jim Radcliffe}

{2/12/96, Updated .85 number to .86, no changes necessary, MPK}

{3/22/96, Tested ZOnlyRepAutoCycle, Changed version # to .89, MPK}

{11/15/96,
Initial: Prototrak MX2 M622.89
Created: Prototrak MX3 Mxxx.89
For: Graphcam
This is for a machine with a Z drive, added Z axis stuff per Fanuc 6M NoSubs M877.89.1,
added drill canned cycle stuff per Fanuc 6M NoSubs M877.89.1,
deleted OffstOff commands from FullUp booleans, will cause an error on this control,
unchecked, "Allow R-format arcs" in form,
added support for mist and flood coolants,
MPK}

{07/24/97,
Initial:Prototrak MX2 [D3P] MZ80.89
Created:Prototrak MX2 Mxxx.89
For: NASA
Made output of literal M0 at NewTool? and FinishLastOp unconditional.
CDH}

{8/8/97,
Initial: Prototrak MX2 [NASA] MX75.89
Created: Prototrak MX3E [NASA] MX75.89.1
For: NASA
added ToolChng command to FirstOp and NewTool,
moved OpToolID to line with ToolChng,
changed Sequence Label to N,
changed format of N to ###0 in default format,
MPK}

{4/9/98,
Initial : Prototrak MX3E [NASA] MX75.89.1
Created: Prototrak MX3E [NASA] MX75.89.2
Customer: NASA

Changes to "Prog":

1. Added unconditional motion to ZCP1 or 2 after every Tool Change.
2. Added CoolOn to the above motion.
3. Changed motion to ZCP3 after drilling to be unconditional.
JHE}

{06/05/98, Created Metric Version. CDH}

{12/12/98,
Initial : Prototrak MX3E [NASA] MX75.89.2m
Created: Prototrak MX3E [NASA] NMX75.89.3m
Customer: NASA Flight Center, Ray Bendt 301/286 2223
ComPost2: v1.7b13

Changes to "Form":

1. Under Arcs, checked Arcs Stop on Quadrents.

Changes to "Prog":

1. Added Post Header Comment.
2. Added FORMAT for TrackZNO#.
3. Changed G20 to G21 (Metric code).
JHE}

{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)
FORMAT(TrackZNO#,4) {Added - JHE}
FORMAT(Program#,5)
FORMAT(Operation#,5)
FORMAT(Tool#,5)
FORMAT(NewWFO#,5)
FORMAT(Parts#,5)
FORMAT(Dwell#,6)
FORMAT(RapidF#,7)

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

RestoreScale:
IF NOT Metric? {CAM file is in English, tools and tool path}
SetScale('25.4') { change to Metric, this is a Metric post}
END
RETURN

DoSubComment:
IF UseComments? AND SubComment?
'( CYCLE START )' EOL
END
RETURN

DoOpComments:
IF UseComments?
SetScale('1')
IF MultipleParts? AND SubComment?
'( PART ' Tag# ' )' EOL
END
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
PSStuff
NextPS
RETURN

DoEndOpPS:
PSInit
EachEOPS
SeqC EndOpPS EOL
PSStuff
NextPS
RETURN

ExitType:
IF FIFO?
FeedC
ELSE
RapidC
END
RETURN

ExitFeed:
IF FIFO?
FeedEntC
END
RETURN

FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXYZC
IF ArcIJFormat?
ArcIJ
ELSE
ArcRC
END
RETURN

DoCoolOn:
IF Mist? AND NOT CoolOff?
'M7'
SetFlag('5')
ELSE
IF NOT CoolOff?
'M8'
SetFlag('5')
END
END
RETURN

HandleCRC:
IF NOT Flag?('2')
SetFlag('2')
IF CutterRadiusCompensation?
CRCOn
ELSE
CRCOff
END
END
RETURN

StdRapid:
SeqC HandleCRC EOL
IF XMove? OR YMove? OR ZMove?
SeqC Rapid MoveXYZC EOL
END
RETURN

StdLine:
SeqC HandleCRC EOL
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqC FeedC MoveXYZC FeedRateC EOL
DecelMove2
END
SeqC FeedC MoveXYZC DecelFeed EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqC FeedC MoveXYZC FeedRateC EOL
END
END
RETURN

DoArc:
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
SeqC FormatArc ArcFeedC EOL
DecelMove2
END
SeqC FormatArc DecelFeed EOL
ELSE
SeqC FormatArc ArcFeedC EOL
END
RETURN

StdArc:
SeqC HandleCRC EOL
IF FullArc?
EACHQuadrant
DoArc
NEXTQuadrant
ELSE
DoArc
END
RETURN

ToolPath2: {for AutoCycle element moves}
EACHFeat
IF RapidFeat?
StdRapid
ELSE
IF LineFeat?
StdLine
ELSE
IF ArcFeat?
StdArc
END
END
END
NEXTFeat
RETURN

EntryMove:
IF FeedEntry?
SeqC FeedC ZInC FeedEntC EOL
ELSE
SeqC RapidC ZInC EOL
END
RETURN

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

ToolPath:
SetFlagF('2') { set to flag that CRC needs to be handled }
EACHFeat
IF PointFeat?
IF AutoCycle?
IF NOT FirstFeat?
SeqC
IF FIFO?
Rapid
END
MoveSXYC EOL
END
CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
CutAutoCycle
ELSE
SeqC MoveSXYZC EOL {.80.01}
END
ELSE
IF RapidFeat?
StdRapid
ELSE
IF LineFeat?
StdLine
ELSE
IF ArcFeat?
StdArc
END
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} {control does not accept WFOs}
END
END
RETURN

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

GetStartOfSameTool:
DoOpComments
DoPostScript
WFOStuff
CheckPass
RETURN

DoOp:
IF FirstOperation?
Plane { no output }
CheckPass
IF MultipleParts? AND OneToolAllParts? AND NOT FirstPart?
IF FullUp?
SeqC CoolOff EOL
END
DoOpComments
SeqC Rapid StrtPos EOL
SeqC DoCoolOn EOL {Moved CoolOn to here - JHE}
ELSE
DoOpComments
DoPostScript
WFOStuff
Seq ToolChng OpToolID EOL
SeqC Rapid StrtPos EOL {Added C to Seq - JHE}
IF Drilling? {Added these check and output - JHE}
IF RetractToCP1?
SeqC ZCP1 DoCoolOn EOL
ELSE
SeqC ZCP2 DoCoolOn EOL
END
ELSE {implies milling}
SeqC ZCP2 DoCoolOn EOL
END
END
ELSE
IF NewTool?
IF MultipleParts? AND OneToolAllParts? AND NOT FirstPart?
{only need to set up for tool change on 1st part}
ELSE
DoEndOpPS
IF ToolChangeAtHome?
SeqC Rapid Home EOL
END
SeqC 'M0' EOL
END

{Start new Operation}

Plane { no output }
CheckPass
IF MultipleParts? AND OneToolAllParts? AND NOT FirstPart?
IF FullUp?
SeqC CoolOff EOL
END
DoOpComments
SeqC Rapid StrtPos EOL
SeqC DoCoolOn EOL {Moved CoolOn to here - JHE}
ELSE
DoOpComments
DoPostScript
WFOStuff
Seq ToolChng OpToolID EOL
SeqC Rapid StrtPos EOL {Added C to Seq - JHE}
IF Drilling? {Added these check and output - JHE}
IF RetractToCP1?
SeqC ZCP1 DoCoolOn EOL
ELSE
SeqC ZCP2 DoCoolOn EOL
END
ELSE {implies milling}
SeqC ZCP2 DoCoolOn EOL
END
END
ELSE
IF SameTool?
IF LAST ProgStop?
SeqC CoolOff EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
END
DoEndOpPS
IF LAST ProgStop?
SeqC 'M0' EOL

{Start new Operation}

GetStartOfSameTool
SeqC PlaneC Rapid StrtPos OpToolID EOL
ELSE
IF NewToolOffset?

{Start new Operation}

GetStartOfSameTool
SeqC PlaneC Rapid StrtPos OpToolID EOL
ELSE

{Start new Operation}

GetStartOfSameTool
SeqC PlaneC Rapid StrtPos EOL
END
END
IF NOT CoolOff?
IF LAST CoolOff?
SeqC DoCoolOn EOL
ELSE
IF NOT Flag?('5') AND Mist?
SeqC DoCoolOn EOL
ELSE
IF Flag?('5') AND Not Mist?
SeqC DoCoolOn EOL
END
END
END
END

END
END
END

{ Common Point for All Operations }

ResetCRCNum {call here to reset for each new operation only, call in tool path to reset for each repeat in an operation}
RapidF# {forces the output of a conditional feedrate for each operation}

IF Milling?
SeqC ZCP2C EOL
IF Repeats?
IF ZshiftOnly? AND AutoCycle?
{done in CutAutoCycle called from ToolPath}
ELSE
EACHRep
DoSubComment
IF NOT FirstCycle?
SeqC Rapid 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
IF NOT FeedConnect?
ExitType PRIME ZCP3C
END
ExitFeed EOL
NEXTRep
END
END
IF AutoCycle?
SeqC ZCP3C EOL
ELSE
SeqC ExitType ZCP3C ExitFeed EOL
END
ELSE
IF Drilling?
IF Repeats?
EACHRep
DoSubComment
END
SeqC DrillCP EOL
GetCycle
IF NOT Tap?
SeqC Cycle FromCP StrtPos ZDepth RLevel Dwell Peck Retract FeedEnt EOL
ELSE
'WARNING: THIS POST PROCESSOR DOES NOT SUPPORT A TAPPING CYCLE, OUTPUT WILL BE INCORRECT' EOL
END
TrackZNO# ZDepth# {.81}
ToolPath
IF RetractToCP1? {.81}
TrackZNO# ClearancePlane1#
ELSE
TrackZNO# ClearancePlane2#
END
SeqC DrillOff EOL
IF Repeats?
NEXTRep
END
SeqC Rapid ZCP3 EOL {Removed C from Rapid and ZCP3 - JHE}
END
END
RETURN

FinishLastOp:
DoEndOpPS
IF FIRST ToolChangeAtHome?
SeqC Rapid FirstHome EOL
END
IF MultipleParts? AND AllToolsOnePart? AND NOT LastPart? {no tool change after doing last part}
SeqC 'M0' EOL
ELSE
EOP EOL
END
RETURN

DoToolsOps:
EachOp
IF GTEqual? Operation# Recall# Num#('1') AND LTEqual? Operation# Recall# Num#('2')
{Tools1stOp ² op ² ToolsLastOp}
DoOp
END
NextOp
RETURN

NextTools1stOp:
SetNextToolOp Operation#
RETURN

GetToolsOps:
EachOp
IF Equal? Operation# Recall# Num#('1') {IF op = Tools1stOp}
IF GreaterThan? NextTools1stOp Recall# Num#('1') {IF NextTools1stOp is greater Tools1stOp}
Save# Num#('2') SUB# NextTools1stOp Num#('1') {ToolsLastOp becomes NextTools1stOp less 1}
ELSE {else}
Save# Num#('2') Recall# Num#('3') {ToolsLastOp becomes ncCAMsLastOp}
END
END
NextOp
RETURN

DoTool:
IF NOT Flag?('1')
GetToolsOps
EachPart
TagInc
DoToolsOps
NextPart
IF LessThan? Recall# Num#('2') Recall# Num#('3') {IF ToolsLastOp < ncCAMsLastOp}
Save# Num#('1') ADD# Recall# Num#('2') Num#('1') {Tools1stOp becomes NextTools1stOp}
ELSE {else}
SetFlag('1') {set DoneFlag}
END
TagInit
END
RETURN

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

{setup and initializations}
InitProg
TagInit
SetFlagF('1') {done flag}
ReverseXZArcs
InitWFONum
SetFlood
SetMaxRPM('10000') {?}
IF Metric?
SetMaxFeed('2540')
ELSE
SetMaxFeed('99.9')
END
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
ProgID1 'G21' 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$ ' MILLIMETERS )' EOL
END
IF PartsComment?
'( PARTS PROGRAMMED: ' Parts# ' )' EOL
END
IF StartToolComment?
'( FIRST TOOL NOT IN SPINDLE )' EOL
END
END
OpenSub
RestoreScale
END
NextOp
IF MultipleParts?
IF AllToolsOnePart?
EachPart
TagInc
EachOp
DoOp
NextOp
FinishLastOp
NextPart
ELSE
IF OneToolAllParts?
EachOp
IF FirstOperation?
Save# Num#('1') Operation# {ncCAMs1stOp becomes Tools1stOp}
END
IF LastOp?
Save# Num#('3') Operation# {save ncCAMsLastOp}
END
NextOp
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
FinishLastOp
END
END
ELSE
EachOp
DoOp
NextOp
FinishLastOp
END
EOR EOL
CloseSub
Post2
IF UseComments?
SetScale('1')
IF FileBytesComment?
'( FILE LENGTH: ' FileBytes# ' CHARACTERS )' EOL
END
IF FileFeetComment?
'( FILE LENGTH: ' FileFeet# ' FEET )' EOL
END
IF FileMetersComment?
'( FILE LENGTH: ' FileMeters# ' METERS )' EOL
END
END
Close


Wyszukiwarka

Podobne podstrony:
Prototrak MX3E NASA NMX75 89 4
Fanuc 0M [NM] MZ26 89 3m
Yasnac MX1 Matsuura M021 89 3m
BP EZ Trak DX 3A MX93 89 3m
Prototrak MX3 [D3P] MZ80 89
Heidenhain TNC 151 M115 89 3m
GE 1050MC Mon [FD] NMT90 89 3m
Prototrak Plus [PE] M808 89
Heid TNC 155 [FS] MY83 89 3m
Prototrak MX3 [D3P] MZ80 89 2m
Cortini Z 80A 2437 MX38 89 3m
Fanuc 3M Enshu [DLT] M414 89
Prototrak MX2 M622 89
Fanuc 3M Kit [TCR] MZ07 89
Fanuc 3M Was [TCR] MZ08 89
Fanuc 3M Enshu M070 89
Fanuc 3M [WR] M983 89 1

więcej podobnych podstron