GE 102C Leblond [GV] L073 82 2


{ 7/28/88 }
{ Original Post Fanuc 10T-MS-[-] L001.56 }
{ Jim Radcliffe }
{ new commands added for XZ moves w/ F by WFG, 10/10/88}
{7/24/90, Added InitProg globally to posts with this remark, DWB}

{10/7/93 thru 11/10/93
Modified: GE 102C LeBlonde L073.56
Updated to .82 format per Fanuc 10T MS [-] L001.82ż
Need proper GE commands to compile
Modified to "GE 550 LeBlonde [KSW] L219.82.7" format.
Jim Radcliffe}

{5/6/94
Modified: GE 102C Leblond [GV] L073.82
Forced Rapid after each ThreadFeat.
Jim Radcliffe}

{
Format: GE 102C Leblond [GV] L073.82.2
Added StatusOff and StatusOn to the FRN sub routine. This is to compenstate for strange behavior in the ArcR# function. It calls
ArcAngle which stores out the current XY positions incorrectly for Lathe. These functions will be fixed in ncPost in the future,
but for now, this change should work fine.
TH}

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

#1 = '0.00'
#2 = '0^####'
#3 = '#######0'
#4 = '0#^###'
#5 = '0^######'
#6 = '0'
#7 = '0##^#'

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(MUL#,2)
FORMAT(Program#,3) {.72}
FORMAT(Operation#,3) {.72}
FORMAT(Tool#,3) {.72}
FORMAT(Dwell#,4)
FORMAT(FeedIPR#,5)
FORMAT(ToolOffset#,6)
FORMAT(DIV#,7) { For Feed Rate }

{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

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
RestoreScale
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

Dwell06:
'G04Z06'
RETURN

Dwell02:
'G04Z02'
RETURN

Dwell015:
'G04Z015'
RETURN

Dwell005:
'G04Z005'
RETURN

SetTraverseClutch:
Dwell015 'M40'
RETURN

SetFeedClutch:
Dwell015 'M41'
RETURN

EngageEncoder:
Dwell02 'M50'
RETURN

DisengageEncoder:
Dwell02 'M51'
RETURN

FRN:
SetStatusOff
IF ArcFeat?
Save# Num#('9') DIV# MUL# Recall# NUM#('9') NUM#('10') ArcR#
ELSE
Save# Num#('9') DIV# MUL# Recall# NUM#('9') NUM#('10') LineLength#
END
IF GreaterThan? Recall# NUM#('9') NUM#('500')
'F5'
ELSE
'F' DIV# Recall# NUM#('9') NUM#('1') { divided by 1 so I dont need a FORMAT for Recall }
END
SetStatusOn
RETURN

GetRapidF:
IF NOT EmptyLine?
Save# Num#('9') NUM#('100')
FRN
END
RETURN

GetFeedRate:
IF NOT EmptyLine?
Save# Num#('9') MUL# FeedIPR# SpeedRPM#
FRN
END
RETURN

GetTT:
SetAbs
SetStatusOff
StockOff
Save# Num#('2') SUB# SetTTOff CycleStartX# SetTTOk CycleStartX#
Save# Num#('1') SUB# SetTTOff CycleStartZ# SetTTOk CycleStartZ#
SetStatusOn
SetInc
RETURN

GetExit:
SetAbs
SetStatusOff
IF ApproachFace?
Save# Num#('7') ClearancePlane3# { ZEOpCP }
ELSE
Save# Num#('7') MUL# ClearancePlane3# Num#('2') { XEOpCD PosSideLathe }
Save# Num#('8') SUB# ClearancePlane3# Recall# Num#('2') { For XsAreRadii NewTool }
END
SetStatusOn
SetInc
RETURN

GetX:
Save# Num#('6') DIV# Recall# Num#('4') Num#('2') { PosSideLathe }
RETURN

GetZ:
Save# Num#('5') Recall# Num#('3')
RETURN

GetXTT:
Save# Num#('6') DIV# ADD# Recall# Num#('4') Recall# Num#('2') Num#('1') { XsAreRadii PosSideLathe }
RETURN

GetZTT:
Save# Num#('5') ADD# Recall# Num#('3') Recall# Num#('1')
RETURN

DoLoad:
SetAbs
SetTTOff
LoadFeat Recall# Num#('5') Recall# Num#('6')
SetTTOk
SetInc
RETURN

LoadX:
GetX DoLoad
RETURN

LoadZ:
GetZ DoLoad
RETURN

LoadXZ:
GetX GetZ DoLoad
RETURN

LoadXTT:
GetXTT DoLoad
RETURN

LoadZTT:
GetZTT DoLoad
RETURN

LoadXTTZ:
GetXTT GetZ DoLoad
RETURN

LoadXZTT:
GetX GetZTT DoLoad
RETURN

LoadXTTZTT:
GetXTT GetZTT DoLoad
RETURN

DoRapidX:
EachPiece
SeqC RapidC MoveXC GetRapidF EOL
NextPiece
RETURN

DoRapidZ:
EachPiece
SeqC RapidC MoveZC GetRapidF EOL
NextPiece
RETURN

DoRapidXZ:
EachPiece
SeqC RapidC MoveXC MoveZC GetRapidF EOL
NextPiece
RETURN

DoFeedX:
EachPiece
SeqC FeedC MoveXC GetFeedRate EOL
NextPiece
RETURN

DoFeedZ:
EachPiece
SeqC FeedC MoveZC GetFeedRate EOL
NextPiece
RETURN

DoFeedXZ:
EachPiece
SeqC FeedC MoveXC MoveZC GetFeedRate EOL
NextPiece
RETURN

GetXCP:
SetAbs
SetStatusOff
Save# Num#('4') XStockMax#
SetStatusOn
SetInc
RETURN

GetZCP:
SetAbs
SetStatusOff
Save# Num#('3') ZStockMax#
SetStatusOn
SetInc
RETURN

GetXOpCD:
SetAbs
SetStatusOff
Save# Num#('4') XOpCD#
SetStatusOn
SetInc
RETURN

GetZOpCP:
SetAbs
SetStatusOff
Save# Num#('3') ZOpCP#
SetStatusOn
SetInc
RETURN

GetXSP:
SetAbs
SetStatusOff
StockOn
Save# Num#('4') CycleStartX#
StockOff
SetStatusOn
SetInc
RETURN

GetZSP:
SetAbs
SetStatusOff
StockOn
Save# Num#('3') CycleStartZ#
StockOff
SetStatusOn
SetInc
RETURN

GetNewToolXOpECD:
SetAbs
Save# Num#('4') Recall# Num#('8')
SetInc
RETURN

GetSameToolXOpECD:
SetAbs
Save# Num#('4') Recall# Num#('7')
SetInc
RETURN

GetSameToolZOpECP:
SetAbs
Save# Num#('3') Recall# Num#('7')
SetInc
RETURN

ODApproachSP:
GetZSP LoadZTT
StockOff DoRapidZ
GetXOpCD LoadXTT
DoRapidX
SeqC Dwell005 EOL
IF Threading?
SeqC EngageEncoder EOL
ELSE
SeqC SetFeedClutch EOL
END
IF NotEqual? CycleStartX# XOpCD#
GetXSP LoadXTT
StockOff
IF Threading?
DoRapidX
ELSE
DoFeedX
END
END
StockOn
RETURN

IDApproachSP:
GetZSP LoadZTT
StockOff DoRapidZ
GetXOpCD LoadXTT
DoRapidX
SeqC Dwell005 EOL
IF Threading?
SeqC EngageEncoder EOL
ELSE
SeqC SetFeedClutch EOL
END
IF NotEqual? CycleStartX# XOpCD#
GetXSP LoadXTT
StockOff
IF Threading?
DoRapidX
ELSE
DoFeedX
END
END
StockOn
RETURN

FaceApproachSP:
GetXSP LoadXTT
StockOff DoRapidX
GetZOpCP LoadZTT
DoRapidZ
SeqC Dwell005 EOL
IF Threading?
SeqC EngageEncoder EOL
ELSE
SeqC SetFeedClutch EOL
END
IF NotEqual? CycleStartZ# ZOpCP#
GetZSP LoadZTT
StockOff
IF Threading?
DoRapidZ
ELSE
DoFeedZ
END
END
StockOn
RETURN

AppMove:
LoadXTTZTT
StockOff Rapid DoRapidXZ
RETURN

Approach: { NOT FOR TAILSTOCK, .82 }
GetZCP
IF ApproachOD?
GetXCP AppMove
ODApproachSP
ELSE
IF ApproachID?
GetXOpCD AppMove
IDApproachSP
ELSE {ApproachFace}
GetXSP AppMove
FaceApproachSP
END
END
RETURN

CheckOffset:
DoEndOpPS
IF LAST ProgStop?
SeqC Dwell06 'M00' EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
END
DoOpComments
DoPostScript
IF NewToolOffset?
SeqC 'T000' EOL
SeqC 'T00' ToolOffset# EOL
END
IF LAST ProgStop?
SeqC Dwell06 TABLE(1,SpeedRPM#,1) SpinOn EOL
SeqC Dwell005 CoolOn EOL
ELSE
IF NotEqual? SpeedRPM# LAST SpeedRPM#
SeqC Dwell06 TABLE(1,SpeedRPM#,1) EOL
END
IF NOT CoolOff? AND LAST CoolOff?
SeqC Dwell005 CoolOn EOL
END
END
RETURN

FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXC MoveZC ArcJC ArcIC GetFeedRate
RETURN

GetICosine:
IF Taper?
'I' MUL# FeedIPR# DIV# Taper# FinishZInc#
END
RETURN

GetSingleEdgeCut:
SetStatusOff
SetAbs
Save# Num#('4') EPX#
Save# Num#('3') ADD# SPZ# MUL# Num#('-1') ABS# MUL# SUB# SPX# EPX# TAN# Num#('30')
SetInc
SetStatusOn
LoadXTTZTT
RETURN

ToolPath:
EACHFeat
GetToolTip
{
CalcEpRPM# is not working inside the TABLE argument!
IF ConstantSurfaceFeed?
SeqC TABLE(1,CalcEpRPM#,1) EOL
END
}
IF LastFeat?
IF Drilling?
IF Tap?
SeqC SpinOff EOL
SeqC Dwell02 EOL
SeqC Dwell06 TABLE(1,SpeedRPM#,1) InverseSpinOn EOL
ELSE
IF Dwell?
SeqC 'G04Z' Dwell# EOL
END
END
END
END
IF PointFeat?
SeqC MoveSXYC EOL
ELSE
IF RapidFeat?
IF NOT LAST Rapid?
SeqC Dwell005 EOL
SeqC SetTraverseClutch EOL
END
IF Threading? AND SingleEdgeCut? AND NEXT ThreadFeat? AND NOT Taper?
GetSingleEdgeCut
END
DoRapidXZ
ELSE
IF LineFeat?
IF LAST Rapid?
SeqC Dwell005 EOL
SeqC SetFeedClutch EOL
END
IF CannedCycle? AND Drilling? AND Tap?
EachPiece
SeqC MoveXC MoveZC 'K' FeedIPR# 'F900' EOL
NextPiece
ELSE
DoFeedXZ
END
ELSE
IF ArcFeat?
IF LAST Rapid?
SeqC Dwell005 EOL
SeqC SetFeedClutch EOL
END
EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop }
SeqC FormatArc EOL
NEXTQuadrant
ELSE
IF ThreadFeat?
EachPiece
SeqC 'G33' MoveXC MoveZC GetICosine ThrdLead EOL
NextPiece
Rapid
END
END
END
END
END
IF LastFeat?
SetAbs
SetStatusOff
Save# Num#('4') EPX#
Save# Num#('3') EPZ#
SetStatusOn
SetInc
END
NEXTFeat
RETURN

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

{setup and initializations}
InitProg
SetInc
PosSideLathe
ReverseXZArcs
XsAreRadii
SetMaxAxis('9.9999')
SetMaxRPM('1323')
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
GetTT
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
RestoreScale
OpenSub
StockOff {.71.2}
SetHome
DoOpComments
DoPostScript
Plane
Seq Dwell06 TABLE(1,SpeedRPM#,1) OpToolID ToolOffset# SpinOn EOL
SeqC SetTraverseClutch EOL
SeqC Dwell005 CoolOn EOL
Approach
ELSE
IF NewTool?

{Finish off last Operation}

StockOff {.62}
SeqC Dwell005 EOL
IF LAST Threading?
SeqC DisengageEncoder EOL
ELSE
IF NOT LAST Rapid?
SeqC SetTraverseClutch EOL
END
END
IF LAST ApproachOD?
GetXCP LoadXTTZTT
DoRapidX
ELSE
IF LAST ApproachID?
GetNewToolXOpECD LoadXTTZTT
DoRapidX
END
END
GetZCP LoadXTTZTT
DoRapidZ
DoEndOpPS
SetStatusOff
Save# Num#('4') NewHomeX#
Save# Num#('3') NewHomeZ#
SetStatusOn
LoadXTTZTT
DoRapidXZ
SeqC 'T000' EOL
IF LAST ProgStop?
SeqC Dwell06 'M00' ASCII('13') EOL
ELSE
SeqC Dwell06 ProgStop ASCII('13') EOL
END

{Start new Operation}

DoOpComments
DoPostScript
Seq Dwell06 TABLE(1,SpeedRPM#,1) OpToolID ToolOffset# SpinOn EOL
SeqC SetTraverseClutch EOL
SeqC Dwell005 CoolOn EOL
SetAbs
SetStatusOff
Save# Num#('4') HomeX#
Save# Num#('3') HomeZ#
SetStatusOn
LoadXTTZTT
TrackXNO# EPX#
TrackZNO# EPZ#
SetInc
Approach
ELSE
IF SameTool? {.62}

{Start new Operation}

StockOff
SeqC Dwell005 EOL
IF LAST Threading?
SeqC DisengageEncoder EOL
ELSE
IF NOT LAST Rapid?
SeqC SetTraverseClutch EOL
END
END
IF LAST StraightConnect?
CheckOffset
GetXSP GetZSP LoadXTTZTT
StockOff DoRapidXZ
StockOn
ELSE
IF ApproachOD?
IF LAST ApproachOD?
GetSameToolXOpECD LoadXZTT
DoRapidX
ELSE {around}
IF LAST ApproachID?
GetSameToolXOpECD LoadXTTZ
DoRapidX
END
GetZCP LoadXTTZTT
DoRapidZ
GetXCP LoadXTTZTT
DoRapidX
END
CheckOffset
ODApproachSP
ELSE
IF ApproachID?
IF LAST ApproachID?
GetSameToolXOpECD LoadXZTT
DoRapidX
ELSE
IF LAST ApproachOD? {around}
GetXCP LoadXTTZ
DoRapidX
END
GetZCP LoadXTTZTT
DoRapidZ
GetXOpCD LoadXTTZTT
DoRapidX
END
CheckOffset
IDApproachSP
ELSE {ApproachFace}
IF LAST ApproachFace?
GetSameToolZOpECP LoadXTTZ
DoRapidZ
ELSE
IF LAST ApproachOD? {around}
GetXCP LoadXTTZ
DoRapidX
ELSE {LAST ApproachID}
GetSameToolXOpECD LoadXTTZ
DoRapidX
END
GetZCP LoadXZTT
DoRapidZ
END
CheckOffset
FaceApproachSP
END
END
END
END
END
END {common point for all operations}
GetExit
StockOn
SetPass1
ToolPath
IF AutoFinish?
IF NOT Drilling? AND NOT Grooving? AND NOT RoughSimple? AND NOT Threading?
StockOff
IF Turning?
SetPass1
IF ApproachOD?
GetSameToolXOpECD LoadXZTT
DoRapidX
ODApproachSP
ELSE
IF ApproachID?
GetSameToolXOpECD LoadXZTT
DoRapidX
IDApproachSP
ELSE {ApproachFace}
GetSameToolZOpECP LoadXTTZ
DoRapidz
FaceApproachSP
END
END
ELSE
SetPass2
END
SetAbs
SetStatusOff
Save# Num#('4') CycleStartX#
Save# Num#('3') CycleStartZ#
SetStatusOn
LoadXTTZTT
SetInc
DoRapidXZ
ToolPath
END
END
IF Drilling? AND Tap?
SeqC SpinOff EOL
SeqC Dwell02 EOL
SeqC Dwell06 TABLE(1,SpeedRPM#,1) SpinOn EOL
END
NextOp {loops back to EachOP until last Operation}

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

{finish last operation}
StockOff
SeqC Dwell005 EOL
IF Threading?
SeqC DisengageEncoder EOL
ELSE
IF NOT LAST Rapid?
SeqC SetTraverseClutch EOL
END
END
IF ApproachOD?
GetXCP LoadXTTZTT
DoRapidX
ELSE
IF ApproachID?
GetNewToolXOpECD LoadXTTZTT
DoRapidX
END
END
GetZCP LoadXTTZTT
DoRapidZ
DoEndOpPS
SetAbs
SetStatusOff
Save# Num#('4') FirstHomeX#
Save# Num#('3') FirstHomeZ#
SetStatusOn
LoadXTTZTT
SetInc
DoRapidXZ
SeqC Dwell005 EOL
SeqC SetFeedClutch EOL
SeqC Dwell005 SpinOff 'T000' EOL
SeqC Dwell06 EOP EOL
EOR EOL
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 1050T LeBlonde [CM] L249 82
GE 550 LeBlonde [KSW] L219 82 8
GE 1050 LeBlonde [DEW] L250 82
GE 550 LeBlonde (CCD) L178 82
GE 550 LeBlond (HAC) L115 82
GE 550T LeBlonde L082 82
GE 550 L&S [GV] L293 82 3
GE 550 LeBlonde L080 82
GE 550L LeBlonde L083 82
GE 550L LeBlonde [R&R] L241 82
GE 1050 LeBlonde Rgl L033 85
GE 1050T LeBlonde L105 85 1
GE 550 Okuma LS N L059 82 1
GE 550 HNC [AMC] L246 82
GE 1050 Monarch ( R) L090 82
GE 1050T (R&M) L151 82
GE 1050T Monarch L074 82
GE 1050T Farrel L311 82 3

więcej podobnych podstron