{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 *******************************************}
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