GE 2000 Bullard VTL L502 85


{Change Comments ***********************************************************}

{10/11/88
Created: Generic GE 1050
For: Varec
Machine: Manarch TC-1 Lathe
Control: GE 1050T
No Canned Cycles supported.
Lathe has 2 Turrets.
Upper Turret: Tools 1 - 8, PosSideLathe, StandardXZArcs, SpinForward = M03, Offsets T0100 - T0800.
Lower Turret: Tools 1 - 8 ( 21 - 28 in ncCam Tool List ), NegSideLathe, ReverseXZArcs,
SpinForward = M04, Offsets T1000 - T8000.
JR}

{11/7/88
Deleted XsAreRadii, Lathe Xs are Diameter.
Deleted NegSideLathe and ReverseXZArcs for Lower Turret.
Both are PosSideLathe, StandardXZArcs and SpinForward = M03
JR}

{5/10/90, Updated: GE 1050T Monarch L074.56 to .69.4 format, JR}
{7/24/90, Added InitProg globally to posts with this remark, DWB}

{12/12/91
Modified: GE 1050T Monarch L074.70
For: Gibbs & Associates
Updated to Version 4.1 per Fanuc 10T MS [-] L001.82 Format.
Rapid is not used, RapidF and FeedRate instruct the control.
DWB}

{5/6/93
Copied & modified: GE 1050T Monarch L074.82
For: Braden Eng / Twigg Aerospace Components
Control: GE1050T
Machine: W&S 242 VFR Vertical Turret Lathe
5 station turret, each can hold 2 tools that can work on either + or - X axis.
Modified GetToolNum for this special handling of tool number and axis output.
Modified ToolTypeComment to reflect actual turret and tool
Added 'M17' tool change command.
Changed G01, G02, G03 to G21, G22, G23
Changed to output decimal point format without leading or trailing zeros.
Added XsAreRadii to initializations to output radius values for X.
Modified GearRange to output M50(low) & M51(High) with change over at 80 RPM.
Updated to .82ż format.
Jim Radcliffe}

{10/27/93
Modified: GE 1050T W&S 242 VFR L284.82
For: Braden Eng / Twigg Aerospace Components
Deleted XsAreRadii to get Diameter output.
Jim Radcliffe}

{11/18/93
Modified: GE 1050T W&S 242 VFR L284.82.1
For: Braden Eng / Twigg Aerospace Components
Added XsAreRadii to get Radius output, the only diameter value is the Home line.
Modified the Home lines to get a diameter value.
Changed 'G4X1.' to 'G04X2.'
Added leading zeros to G, M & N codes.
Deleted SpinOff from end of program.
Deleted G95 from very beginning of operation, read further for implementation.
Deleted M58, it is not used on this machine.
Modified GearRange to change over at 150 RPM.
Output M80 to set Rapid, M81 to set feed. Modal.
Output G94 (IPM) for Rapid, G95 (IPR) for Feed. Modal.
Jim Radcliffe}

{8/13/95
Initial: GE 1050T W&S 242 VFR L284.82.2
Created: GE 1050T W&S 242 VFR L284.85
ForUser: CNCCS / Twigg
Control: GE 1050T
Machine: Gray W&S
Develop: ComPost 4.21.32, Virtual v.2.20
Comment: Modified Processor per marked up readout from Dalton Harwell.
Changed default format N, sequence numbers, to show 4 digits.
Changed default format S, spindle speed, to show 4 digits.
Deleted T code from Home lines.
Deleted GetLastToolNum sub as it is now no longer used.
Updated to .85 format per Fanuc 10T MS [-] L001.85.01
Jim Radcliffe}

