{Change Comments ***********************************************************}
{10/25/90
Copied & modified: Fanuc 6M M001.76
For: Gibbs & Associates
Modified to handle controls that don't use subroutines.
DWB}
{6/26/91
Modified: No Subs M001.76
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 6M M001.80.01 Format.
DWB}
{8/19/93
Modified: No Subs M001.80.01b (a processor that TAJ did modifications on to get it to this point)
For: Monster
Machine: Tree Journyman 320
Control: Milltronics IIC
Deleted the lines IncValue OfstOff, it was just outputting the IncValue.
Deleted AbsOrInc from the Home lines.
Force absolute output, except for AutoCycles. Changed AbsOrInc to AbsValue.
Cleaned up FormatArc, was double outputting IJ values (ArcIJ was called twice).
Chnged WFOStuff to output WFO only with PostScrpit NewWFO.
Jim Radcliffe}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '###.###;0.'
#3 = '*###.###;0.'
#4 = '####.####;0.'
#5 = '########;0'
#6 = '####^###;'
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}
{Prog Subroutines **********************************************************}
DoPartCycleComment:
IF UseComments? AND SubComment?
'( START NEW PART )' EOL
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}
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:
IF FeedEntry?
SeqC FeedC FeedEnt ZIn EOL {**was: Feed before ZIn **TAJ*****}
ELSE
SeqC RapidC ZIn EOL
END
RETURN
FormatArc:
IF ArcCW?
CWArc ArcR ArcIJ MoveXY {**was: CWArcC **TAJ***}
ELSE
CCWArc ArcR ArcIJ MoveXY {**was: CCWArcC **TAJ***}
END
MoveZC
RETURN
FirstFeed: { This will force a Feedrate on FirstFeat for each operation }
IF FirstFeat?
FeedRate
ELSE
FeedRateC
END
RETURN
StdLine: {enables CRC on first call, .70}
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqC CRCOnC FeedC FirstFeed MoveXYZC CRCOffsetC EOL {**was: MoveXYZC FirstFeed ***TAJ***}
DecelMove2
END
SeqC CRCOnC FeedC MoveXYZC DecelFeed CRCOffsetC EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqC CRCOnC FeedC FirstFeed MoveXYZC CRCOffsetC EOL {**was: MoveXYZC FirstFeed ***TAJ***}
END
END
RETURN
ToolPath:
ResetCRCNum {.72}
EACHFeat
IF PointFeat?
IF NOT FirstFeat?
SeqC MoveSXYC EOL {**was: MoveSXYZC ***TAJ***}
END
ELSE
IF RapidFeat?
IF LastFeat? AND AutoCycle? {.70}
SeqC CRCOffC 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 CRCOffC FeedC FeedRateC MoveXYZC EOL {**was: MoveXYZC FeedRateC ***TAJ***}
ELSE
IF ZMove? {skip CRCOn until first non-Z move line, skipping ramps}
SeqC FeedC MoveXYZC FirstFeed 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 ArcFeedC FormatArc EOL {**was: SeqC FormatArc ArcFeedC EOL ***TAJ***}
DecelMove2
END
SeqC DecelFeed FormatArc EOL {**was: SeqC FormatArc DecelFeed EOL ***TAJ***}
ELSE
SeqC ArcFeedC FormatArc EOL {**was: SeqC FormatArc ArcFeedC EOL ***TAJ***}
END
NEXTQuadrant
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
END
END
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}
SeqC AbsValue RapidC ZCP2 EOL {.71.2 removed CRCOffC, gets turned off in ToolPath}
SetSRSubXY {restore SR to 1st position value}
SetSRSubMove
ReSetPass2 {restore for positioning moves}
RETURN
Milling:
EntryMove
ToolPath
RETURN
XYZRep:
EachRep
IF NOT FirstCycle?
Connect
END
SeqC StrtPosC EOL
DoCycleComment
Milling
SeqC RapidC CRCOffC
IF NOT FeedConnect?
PRIME ZCP2C
END
EOL
NextRep
RETURN
NoRepAutoCycle:
EACHFeat
IF NOT FirstFeat?
Rapid
END
AutoCycCutSub1
DoCycleComment
IF FeedEntry? AND FeedConnect? AND NOT FirstCycle?
Feed
END
Milling
AutoCycCutSub2
NEXTFeat
RETURN
XYZRepAutoCycle:
EachRep
EACHFeat
IF FirstCycle? AND FirstFeat?
ELSE
Connect
END
AutoCycCutSub1
DoCycleComment
Milling
AutoCycCutSub2
NEXTFeat
NextRep
RETURN
ZonlyRepAutoCycle:
EACHFeat
IF NOT FirstFeat?
Connect
END
AutoCycCutSub1
EachRep
IF NOT FirstFeat?
Connect
END
SeqC MoveSXYC EOL
DoCycleComment
IF FirstCycle?
EntryMove
ELSE
IF NOT FeedConnect?
EntryMove
END
END
ToolPath
IF NOT FeedConnect?
SeqC RapidC PRIME ZCP2C EOL
END
NextRep
AutoCycCutSub2
ReSetPass2 {restore for positioning moves}
NEXTFeat
RETURN
Drill:
GetCycle
SeqC 'G300 ' Rlevel EOL {**Modified heavily**TAJ***}
SeqC 'G308 ' ZDepth EOL {***Added line ***TAJ***}
IF Dwell? {***Added line ***TAJ***}
SeqC 'G323 ' Dwell EOL {***Added line ***TAJ***}
ELSE {***Added line ***TAJ***}
IF Peck? {***Added line ***TAJ***}
SeqC 'G306 ' 'P ' Retract EOL {***Added line ***TAJ***}
SeqC 'G307 ' Peck EOL {***Added line ***TAJ***}
END {***Added line ***TAJ***}
END {***Added line ***TAJ***}
SeqC Cycle EOL {***Added line ***TAJ***}
SeqC StrtPos EOL {***Added line ***TAJ***}
ToolPath
SeqC 'G80' EOL
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
InitWFONum
SetFlood
SetMaxRPM {***was: SetMaxRPM('10000')***TAJ***}
SetMaxFeed {***was: SetMaxFeed('500') ***TAJ***}
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?
EOR EOL {**next line deleted: ProgID1 ***TAJ***}
IF UseComments? AND ProgramNameComment?
'( ' ProgramName$ ' )'
END
EOL
IF ToolChangeAtHome?
SetHome
END
IF UseComments?
IF ProgramComment?
'( ' ProgramComment$ ' )' EOL
END
IF FormatNameComment?
'( FORMAT: ' FormatName$ ' )' EOL
END
IF TimeComment?
'( ' Date$ ' AT ' Time$ ' )' EOL
END
IF MovesComment?
'( OUTPUT IN ABSOLUTE 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
DoPartCycleComment
END
Plane 'G80' CRCOff EOL {***was: Seq Plane 'G80' CRCOff EOL ***TAJ***}
SeqC OpToolID ToolChng EOL {***OpToolID and ToolChng were on separate lines***TAJ***}
DoOpComments
DoPostScript
WFOStuff
SeqC SpinOn EOL {***was: SeqC Speed SpinOn EOL ***TAJ***}
IF MultipleParts? AND OneToolAllParts? AND FullUp?
EachPart
DoPartCycleComment
END
CheckPass
SeqC AbsValue Rapid FeedRate StrtPos EOL {***added: FeedRate ***TAJ***}
SeqC ZCP1 EOL {***was: SeqC OfstOn EOL***TAJ***}
SeqC CoolOn EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
EachPart
DoPartCycleComment
SeqC StrtPos EOL
END
ELSE
IF NewTool?
{Finish off last Operation}
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
NextPart
END
SeqC CoolOff EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
NextPart
END
DoEndOpPS
IF ToolChangeAtHome?
SeqC SpinOff Rapid Home EOL {***was:SeqC AbsOrInc Rapid Home SpinOff EOL***TAJ***}
ELSE
SeqC SpinOff EOL
END
IF LAST ProgStop?
SeqC 'M00' EOL
ELSE
SeqC ProgStop EOL
END
{Start new Operation}
Plane 'G80' CRCOffC EOL {***was: Seq Plane 'G80' CRCOffC EOL ***TAJ***}
SeqC OpToolID ToolChng EOL {***combined OpToolID and ToolChng on same line ***TAJ***}
DoOpComments
DoPostScript
WFOStuff
SeqC SpinOn EOL {***was: SeqC Speed SpinOn EOL ***TAJ***}
IF MultipleParts? AND OneToolAllParts? AND FullUp?
EachPart
DoPartCycleComment
END
CheckPass
SeqC AbsValue Rapid FeedRate StrtPos EOL {***added: FeedRate ***TAJ***}
SeqC ZCP1 EOL {***was: SeqC OfstOn EOL***TAJ***}
SeqC CoolOn EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
EachPart
DoPartCycleComment
SeqC StrtPos EOL
END
ELSE
IF SameTool?
DoEndOpPS
IF LAST ProgStop?
SeqC CoolOff EOL
SeqC SpinOff EOL
SeqC 'M00' EOL
{Start new Operation}
GetStartOfSameTool
SeqC PlaneC AbsValue Rapid StrtPos SpinOn EOL {***removed: SpeedC ***TAJ***}
SeqC ZCP1 EOL {***was: SeqC OfstOn EOL***TAJ***}
SeqC CoolOn EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
IF NewToolOffset?
{Start new Operation}
GetStartOfSameTool
SeqC PlaneC AbsValue Rapid StrtPos EOL {***removed: SpeedC ***TAJ***}
SeqC ZCP1 EOL {***was: SeqC OfstOn EOL ***TAJ***}
ELSE
{Start new Operation}
GetStartOfSameTool
SeqC PlaneC AbsValue Rapid StrtPos EOL {***removed: SpeedC ***TAJ***}
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 AutoCycle?
IF Repeats?
IF ZshiftOnly?
ZonlyRepAutoCycle
ELSE
XYZRepAutoCycle
END
IF NOT FeedConnect?
RapidC
END
ELSE
NoRepAutoCycle
RapidC
END
ELSE { NOT AutoCycle }
IF Repeats?
XYZRep
ELSE
Milling
END
RapidC CRCOffC
END
SeqC ZCP3C EOL
ELSE
IF Drilling?
IF Repeats?
EachRep
SeqC StrtPosC EOL
DoCycleComment
IF FirstCycle?
SeqC DrillCP EOL
END
Drill
NextRep
ELSE
SeqC DrillCP EOL
Drill
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
IF OneToolAllParts? AND FullUp?
NEXTPart
END
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqC Rapid SpinOff FirstHome EOL {*** SpinOff placed before FirstHome ***TAJ***}
ELSE
SeqC SpinOff 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
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqC Rapid SpinOff FirstHome EOL {*** SpinOff placed before FirstHome ***TAJ***}
ELSE
SeqC SpinOff EOL
END
IF ProgStop?
SeqC 'M00' EOL
END
END
SeqC EOP EOL
CloseSub
Post2 {organize Subs into one program}
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:
Bendix 330 Journeyman M569 80Tree IIC M034 79Tree Journeyman 200 M187 79żuraw 80Dynapath 20M M074 80 1package treeOLYMPUS µ [mju] III 80 instrukcja obsługipackage tree cmd=kom jedno,80&serwis=1więcej podobnych podstron