{Change Comments ***********************************************************}
{9/23/91
Copied and modified: GE 550L LeBlonde L082.80
For: R&R Machine
Updated to Version 4.0 per Fanuc 10T MS [-] L001.82 Format
Russ at R&R Machine supplied the following information:
Post is entirely incremental, non-decimal trailing zero format.
No G or M codes.
Only addresses allowed are N, X, Z, I, K, F, S and T.
Maximum axis move = 9.9998, Minimum = 0.0002
RapidF = 199 ipm.
Dwell is programmed 'X' Dwell# 'F0'.
CWSpindle = '+'. CCWSpindle = '-'.
RPM is to be output 'S' Tool#.
Programmed stop is output as 'S00'.
Thread move is designated with a literal 'F900' code.
Tapered Threads require I ( Cosine) and K ( Sine/Pitch ) outputs.
Added MATH Formulas for Tapered Thread calculations.
No Canned Cycles are supported.
Corrected SetMaxAxis('9.9998') bug per GE 550 LeBlonde [KSW] L219.80.3.
DWB}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '#^###0;0'
#3 = '########;0'
#4 = '00'
#5 = '###^0'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ADD#,2)
FORMAT(MUL#,2)
FORMAT(FeedIPR#,2)
FORMAT(Dwell#,2) {.70}
FORMAT(Program#,3) {.70}
FORMAT(Operation#,3) {.70}
FORMAT(Tool#,4) {.70}
FORMAT(ToolOffset#,4)
FORMAT(RapidF#,5)
{Prog Subroutines **********************************************************}
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# ': ' ToolSize$ ' ' 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 from last Op, .70}
RETURN
PSStuff:
RETURN
DoPostScript:
PSInit
EachPS
SeqC PostScript EOL {literals}
PSStuff {commands}
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqC EndOpPS EOL {literals}
PSStuff {commands}
NextPS
RETURN
GetSpeedRPM:
IF Flag?('1')
SetFlagF('1')
'S'
IF CWSpindle?
'+'
ELSE
'-'
END
Tool#
END
RETURN
GetRapidF:
IF Flag?('2')
SetFlagF('2')
RapidF
ELSE
RapidFC
END
RETURN
GetFeedRate:
IF NOT EmptyLine?
FeedRateC
END
RETURN
RecallX:
Recall# Num#('1')
RETURN
RecallZ:
Recall# Num#('2')
RETURN
DoLoadFeat:
LoadFeat RecallZ RecallX
RETURN
StartLoadFeat:
SetStatusOff
SetAbs
RETURN
EndLoadFeat:
DoLoadFeat
SetInc
SetStatusOn
RETURN
DoRapidX:
EachPiece
SeqC MoveXC GetRapidF EOL
NextPiece
RETURN
NoTTRapidX:
SetTTOff DoRapidX SetTTOk
RETURN
DoFeedX:
EachPiece
SeqC MoveXC GetFeedRate EOL
NextPiece
RETURN
NoTTFeedX:
SetTTOff DoFeedX SetTTOk
RETURN
DoRapidZ:
EachPiece
SeqC MoveZC GetRapidF EOL
NextPiece
RETURN
NoTTRapidZ:
SetTTOff DoRapidZ SetTTOk
RETURN
DoFeedZ:
EachPiece
SeqC MoveZC GetFeedRate EOL
NextPiece
RETURN
NoTTFeedZ:
SetTTOff DoFeedZ SetTTOk
RETURN
DoRapidXZ:
EachPiece
SeqC MoveXC MoveZC GetRapidF EOL
NextPiece
RETURN
NoTTRapidXZ:
SetTTOff DoRapidXZ SetTTOk
RETURN
DoFeedXZ:
EachPiece
SeqC MoveXC MoveZC GetFeedRate EOL
NextPiece
RETURN
NoTTFeedXZ:
SetTTOff DoFeedXZ SetTTOk
RETURN
ODApproachSP:
StartLoadFeat
Save# Num#('2') StockOn CycleStartZ# { ZSPC }
EndLoadFeat
NoTTRapidZ
StartLoadFeat
Save# Num#('1') StockOff XOpCD# { XOpCDC }
EndLoadFeat
NoTTRapidX
StartLoadFeat
Save# Num#('1') StockOn CycleStartX# { XSPC }
EndLoadFeat
NoTTFeedX
RETURN
IDApproachSP:
StartLoadFeat
Save# Num#('2') StockOn CycleStartZ# { ZSPC }
EndLoadFeat
NoTTRapidZ
StartLoadFeat
Save# Num#('1') StockOff XOpCD# { XOpCDC }
EndLoadFeat
NoTTRapidX { for SameTool ApproachID }
StartLoadFeat
Save# Num#('1') StockOn CycleStartX# { XSPC }
EndLoadFeat
NoTTFeedX
RETURN
FaceApproachSP:
StartLoadFeat
Save# Num#('2') StockOff ZOpCP# { ZOpCPC }
EndLoadFeat
NoTTRapidX { for SameTool ApproachFace }
NoTTRapidZ
StartLoadFeat
Save# Num#('2') StockOn CycleStartZ# { ZSPC }
EndLoadFeat
NoTTFeedZ
RETURN
Approach: { NOT FOR TAILSTOCK, .82 }
Save# Num#('2') ZStockMax# { ZCP }
IF ApproachOD?
StartLoadFeat
Save# Num#('1') XStockMax# { XCP }
EndLoadFeat
NoTTRapidXZ
ODApproachSP
ELSE
IF ApproachID?
StartLoadFeat
Save# Num#('1') XOpCD# { XOpCD }
EndLoadFeat
NoTTRapidXZ
IDApproachSP
ELSE {ApproachFace}
StartLoadFeat
Save# Num#('1') StockOn CycleStartX# StockOff { XSP }
EndLoadFeat
NoTTRapidXZ
FaceApproachSP
END
END
RETURN
CheckOffset:
DoEndOpPS
IF LAST ProgStop?
SeqC 'S00' EOL { ProgStop }
END
IF NewToolOffset?
SeqC OpToolID ToolOffset# EOL
END
IF LAST ProgStop?
SetFlag('1') { For GetSpeedRPM }
ELSE
IF NotEqual? SpeedRPM# LAST SpeedRPM#
SetFlag('1') { For GetSpeedRPM }
END
END
SeqC GetSpeedRPM EOL
DoPostScript
RETURN
FormatArc:
MoveXC MoveZC ArcIJ
RETURN
GetICosine:
IF Taper?
'I' MUL# FeedIPR# DIV# Taper# FinishZInc#
END
RETURN
ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
Save# Num#('1') EPX# { MoveXC }
Save# Num#('2') EPZ# { MoveZC }
IF Drilling?
IF Tap?
SeqC SpinOff EOL
SeqC 'X20000F0' EOL { Dwell }
SeqC 'S'
IF CWSpindle? { InverseSpinOn }
'-'
ELSE
'+'
END
Tool# EOL
ELSE
IF Dwell?
SeqC 'X' Dwell# 'F0' EOL
END
END
END
END
IF PointFeat?
SeqC MoveSXYC EOL
ELSE
IF RapidFeat?
DoRapidXZ
ELSE
IF LineFeat?
IF CannedCycle? AND Drilling? AND Tap?
EachPiece
SeqC MoveXC MoveZC 'K' FeedIPR# 'F900' EOL
NextPiece
ELSE
DoFeedXZ
END
ELSE
IF ArcFeat?
EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop }
SeqC FormatArc GetFeedRate EOL
NEXTQuadrant
ELSE
IF ThreadFeat?
EachPiece
SeqC MoveXC MoveZC GetICosine ThrdLead 'F900' EOL
NextPiece
SetFlag('2') { For GetRapidF }
END
END
END
END
END
NEXTFeat
TrackXNO# RecallX
TrackZNO# RecallZ
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
SetInc
PosSideLathe
StandardXZArcs
XsAreRadii
SetMaxAxis('9.9998')
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: must be all capital letters when typed in.' 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
END
EachOp {Start of post processing *********************}
GetLCycle
IF FirstOperation?
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 INCREMENTAL INCHES )' 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
StockOff {.71.2}
SetHome
DoOpComments
DoPostScript
Plane
SetFlag('1') { For GetSpeedRPM }
SetFlag('2') { For GetRapidF }
Seq GetRapidF GetSpeedRPM EOL
SeqC OpToolID ToolOffset# EOL
Approach
ELSE
IF NewTool?
{Finish off last Operation}
StockOff {.62}
IF LAST ApproachOD?
StartLoadFeat
Save# Num#('1') XStockMax# { XCPC }
EndLoadFeat
NoTTRapidX
ELSE
IF LAST ApproachID? {.71.2}
StartLoadFeat
Save# Num#('1') LAST ClearancePlane3# { LAST XOpECDC }
EndLoadFeat
EachPiece
SeqC SETLASTOP MoveXC GetRapidF EOL
NextPiece
END
END
StartLoadFeat
Save# Num#('2') ZStockMax# { ZCPC }
EndLoadFeat
NoTTRapidZ
DoEndOpPS
StartLoadFeat
Save# Num#('1') NewHomeX# { NewHome }
Save# Num#('2') NewHomeZ# { NewHome }
EndLoadFeat
NoTTRapidXZ
SeqC LOfstOff '00' EOL
IF LAST ProgStop?
SeqC 'S00' EOL { ProgStop }
ELSE
SeqC ProgStop EOL
END
{Start new Operation}
DoOpComments
DoPostScript
SetFlag('1') { For GetSpeedRPM }
SetFlag('2') { For GetRapidF }
StartLoadFeat
Save# Num#('1') HomeX# { Home }
Save# Num#('2') HomeZ# { Home }
EndLoadFeat
Seq
SetTTOff
EachPiece
SeqC MoveXC MoveZC GetRapidF GetSpeedRPM EOL
NextPiece
SetTTOk
SeqC OpToolID ToolOffset# EOL
Approach
ELSE
IF SameTool? {.62}
{Start new Operation}
DoOpComments
StockOff
IF LAST StraightConnect?
CheckOffset
StartLoadFeat
Save# Num#('1') StockOn CycleStartX# { XSPC }
Save# Num#('2') StockOn CycleStartZ# { ZSPC }
EndLoadFeat
NoTTRapidXZ
ELSE
IF ApproachOD?
IF LAST ApproachOD?
StartLoadFeat
Save# Num#('1') LAST ClearancePlane3# { LAST XOpECDC }
EndLoadFeat
DoRapidX
ELSE {around}
IF LAST ApproachID?
StartLoadFeat
Save# Num#('1') LAST ClearancePlane3# { LAST XOpECDC }
EndLoadFeat
DoRapidX
END
StartLoadFeat
Save# Num#('2') ZStockMax# { ZCPC }
EndLoadFeat
NoTTRapidZ
StartLoadFeat
Save# Num#('1') XStockMax# { XCPC }
EndLoadFeat
NoTTRapidX
END
CheckOffset
ODApproachSP
ELSE
IF ApproachID?
IF LAST ApproachID?
StartLoadFeat
Save# Num#('1') LAST ClearancePlane3# { LAST XOpECDC }
EndLoadFeat
DoRapidX
ELSE
IF LAST ApproachOD? {around}
StartLoadFeat
Save# Num#('1') XStockMax# { XCPC }
EndLoadFeat
NoTTRapidX
END
StartLoadFeat
Save# Num#('2') ZStockMax# { ZCPC }
EndLoadFeat
NoTTRapidZ
StartLoadFeat
Save# Num#('1') XOpCD# { XOpCDC }
EndLoadFeat
NoTTRapidX
END
CheckOffset
IDApproachSP
ELSE {ApproachFace}
IF LAST ApproachFace?
StartLoadFeat
Save# Num#('2') LAST ClearancePlane3# { LAST ZOpECPC }
EndLoadFeat
DoRapidZ
ELSE
IF LAST ApproachOD? {around}
StartLoadFeat
Save# Num#('1') XStockMax# { XCPC }
EndLoadFeat
NoTTRapidX
ELSE {LAST ApproachID}
StartLoadFeat
Save# Num#('1') LAST ClearancePlane3# { LAST XOpECDC }
EndLoadFeat
DoRapidX
END
StartLoadFeat
Save# Num#('2') ZStockMax# { ZCPC }
EndLoadFeat
NoTTRapidZ
END
CheckOffset
FaceApproachSP
END
END
END
END
END
END {common point for all operations}
StockOn
SetPass1
ToolPath
IF AutoFinish?
IF NOT Drilling? AND NOT Grooving? AND NOT RoughSimple?
StockOff
IF Threading?
IF Taper?
StartLoadFeat
Save# Num#('1') ADD# FinishXRadius# MUL# Taper# NumSc#('1') { XTapAtZ }
EndLoadFeat
NoTTRapidX
StartLoadFeat
Save# Num#('1') FinishXRadius# { XAtFinZ }
Save# Num#('2') FinishZ# { FinZ }
EndLoadFeat
SetTTOff
EachPiece
SeqC MoveXC MoveZC GetICosine ThrdLead 'F900' EOL
NextPiece
SetTTOk
ELSE
StartLoadFeat
Save# Num#('1') FinishXRadius# { XAtFinZ }
EndLoadFeat
NoTTRapidX
StartLoadFeat
Save# Num#('2') FinishZ# { FinZ }
EndLoadFeat
SetTTOff
EachPiece
SeqC MoveZC ThrdLead 'F900' EOL
NextPiece
SetTTOk
END
SetFlag('2') { For GetRapidF }
StartLoadFeat
Save# Num#('1') CycleStartX# { XCSP }
EndLoadFeat
NoTTRapidX
StartLoadFeat
Save# Num#('2') CycleStartZ# { ZCSP }
EndLoadFeat
NoTTRapidZ
ELSE
IF Turning?
SetPass1
ELSE
SetPass2
END
StartLoadFeat
Save# Num#('1') CycleStartX# { StrtPos }
Save# Num#('2') CycleStartZ# { StrtPos }
EndLoadFeat
NoTTRapidXZ
ToolPath
END
END
END
IF Drilling? AND Tap?
SeqC SpinOff EOL
SeqC 'X20000F0' EOL { Dwell }
SetFlag('1') { For GetSpeedRPM }
SeqC GetSpeedRPM EOL { SpinOn }
END
NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{finish last operation}
StockOff
IF ApproachOD?
StartLoadFeat
Save# Num#('1') XStockMax# { XCPC }
EndLoadFeat
NoTTRapidX
ELSE
IF ApproachID? {.71.2}
StartLoadFeat
Save# Num#('1') ClearancePlane3# { XOpECDC }
EndLoadFeat
DoRapidX
END
END
StartLoadFeat
Save# Num#('2') ZStockMax# { ZCPC }
EndLoadFeat
NoTTRapidZ
DoEndOpPS
StartLoadFeat
Save# Num#('1') FirstHomeX# { FirstHome }
Save# Num#('2') FirstHomeZ# { FirstHome }
EndLoadFeat
NoTTRapidXZ
SeqC OpToolID '00' EOL
IF ProgStop?
SeqC 'S00' EOL { ProgStop }
ELSE
SeqC ProgStop EOL
END
Post
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:
GE 550L LeBlonde L083 82GE 550T LeBlonde L082 82GE 550 LeBlonde L080 82GE 1050T LeBlonde [CM] L249 82GE 550 LeBlonde [KSW] L219 82 8GE 1050 LeBlonde [DEW] L250 82GE 550 LeBlonde (CCD) L178 82GE 550 LeBlond (HAC) L115 82GE 102C Leblond [GV] L073 82 2GE 1050 Monarch ( R) L090 82GE 1050 LeBlonde Rgl L033 85GE 550 L&S [GV] L293 82 3GE 1050T Monarch L074 82GE 1050T LeBlonde L105 85 1GE 1050T Farrel L311 82 3GE 1050T Farrel L311 82 3GE 1050T (T&CSD) L136 82GE 2000 Monarch L116 82więcej podobnych podstron