{10/2/89 This prog incorporates the new vectoring commands per Post Note 10 and also has the format changes originally made by Stan Lytle. J. Cusimano} {11/3/89 Copied & modified: Meldas 5000C OKK M241.61 For: Seibens Added Zeros to G92 line. Deleted G99 & M05 from MachSpec. Jim Radcliffe} {7/24/90, Added InitProg globally to posts with this remark, DWB} {12/12/90, Updated: Meldas 5000C OKK M241.63 to .76.1 format, JR} {4/03/91 Modified: Meldas 5000C OKK M241.76.1 For: Gibbs & Associates Updated to Version 4.0 per Fanuc 6M M001.80 Format. DWB} {4/28/95 Modified: Meldas 5000C OKK M241.79 For: Vitols Tool & Machine Moved CoolOn to line by itself. Made all coords decimal point output. Sub call changed. sample: G22L2, not M98H2. Start of sub is L, sub number has no decimal pt. End of sub is G23, not M99. No % sign at Sub Call line. Added IF Tap? 'F' FeedTapIPR#('1') lines in IF Drilling? area. Dan Pilone} {9/12/95 Modified: Meldas 5000C OKK M241.79 For: Vitols Tool & Machine Changed SetMaxRPM to 8000. Dan Pilone} {10/25/95 Initial: Meldas 5000C OKK M241.79.2 (from Dan Pilone) Created: Meldas 5000C OKK [VT] Mxxx.86 ForUser: Vitols Control: ???? Machine: ???? Develop: ComPost 4.21.34, Catalyst68K v3.02.02C Comment: Modified per marked up readout. Updated to .86 format per Meldas 5000C OKK M241.86 Deleted G28 line from beginning of program. Changed 'G44Z-1.' to 'G60Z0' Deleted 'G28Z0' Fixed up tapping cycles. Deleted Home from end of program. Changed 'G28X0Y0Z0' to 'G60X0Y0' at end of program. Jim Radcliffe} {10/25/95 Initial: Meldas 5000C OKK [VT] M952.86 Created: Meldas 5000C OKK [VT] M952.86.1 ForUser: Vitols Develop: ComPost 4.21.34, Catalyst68K v3.02.02C Comment: Added ToolChng to 1st operation. Removed Drill Subs. Jim Radcliffe} {3/22/96, Tested zonlyRepAutoCycle, Changed version # to .89, MPK} {1/29/97, created .14 advanced mill post per Fanuc 6M (NW) D001.14, MPK} {7Jul97 Original: Meldas 5000C OKK [VT] D952.14 Created: Meldas 5000C OKK [VT] D952.14.1 For: Vitols Changes made per: Joe Sczesny Added FORMAT#9 for CSOffsetA# and B Set FourthDegree# and FifthDegree to FORMAT#9 Deleted Formatting in psStuff Added doCoolOn sub for Mist and Pulse for use with postscript Commands and MDD? Changed SeqC CoolOn to doCoolOn throughout prog Added doHighSpeed sub for HighSpeed machining of Lines and Arcsfor use with Postscript OptCyc1 Changed nextVector sub to output offsets only on the first line with CRCOn Added doHighSpeed to Lines and Arc in Toolpath Added SetFlag('3') at progStart, nextVector and Toolpath Added Utility data for OpCyC1, FCool, PCool and MColl commands Deleted PreSet 'Z0' at firstOP, newToolOp3 and sameToolOp3 Charles Winston} {Prog Numeric Format Definitions *******************************************} #1 = '0.00' #2 = '###.####;0' { used for CRC vectors} #3 = '*###.####;0' { used for CRC vectors} #4 = '###^##0' #5 = '*###^##0' #6 = '####.####;0.' #7 = '#######0' #8 = '####^###;' #9 = '*###.###;0' { used for CSOffset} FORMAT(FileFeet#,1) FORMAT(FileMeters#,1) FORMAT(EPX#,2) FORMAT(EPY#,2) FORMAT(ToolDiameter#,6) FORMAT(FeedTapIPR#,6) FORMAT(Program#,7) FORMAT(Operation#,7) FORMAT(Tool#,7) FORMAT(NewWFO#,7) FORMAT(Parts#,7) FORMAT(Dwell#,8) FORMAT(CSOffsetA#,9) FORMAT(CSOffsetB#,9) FORMAT(FourthDegree#,9) FORMAT(FifthDegree#,9) {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 mpESWFO: { MultipleParts EquallySpaced } {This post does not support WFOs} RETURN wfo: {This post does not support WFOs} RETURN wfoNum: {This post does not support WFOs} RETURN wfoStuff: {This post does not support WFOs} RETURN doSubComment: IF UseComments? AND SubComment? '( SUB NUMBER: ' Program# ' )' EOL END RETURN doCSComment: IF AAxisAvail? OR BAxisAvail? '( CS#' CS# ' - ' CSComment$ ' )' EOL END RETURN offsetComments: IF ChangeCS? doCSComment ELSE IF NOT SameTool? doCSComment END 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# ': ' ToolDiameter# ' ' ToolType$ ' )' EOL END IF ToolComment? '( ' ToolComment$ ' )' EOL END restoreScale END offsetComments RETURN csAngleA: IF AAxisAvail? 'A' CSOffsetA# END RETURN csAngleAC: IF AChange? csAngleA END RETURN csAngleB: IF BAxisAvail? 'B' CSOffsetB# END RETURN csAngleBC: IF BChange? csAngleB END RETURN psInit: NewWFOF RotateF OptCyc1F MasterOpF CallMasterOpF RETURN psStuff: IF FourthCW? SeqC 'A' FourthDegree# EOL FourthCWF END IF FourthCCW? SeqC 'A' FourthDegree# EOL FourthCCWF END IF FifthCW? SeqC 'B' FifthDegree# EOL FifthCWF END IF FifthCCW? SeqC 'B' FifthDegree# EOL FifthCCWF END RETURN doPostScript: psInit EachPS SeqC PostScript EOL psStuff NextPS RETURN doEndOpPS: psInit EachEOPS SeqC EndOpPS EOL psStuff NextPS RETURN entryMove: IF FeedEntry? SeqC Feed ZIn FeedEnt EOL ELSE SeqC RapidC ZIn EOL END RETURN startSub: OpenSub 'L' {SubID} Program# EOL doSubComment RETURN subWarning: IF NOT FeedConnect? IF AnyZshift? ' ' EOL '( WARNING Z CLEARANCE WILL CHANGE WITH EACH CYCLE OF SUB REPEAT )' EOL ' ' EOL END END RETURN stdSub: SeqC SubCall CallLab RepLab RepCycs EOL startSub RETURN finishSub1: {part 1} SeqC CRCOffC IF NOT FeedConnect? IF AutoCycle? ZCP3C ELSE IF FIFO? FeedC ZCP3C FeedEntC ELSE RapidC ZCP3C END END END EOL RETURN finishSubG92: {part 2} SeqC Preset ShiftRC EOL SeqC EndSub EOL {'%'} NullFoot EOL CloseSub SeqC Preset UnshftRC EOL RETURN toggleIncDecWFO: RETURN openMP: IF WorkFixtureOffsets? '***THIS POST PROCESSOR DOES NOT SUPPORT WORK FIXTURE OFFSETS***' EOL '***********SWITCH TO EQUALLY SPACED AND REPOST FILE************' EOL ELSE NewProg SeqC SubCall CallLab RepLab Parts EOL startSub END RETURN closeMP: IF WorkFixtureOffsets? ELSE SeqC Preset ShiftPC EOL SeqC EndSub EOL {'%'} NullFoot EOL CloseSub SeqC Preset UnshftPC EOL END RETURN doAbsOrInc: IF Flag?('1') AND AbsoluteMoves? IF ZMove? AND AbsValue? IncValue ELSE IF NOT ZMove? AND NOT AbsValue? AbsValue END END END RETURN doDrillAbsOrInc: IF Flag?('1') AND AbsoluteMoves? IF SPZMove? AND AbsValue? IncValue ELSE IF NOT SPZMove? AND NOT AbsValue? AbsValue END END END RETURN doCoolOn: IF Mist? IF NOT CoolOff? AND NOT Mist? { Is the coolant already on and set to Flood? or Pulse? } SeqC 'M9' EOL { CoolOff } END SeqC 'M7' EOL ELSE IF Pulse? { used for AIR BLOW } IF NOT CoolOff? AND NOT Pulse? { CoolOn and Flood or Mist } SeqC 'M9' EOL END SeqC 'M50' EOL ELSE IF NOT CoolOff? AND NOT Flood? { CoolOn and Pulse or Mist } SeqC 'M9' EOL END SeqC CoolOn EOL { =Flood, M8} END END RETURN restoreAbsOrInc: IF Flag?('1') AND AbsoluteMoves? AND NOT AbsValue? SeqC AbsValue EOL END RETURN formatArc: doAbsOrInc IF ArcCW? CWArcC ELSE CCWArcC END MoveXYZC IF ArcIJFormat? ArcIJC ELSE ArcRC END RETURN doHighSpeed: { for High Speed Machining } IF OptCyc1? 'G09' END RETURN nextVector: {only called for this feat a line} IF NOT LastFeat? AND CutterRadiusCompensation? AND NOT Flag?('3') SetFlag('3') { only output once for each Toolpath } IF AbsValue? SetFlag('2') SetInc END IF NEXT LineFeat? SetStatusOff 'I' NEXT EPX# 'J' NEXT EPY# SetStatusOn ELSE IF NEXT ArcFeat? IF NEXT ArcCW? FORMAT(ArcJ#,3) FORMAT(ArcI#,2) 'I' NEXT ArcJ# 'J' NEXT ArcI# ELSE FORMAT(ArcJ#,2) FORMAT(ArcI#,3) 'I' NEXT ArcJ# 'J' NEXT ArcI# END END END IF Flag?('2') SetFlagF('2') SetAbs END END END RETURN ckCRC: IF LastFeat? CRCOffC ELSE IF NOT ZMove? CRCOnC END END RETURN ckCRCNum: IF NOT LastFeat? AND Equal? SPZ# EPZ# CRCOffsetC END RETURN toolPath: ResetCRCNum EACHFeat IF PointFeat? IF AutoCycle? SeqC MoveSXYC EOL SeqC SubCall CallLab EOL CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY} ELSE SeqC doDrillAbsOrInc MoveSXYZC EOL {.80.01} END ELSE IF RapidFeat? IF XMove? OR YMove? OR ZMove? SeqC doAbsOrInc ckCRC RapidC MoveXYZC ckCRCNum EOL END ELSE IF LineFeat? IF XMove? OR YMove? OR ZMove? SeqC doHighSpeed doAbsOrInc ckCRC FeedC MoveXYZC nextVector FeedRateC ckCRCNum EOL END ELSE IF ArcFeat? EACHQuadrant IF LastQuadrant? AND Decelerate? IF RoomToDecel? DecelMove1 SeqC formatArc ArcFeedC EOL DecelMove2 END SeqC doHighSpeed formatArc DecelFeed EOL ELSE SeqC doHighSpeed formatArc ArcFeedC EOL END NEXTQuadrant END END END END NEXTFeat restoreAbsOrInc SetFlagF('3') RETURN autoCycCutSub1: {part 1} SaveSubStatus {save tool position} SetPass1 {element cut moves} startSub SetSRXYtoSP Seq In...
kmex