SloSyn MNC 263J QT M049 79


{7/24/90, Added InitProg globally to posts with this remark, DWB}

{6/18/92
Modified: SloSyn MNC 263J QT M049.54
Updated to Version 4.0 per SloSyn MNC 363J M056.76.1
and Fanuc 6M M001.81.
KLM}

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

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

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ToolDiameter#,4)
FORMAT(Operation#,5)
FORMAT(Tool#,5)
FORMAT(Parts#,5)
FORMAT(Tag#,5)
FORMAT(RapidF#,6)


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

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

DoPartSubComment:
IF UseComments? AND SubComment?
TagInc
'( Part Number: ' Tag# ' )' EOL
IF LastPart?
TagInit
END
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)
SeqLab 'A' FourthDegree# EOL
FourthCWF {reset flag}
END
IF FourthCCW?
FORMAT(FourthDegree#,3)
SeqLab 'A' FourthDegree# EOL
FourthCCWF {reset flag}
END
IF FifthCW?
FORMAT(FifthDegree#,2)
SeqLab 'B' FifthDegree# EOL
FifthCWF {reset flag}
END
IF FifthCCW?
FORMAT(FifthDegree#,3)
SeqLab 'B' FifthDegree# EOL
FifthCCWF {reset flag}
END
RETURN

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

DoEndOpPS:
PSInit
EachEOPS
SeqLab EndOpPS EOL
PSStuff
NextPS
RETURN

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

ToolPath2: {for AutoCycle element moves}
EACHFeat
IF RapidFeat?
IF XMove? OR YMove? OR ZMove?
SeqLab MoveXYZC RapidFC EOL
END
ELSE
IF LineFeat?
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqLab FeedC MoveXYZC FeedRateC EOL
DecelMove2
END
SeqLab FeedC MoveXYZC DecelFeed EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqLab FeedC MoveXYZC FeedRateC EOL
END
END
ELSE
IF ArcFeat?
EACHQuadrant
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
SeqLab FormatArc ArcFeedC EOL
DecelMove2
END
SeqLab FormatArc DecelFeed EOL
ELSE
SeqLab FormatArc ArcFeedC EOL
END
NEXTQuadrant
END
END
END
NEXTFeat
RETURN

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

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

ToolPath:
EACHFeat
IF PointFeat?
IF AutoCycle?
SeqLab MoveSXYC EOL
CutAutoCycle
CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
ELSE
SeqLab MoveSXYC EOL {.80.01}
END
ELSE
IF RapidFeat?
SeqLab RapidC MoveXYZC EOL
ELSE
IF LineFeat?
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqLab CRCOnC FeedC MoveXYZC FeedRateC CRCOffsetC EOL
DecelMove2
END
SeqLab CRCOnC FeedC MoveXYZC DecelFeed CRCOffsetC EOL
ELSE
SeqLab CRCOnC FeedC MoveXYZC FeedRateC CRCOffsetC EOL
END
ELSE
IF ArcFeat?
EACHQuadrant
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
SeqLab CRCOnC FormatArc ArcFeedC CRCOffsetC EOL
DecelMove2
END
SeqLab CRCOnC FormatArc DecelFeed CRCOffsetC EOL
ELSE
SeqLab CRCOnC FormatArc ArcFeedC CRCOffsetC EOL
END
NEXTQuadrant
END
END
END
END
NEXTFeat
RETURN

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

GetStartOfSameTool:
DoOpComments
DoPostScript
CheckPass
RETURN

InitProg
SkipZ
ReverseXZArcs
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?
EOL
EOR EOL
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
IF Metric? {CAM file is in Metric, tools and tool path}
SetScale('.03937007874') { change to English, this is an English post}
END
OpenSub
IF MultipleParts? AND AllToolsOnePart?
EACHPart
DoPartSubComment
END
Plane
DoOpComments
DoPostScript
IF MultipleParts? AND OneToolAllParts? AND FullUp?
EACHPart
DoPartSubComment
IF NOT FirstPart?
DoOpComments
END
END
CheckPass
IncValue
SeqLab 'G80' StrtPos 'F1800' SpinOn EOL
SeqLab 'M52' FeedRate EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
EACHPart
DoPartSubComment
IF NOT FirstPart?
DoOpComments
SeqLab 'G80' StrtPos 'F1800' SpinOn EOL
END
END
ELSE
IF NewTool?
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
NEXTPart
END
SeqLab 'M53'
IF MultipleParts? AND OneToolAllParts? AND FullUp?
NEXTPart
END
DoEndOpPS
IF ToolChangeAtHome?
SeqLab Home 'F1800' SpinOff EOL
ELSE
SeqLab SpinOff EOL
END
IF LAST ProgStop?
SeqLab 'M00' EOL
ELSE
SeqLab ProgStop EOL
END

{Start new Operation}

SeqLab ToolChng EOL
Plane
DoPostScript
IF ProgStop?
SeqLab 'M00' EOL
END
SeqLab SpinOn EOL
SeqLab 'M57' EOL
DoOpComments
IF MultipleParts? AND OneToolAllParts? AND FullUp?
EACHPart
DoPartSubComment
IF NOT FirstPart?
DoOpComments
END
END
CheckPass
SeqLab 'G80' StrtPos 'F1800' EOL
SeqLab 'M52' FeedRate EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
EACHPart
DoPartSubComment
IF NOT FirstPart?
DoOpComments
SeqLab 'G80' StrtPos 'F1800' EOL
END
END
ELSE
IF SameTool?
DoEndOpPS
SeqLab 'M53' EOL
Plane
IF ProgStop?
SeqLab SpinOff EOL
SeqLab 'M00' EOL

{Start new Operation}

GetStartOfSameTool
SeqLab SpinOn EOL
SeqLab 'G80' StrtPos 'F1800' EOL
SeqLab 'M52' FeedRate EOL
ELSE
{Start new Operation}

GetStartOfSameTool
SeqLab 'G80' StrtPos 'F1800' EOL
END
END
END
END {common point for all operations}
IF Milling?
SeqLab ZCP2C EOL
IF Repeats?
IF ZshiftOnly? AND AutoCycle?
{done in CutAutoCycle called from ToolPath}
ELSE
EACHRep
DoSubComment
IF NOT FirstCycle?
IF FeedConnect?
SeqLab StrtPos EOL
SeqLab 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
IF NOT FeedConnect?
SeqLab RapidC PRIME ZCP3C EOL
END
NEXTRep
END
END
IF AutoCycle?
SeqLab ZCP3C EOL
ELSE
IF FIFO? {.81}
SeqLab FeedC ZCP3C FeedRateC EOL
ELSE
SeqLab RapidC ZCP3C EOL
END
END
ELSE
IF Drilling?
SeqLab 'G81' EOL
SeqLab ZCP2C EOL
IF Repeats?
EachRep
DoSubComment
IF NOT FirstCycle?
SeqLab RapidC StrtPos 'F1800' EOL
END
END
ToolPath
IF Repeats?
NextRep
END
SeqLab RapidC ZCP3C 'F1800' EOL
END
END
{NEXTOp} {modified to prevent endless looping in ncPOST}

IF MultipleParts?
IF LastOp?
IF OneToolAllParts? AND ExitClearancePlane?
NEXTPart
END
IF OneToolAllParts? AND FullUp?
NEXTPart
END
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqLab 'G80' FirstHome 'F1800' EOL
ELSE
SeqLab SpinOff EOL
END
IF AllToolsOnePart?
NEXTPart
END
ELSE
NEXTOp
END
ELSE
NEXTOp
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqLab 'G80' FirstHome 'F1800' EOL
ELSE
SeqLab SpinOff EOL
END
END
SeqLabC EOP EOL
CloseSub
PostCinc
EOR EOL
Close
Reseq
IF UseComments?
SetScale('1')
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:
SloSyn MNC 363J M056 79
p (79)
en 79
2006 02 Qt ISO Maker–moja pierwsza aplikacja w Qt [Programowanie]
13 79 Pistons and connecting rods assembly
79 atyt
01?dania makroskopowe instrukcja 2id 79
Heidenhain TNC 145C M082 79 1
QT
Fanuc 10T Mazak QT L088 85

więcej podobnych podstron