Fanuc 0TC BND34S [A&B] L760 82


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

{1/29/90, Updated: Fanuc 0T-Miyano L008.52 to .69 format, JR}
{7/24/90, Added InitProg globally to posts with this remark, DWB}
{9/25/90, Updated to Version 3.2 per Fanuc 10T MS [-] L001.71.1 Format, DWB}
{10/2/90, Added StockOff globally at FirstOperation, DWB}
{10/8/90, Replace CalcRPM2 globally with CalcEPRPM# at end of prog, DWB}

{3/27/91
Modified: Fanuc 0T/3T Miyano L008.71.3
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 10T MS [-] L001.80 Format.
All normal Fanuc Canned Cycles are supported.
Added Math to calculate start of Tapered Thread for AutoFinish.
DWB}

{4/17/91
Modified: Fanuc 0T/3T Miyano L008.80
Replaced AbsOrInc command with SetAbs, in FirstOperation, and changed MoveType$ to 'ABSOLUTE'.
DWB}

{08/05/91
Updated: Fanuc 0T/3T Miyano L008.81
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 6M M001.82 Format.
Kim Michelman}

{11/12/91
Modified: Fanuc 0T/3T Miyano L008.82
For: A & B Industries
Making a custom post:
Took out logic for the stock in the ODApproach, IDApproach, and FaceApproach for the SameTool,
and made new logic for if NewTool. Making two Approach subs.
Added logic for ToolOver ('6'), Tool NOT Over ('5'), and Tool ('6').
For:
IF Tool('6') & IF ToolOver?('6') &
'M87' = SpinOn 'M53' = SpinOn
'M88' = InverseSpinOn 'M54' = InverseSpinOn
'M89' = SpinOff 'M55' = SpinOff
'M47' = Main Spindle Encoder 'M46' = Main Spindle Encoder

IF NOT ToolOver?('5')
'M3' = SpinOn
'M4' = InverseSpinOn
'M5' = SpinOff
'M47'= Main Spindle Encoder
Deleted the 'ZCP' from the AppMove in the Approach Sub.
Added CheckSpindleChange and CheckSpindle Subs.
Added 'Z99.99T0000' in place of 'X.0Z.0' LatheOffset line for editing purposes.
Added 'M29' line (Work conveyer off command) at the end of each block.
Added 'M25' and 'M02' to end of prog as well as '/' before the 'M30'.
Kim Michelman}

{12/12/91
Copied and Modified: Fanuc 0T/3T Miyano L008.82
For: A & B Industries
Added logic and formula for decreasing feedrate on arcs less than .032"
Flag('1') is used to track whether or not the feedrate was changed in the ArcFeat. If it was
changed, then we force a feedrate in LineFeat.
Flag('2') is used to detect when we are in the first iteration of EACHQuadrant/NEXTQuadrant so
that we only output the Feedrate formula on the first Quadrant. Note that this is not necessary
if the post does not use Quad stopping, but it is safer to leave it in just in case someone
turns on Quad stopping with the Compost boolean 'Arcs Stop On Quadrants'.
The formula logic is 'If the arc is smaller than .032, then multiply the arc radius times 31 and
then multiply the result by the programmed feedrate'.
Joe Cusimano & Kim Michelman}

{5/1/92
Modified: Fanuc 0T Miyano [A&B] L247.82.1
For: A & B Industries
Removed the 'G33' code from the form, customer said that code is unuseable.
Changed previously requested - 'M29' line (Work conveyer off command) at the end of each block to 'M39'.
Made the StrtPos command conditional.
Changed the logic for tools that come after ('6') in a sequence -
from the previous info. of before/after/ and at ('6').
Changed the logic back from SameApproach/NewApproach to the original Approach.
Kim Michelman}

{5/28/92
Modified: Fanuc 0T Miyano [A&B] L247.82.2
For: A & B Industries
Removed the literal '/', 'M25' and 'M02' from the end of the prog.
Added the 'M1'/ progstop capability to the end of the prog.
Added logic for 'M54' Spindle reverse for the sub spindle.
Changed the Approach sub to output the 'X' move first, and then
the 'Z' move on a seperate line.
Added the startup (feed stock) code to be output at the beginning of each program.
Added logic for CheckLastSpinOff to incorporate spindle direction and if back to Main from sub spindle.
Kim Michelman}

{3/2/93
Modified: Fanuc 0T Miyano [A&B] L247.82.3
For: A & B Industries
Control:
Machine: BNC 20
Call LatheOffset with OpToolID in main, deleted OpToolID LatheOffset from Approach.
Moved CoolOn to 1st Approach move.
Descrimated output of M39 to be output at the end of tool number 6 only.
Changed XOpECDC to XCPC in NewTool to finish off last operation IF LAST ApproachOD?, same as L001.
Jim Radcliffe}

{2/6/98
Initial: Fanuc 0T Miyano [A&B] L247.82.4
Created: Fanuc 0T Miyano [A&B] L247.82.5
ForUser: A & B Industries
Control: Fanuc 0T
Machine: Miyano BNC-20S
Develop: ComPost2 1.1b3, ncCAD 4.33.02 PPC, ncCAM 4.33 PPC, ncPost 4.33.10 PPC
Comment: Modified per notes from meeting with Michael Bingman.
Set minimum calculated feedrate (see note 12/12/91 above) to .0001
Added Drilling and Threading to suppression in FeedNoCan and FeedRateNoCan.
Added custom sequence numbers to beginning of tools.
Using Flag#4 to determine if custom numbers will be used or not.
Using Var#4 as the custom number.
Changed Threading CannedCycle to 2 line Fanoc 0T type canned cycle.
Modified ConstantSurfaceFeed Layout.
Rewrote Bar Feed sequence at beginning of program.
Rewrote cut off operation. No longer using OptCyc1! Tool 6 is only used to cut off!
Rewrote sub spindle control:
Tools aver 16 are sub spindle
Tools under 16 are main spindle
Tool 6 is cut off and uses both spindles
Simplified ToolPath ArcFeat and custom feedrate:
Status Record was being modified by the formula resulting in redundant X output.
Removed the EACHQuadrant/NEXTQuadrant loop, we do not stop on quads.
Removed the use of Flag#2, it is now no longer needed!
Added subs for custom and standard feedrate.
Updated per Fanuc 10T MS [-] L001.82ż
Jim Radcliffe}

{4/7/98
Initial: Fanuc 0T Miyano [A&B] L247.82.5
Created: Fanuc 0T Miyano [A&B] L247.82.6
Develop: ComPost2 1.1b3, ncCAD 4.33.02 PPC, ncCAM 4.33 PPC, ncPost 4.33.10 PPC
Comment: Modified per notes from Michael Bingman
Fixed changing spindle condition in CheckLastSpinOff.
Deleted CoolOff from end of program.
Jim Radcliffe}

{4/7/98
Initial: Fanuc 0T Miyano [A&B] L247.82.6
Created: Fanuc 10T Miyano L000.82
ForUser: A & B Industries
Control: Fanuc 10T
Machine: BNC-12
Develop: ComPost2 1.1b3, ncCAD 4.33.02 PPC, ncCAM 4.33 PPC, ncPost 4.33.10 PPC
Comment: New processor per marked up readout from Michael Bingman
Deleted M46/M47 spindle encoder commands.
Modified Cut Off routine.
Changed sub spindle on/rev/off from M43/M54/M55 to M87/M88/M89 which controls both spindles!
Appears that main spindle must be on for sub spindle to be on!
Modified Thread Canned Cycle output.
Changed XTapAtZ label from R to I
Changed ThrdHeight label from P to K
Changed CutDepth label from Q to D
Added CutMethod command and label.
Jim Radcliffe}

{7/16/98
Initial: Fanuc 10T Miyano [A&B] L725.82
Created: Fanuc 0T Miyano BND L000.82
ForUser: A & B Industries
Control: Fanuc 0TC
Machine: Miyano BND-34S
Develop: ComPost2 1.1b3, ncCAD 4.33.02 PPC, ncCAM 4.33 PPC, ncPost 4.33.10 PPC
Comment: New processor per marked up readout from Michael Bingman
Added parts counter.
Added M91 and M191 spindle encoder commands with CheckSpindle sub and calls.
Changed bar stop tool from 11 to 09.
Changed Feed Out in Bar Feed Cycle from M12 to M17>G4U.5>M18
Changed cut off tool from 06 to 07.
Changed both spindles for/rev/off from M87/M88/M89 to M203/M204/M205.
Added sub spindle for/rev/off M103/M104/M105
Added 'G110' to 'B' moves.
Changed sub collet open/close from from M57/M58 to M117/M118
Changed conveyor on/off from M28/M29 to M213/M215
Changed Threading Canned Cycle Parameters from I/K/D to R/P/Q & deleted CutMethod.
Added 'M206' to end of program.
Jim Radcliffe}

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

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

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ADD#,2)
FORMAT(FinishXDia#,2)
FORMAT(Taper#,2)
FORMAT(ZStockMin#,2)
FORMAT(FirstMoveEPZ#,2)
FORMAT(MUL#,2)
FORMAT(ArcR#,2)
FORMAT(FeedContour#,2)
FORMAT(HomeZ#,2)
FORMAT(Program#,3) {.72}
FORMAT(Operation#,3) {.72}
FORMAT(Tool#,3) {.72}
FORMAT(Dwell#,4) {.72}
FORMAT(FeedIPR#,5)
FORMAT(CalcEPRPM#,6)
FORMAT(Recall#,6)
FORMAT(RapidF#,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 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
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

FeedNoCan:
IF NOT CannedCycle? AND NOT Drilling? AND NOT Threading?
FeedC
END
RETURN

FeedRateNoCan:
IF NOT CannedCycle? AND NOT Drilling? AND NOT Threading?
FeedRateC
END
RETURN

ODApproachSP:
SeqLabC StockOnNoCan ZSPC EOL
SeqLabC StockOff XOpCDC EOL
StockOnNoCan
IF NotEqual? CycleStartX# XOpCD#
SeqLabC FeedNoCan XSPC FeedRateNoCan EOL
END
RETURN

IDApproachSP:
SeqLabC StockOnNoCan ZSPC EOL
SeqLabC StockOff XOpCDC EOL { for SameTool ApproachID }
StockOnNoCan
IF NotEqual? CycleStartX# XOpCD#
SeqLabC FeedNoCan XSPC FeedRateNoCan EOL
END
RETURN

FaceApproachSP:
SeqLabC StockOnNoCan XSPC EOL { for SameTool ApproachFace }
SeqLabC StockOff ZOpCPC EOL
StockOnNoCan
IF NotEqual? CycleStartZ# ZOpCP#
SeqLabC FeedNoCan ZSPC FeedRateNoCan EOL
END
RETURN

AppMove:
StockOff
IF Flag?('3')
'Z' TrackZ# ZStockMin#
ELSE
ZCP
END
RETURN

Approach: { NOT FOR TAILSTOCK, .82 }
Rapid RapidF# { RapidF# Forces FeedRate }
IF ApproachOD?
SeqLabC StockOff XCP CoolOn EOL
ELSE
IF ApproachID?
SeqLabC StockOff XOpCD CoolOn EOL
ELSE {ApproachFace}
SeqLabC StockOnNoCan XSP CoolOn EOL
END
END
IF Equal? Tool# Num#('7')
{ this will be output later }
ELSE
IF ConstantSurfaceFeed?
SeqLabC Preset MaxRPM EOL
SeqLabC CSSOn 'G96' Speed EOL
END
END
SeqLabC AppMove EOL
IF ApproachOD?
ODApproachSP
ELSE
IF ApproachID?
IDApproachSP
ELSE {ApproachFace}
FaceApproachSP
END
END
IF Equal? Tool# Num#('7')
SeqLabC 'M35' EOL
SeqLabC 'M117' EOL { open sub collet }
SeqLabC 'M213' EOL { conveyor on }
SeqLabC 'G4U.5' EOL
SeqLabC 'M36' EOL
IF ConstantSurfaceFeed?
SeqLabC Preset MaxRPM EOL
SeqLabC CSSOn 'G96' Speed EOL
ELSE
SeqLabC Speed EOL
END
SeqLabC Rapid 'G110B-6.000' EOL
SeqLabC 'M118' EOL { close sub collet }
END
RETURN

Sequence:
IF Flag?('4')
Save# Num#('4') ADD# Recall# Num#('4') Num#('1')
'N' Recall# Num#('4')
ELSE
SeqLab ' '
END
RETURN

CheckFlag3:
IF ToolOver?('16')
SetFlag('3')
ELSE
SetFlagF('3')
END
RETURN

SubSpindleFoward:
'M103'
RETURN

SubSpindleReverse:
'M104'
RETURN

SubSpindleOff:
'M105'
RETURN

BothSpindlesFoward:
'M203'
RETURN

BothSpindlesReverse:
'M204'
RETURN

BothSpindlesOff:
'M205'
RETURN

SubSpindleOn:
IF CWSpindle?
SubSpindleFoward
ELSE
SubSpindleReverse
END
RETURN

SubSpindleInverseOn:
IF CWSpindle?
SubSpindleReverse
ELSE
SubSpindleFoward
END
RETURN

BothSpindlesOn:
IF CWSpindle?
BothSpindlesFoward
ELSE
BothSpindlesReverse
END
RETURN

BothSpindlesInverseOn:
IF CWSpindle?
BothSpindlesReverse
ELSE
BothSpindlesFoward
END
RETURN

CheckSpindle:
IF Flag?('3')
'M191' {sub spindle encoder}
ELSE
'M91' {main spindle encoder}
END
RETURN

CheckSpinOn:
IF Equal? Tool# Num#('7')
BothSpindlesOn
ELSE
IF Flag?('3')
SubSpindleOn
ELSE
SpinOn
END
END
RETURN

CheckLastSpinOff: { NewTool Only }
IF Equal? LAST Tool# Num#('7') { if coming from cut off }
IF NOT ToolOver?('16') { if going to main spindle }
BothSpindlesOff
END
ELSE
IF Flag?('3') { if coming from sub spindle }
IF NOT ToolOver?('16') { if going to main spindle }
SubSpindleOff
ELSE { if staying on sub spindle }
IF CWSpindle?
IF LAST CWSpindle?
{do not stop spindle}
ELSE
SubSpindleOff
END
ELSE
IF LAST CWSpindle?
SubSpindleOff
ELSE
{do not stop spindle}
END
END
END
ELSE { if coming from main spindle }
{ main spindle is always left running unless we change directions }
IF CWSpindle?
IF LAST CWSpindle?
{do not stop spindle}
ELSE
SpinOff
END
ELSE
IF LAST CWSpindle?
SpinOff
ELSE
{do not stop spindle}
END
END
END
END
RETURN

CheckSpinOff: { for tapping operations }
IF Equal? Tool# Num#('7')
BothSpindlesOff
ELSE
IF Flag?('3')
SubSpindleOff
ELSE
SpinOff
END
END
RETURN

CheckInverseSpinOn:
IF Equal? Tool# Num#('7')
BothSpindlesInverseOn
ELSE
IF Flag?('3')
SubSpindleInverseOn
ELSE
InverseSpinOn
END
END
RETURN

CheckOffset:
DoEndOpPS
IF LAST ProgStop?
SeqLabC 'M0' EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqLabC CoolOff EOL
END
END
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 EOL
ELSE
SeqLabC Preset MaxRPM EOL
SeqLabC CSSOn 'G96' Speed EOL
END
ELSE
IF LAST ConstantSurfaceFeed?
SeqLabC CSSOff 'G97' Speed EOL
ELSE
SeqLabC SpeedC EOL
END
END
IF LAST ProgStop?
SeqLabC CheckSpinOn EOL
SeqLabC CoolOn EOL
ELSE
IF NOT CoolOff? AND LAST CoolOff?
SeqLabC CoolOn EOL
END
END
DoPostScript
RETURN

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

StandardFeedrate:
IF Flag?('1')
FeedRate
SetFlagF('1')
ELSE
FeedRateC
END
RETURN

CustomFeedrate#:
MUL# FeedIPR# MUL# Num#('31') ArcR#
RETURN

CustomFeedrate:
SetStatusOff
IF LessThan? ArcR# Num#('.032')
IF LessThan? CustomFeedrate# Num#('.0001')
'F.0001'
ELSE
'F' CustomFeedrate#
END
SetFlag('1')
ELSE
StandardFeedrate
END
SetStatusOn
RETURN

ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
IF Drilling?
IF Tap?
SeqLabC CheckSpinOff EOL
SeqLabC 'G4P2000' EOL
SeqLabC Speed CheckInverseSpinOn 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 FeedC MoveXC MoveZC StandardFeedrate EOL
ELSE
IF ArcFeat?
SeqLabC FormatArc CustomFeedrate EOL
ELSE
IF ThreadFeat?
SeqLabC 'G32' MoveXC MoveZC ThrdLead EOL
Rapid
END
END
END
END
END
NEXTFeat
RETURN

CheckRapid:
IF LAST CannedCycle?
Rapid
ELSE
RapidC
END
RETURN

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

{setup and initializations}
InitProg
SetAbs
PosSideLathe
StandardXZArcs
SetFlagF('1')
SetFlagF('3') { sub spindle tool }
SetFlagF('4') { use custom sequence numbers }
Save# Num#('4') Num#('0')
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: may be capital and/or lower case letters. Separate commands with a space.' 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

{ determine if custom sequence numbers will be used }
IF MinimizeSequencing?
SetFlag('4')
ELSE
SetFlagF('4')
END
EachOp
GetLCycle
IF CannedCycle?
IF RoughContour? OR RoughPatternShift?
SetFlagF('4')
END
END
NextOp

EachOp {Start of post processing *********************}
GetLCycle
IF FirstOperation?
EOR EOL
ProgID1
IF UseComments? AND ProgramNameComment?
'( ' ProgramName$ ' )'
END
EOL
IF UseComments?
IF ProgramComment?
'( ' ProgramComment$ ' )' EOL
END
IF FormatNameComment?
'( FORMAT: ' FormatName$ ' )' EOL
END
IF TimeComment?
'( ' Date$ ' AT ' Time$ ' )' EOL
END
IF MovesComment?
'( OUTPUT IN ABSOLUTE INCHES )' EOL
END
END
RestoreScale
OpenSub
StockOff {.71.2}
SetHome
SeqLabC 'M25' EOL {increments parts counter}
' ' EOL

{ Bar Feed Sequence }
Sequence EOL
IF UseComments?
IF OperationIDComment?
'( OPERATION 0: Bar Feed )' EOL
END
IF OperationComment?
'( Feedout )' EOL
END
IF WorkGroupComment?
'( No Work Group used )' EOL
END
IF ToolTypeComment?
'( TOOL 09: Bar Feed Stop )' EOL
END
IF ToolComment?
'( Bar Feed Stop )' EOL
END
END
SeqLabC Rapid
IF Equal? HomeZ# Num#('0')
'Z99.99'
ELSE
'Z' HomeZ#
END
'T0000M91' EOL
SeqLabC 'X0T0909' SpinOff EOL
SeqLabC 'Z.010' EOL
SeqLabC 'M17' EOL
SeqLabC 'G4U.5' EOL
SeqLabC 'M18' EOL
IF Equal? HomeZ# Num#('0')
SeqLabC 'Z99.99' 'T0000' EOL
ELSE
SeqLabC 'Z' HomeZ# 'T0000' EOL
END
SeqLabC ProgStop EOL
' ' EOL

Sequence EOL
DoOpComments
DoPostScript
Plane
CheckFlag3
SeqLabC Rapid
IF Equal? HomeZ# Num#('0')
'Z99.99'
ELSE
'Z' HomeZ#
END
'T0000' CheckSpindle EOL
SeqLabC CSSOff 'G97'
IF Equal? Tool# Num#('7')
'S500'
ELSE
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
END
OpToolID LatheOffset CheckSpinOn EOL
Approach
ELSE
IF NewTool?

{Finish off last Operation}

StockOff {.62}
CheckRapid
IF LAST ApproachOD?
SeqLabC XCPC EOL
ELSE
IF LAST ApproachID?
SeqLabC LAST XOpECDC EOL
END
END
IF Equal? LAST Tool# Num#('7')
SeqLabC 'G110B-1.0' EOL
SeqLabC 'M215' EOL
END
{SeqLabC ZCPC EOL}
DoEndOpPS
SeqLabC
IF Equal? HomeZ# Num#('0')
'Z99.99'
ELSE
'Z' HomeZ#
END
'T0000' EOL
SeqLabC CheckLastSpinOff EOL {Changing from main spindle to sub spindle or reversing direction}
IF LAST ProgStop?
SeqLabC 'M0' EOL
ELSE
SeqLabC ProgStop EOL
END
' ' EOL

{Start new Operation}

Sequence EOL
DoOpComments
DoPostScript
CheckFlag3
SeqLabC Rapid
IF Equal? HomeZ# Num#('0')
'Z99.99'
ELSE
'Z' HomeZ#
END
'T0000' CheckSpindle EOL
SeqLabC CSSOff 'G97'
IF Equal? Tool# Num#('7')
'S500'
ELSE
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
END
OpToolID LatheOffset CheckSpinOn EOL
Approach
ELSE
IF SameTool? {.62}

{Start new Operation}

DoOpComments
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
IF Flag?('3')
SeqLabC 'Z' TrackZ# ZStockMin# EOL
ELSE
SeqLabC ZCPC EOL
END
SeqLabC XCPC EOL
END
CheckOffset
ODApproachSP
ELSE
IF ApproachID?
IF LAST ApproachID?
SeqLabC LAST XOpECDC EOL
ELSE
IF LAST ApproachOD? {around}
SeqLabC XCPC EOL
END
SeqLabC
IF Flag?('3')
'Z' TrackZ# ZStockMin#
ELSE
ZCPC
END
EOL
SeqLabC XOpCDC EOL
END
CheckOffset
IDApproachSP
ELSE {ApproachFace}
IF LAST ApproachFace?
SeqLabC LAST ZOpECPC EOL
ELSE
IF LAST ApproachOD? {around}
SeqLabC XCPC EOL
ELSE {LAST ApproachID}
SeqLabC LAST XOpECDC EOL
END
SeqLabC
IF Flag?('3')
'Z' TrackZ# ZStockMin#
ELSE
ZCPC
END
EOL
END
CheckOffset
FaceApproachSP
END
END
END
END
END
END {common point for all operations}
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 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}
ELSE
'00'
END
IF SingleEdgeCut?
'29'
ELSE
'00'
END
'Q'
IF ConstantVolumeCut?
'10' {.0010 minimum cut depth}
ELSE
CutDepth# {if not ConstantVolumeCut? CutDepth is min depth, volume increases with depth}
END
'R10'
EOL
SeqLabC LCycle XatFinZ FinZ XTapAtZ ThrdHeight CutDepth ThrdLead EOL
ELSE
IF Drilling?
IF Tap?
SeqLabC LCycle ZDepth 'E' FeedIPR# EOL
SeqLabC CheckSpinOff EOL
SeqLabC 'G4P2000' EOL
SeqLabC Speed CheckInverseSpinOn EOL
SeqLabC ZSP EOL
ELSE
IF PeckChipBreaker?
SeqLabC LCycle Retract EOL
SeqLabC LCycle ZDepth Peck FeedRate EOL
SeqLabC DrillOff EOL
IF AutoFinish?
SeqLabC Feed ZDepth EOL
IF Dwell?
SeqLabC 'G4P' Dwell# EOL
END
SeqLabC Rapid ZSP EOL
END
END
END
END
END
END
ELSE
StockOn
SetPass1
ToolPath
IF AutoFinish?
IF NOT Drilling? AND NOT Grooving? AND NOT RoughSimple?
StockOff
IF Turning?
SetPass1
RapidC
IF ApproachFace?
SeqLabC ZOpECPC EOL
FaceApproachSP
ELSE
SeqLabC XOpECDC EOL
IF ApproachOD?
ODApproachSP
ELSE {ApproachID}
IDApproachSP
END
END
ELSE
SetPass2
SeqLabC RapidC StrtPos EOL
END
ToolPath
END
END
END
IF Drilling? AND Tap?
SeqLabC CheckSpinOff EOL
SeqLabC 'G4P2000' EOL
SeqLabC Speed CheckSpinOn EOL
END
NextOp {loops back to EachOP until last Operation}

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

{finish last operation}
StockOff
IF CannedCycle?
Rapid
ELSE
RapidC
END
IF ApproachOD?
SeqLabC XCPC EOL
ELSE
IF ApproachID?
SeqLabC XOpECDC EOL
END
END
IF Equal? Tool# Num#('7')
SeqLabC 'G110B-1.0' EOL
SeqLabC 'M215' EOL
END
{SeqLabC ZCPC EOL}
DoEndOpPS
SeqLabC
IF Equal? HomeZ# Num#('0')
'Z99.99'
ELSE
'Z' HomeZ#
END
'T0000' EOL
IF ProgStop?
SeqLabC 'M0' EOL
ELSE
SeqLabC ProgStop EOL {requested 'M1' capability}
END
SeqLabC 'M206' EOL
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 0TC [Rands] L328 82 4
Fanuc 2000C Mazak L168 82
Fanuc 0T (Anzon1) L077 82 1m
Fanuc 0T Miyano [A&B] L247 82 6
Fanuc 0T Nakamora L248 82
Fanuc 0TA T Mate L175 82
Fanuc 6T Tsugami 6 L199 82
Fanuc 10T MS [ R] L294 82 1
Fanuc 6T Tsugami 4 L198 82
Fanuc 0TC [CG] L320 85m
Fanuc 10T Wasino L209 82
Fanuc 10T Monarch L354 82
Fanuc 10TF MS [ r] L020 82
Fanuc 10T (Anzon) L076 82
Fanuc 0T [RWMT] L369 82 2
Fanuc 0TC [TC] L784 85m
Fanuc 10T BX60 L272 82 2m

więcej podobnych podstron