Fanuc 0TB Hard [AM] L391 85 1


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

{8/11/89
Copied & modified; Fanuc OT [-] L031.55 for, Indarg.
Machine is a Mori Sieki AL20 with Fanuc OT Mate control.
Use 'G30X0.Z0.' for home position.
Add GearRange.
Delete FromCP & RLevel from drilling, changed K to U for Peck value,
and deleted G80.
Jim Radcliffe}

{3/27/90, Updated: Fanuc 0T Mate MS (-) L031.56 to .69.3 foramt, JR}

{3/27/90
Copied & modified: Fanuc 0T Mate MS (-) L031.69.3
For: Indarg
Positive side lathe. R format arcs.
2 line theading.
Jim Radcliffe}

{5/30/90
Modified: Fanuc OT Mate MS L031.69.3
Added R value to 1st Rough Contour Cycle line.
Updated to .69.5
Jim Radcliffe}

{7/23/90
Modified: Fanuc OT Mate MS L031.69.5
Deleted ReverseXZArcs
Changed StrtPos to StrtPosC in RoughContour & RoughPatternShift.
Updated to .69.7 format
Jim Radcliffe}

{7/24/90, Added InitProg globally to posts with this remark, DWB}
{8/3/90, Updated: Fanuc OT Mate MS L031.70 to .71 format, JR}
{9/12/90, added MovesComment, SeqLabC in for PostScript, JR}

{9/12/90
Copied & modifed: Fanuc OT Mate MS L031.71.1
For: GE
Control: General Numeric OTA
Machine: Custom Made
Deleted Coolant.
Using Special G Code Group.
Deleted UnTool from end of prog.
Jim Radcliffe}