{4/29/96
Initial: GE 1050T W&S 242 VFR L284.85
Created: GE 2000 Bullard VTL L000.85
ForUser: CNCCS / Twigg
Control: GE 2000
Machine: Bullard VTL
Develop: ComPost 4.21.34, Catalyst68K v3.04C
Comment: New Post processor per marked up readout from Terry Shoate
Deleted Dwell at tool index.
Changed format of tool call from Tnxx to Tnnxx:
Added prog formatter #6
Called in GetToolNum sub for Tool# & SUB#
Then, reset to format #3 for comments.
Added missing CheckM80 in SameTool.
Added GetRapidFC CheckM80 to ApproachSP to handle SameTool situation.
Had to move the GetRapidFC sub!
Added '(END, PROG)' to end of program.
Added 'MSG,' to beginning of comments.
Added SetFlagF('1') & SetFlagF('2') at beginning of tool to force G94 & M80 output.
Jim Radcliffe}

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

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

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(CycleStartX#,2)
FORMAT(ADD#,2)
FORMAT(MUL#,2) { For X Homes }
FORMAT(HomeZ#,2)
FORMAT(FirstHomeZ#,2)
FORMAT(NewHomeZ#,2)
FORMAT(Dwell#,2) {.72}
FORMAT(Program#,3) {.72}
FORMAT(Operation#,3) {.72}
FORMAT(Tool#,3)
FORMAT(SUB#,3)
FORMAT(CalcEPRPM#,4)
FORMAT(RapidF#,5)

{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?
'(MSG, OPERATION ' Operation# ': ' OperationType$ ' )' EOL
END
IF OperationComment?
'(MSG, ' OperationComment$ ' )' EOL
END
IF WorkGroupComment?
'(MSG, ' WorkGroupComment$ ' )' EOL
END
IF ToolTypeComment?
'(MSG, TURRET '
IF ToolOver?('15')
SUB# Tool# Num#('15') ' POSITION 2'
ELSE
IF ToolOver?('10')
SUB# Tool# Num#('10') ' POSITION 2'
ELSE
IF ToolOver?('5')
SUB# Tool# Num#('5') ' POSITION 1'
ELSE
Tool# ' POSITION 1'
END
END
END
': ' ToolSize$ ' ' ToolType$ ' )' EOL
END
IF ToolComment?
'(MSG, ' 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

CheckG94: { Called before Rapid blocks }
IF Flag?('1')
{ We are already in G94 Rapid }
ELSE
SeqC 'G94' EOL { Set to IPM for Rapid moves }
SetFlag('1')
END
RETURN

CheckG95: { Called before Feed blocks }
IF Flag?('1')
SeqC 'G95' EOL { Set to IPR for Feed moves }
SetFlagF('1')
ELSE
{ We are already in G95 Feed }
END
RETURN

CheckM80: { Called on Rapid blocks }
IF Flag?('2')
{ We are already in M80 Rapid }
ELSE
IF NOT EmptyLine?
'M80' { Set for Rapid moves }
SetFlag('2')
END
END
RETURN

CheckM81: { Called on Feed blocks }
IF Flag?('2')
IF NOT EmptyLine?
'M81' { Set for Feed moves }
SetFlagF('2')
END
ELSE
{ We are already in M81 Feed }
END
RETURN

GetRapidFC:
IF NOT EmptyLine?
RapidFC
END
RETURN

StockOnNoCan:
IF NOT CannedCycle?
StockOn {need stock for SP positioning, if not a canned cycle}
END
RETURN

FeedNoCan:
IF NOT CannedCycle?
FeedC
END
RETURN

FeedRateNoCan:
IF NOT CannedCycle?
FeedRateC
END
RETURN

ApproachSP:
IF ApproachFace?
SeqC StockOnNoCan XSPC GetRapidFC CheckM80 EOL
SeqC StockOff ZOpCPC GetRapidFC CheckM80 EOL
StockOnNoCan
IF NotEqual? CycleStartZ# ZOpCP#
CheckG95
SeqC FeedNoCan ZSPC FeedRateNoCan CheckM81 EOL
END
ELSE { ODApproach/IDApproach }
SeqC StockOnNoCan ZSPC GetRapidFC CheckM80 EOL
SeqC StockOff XOpCDC GetRapidFC CheckM80 EOL
StockOnNoCan
IF NotEqual? CycleStartX# XOpCD#
CheckG95
SeqC FeedNoCan XSPC FeedRateNoCan CheckM81 EOL
END
END
RETURN

AppMove:
StockOff ThisOpEntryZCP RapidF CheckM80
RETURN

Approach: { NOT FOR TAILSTOCK, .82 }
CheckG94
Feed
IF ApproachOD?
SeqC ThisOpEntryXCP AppMove EOL
SeqC CoolOn EOL
ELSE
IF ApproachID?
SeqC XOpCD AppMove EOL
SeqC CoolOn EOL
ELSE {ApproachFace}
SeqC StockOnNoCan XSP AppMove EOL
SeqC CoolOn EOL
END
END
ApproachSP
RETURN

GetToolNum:
FORMAT(Tool#,6)
FORMAT(SUB#,6)
IF ToolOver?('15')
'T' SUB# Tool# Num#('15')
NegSideLathe
ReverseXZArcs
ELSE
IF ToolOver?('10')
'T' SUB# Tool# Num#('10')
PosSideLathe
StandardXZArcs
ELSE
IF ToolOver?('5')
'T' SUB# Tool# Num#('5')
NegSideLathe
ReverseXZArcs
ELSE
'T' Tool#
PosSideLathe
StandardXZArcs
END
END
END
FORMAT(Tool#,3)
FORMAT(SUB#,3)
RETURN

CheckOffset:
DoEndOpPS
IF LAST ProgStop?
SeqC 'M00' EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
END
IF NewToolOffset?
IF NewGear?
SeqC GetToolNum '00' SpinOff EOL
SeqC GetToolNum LatheOffset GearRange EOL
ELSE
SeqC GetToolNum '00' EOL
SeqC GetToolNum LatheOffset EOL
END
ELSE
IF NewGear?
SeqC SpinOff EOL
SeqC GearRange EOL
END
END
IF ConstantSurfaceFeed?
SeqC {skip untill we are at the start position}
ELSE
IF LAST ConstantSurfaceFeed?
SeqC CSSOff 'G97' Speed
ELSE
SeqC SpeedC
END
END
IF LAST ProgStop?
SpinOn EOL
SeqC CoolOn EOL
ELSE
IF NewGear?
SpinOn EOL
ELSE
EOL
END
IF NOT CoolOff? AND LAST CoolOff?
SeqC CoolOn EOL
END
END
DoPostScript
RETURN

FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXC MoveZC ArcIJC
RETURN

ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
IF Drilling?
IF Tap?
SeqC SpinOff EOL
SeqC 'G4X2.' EOL
SeqC Speed InverseSpinOn EOL
ELSE
IF Dwell?
SeqC 'G04X' Dwell# EOL
END
END
END
END
IF PointFeat?
SeqC MoveSXYC EOL
ELSE
IF RapidFeat?
CheckG94
SeqC FeedC MoveXC MoveZC GetRapidFC CheckM80 EOL
ELSE
IF LineFeat?
CheckG95
SeqC FeedC MoveXC MoveZC FeedRateC CheckM81 EOL
ELSE
IF ArcFeat?
EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop }
CheckG95
SeqC FormatArc FeedRateC CheckM81 EOL
NEXTQuadrant
ELSE
IF ThreadFeat?
CheckG95
SeqC 'G33' MoveXC MoveZC ThrdLead CheckM81 EOL
Feed
END
END
END
END
END
NEXTFeat
RETURN

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

{setup and initializations}
InitProg
PosSideLathe
XsAreRadii
StandardXZArcs
NoIJKSigns
SetMaxRPM('486')
SetMaxFeed('500') {?}
SetFlagF('1') { used for G94/G95, Flag? true is we are in G94 Rapid }
SetFlagF('2') { used for M80/M81, Flag? true is we are in M80 Rapid }
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
'$' Program# EOL
IF UseComments?
IF ProgramNameComment?
'(MSG, PROGRAM: ' ProgramName$ ' )' EOL
END
IF ProgramComment?
'(MSG, ' ProgramComment$ ' )' EOL
END
IF FormatNameComment?
'(MSG, FORMAT: ' FormatName$ ' )' EOL
END
IF TimeComment?
'(MSG, ' Date$ ' AT ' Time$ ' )' EOL
END
IF MovesComment?
'(MSG, OUTPUT IN ' MoveType$ ' INCHES )' EOL
END
END
RestoreScale
OpenSub
StockOff {.71.2}
SetHome
Plane { No Output }
Seq 'G70' EOL
SeqC AbsOrInc EOL
DoOpComments
DoPostScript
SeqC GetToolNum LatheOffset 'M17' EOL
SeqC GearRange EOL
SeqC Preset 'X' MUL# NUM#('2') HomeX# 'Z' HomeZ# MaxRPM EOL
SeqC CSSOff 'G97'
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
SpinOn EOL
SetFlagF('1') { force G94 output at beginning of tool }
SetFlagF('2') { force M80 output at beginning of tool }
Approach
ELSE
IF NewTool?

{Finish off last Operation}

StockOff {.62}
CheckG94
FeedC
IF LAST ApproachOD?
SeqC LAST OpExitXCPC GetRapidFC CheckM80 EOL
ELSE
IF LAST ApproachID?
SeqC LAST XOpECDC GetRapidFC CheckM80 EOL
END
END
SeqC LAST OpExitZCPC GetRapidFC CheckM80 EOL
DoEndOpPS
IF LAST ConstantSurfaceFeed?
SeqC CSSOff 'G97' CalcRPM2 EOL
END
SeqC Feed 'X' MUL# NUM#('2') NewHomeX# 'Z' NewHomeZ# GetRapidFC CheckM80 EOL
IF NewGear?
SeqC SpinOff EOL
END
IF LAST ProgStop?
SeqC 'M00' EOL
ELSE
SeqC ProgStop EOL
END

{Start new Operation}

Seq 'G70' EOL
SeqC AbsOrInc EOL
DoOpComments
DoPostScript
SeqC GetToolNum LatheOffset 'M17' EOL
SeqC GearRange EOL
SeqC Preset 'X' MUL# NUM#('2') HomeX# 'Z' HomeZ# MaxRPM EOL
SeqC CSSOff 'G97'
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
SpinOn EOL
SetFlagF('1') { force G94 output at beginning of tool }
SetFlagF('2') { force M80 output at beginning of tool }
Approach
ELSE
IF SameTool? {.62}

{Start new Operation}

StockOff
DoOpComments
IF LAST StraightConnect?
CheckOffset
CheckG94
SeqC FeedC StockOnNoCan XSPC ZSPC GetRapidFC CheckM80 EOL
ELSE
CheckG94
FeedC
IF ApproachOD?
IF LAST ApproachOD?
SeqC LAST XOpECDC GetRapidFC CheckM80 EOL
ELSE {around}
IF LAST ApproachID?
SeqC LAST XOpECDC GetRapidFC CheckM80 EOL
END
SeqC LAST OpExitZCPC GetRapidFC CheckM80 EOL
SeqC LAST OpExitXCPC GetRapidFC CheckM80 EOL
END
ELSE
IF ApproachID?
IF LAST ApproachID?
SeqC LAST XOpECDC GetRapidFC CheckM80 EOL
ELSE
IF LAST ApproachOD? {around}
SeqC LAST OpExitXCPC GetRapidFC CheckM80 EOL
END
SeqC LAST OpExitZCPC GetRapidFC CheckM80 EOL
SeqC XOpCDC GetRapidFC CheckM80 EOL
END
ELSE {ApproachFace}
IF LAST ApproachFace?
SeqC LAST ZOpECPC GetRapidFC CheckM80 EOL
ELSE
IF LAST ApproachOD? {around}
SeqC LAST OpExitXCPC GetRapidFC CheckM80 EOL
ELSE {LAST ApproachID}
SeqC LAST XOpECDC GetRapidFC CheckM80 EOL
END
SeqC LAST OpExitZCPC GetRapidFC CheckM80 EOL
END
END
END
CheckOffset
ApproachSP
END
END
END
END {common point for all operations}
IF ConstantSurfaceFeed?
IF SameTool?
IF LAST ConstantSurfaceFeed?
IF NotEqual? MaxRPM# LAST MaxRPM#
SeqC Preset MaxRPM EOL
END
IF NotEqual? SpeedRPM# LAST SpeedRPM#
SeqC CSSOn 'G96R' CycleStartX# Speed EOL
END
ELSE
SeqC Preset MaxRPM EOL
SeqC CSSOn 'G96R' CycleStartX# Speed EOL
END
ELSE
SeqC CSSOn 'G96R' CycleStartX# Speed EOL
END
END
StockOn
SetPass1
ToolPath
IF AutoFinish?
StockOff
IF Turning?
CheckG94
IF ApproachFace?
SeqC FeedC ZOpECPC GetRapidFC CheckM80 EOL
ELSE
SeqC FeedC XOpECDC GetRapidFC CheckM80 EOL
END
ApproachSP
CheckG95
SeqC StockOff StrtPosC FeedRateC CheckM81 EOL
ToolPath
ELSE
IF Roughing? AND NOT RoughSimple?
SetPass2
CheckG94
SeqC FeedC XSPC ZSPC GetRapidFC CheckM80 EOL
CheckG95
SeqC FeedC StockOff StrtPosC FeedRateC CheckM81 EOL
ToolPath
SetPass1
ELSE
IF Threading?
CheckG94
SeqC Feed 'X' ADD# FinishXRadius# Taper# GetRapidFC CheckM80 EOL
CheckG95
SeqC 'G33'
IF Taper?
XatFinZ
END
FinZ ThrdLead CheckM81 EOL
CheckG94
SeqLabC Feed XSP GetRapidFC CheckM80 EOL
SeqLabC Feed ZSP GetRapidFC CheckM80 EOL
END
END
END
END
IF Drilling? AND Tap?
SeqC SpinOff EOL
SeqC 'G04X2.' EOL
SeqC Speed SpinOn EOL
END
NextOp {loops back to EachOP until last Operation}

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

{finish last operation}
StockOff
CheckG94
FeedC
IF ApproachOD?
SeqC OpExitXCPC GetRapidFC CheckM80 EOL
ELSE
IF ApproachID?
SeqC XOpECDC GetRapidFC CheckM80 EOL
END
END
SeqC OpExitZCPC GetRapidFC CheckM80 EOL
DoEndOpPS
SeqC CoolOff EOL
IF ConstantSurfaceFeed?
SeqC CSSOff 'G97S' CalcEPRPM# EOL
END
SeqC Feed 'X' MUL# NUM#('2') FirstHomeX# 'Z' FirstHomeZ# CheckM80 EOL
IF ProgStop?
SeqC 'M00' EOL
END
SeqC EOP EOL
'(END, PROG)' EOL
Post
EOR EOL
Close
IF UseComments?
SetScale('1') {restore scale for comments}
Reopen
IF FileBytesComment?
'(MSG, FILE LENGTH: ' FileBytes# ' CHARACTERS )' EOL
END
IF FileFeetComment?
'(MSG, FILE LENGTH: ' FileFeet# ' FEET )' EOL
END
IF FileMetersComment?
'(MSG, FILE LENGTH: ' FileMeters# ' METERS )' EOL
END
Close
END


Wyszukiwarka

Podobne podstrony:
GE 2000 WhiteGray GT L660 85 3
W&S 2SC GE 2000 [BD4] L773 85 1
GE 1054T G&L VTL L595 85 1
GE 2000 Burg [SI] MY73 89
GE 1050 LeBlonde Rgl L033 85
GE 1050T [GT] Baron L591 85
GE 1050 HLX Hardinge L124 85 1
AB 9 240 Bullard UW L701 85
GE 1050 HLB CS L520 85 1
GE 7542 Monarch TC75 L395 85 01
AB 9 240 Bullard [SSI] L811 85
GE 1050 Burgmaster [TC] M858 85
GE 2000 Monarch M796 87
GE 2000 Monarch L116 82
GE Fanuc 0TB Hardinge L576 85 1
GE 1050T W&S 242 [HP] L401 85

więcej podobnych podstron