{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 1050T W&S 242 VFR L284.85.1
Comment: Modifications per Terry Shoate.
Added missing CheckM80 in SameTool.
Added GetRapidFC CheckM80 to ApproachSP to handle SameTool situation.
Had to move the GetRapidFC sub!
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'
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?
'( OPERATION ' Operation# ': ' OperationType$ ' )' EOL
END
IF OperationComment?
'( ' OperationComment$ ' )' EOL
END
IF WorkGroupComment?
'( ' WorkGroupComment$ ' )' EOL
END
IF ToolTypeComment?
'( 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?
'( ' 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:
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
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?
'( 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
END
RestoreScale
OpenSub
StockOff {.71.2}
SetHome
Plane { No Output }
Seq 'G70' EOL
SeqC AbsOrInc EOL
DoOpComments
DoPostScript
SeqC 'G04X2.' 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 'G04X2.' 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
Post
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:
GE 1050T W&S 242 [HP] L401 85GE 1050T [GT] Baron L591 85GE 1050T W&S 1SC L587 85GE 1050T LB Kngt [GH] L691 85 2GE 1050T LeBlonde L105 85 1GE 1050T LB Rgl [GH] L690 85 1GE 1050T LeBlonde [CM] L249 82GE 1050 LeBlonde Rgl L033 85GE 1050 HLX Hardinge L124 85 1GE 1050T (R&M) L151 82GE 1050 HLB CS L520 85 1GE 2000 Bullard VTL L502 85GE 1050T Monarch L074 82GE 7542 Monarch TC75 L395 85 01GE 1050T Farrel L311 82 3GE 1050T Farrel L311 82 3GE 1050 Burgmaster [TC] M858 85więcej podobnych podstron