{10/2/90, Added StockOff globally at FirstOperation, DWB}
{10/8/90, Replace CalcRPM2 globally with CalcEPRPM# at end of prog, DWB}
{10/19/93, Updated Fanuc 0TA T-Mate L175.71.2 per Fanuc 10T MS [-] L001.82ż, JR}

{10/20/93 thru 11/9/93
Copied & modified: Fanuc 0TA T-Mate L175.82
For: Dynamic Systems Engineering
Control: GE Fanuc 0T-B
Machine: Hardinge Conquest 42 Chucker
Added M98P1, safe start index position sub, before all indexes.
No Preset Home.
Tool geo offsets are stored in offset file caled with tool call.
Added M98P1 or M98P2 at end of tool depending on approach.
Added G10 line to beginning of program for turret position offset.
Deleted G95, AbsOrInc, GearRange
Modified comments placement in output.
Added DoSpinOn sub to handle SpinOn and CoolOn.
Minor modifications to Canned Cycles.
Added a blank line between tools.
Changed XStkLeft to output radius values.
Sequence numbers set to operation number times 100 at beginning of each operation.
Moved SameTools DoOpComments to CheckOffset, that is where we actually
"Start New Operation" for SameTool after "Finish off last Operation" stuff is done.
I would suggest this be changed in ALL lathe processors.
Jim Radcliffe}

{8/26/95, Updated Fanuc 0TB Hardinge L295.82.1 to .85 format per Fanuc 10T MS [-] L001.85.01.01, JR}

{10/17/95
Initial: Fanuc 0TB Hardinge L295.85
Created: Fanuc 0TB Hardinge [AM] L000.85
ForUser: CIM Solutions / Advanced Machine
Control: Fanuc 0TB
Machine: Hardinge Conquest 42 Turning Center with Bar Puller
Develop: ComPost 4.21.33, Catalyst v2.26C
Comment: New Processor per Conversation with Gary Chomin
Deleted G20 and G10 lines from beginning of program.
Deleted Åš sequence modifiers.
Jim Radcliffe}

{5/20/96
Initial: Fanuc 0TB Hardinge [AM] L391.85
Created: Fanuc 0TB Hardng [AM] L391.85.1
ForUser: CIM Solutions / Advanced Machine
Develop: ComPost 4.21.37, Catalyst68K v3.04.04C
Comment: Add G99 to first feed move of every tool per Gary and Bob.
Jim Radcliffe}

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

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

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(InFeedAngle#,2)
FORMAT(FirstMoveEPZ#,2)
FORMAT(ToolDiameter#,2)
FORMAT(Peck#,2)
FORMAT(MUL#,2) { To get decimal point output on CutDeth for Canned Roughing }
FORMAT(Program#,3) {.72}
FORMAT(Operation#,3) {.72}
FORMAT(Tool#,3) {.72}
FORMAT(Dwell#,4) {.72}
FORMAT(FeedIPR#,5)
FORMAT(RapidF#,6)
FORMAT(CutDepth#,7)

{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 OperationComment?
SeqLabC '( ' OperationComment$ ' )' EOL
END
IF OperationIDComment?
SeqLabC '( OPERATION ' Operation# ': ' OperationType$ ' )' EOL
END
IF WorkGroupComment?
SeqLabC '( ' WorkGroupComment$ ' )' EOL
END
IF ToolTypeComment?
SeqLabC '( TOOL ' Tool# ': ' ToolSize$ ' ' ToolType$ ' )' EOL
END
IF SameTool?
IF ToolComment?
SeqLabC '( ' ToolComment$ ' )' EOL
END
END
RestoreScale
END
RETURN

PSInit: {reset flags from last Op, .70}
RETURN

PSStuff:
RETURN

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

DoEndOpPS:
PSInit
EachEOPS
SeqLabC EndOpPS EOL {literals}
PSStuff {commands}
NextPS
RETURN

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

DoG99:
IF Flag?('1')
'G99'
SetFlagF('1')
END
RETURN

FeedNoCan:
IF NOT CannedCycle?
DoG99 FeedC
END
RETURN

FeedRateNoCan:
IF NOT CannedCycle?
FeedRateC
END
RETURN

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

AppMove:
StockOff ThisOpEntryZCP
RETURN

Approach: { NOT FOR TAILSTOCK, .82 }
Rapid RapidF# { RapidF# Forces FeedRate }
IF ApproachOD?
SeqLabC ThisOpEntryXCP AppMove EOL
ELSE
IF ApproachID?
SeqLabC XOpCD AppMove EOL
ELSE {ApproachFace}
SeqLabC StockOnNoCan XSP AppMove EOL
END
END
ApproachSP
RETURN

DoSpinOn:
IF CoolOff?
SpinOn
ELSE
IF CWSpindle?
'M13'
ELSE
'M14'
END
END
RETURN

DoInverseSpinOn:
IF CoolOff?
InverseSpinOn
ELSE
IF CWSpindle?
'M14'
ELSE
'M13'
END
END
RETURN

CheckOffset: {without gear ranges}
DoEndOpPS
IF LAST ProgStop?
SeqLabC 'M0' EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqLabC CoolOff EOL
END
END
SeqLab
DoOpComments
DoPostScript
IF NewToolOffset?
SeqLabC LOfstOff '00' EOL
SeqLabC OpToolID LatheOffset EOL
END
IF ConstantSurfaceFeed?
IF LAST ConstantSurfaceFeed?
IF NotEqual? MaxRPM# LAST MaxRPM#
SeqLabC Preset MaxRPM EOL
END
SeqLabC SpeedC
ELSE
SeqLabC Preset MaxRPM EOL
SeqLabC CSSOn 'G96' Speed
END
ELSE
IF LAST ConstantSurfaceFeed?
SeqLabC CSSOff 'G97' Speed
ELSE
SeqLabC SpeedC
END
END
IF LAST ProgStop?
DoSpinOn EOL
ELSE
EOL
IF NOT CoolOff? AND LAST CoolOff?
SeqLabC CoolOn EOL
END
END
RETURN

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

CkCRC: { 4.2 }
IF XMove? OR ZMove? { Approach Length Feature and Multiple Pockets }
IF NOT LastFeat?
CRCOnC
END
END
IF LastFeat? AND EmptyLine? { Exit Length Feature }
CRCOffC
END
RETURN

ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
IF Drilling?
IF Tap?
SeqLabC 'G4P500' EOL
SeqLabC DoInverseSpinOn EOL
ELSE
IF Dwell?
SeqLabC 'G4P' Dwell# EOL
END
END
ELSE
IF CannedCycle?
SeqLab
END
END
END
IF PointFeat?
SeqLabC MoveSXYC EOL
ELSE
IF RapidFeat?
SeqLabC RapidC MoveXC MoveZC EOL
ELSE
IF LineFeat?
SeqLabC DoG99 CkCRC FeedC MoveXC MoveZC FeedRateC EOL
ELSE
IF ArcFeat?
EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop }
SeqLabC DoG99 FormatArc FeedRateC EOL
NEXTQuadrant
ELSE
IF ThreadFeat?
SeqLabC 'G32' MoveXC MoveZC ThrdLead EOL
Rapid
END
END
END
END
END
NEXTFeat
RETURN

CheckRapid:
CRCOffC
IF LAST CannedCycle?
Rapid
ELSE
RapidC
END
RETURN

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

{setup and initializations}
InitProg
SetAbs
PosSideLathe
SetMaxRPM('10000')
SetMaxFeed('600') { thats 600 inches per minute on Z, X axis is 472 IPM max }
SetFlag('1') { G99 flag, needs output }
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
ProgID1
IF UseComments? AND ProgramNameComment?
'( ' ProgramName$ ' )'
END
EOL
IF UseComments?
IF ProgramComment?
SeqLabC '( ' ProgramComment$ ' )' EOL
END
IF FormatNameComment?
SeqLabC '( FORMAT: ' FormatName$ ' )' EOL
END
IF TimeComment?
SeqLabC '( ' Date$ ' AT ' Time$ ' )' EOL
END
IF MovesComment?
SeqLabC '( OUTPUT IN ABSOLUTE INCHES )' EOL
END
END
RestoreScale
OpenSub
StockOff {.71.2}
SetHome
SeqLab
DoOpComments
DoPostScript
Plane
SeqLabC CSSOff 'G97'
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
DoSpinOn EOL
SeqLabC 'M98P1' EOL { Safe Start Sub }
SeqLabC 'G4' OpToolID LatheOffset
IF UseComments? AND ToolComment?
'( ' ToolComment$ ' )'
END
EOL
SetFlag('1') { G99 flag, needs output }
Approach
ELSE
IF NewTool?

{Finish off last Operation}

StockOff {.62}
CheckRapid
IF LAST ApproachOD?
SeqLabC LAST OpExitXCPC EOL
ELSE
IF LAST ApproachID?
SeqLabC LAST XOpECDC EOL
END
END
SeqLabC LAST OpExitZCPC EOL
DoEndOpPS
IF LAST ApproachOD?
SeqLabC 'M98P1' EOL
ELSE
SeqLabC 'M98P2' EOL
END
IF ProgStop?
SeqLabC 'M0' EOL
ELSE
SeqLabC ProgStop EOL
END
' ' EOL

{Start new Operation}

SeqLab
DoOpComments
DoPostScript
SeqLabC CSSOff 'G97'
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
DoSpinOn EOL
SeqLabC 'M98P1' EOL { Safe Start Sub }
SeqLabC 'G4' OpToolID LatheOffset
IF UseComments? AND ToolComment?
'( ' ToolComment$ ' )'
END
EOL
SetFlag('1') { G99 flag, needs output }
Approach
ELSE
IF SameTool? {.62}

{Start new Operation}

StockOff
IF LAST StraightConnect?
CheckOffset
CheckRapid
SeqLabC StockOnNoCan XSPC ZSPC EOL
ELSE
CheckRapid
IF ApproachOD?
IF LAST ApproachOD?
SeqLabC LAST XOpECDC EOL
ELSE {around}
IF LAST ApproachID?
SeqLabC LAST XOpECDC EOL
END
SeqLabC LAST OpExitZCPC EOL
SeqLabC LAST OpExitXCPC EOL
END
ELSE
IF ApproachID?
IF LAST ApproachID?
SeqLabC LAST XOpECDC EOL
ELSE
IF LAST ApproachOD? {around}
SeqLabC LAST OpExitXCPC EOL
END
SeqLabC LAST OpExitZCPC EOL
SeqLabC XOpCDC EOL
END
ELSE {ApproachFace}
IF LAST ApproachFace?
SeqLabC LAST ZOpECPC EOL
ELSE
IF LAST ApproachOD? {around}
SeqLabC LAST OpExitXCPC EOL
ELSE {LAST ApproachID}
SeqLabC LAST XOpECDC EOL
END
SeqLabC LAST OpExitZCPC EOL
END
END
END
CheckOffset
ApproachSP
END
END
END
END {common point for all operations}
IF ConstantSurfaceFeed? AND NOT SameTool?
SeqLabC Preset MaxRPM EOL
SeqLabC CSSOn 'G96' Speed EOL
END
IF CannedCycle?
StockOff
IF Roughing?
IF RoughSimple?
StockOn
SetPass1
IF ApproachFace?
SeqLabC LCycle 'Z' FirstMoveEPZ# XatFinZ XTapAtZ FeedRate EOL
ELSE
SeqLabC LCycle XatFinZ FinZ XTapAtZ FeedRate EOL
END
SimpleRough
ELSE
TagInc
IF RoughContour?
SetPass2
SeqLabC LCycle CutDepth 'R' MUL# NUM#('1') CutDepth# EOL
SeqLabC LCycle 'PÅ‚' Tag# 'Q²' Tag# XStkLeft ZStkLeft FeedRate EOL
'>' Tag# EOL
SeqLab StepMove StrtPosC EOL
ToolPath
'<' Tag# EOL
IF AutoFinish?
SeqLabC 'G70' 'PÅ‚' Tag# 'Q²' Tag# EOL
END
ELSE
IF RoughPatternShift?
SetPass2
SeqLabC LCycle XminusU ZminusW NumCuts EOL
SeqLabC LCycle 'PÅ‚' Tag# 'Q²' Tag# XStkLeft ZStkLeft FeedRate EOL
'>' Tag# EOL
SeqLab Rapid StrtPosC EOL
ToolPath
'<' Tag# EOL
IF AutoFinish?
SeqLabC 'G70' 'PÅ‚' Tag# 'Q²' Tag# EOL
END
END
END
END
ELSE
IF Threading?
SeqLabC LCycle 'P'
IF AutoFinish?
'02' {2 finish passes}
ELSE
'01'
END
IF Chamfer?
'10' {1 thread lead distance for chamfer}
ELSE
'00'
END
IF SingleEdgeCut?
'55' {using 55 degrees for tool angle, need ToolAngle# command}
ELSE
'00'
END
'Q'
IF ConstantVolumeCut?
'15' {.0015 minimum cut depth}
ELSE
CutDepth# {if not ConstantVolumeCut? CutDepth is min depth, volume increases with depth}
END
'R0' {using zero for no finish stock allowance, need XStckLeft# command}
EOL
SeqLabC LCycle XatFinZ FinZ XTapAtZ ThrdHeight CutDepth ThrdLead EOL
ELSE
IF Drilling?
IF Tap? { modified with customer prefs }
SeqLabC LCycle ZDepth 'F' FeedIPR# EOL
SeqLabC 'G4P500' EOL
SeqLabC DoInverseSpinOn EOL
SeqLabC LCycle ZSP 'F' FeedIPR# EOL
ELSE
IF PeckChipBreaker?
SeqLabC LCycle Retract EOL
SeqLabC LCycle ZDepth Peck FeedRate EOL
IF AutoFinish?
SeqLabC Feed ZDepth EOL
IF Dwell?
SeqLabC 'G4P' Dwell# EOL
END
SeqLabC Rapid ZSP EOL
END
ELSE
IF PeckFullRetract?
SeqLabC LCycle 'P9135' RLevel ZDepth Peck FeedRate 'H' ToolDiameter# 'C' Peck# Dwell EOL
IF AutoFinish?
SeqLabC Feed ZDepth EOL
SeqLabC Rapid ZSP EOL
END
END
END
END
ELSE
IF Grooving?
StockOn
SetPass1
SeqLabC StrtPos EOL
ToolPath
END
END
END
END
ELSE
StockOn
SetPass1
ToolPath
IF AutoFinish? { .82.1c }
StockOff
IF Turning?
IF ApproachFace?
SeqLabC RapidC ZOpECPC EOL
ELSE
SeqLabC RapidC XOpECDC EOL
END
ApproachSP
SeqLabC StockOff StrtPosC EOL
ToolPath
ELSE
IF Roughing? AND NOT RoughSimple?
SetPass2
SeqLabC RapidC XSPC ZSPC EOL
SeqLabC StockOff StrtPosC EOL
ToolPath
SetPass1
ELSE
IF Threading?
SeqLabC 'X' MUL# Num#('2') ADD# FinishXRadius# Taper# EOL
SeqLabC 'G32'
IF Taper?
XatFinZ
END
FinZ ThrdLead EOL
SeqLabC Rapid XSP EOL
SeqLabC ZSP EOL
END
END
END
END
END
NextOp {loops back to EachOP until last Operation}

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

{finish last operation}
StockOff
CRCOffC
IF CannedCycle?
Rapid
ELSE
RapidC
END
IF ApproachOD?
SeqLabC OpExitXCPC EOL
ELSE
IF ApproachID?
SeqLabC XOpECDC EOL
END
END
SeqLabC OpExitZCPC EOL
DoEndOpPS
IF ApproachOD?
SeqLabC 'M98P1' EOL
ELSE
SeqLabC 'M98P2' EOL
END
SeqLabC EOP EOL
Post
EOR EOL
Close
Retag
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:
Fanuc 16T MS [AM] L615 85 2
Fanuc 0T Hard ST25 L510 85 1
Fanuc 0MD Hard [AM] CQ63 16
Fanuc 21T Hard [JT] L751 85 2
Fanuc 18T Hard [SMT] L545 85 1
Fanuc 18T Hard [DMAFB] L542 85
Fanuc 21T Hard [SA] L762 85
Fanuc 0TB Hard [BN] L297 82 1
Fanuc 18T Hard [GS] L723 85
GE Fanuc 0TB Hardinge L576 85 1
Fanuc 10T HS [KMT] L759 85
Fanuc 0T DP [TTT] L567 85

więcej podobnych podstron