{1/30/91 Copied & modified: Fanuc 10T MS [-] L001.71.4 For: Light Machines Corporation Machine: TMC 1000 Control: TMC 1000 CNC Set Use Absolute Arc Centers TRUE in form. Modified Preset to output G92 instead of G50 in form. Modified EOP to output M02 instead of M30 in form. Changed NegSideLathe to PosSideLathe. Added XsAreRadii. Deleted all occurances of G96, G97 and anything to do with ConstantSurfaceFeed. Modified format for Tool# in prog and form. Deleted all occurances of Tool Offsets, only outputting 2 digit T-codes. Changed simple thread cycle code from G92 to G33 in prog and form. DWB}
{4/12/91 Modified: Light Machine Spectra L197.71.4 For: Light Machines Corporation Machine: TMC 1000 Control: TMC 1000 CNC Made much needed corrections to Prog and Mach Spec. Updated to Version 4.0 per Fanuc 10T MS [-] L001.80 Format. Only canned Cycles supported are SimpleRough, Threading, FI-RO and PeckChipBreaker. Added Math FORMULA to output FeedRate per Minute. BUG NOTE: Taper# does not always output correctly. ApproachOD is okay and ApproachID needs the sign reversed. ApproachFace with OD Tool needs the sign reversed and ApproachFace with ID Tool is okay. Taper# needs negative value when more material is removed on the Taper. DWB}
{5/28/91 Modified: Light Machine Spectra L197.80 For: Light Machines Corporation Deleted ProgID1 Deleted Home Stuff, geometry offsets stored with tool offsets. Deleted "NewHome 'T00'" Jim Radcliffe}
{08/07/91 Updated: Light Machine Spectra L197.80.1 For: Gibbs & Associates Updated to Version 4.0 per Fanuc 6M M001.82 Format. Kim Michelman}
{Prog Numeric Format Definitions *******************************************}
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 IF Metric? {CAM file is in Metric, tools and tool path} SetScale('.03937007874') { change to English, this is an English post} END END RETURN
Approach: { NOT FOR TAILSTOCK, .82 } IF ApproachOD? SeqC Rapid XCP AppMove EOL ODApproachSP ELSE IF ApproachID? SeqC Rapid XOpCD AppMove EOL IDApproachSP ELSE {ApproachFace} SeqC Rapid StockOnNoCan XSP StockOff AppMove EOL FaceApproachSP END END RETURN
CheckOffset: IF LAST ProgStop? SeqC 'G05' EOL END IF NewToolOffset? SeqC ToolOfst EOL END IF LAST ProgStop? SeqC SpinOn EOL END DoPostScript RETURN
FormatArc: IF ArcCW? CWArcC ELSE CCWArcC END MoveXC MoveZC IF ArcIJFormat? ArcIJC ELSE ArcRC END RETURN
ToolPath: EACHFeat GetToolTip IF LastFeat? IF Drilling? IF Tap? SeqC SpinOff EOL SeqC 'G04F2.' EOL SeqC InverseSpinOn EOL ELSE IF Dwell? SeqC 'G04F' Dwell# EOL END END END END IF PointFeat? SeqC MoveSXYC EOL ELSE IF RapidFeat? SeqC RapidC MoveXC MoveZC EOL ELSE IF LineFeat? SeqC FeedC MoveXC MoveZC EOL ELSE IF ArcFeat? EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop } SeqC FormatArc EOL NEXTQuadrant ELSE IF ThreadFeat? SeqC FeedC MoveXC MoveZC 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 ReverseXZArcs PosSideLathe XsAreRadii SetMaxRPM('2000') SetMaxFeed('9.1') 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? IF UseComments? IF ProgramNameComment? '; ' 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 IF Metric? {CAM file is in Metric, tools and tool path} SetScale('.03937007874') { change to English, this is an English post} END OpenSub StockOff {.71.2} SetHome DoOpComments DoPostScript Plane Seq AbsOrInc EOL SeqC ToolOfst SpinOn EOL Approach ELSE IF NewTool?
{Finish off last Operation}
StockOff {.62} CheckRapid IF LAST ApproachOD? SeqC XCPC EOL ELSE IF LAST ApproachID? SeqC LAST XOpECDC EOL END END SeqC ZCPC EOL DoEndOpPS IF LAST ProgStop? SeqC 'G05' EOL ELSE SeqC ProgStop EOL END
DoOpComments StockOff IF LAST StraightConnect? CheckOffset CheckRapid SeqC StockOnNoCan XSPC ZSPC EOL ELSE CheckRapid IF ApproachOD? IF LAST ApproachOD? SeqC LAST XOpECDC EOL ELSE {around} IF LAST ApproachID? SeqC LAST XOpECDC EOL END SeqC ZCPC EOL SeqC XCPC EOL END CheckOffset ODApproachSP ELSE IF ApproachID? IF LAST ApproachID? SeqC LAST XOpECDC EOL ELSE IF LAST ApproachOD? {around} SeqC XCPC EOL END SeqC ZCPC EOL SeqC XOpCDC EOL END CheckOffset IDApproachSP ELSE {ApproachFace} IF LAST ApproachFace? SeqC LAST ZOpECPC EOL ELSE IF LAST ApproachOD? {around} SeqC XCPC EOL ELSE {LAST ApproachID} SeqC LAST XOpECDC EOL END SeqC ZCPC EOL END CheckOffset FaceApproachSP END END END END END END {common point for all operations} IF CannedCycle? StockOff IF Roughing? IF RoughSimple? StockOn SetPass1 SeqC LCycle 'X' FinishXRadius# 'Z' FinishZ# IF Taper? 'R' Taper# END 'Q' CutDepth# GetFeedRate EOL IF AutoFinish? SeqC LCycle 'X' FinishXRadius# 'Z' FinishZ# IF Taper? 'R' Taper# END GetFeedRate EOL END SeqC 'G80' EOL END ELSE IF Threading? SeqC LCycle 'X' FinishXRadius# 'Z' FinishZ# IF Taper? 'R' Taper# END CutDepth GetFeedRate EOL IF AutoFinish? SeqC LCycle 'X' FinishXRadius# 'Z' FinishZ# IF Taper? 'R' Taper# END GetFeedRate EOL END SeqC 'G80' EOL ELSE IF Drilling? IF FIRO? OR PeckChipBreaker? SeqC LCycle ZDepth RLevel Peck GetFeedRate EOL SeqC DrillOff EOL IF AutoFinish? SeqC Feed ZDepth EOL IF Dwell? SeqC 'G04F' Dwell# EOL END SeqC Rapid ZSP EOL END END END END END ELSE StockOn SetPass1 ToolPath IF AutoFinish? IF NOT Drilling? AND NOT Grooving? StockOff IF Turning? SetPass1 ELSE SetPass2 END SeqC RapidC StrtPos EOL ToolPath END END END IF Drilling? AND Tap? SeqC SpinOff EOL SeqC 'G04F2.' EOL SeqC SpinOn 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? SeqC XCPC EOL ELSE IF ApproachID? SeqC XOpECDC EOL END END SeqC ZCPC EOL DoEndOpPS SeqC EOP EOL Post 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