Cincom L16 L20 [CIT] L711 85 2m


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

{3/12/98
Copied: Fanuc 10T MS [-] L001.85m
Created: Cincom L16_L20 [CIT] L711.85m
For: Citizen Watch Co., Ltd.
Machine:
Control: Cincom L16
Versions: Catalyst v4.21.30(mac)/ComPost2 1.1b3
Changes made per Manual.
NOTE: This post processor is only a beta demo version for customer, not intended for public release
at this time.
This post processor only supports Turning Tools 1-6 and Opposite Tool Post Drilling Tools 21-23.
Future versions to support Cross Drilling Tools, Sub Spindle 30 and BackSide Drilling Tools 31-33.
Future versions to also support Simultaneous Machining of Front and Back Sides and SuperImposed
Machining of Turning Tools 1-6 and Opposite Tool Post Drilling Tools 21-23.
DWB}

{5/18/98
Modified: Cincom L16_L20 [CIT] L711.85m
Created: Cincom L16_L20 [CIT] L711.85.1m
For: Citizen Watch Co., Ltd.
Versions: Catalyst v4.23.13(mac)/ComPost2 1.1b3
Changes made per Bart Ehlers of Gibbs & Associates and Joseph Dulinski of Citizen Watch Co., Ltd.
Added FORMAT#8, '00' at Prog Numeric Format Definitions.
Added FORMAT#9, '*###0.0##;0' at Prog Numeric Format Definitions.
Added FORMAT#10, '0000000^000' at Prog Numeric Format Definitions.
Added Recall# to FORMAT#2 at Prog Numeric Format Definitions.
Added SUB# to FORMAT#2 at Prog Numeric Format Definitions.
Added DIV# to FORMAT#2 at Prog Numeric Format Definitions.
Added XStockMax# to FORMAT#2 at Prog Numeric Format Definitions.
Added ZStockMax# to FORMAT#2 at Prog Numeric Format Definitions.
Added ZStockMin# to FORMAT#2 at Prog Numeric Format Definitions.
Added ThisOpEntryXCP# to FORMAT#2 at Prog Numeric Format Definitions.
Added Taper# to FORMAT#2 at Prog Numeric Format Definitions.
Added CalcEPRPM# to FORMAT#6 at Prog Numeric Format Definitions.
Added SpringPasses# to FORMAT#8 at Prog Numeric Format Definitions.
Changed InFeedAngle# from FORMAT#2 to FORMAT#8 at Prog Numeric Format Definitions.
Added LastCutXRadius# to FORMAT#9 at Prog Numeric Format Definitions.
Customer requested modification of Preset Z0 block at FirstOperation.
Changed 'Z' TrackZ# Num#('0') to Home at FirstOperation
Added Rapid FirstHome at end of Prog.
Customer requested modification to M52 CoolOn Output.
Commented out CoolOn at AppMove Proc.
Added CoolOn to Rapid FirstHome at FirstOperation.
Added CoolOn at NewTool.
Based on LAST CoolOff AND NOT CoolOff.
Customer requested modification to M53 CoolOff Output.
Added CoolOff at NewTool and end of Prog.
Based on need to turn off only when requested.
Customer requested deletion of ' ' EOL blank lines.
Commented out ' ' EOL at FirstOperation.
Commented out ' ' EOL at NewTool.
Customer requested modification to Speed output.
Added MinRPM Procedure.
Outputs literal 'Q200'.
Commented out CSSOn 'G96' at FirstOperation and NewTool.
Moved SpeedStuff at FirstOperation and NewTool.
S1 Block now outputs either CalcRPM1# OR SpeedRPM# per need.
S1 Block followed by G50 Preset MaxRPM MinRPM
G96 block output last with CSSOn Speed.
Added CSSOff 'G97' CalcRPM2 at NewTool.
Added CSSOff 'G97S' CalcEPRPM# at end of Prog.
Customer requested modification to LatheOffset output.
Added Flag(3) to test for conditionality.
Added LatheOffsetC Procedure.
Tests NOT Flag(3) AND NOT EmptyLine for output of LatheOffset.
TRUE = Suppress
FALSE = Output
SetFlagF(3) at AppMove and CheckOffset Procedures.
Called two places at ApproachSP, once at AppMove and CheckOffset Procedures, twice at ToolPath.
Commented out 'T' LatheOffset at AppMove Proc.
Customer requested modification to LatheOffset cancel output
Added literal 'T00' at NewTool and end of Prog.
Outputs for AppraochOD.
Outputs for non-Drilling ApproachFace.
Outputs for ApproachID OR Drilling ApproachFace followed by non- ApproachID OR Drilling
ApproachFace.
Added literal 'T00' at end of Prog.
Outputs for all cases.
Customer requested that M140 be output after Drilling Approach.
Added 'M140' for Drilling at FirstOperation AND NewTool.
NewTool based on LAST NOT Drilling.
Customer requested that M141 be output prior to Drilling Exit.
Added condition to output M141 code at ToolPath RapidFeat.
Condition tests for Drilling LastFeat.
Deleted 'M141' at NewTool.
Customer requested support of G821/G820, Single Machining Synchronization Control.
G821 to be output at start of First Drilling Operation, just prior to OpToolID
Added condition to output G821 code at FirstOperation.
Condition tests for Drilling.
Added condition to output G821 code at NewTool.
Condition tests for Drilling AND LAST NOT Drilling.
G820 to be output at end of Last Drilling Operation, just after 'M141'.
Added condition to output G820 code at ToolPath RapidFeat.
Condition tests for Drilling LastFeat AND LastOp OR NEXT NOT Drilling.
Customer requested support of G79 Canned Peck Cycle.
Customer requested support of G83 Canned Peck Cycle.
Customer requested modification of G76 Canned Threading Cycle.
Control requires two-block definition.
G76 Pxxxxxx Qx.xxx Rx.xxx where
Pxx = # of Finish Passes
xx = Thread Chamfer
Based on RunOut values
xx = Infeed Angle
Qx.xxx = Minimum Cut
Hardcoded to 0.002
Rx.xxx = Finish Allowance {LastCutXRadius#}
G76 XZPQRF where
X = XatFinZ
Z = FinZ
P = ThrdHeight
Q = CutDepth
R = Taper#
F = ThrdLead
Customer requested modification to end of Prog.
Added support for Canned PeckChipBreaker per customer instructions.
Added support for Canned PeckFullRetract per customer instructions.
Added 'M07', Open Collet code at end of Prog.
Added 'M56', Parts Counter code at end of Prog.
Added DataPage Information Parameters Variables.
Var(14) = #814 Stock Diameter
Var(15) = #815 Positioning Point
Approach X minus Stock X {Incremental Distance}
Var(16) = #816 Tooling Pattern
Var(17) = #817 Cut-Off RPM
Var(18) = #818 Machining Length
Var(19) = #819 Parts Per 1/Chuck
Added Var(2) at setup and initializations.
For Cut-Off RPM# at end.
Tested at start of EachOp/NextOp Loop at Start of post processing.
Added Flag(3) at setup and initializations.
For Conditional LatheOffset.
DWB}

{6/25/98
Modified: Cincom L16_L20 [CIT] L711.85.1m
Created: Cincom L16_L20 [CIT] L711.85.2m
For: Citizen Watch Co., Ltd.
Versions: Catalyst v4.23.13(mac)/ComPost2 1.1b3
Changes made per Joseph Dulinski of Citizen Watch Co., Ltd., Fax, Phone Call and Citizen V01 Part
File.
Added support of FIRO, FIDRO, FIFO, Tap and PeckFullRetract Canned Drilling Cycles in Compost2
Lathe Drill Cycles Dialog.
Added CalcRPM2# to FORMAT#6 at Prog Numeric Format Definitions.
Modified output of LatheOffset at AppMove sub.
Adds support for Tap Cycle.
Added missing literal 'S' for 'G96' SpeedRPM# 3 places at CheckOffset.
Added Save# Num#('24') SPX# for DataPage Information Parameter #824 Cut-Off End Pointat ToolPath
LastFeat CutOff.
Added condition to output literal 'T00' at ToolPath LastFeat Drilling LastOp OR NEXT NewTool.
Moved M141 and G820 from ToolPath RapidFeat Drilling LastFeat LastOp OR NEXT NewTool to NewTool
and end of Prog.
Added var(1) for DataPage Information Parameters #893 Back Spindle 0=Std 1=Catch 2=Support at
setup and initializations.
Added var(2) for DataPage Information Parameters #990 Holder GTF3113 at setup and initializations.
Added var(3) for DataPage Information Parameters #991 Front Drill Holder 51=Std 62=Free at setup
and initializations.
Added var(4) for DataPage Information Parameters #992 Back Drill Holder 61=Std 62=Free at setup
and initializations.
Added var(20) for DataPage Information Parameters #820 Pipe ID/Tube ID at setup and initializations.
Added var(21) for DataPage Information Parameters #821 Back Spindle Length at setup and
initializations.
Added var(22) for DataPage Information Parameters #822 Cut-Off Feed at setup and initializations.
Added var(24) for DataPage Information Parameters #824 Cut-Off End Point at setup and
initializations.
Added Save# Num#('22') FeedContour# for DataPage Information Parameter #822 Cut-Off Feed at start
of EachOp/NextOp loop.
Added OR ApproachID condition for output of G821 at FirstOperation and NewTool.
Added OR ApproachID condition for output of M140 at FirstOperation and NewTool.
Modified condition to outout LAST OpExitZCPC 'T00' at NewTool and end of Prog.
Adds support for all Non-Drilling Operations.
Changed 'G97' CalcRPM2 to 'G97' 'S1 = ' CalcRPM2# at NewTool.
Added 'G04U0.5' block just prior to G76, Canned Thread Cycle Block.
Moved 'R' Taper# to before ThrdHeight in G76 Canned Thread Cycle Block.
Modified Canned Drilling Cycles to support FIRO, FIDRO, FIFO, Tap and PeckFullRetract.
Changed 'G97S' CalcEPRPM# to 'G97' 'S1 = ' CalcEPRPM# at end of Prog.
Added literal 'T00' to FirstHome block at end of Prog.
Added output of additional DataPage Information Parameters at end of Prog.
DWB}

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

#1 = '#.00'
#2 = '###0.0##;0'
#3 = '#######0'
#4 = '###0.0##;0'
#5 = '##0.0##;0'
#6 = '###0'
#7 = '#'
#8 = '00'
#9 = '*###0.0##;0'
#10 = '0000000^000'{ DataPage Information Parameters }

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(Recall#,2)
FORMAT(SUB#,2)
FORMAT(MUL#,2) { Non-Canned Threading AutoFinish }
FORMAT(DIV#,2)
FORMAT(XStockMax#,2)
FORMAT(ZStockMax#,2)
FORMAT(ZStockMin#,2)
FORMAT(ThisOpEntryXCP#,2)
FORMAT(TrackXNO#,2)
FORMAT(TrackZ#,2)
FORMAT(FirstMoveEPX#,2)
FORMAT(FirstMoveEPZ#,2)
FORMAT(Taper#,2)
FORMAT(Program#,3) {.72}
FORMAT(Operation#,3) {.72}
FORMAT(Tool#,3) {.72}
FORMAT(Dwell#,4) {.72}
FORMAT(FeedIPR#,5)
FORMAT(SpeedRPM#,6)
FORMAT(CalcRPM2#,6)
FORMAT(CalcEPRPM#,6)
FORMAT(RapidF#,7)
FORMAT(SpringPasses#,8)
FORMAT(InFeedAngle#,8)
FORMAT(LastCutXRadius#,9)

{Prog Subroutines **********************************************************}

RestoreScale:
IF NOT Metric? {CAM file is in English, tools and tool path}
SetScale('25.4') { change to Metric, this is a Metric 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?
FeedC
END
RETURN

FeedRateNoCan:
IF NOT CannedCycle?
FeedRateC
END
RETURN

LatheOffsetC:
IF NOT EmptyLine? AND NOT Flag?('3')
SetFlag('3') { Conditional LatheOffset }
'T' LatheOffset
END
RETURN

ApproachSP:
IF CutOff?
SeqLabC 'M32' EOL { Workpiece Receiver Box Advance }
END
IF ApproachFace?
SeqLabC StockOnNoCan XSPC EOL
SeqLabC StockOff ZOpCPC EOL
StockOnNoCan
SeqLabC
IF NotEqual? CycleStartZ# ZOpCP#
FeedNoCan ZSPC FeedRateNoCan
END
IF NOT Drilling?
LatheOffsetC
END
EOL
ELSE { ODApproach/IDApproach }
SeqLabC StockOnNoCan ZSPC EOL
SeqLabC StockOff XOpCDC EOL
StockOnNoCan
IF NotEqual? CycleStartX# XOpCD#
SeqLabC FeedNoCan XSPC FeedRateNoCan LatheOffsetC EOL
END
END
RETURN

AppMove:
IF ApproachOD?
StockOnNoCan ZSP
ELSE
StockOff ThisOpEntryZCP
END
SetFlagF('3') { Conditional LatheOffset }
IF ApproachOD?
LatheOffsetC
ELSE
IF ApproachFace? AND NOT Drilling?
LatheOffsetC
ELSE
IF Drilling? AND CannedCycle?
LatheOffsetC
END
END
END
{'T' LatheOffset} {CoolOn}
RETURN

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

MinRPM:
'Q200'
RETURN

CheckOffset:
DoEndOpPS
IF LAST ProgStop?
SeqLabC 'M0' EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqLabC CoolOff EOL
END
END
IF NewToolOffset?
SetFlagF('3') { Conditional LatheOffset }
SeqLabC LatheOffsetC EOL
END
IF ConstantSurfaceFeed?
CSSOn
IF LAST ConstantSurfaceFeed?
IF LAST ProgStop? {OR NewGear?}
'G96S' SpeedRPM#
ELSE
IF NotEqual? SpeedRPM# LAST SpeedRPM#
'G96S' SpeedRPM#
END
END
ELSE
SeqLabC Preset MaxRPM EOL
'G96S' SpeedRPM#
END
ELSE
CSSOff
IF LAST ConstantSurfaceFeed?
'G97' 'S1 = ' SpeedRPM#
ELSE
IF LAST ProgStop? {OR NewGear?}
'S1 = ' SpeedRPM#
ELSE
IF NotEqual? SpeedRPM# LAST SpeedRPM#
'S1 = ' SpeedRPM#
END
END
END
END
IF LAST ProgStop?
SeqLabC {SpeedC} SpinOn EOL
SeqLabC CoolOn EOL
ELSE
SeqLabC {SpeedC} EOL
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

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

ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
IF CutOff?
Save# Num#('24') SPX# { DataPage Information Parameter #824 Cut-Off End Point }
END
IF Drilling?
IF Tap?
SeqLabC SpinOff EOL
SeqLabC 'G04U2.0' EOL
SeqLabC Speed InverseSpinOn EOL
ELSE
IF Dwell?
SeqLabC 'G04U' Dwell# EOL
END
END
IF LastOp? OR NEXT NewTool?
SeqLabC RapidC MoveZC 'T00' EOL
END
ELSE
IF CannedCycle?
SeqLab
END
END
END
IF PointFeat?
SeqLabC MoveSXYC EOL
ELSE
IF RapidFeat?
IF LAST ThreadFeat?
Rapid
END
SeqLabC RapidC MoveXC MoveZC LatheOffsetC EOL
ELSE
IF LineFeat?
SeqLabC CkCRC FeedC MoveXC MoveZC FeedRateC LatheOffsetC EOL
ELSE
IF ArcFeat?
EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop }
SeqLabC FormatArc FeedRateC EOL
NEXTQuadrant
ELSE
IF ThreadFeat?
SeqLabC 'G32' MoveXC MoveZC ThrdLead EOL
END
END
END
END
END
NEXTFeat
RETURN

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

CkTools:
SetFlagF('1') { Supportable Tools }
IF LTEqual? Tool# Num#('6')
SetFlag('1')
ELSE
IF GTEqual? Tool# Num#('21')
IF LTEqual? Tool# Num#('23')
SetFlag('1')
END
END
END
IF NOT Flag?('1')
' ' EOL
'Warning! This Post Processor only supports Tools 1-6 and 21-23' EOL
' ' EOL
END
RETURN

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

{setup and initializations}
InitProg
SetAbs
PosSideLathe
StandardXZArcs
NegateZ
SetMinRpm('200')
SetMaxRPM('10000')
IF Metric?
SetMaxFeed('2540')
ELSE
SetMaxFeed('100')
END
{ DataPage Information Parameters }
Save# Num#('1') Num#('0') { #893 Back Spindle 0=Std 1=Catch 2=Support }
Save# Num#('2') Num#('22') { #990 Holder GTF3113 }
Save# Num#('3') Num#('51') { #991 Front Drill Holder 51=Std 62=Free }
Save# Num#('4') Num#('61') { #992 Back Drill Holder 61=Std 62=Free }
Save# Num#('14') Num#('0') { #814 Stock Diameter }
Save# Num#('15') Num#('0') { #815 Positioning Point }
Save# Num#('16') Num#('1') { #816 Cut-Off Tool# }
Save# Num#('17') Num#('0') { #817 Cut-Off RPM }
Save# Num#('18') Num#('0') { #818 Machining Length }
Save# Num#('19') Num#('1') { #819 Parts Per 1/Chuck }
Save# Num#('20') Num#('0') { #820 Pipe ID/Tube ID }
Save# Num#('21') Num#('4') { #821 Back Spindle Length }
Save# Num#('22') Num#('0') { #822 Cut-Off Feed }
Save# Num#('24') Num#('0') { #824 Cut-Off End Point }
SetFlagF('1') { Supportable Tools }
SetFlagF('2') { Need to output M34, Back Spindle Part Seperation #2 Code }
SetFlagF('3') { Conditional LatheOffset }
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 CutOff?
Save# Num#('17') SpeedRPM# { DataPage Information Parameter #817 Cut-Off RPM }
Save# Num#('22') FeedContour# { DataPage Information Parameter #822 Cut-Off Feed }
END
IF FirstOperation?
{ DataPage Information Parameters }
Save# Num#('14') XStockMax# { #814 Stock Diameter }
Save# Num#('15') DIV# SUB# ThisOpEntryXCP# XStockMax# Num#('2') { #815 Positioning Point }
Save# Num#('18') SUB# ZStockMin# ZStockMax#{ #818 Machining Length }
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 MILLIMETERS )' EOL
END
END
RestoreScale
OpenSub
'$1' EOL { Axis Control Group 1 }
StockOff {.71.2}
SetHome
SeqLabC Preset {'Z' TrackZ# Num#('0')} Home CoolOn EOL
SeqLabC 'M06' EOL { Main Spindle Chuck Close }
SeqLabC Rapid XCP ZCP EOL
{' ' EOL}
DoOpComments
DoPostScript
Plane
CkTools
SeqLab
IF Flag?('1') { Supportable Tools }
IF Drilling? OR ApproachID?
SeqLabC 'G821' EOL { Single Machining Synchronization Control On }
END
SeqLabC OpToolID '00' EOL
IF Drilling? AND Tap?
SeqLabC 'M97' EOL { Main Spindle Speed Fluctuation Detection Off }
END
SeqLabC CSSOff
IF ConstantSurfaceFeed?
SpinOn 'S1 = ' CalcRPM1#
ELSE
'G97' SpinOn 'S1 = ' SpeedRPM#
END
'G99' EOL
{All SetMinRPM = 200; SetMaxRPM S1 = 10000, S2 = 8000, S3/S4 = 5000}
IF Drilling?
IF Tap?
SeqLabC 'G04U1.0' EOL { Dwell to allow for Speed }
END
ELSE
IF ConstantSurfaceFeed?
SeqLabC Preset MaxRPM MinRPM EOL { MinRPM is a procedure }
SeqLabC CSSOn 'G96' Speed EOL
END
SetFlag('2') { For M34 }
SeqLabC 'M34' EOL { Back Spindle Part Seperation #2 Code }
END
Approach
IF Drilling? OR ApproachID?
SeqLabC 'M140' EOL { Opposite Tool Post Advance }
END
END
ELSE
IF NewTool?

{Finish off last Operation}

StockOff {.62}
IF Flag?('1') { Supportable Tools }
CheckRapid
IF LAST ApproachOD?
SeqLabC LAST OpExitXCPC 'T00' EOL
ELSE
IF LAST ApproachID?
SeqLabC LAST XOpECDC EOL
END
IF LAST Drilling? OR LAST ApproachID?
IF LAST ApproachID?
SeqLabC LAST OpExitZCPC 'T00' EOL
ELSE
IF LAST CannedCycle?
SeqLabC LAST OpExitZCPC 'T00' EOL
END
END
IF NOT Drilling? AND NOT ApproachID?
SeqLabC 'M141' EOL { Opposite Tool Post Retract }
SeqLabC 'G820' EOL { Single Machining Synchronization Control Off }
END
END
IF LAST Drilling? AND LAST Tap?
SeqLabC 'M96' EOL { Main Spindle Speed Fluctuation Detection On }
END
END
DoEndOpPS
IF LAST ConstantSurfaceFeed?
SeqLabC CSSOff 'G97' 'S1 = ' CalcRPM2# EOL
END
IF CoolOff? AND LAST NOT CoolOff?
SeqLabC CoolOff EOL
END
IF LAST ProgStop?
SeqLabC 'M00' EOL
ELSE
SeqLabC ProgStop EOL
END
END

{Start new Operation}

{' ' EOL}
DoOpComments
DoPostScript
CkTools
SeqLab
IF Flag?('1') { Supportable Tools }
IF NOT CoolOff? AND LAST CoolOff?
SeqLabC CoolOn EOL
END
IF Drilling? OR ApproachID?
IF LAST NOT Drilling? AND LAST NOT ApproachID?
SeqLabC 'G821' EOL { Single Machining Synchronization Control On }
END
END
SeqLabC OpToolID '00' EOL
IF Drilling? AND Tap?
SeqLabC 'M97' EOL { Main Spindle Speed Fluctuation Detection Off }
END
SeqLabC CSSOff SpinOn 'S1 = '
IF ConstantSurfaceFeed?
CalcRPM1#
ELSE
SpeedRPM#
END
'G99' EOL
IF Drilling?
IF Tap?
SeqLabC 'G04U1.0' EOL { Dwell to allow for Speed }
END
ELSE
IF ConstantSurfaceFeed?
SeqLabC Preset MaxRPM MinRPM EOL { MinRPM is a procedure }
SeqLabC CSSOn 'G96' Speed EOL
END
IF NOT Flag?('2')
SetFlag('2') { For M34 }
SeqLabC 'M34' EOL { Back Spindle Part Seperation #2 Code }
END
END
Approach
IF Drilling? OR ApproachID?
IF LAST NOT Drilling? AND LAST NOT ApproachID?
SeqLabC 'M140' EOL { Opposite Tool Post Advance }
END
END
END
ELSE
IF SameTool? {.62}

{Start new Operation}

StockOff
DoOpComments
IF Flag?('1') { Supportable Tools }
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
END {common point for all operations}
IF Flag?('1') { Supportable Tools }
IF CannedCycle?
StockOff
IF Roughing?
IF RoughSimple?
StockOn
SetPass1
SeqLabC LCycle
IF ApproachFace?
'Z' FirstMoveEPZ# XatFinZ
ELSE
XatFinZ FinZ
END
XTapAtZ FeedRate EOL
SimpleRough
ELSE
TagInc
SetPass2
IF RoughContour?
SeqLabC LCycle 'PÅ‚' Tag# 'Q²' Tag# XStkLeft ZStkLeft CutDepth FeedRate EOL
'>' Tag# EOL
SeqLab StepMove StrtPos EOL
ELSE
IF RoughPatternShift?
SeqLabC LCycle 'PÅ‚' Tag# 'Q²' Tag# XStkLeft ZStkLeft XminusU ZminusW NumCuts FeedRate EOL
'>' Tag# EOL
SeqLab Rapid StrtPos EOL
END
END
ToolPath
'<' Tag# EOL
IF AutoFinish?
SeqLabC 'G70' 'PÅ‚' Tag# 'Q²' Tag# EOL
END
SetPass1
TrackXNO# CycleStartX#
TrackZNO# CycleStartZ#
END
ELSE
IF Threading?
IF ConstantVolumeCut? OR SingleEdgeCut?
SeqLabC 'G04U0.5' EOL { .5 Second Dwell prior to Thread Cycle }
SeqLabC LCycle
'P' SpringPasses#
FORMAT(DIV#,8)
IF NotEqual? RunOutX# Num#('0')
IF NotEqual? RunOutZ# Num#('0')
DIV#
SQRT# { C per Pythagorean Theory }
ADD# { C Squared }
MUL# RunOutX# RunOutX# { A Squared }
MUL# RunOutZ# RunOutZ# { B Squared }
FeedIPR#
ELSE
DIV# RunOutX# FeedIPR#
END
ELSE
IF NotEqual? RunOutZ# Num#('0')
DIV# RunOutZ# FeedIPR#
ELSE
'00' { ThreadChamfer }
END
END
InFeedAngle#
FORMAT(DIV#,2)
'Q0.002' { Minimum Cut }
'R' LastCutXRadius# EOL { Finish Allowance }
SeqLabC LCycle XatFinZ FinZ 'R' Taper# ThrdHeight CutDepth ThrdLead EOL
IF AutoFinish?
SeqLabC 'G92' XatFinZ FinZ XTapAtZ ThrdLead EOL
END
ELSE
SeqLabC 'G92X' FirstMoveEPX# FinZ
IF Taper?
XTapAtZ
END
ThrdLead EOL
SimpleRough
END
ELSE
IF Drilling?
SeqLabC LCycle ZDepth 'R0' Peck Dwell Retract FeedRate EOL
IF AutoFinish? AND NOT Tap?
SeqLabC Feed ZDepth EOL
IF Dwell?
SeqLabC 'G4P' Dwell# EOL
END
SeqLabC Rapid ZSP EOL
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
IF Drilling? AND Tap?
SeqLabC SpinOff EOL
SeqLabC 'G04U2.0' EOL
SeqLabC Speed SpinOn EOL
END
END
END { Supportable Tools }
NextOp {loops back to EachOP until last Operation}

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

{finish last operation}
StockOff
IF Flag?('1') { Supportable Tools }
IF CutOff?
DoEndOpPS
IF NOT CoolOff?
SeqLabC CoolOff EOL
END
SeqLabC SpinOff EOL
SeqLabC 'M07' EOL { Main Spindle Chuck Open }
SeqLabC CRCOffC Rapid 'Z0T0' EOL
SeqLabC 'M56' EOL { Product Counter }
SeqLabC 'G999' EOL { Last Program Execution }
SeqLabC 'M34' EOL { Back Spindle Part Seperation #2 Code }
ELSE
CRCOffC
IF CannedCycle? OR Threading?
Rapid
ELSE
RapidC
END
IF ApproachOD?
SeqLabC OpExitXCPC 'T00' EOL
ELSE
IF ApproachID?
SeqLabC XOpECDC EOL
END
IF Drilling? AND NOT CannedCycle?
ELSE
SeqLabC OpExitZCPC 'T00' EOL
END
IF Drilling? OR ApproachID?
SeqLabC 'M141' EOL { Opposite Tool Post Retract }
SeqLabC 'G820' EOL { Single Machining Synchronization Control Off }
IF Tap?
SeqLabC 'M96' EOL { Main Spindle Speed Fluctuation Detection On }
END
END
END
DoEndOpPS
IF ConstantSurfaceFeed?
SeqLabC CSSOff 'G97' 'S1 = ' CalcEPRPM# EOL
END
SeqLabC SpinOff EOL
SeqLabC 'M07' EOL { Open Collet }
SeqLabC Rapid FirstHome 'T00' EOL
SeqLabC 'M56' EOL { Parts Counter }
SeqLabC 'G999' EOL { Last Program Execution }
IF NOT CoolOff?
SeqLabC CoolOff EOL
END
END
IF ProgStop?
SeqLabC 'M00' EOL
END
'N999' EOL { Last Program Queuing }
END { Supportable Tools }
SeqLabC EOP EOL
SeqLabC EndSub EOL
Post
'$0' EOL
'A' EOL
{ DataPage Information Parameters }
FORMAT(MUL#,10)
'#814=' MUL# Recall# Num#('14') NumSc#('1') EOL { #814 Stock Diameter }
'#815=' MUL# Recall# Num#('15') NumSc#('1') EOL { #815 Positioning Point }
FORMAT(Recall#,10)
'#816=' Recall# Num#('16') EOL { #816 Cut-Off Tool# }
FORMAT(Recall#,2)
'#817=' MUL# Recall# Num#('17') NumSc#('1') EOL { #817 Cut-Off RPM }
'#822=' MUL# Recall# Num#('22') NumSc#('1') EOL { #822 Cut-Off Feed }
'#824=' MUL# Recall# Num#('24') NumSc#('1') EOL { #824 Cut-Off End Point }
'#818=' MUL# Recall# Num#('18') NumSc#('1') EOL { #818 Machining Length }
FORMAT(Recall#,10)
'#819=' Recall# Num#('19') EOL { #819 Parts Per 1/Chuck }
'#820=' Recall# Num#('20') EOL { #820 Pipe ID/Tube ID }
'#821=' Recall# Num#('21') EOL { #821 Back Spl Length }
'#990=' Recall# Num#('2') EOL { #990 Holder GTF3113 }
'#991=' Recall# Num#('3') EOL { #991 Front Drill Hldr 51 = Std 52 = Free }
'#992=' Recall# Num#('4') EOL { #992 Back Drill Hldr 61 = Std 62 = Free }
'#893=' Recall# Num#('1') EOL { #893 B-Spl 0 = Std 1 = Catch 2 = Supt }
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