Mit Meldas 300 [SM] MT99 16 1


{ MILL=T LATHE=F SIMPLE_ROT_POS=F ROTARY_MILL=F ADV_MILL=F SUBS=T MILLTURN_POLAR-SEG=F MILLTURN_Y-AXIS=F METRIC=F } {Change Comments ***********************************************************} {1/22/93 Copied & modified: Mitsubishi 320M M466.81.2 For: Paxton Engineering Machine: Control: Changes made per Steve at Paxton Engineering. Changed Sub Call Label from 'L' to 'P' in Forms Strings 2 dialog. Changed Sub Repeat Label from 'P' to 'L' in Forms Strings 2 dialog. Changed Program ID Label from 'L' to 'O' in Forms Strings 2 dialog. Changed Call Sub from 'G22' to 'M98' in Forms Commands 3 dialog. Changed Return From Sub from 'G23' to 'M99' in Forms Commands 3 dialog. Changed End Program from 'M2' to 'M30' in Forms Commands 3 dialog. Changed FORMAT for G Address from '00' to '#0' in Forms Default Formats dialog. Changed FORMAT for M Address from '00' to '#0' in Forms Default Formats dialog. Added EOR EOL at startSub. Activated UseSeparateSubCalls and SetMaxSeparateSubCalls at setup and initializations. Changed SetMaxRPM value from 10000 to 8000 at setup and initializations. Added Rapid AbsOrInc 'G49G28Z0' at FirstOperation, NewTool, SameTool and end of Prog. Deleted literal 'G28Z' at NewTool, SameTool and end of Prog. Deleted Rapid and Moved GetSpinOn at FirstOperation, NewTool, SameTool and end of Prog. Deleted PreTool at FirstOperation and NewTool. Added SpinOff at NewTool, SameTool and end of Prog. Added OpToolID at NewTool. Modified to output CRCOff and CoolOff on separate blocks. Changed Rapid FirstHome to literal 'G30X0Y0' at end of Prog. DWB} {10/4/94 Modified: Mit Meldas 300 [PE] M548.81.2 For: Paxton Changed SpeedC in GetSpinOn sub to Speed for FirstOp and NewTool. Changed SpeedC to Speed on Drill Cycle Tap line. Added OptCyc1 to futher descriminate the Tap cycle for Rigid Tapping. The E value will be the TPI value of the tap. Added literal ',R1' to denote rigid tapping. Jim Radcliffe} {9/28/95, Updated Mit Meldas 300 [PE] M548.81.3 to .85 format per Fanuc 6M M001.85.01.03, JR} {1/17/96, Updated .85 to .86 version, MPK} {3/22/96, Tested zonlyRepAutoCycle, Changed version # to .89, MPK} {5/21/96, Initial: Mit Meldas 300 [PE] M548.89 Created: Mit Meldas 300 [PE] M548.89.1 Fixed Boolean Logic in SameTool, the statement IF LAST ProgStop? OR CoolOff? AND LAST NOT CoolOff? used to determine whether or not to turn off coolonat in sametool and the equivalent statement to turn coolant on do not evaluate properly, I broke them into an equivalent IF...ELSE statement that evaluates properly. MPK} {02Feb99 Original: Mit Meldas 300 [PE] M548.89.1 Created: Mit Meldas 300 [SM] MT99.16 For: Special Mold Changes made per: Dave McDonald of Special Mold and Michael Cole of Fisher/Unitech Develop: Catalyst 5.03/ComPost2 1.7b15 Updated to.16 format per Fanuc 6M M001.16.2 NEW POST : FIRST DRAFT Added Post Header Comment at the top of Prog. Added Spaces between all Addresses Changed Formatting for X,Y,Z,I,J,P,Q,R to '####0.0000;0.0000' in MachSpec. Added Format#8 and in Prog Numeric Format Definitions and added Formatting for Dwell# Added Support for ToolChanging using the OptCYC1 PostScript Command. ToolChanging is de-activated by default in this post. OptCYC1 switches it back on. Suppressed wfo when Multiple Parts is FALSE Added Custom doToolComment and doToolTypeComment Subs. Moved CoolOff to the End of Opguts Added doCoolOff and ckCoolOFF Subs Added support for coolant handling in MP_1ToollAllP_Xcp Deleted CoolOff and SpinOff at End of Prog. Changed CoolOff to M19 Other changes to numerous to list at this time. Customer requires a Custom MDD for his drill cycles. ( Still to be supplied by customer) Charles Winston} {03Mar99 Original: Mit Meldas 300 [SM] MT99.16 Created: Mit Meldas 300 [SM] MT99.16.1 For: Special Mold Changes made per: Dave McDonald of Special Mold and Michael Cole of Fisher/Unitech Develop: Catalyst 5.05/ComPost2 1.7b15 Deleted G17 in MachSpec. No output for the G17 Plane. Deleted doCoolOff and ckCoolOFF Subs. Added doSpindleOrient Sub. Called in OpGuts. Added Support for Customers MDD Fine Bore Cycle. Deleted Rapid CRCOff AbsOrInc Plane in firstOp1. Deleted Rapid AbsOrInc ' G49 G28 Z0' in firstOp1. Added PlaneC to newToolOp4. ( G17 is not required but G18 and G19 will output.) Added Custom code in end2 per customers requirements. Charles Winston} {Prog Numeric Format Definitions ****} #1 = '#.00' #2 = '#####.###;0' #3 = '*#####.###;0.' #4 = '####.####;0' #5 = '#######0' #6 = '####^###0' #7 = '#' #8 = '####0.0000;0.0000' #9 = '00' FORMAT(FileFeet#,1) FORMAT(FileMeters#,1) FORMAT(Recall#,4) FORMAT(ADD#,4) FORMAT(ToolDiameter#,4) FORMAT(TrackXNO#,4) FORMAT(TrackYNO#,4) FORMAT(TrackZNO#,4) FORMAT(FeedEntry#,4) FORMAT(Program#,5) FORMAT(CallMasterNum#,5) FORMAT(Operation#,5) FORMAT(Tool#,5) FORMAT(NewWFO#,5) FORMAT(Parts#,5) FORMAT(Div#,5) FORMAT(RapidF#,7) FORMAT(Dwell#,8) FORMAT(Retract#,8) FORMAT(ToolOffset#,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 wfo: ' G' NewWFO# RETURN wfoStuff: IF NewWFO? IF MultipleParts? AND WorkFixtureOffsets? EOL '*** WARNING *** DO NOT USE NEWWFO() WITH MULTIPLE PARTS AND WORK FIXTURE OFFSETS' EOL ELSE wfo END ELSE IF Flag?('2') { Need to output wfoStuff twice for MP-ESO-OTAP-ECP, once for all others } IF NOT SameTool? IF MultipleParts? IF WorkFixtureOffsets? WFO1 ELSE wfo END ELSE {wfo} END END END END SetFlagF('2') { Do not output WFO second time wfoStuff is called for MP-WFO-OTAP-ECP } RETURN doSubComment: IF UseComments? AND SubComment? SetScale('1') SeqC '( SUB NUMBER: ' Program# ' )' EOL restoreScale END RETURN doToolComment: ' ' EOL ' ' EOL Seq '(' IF UseComments? SetScale('1') IF ToolComment? ToolComment$ ELSE 'No ToolComment$' END restoreScale END ')' EOL ' ' EOL ' ' EOL RETURN doToolTypeComment: IF UseComments? IF ToolTypeComment? SeqC '( TOOL#' Tool# ', H' ToolOffset# ' )' EOL END END RETURN doOpComments: IF UseComments? SetScale('1') IF OperationIDComment? SeqC '( OPERATION ' Operation# ': ' OperationType$ ' )' EOL END IF OperationComment? SeqC '( ' OperationComment$ ' )' EOL END IF WorkGroupComment? SeqC '( ' WorkGroupComment$ ' )' EOL END { ToolComment$ moved to FirstOperation and NewTool. } restoreScale END RETURN psInit: NewWFOF RotateF OptCyc1F MasterOpF CallMasterOpF RETURN psStuff: IF FourthCW? FORMAT(FourthDegree#,2) SeqC 'A' FourthDegree# EOL FourthCWF END IF FourthCCW? FORMAT(FourthDegree#,3) SeqC 'A' FourthDegree# EOL FourthCCWF END IF FifthCW? FORMAT(FifthDegree#,2) SeqC 'B' FifthDegree# EOL FifthCWF END IF FifthCCW? FORMAT(FifthDegree#,3) SeqC 'B' FifthDegree# EOL FifthCCWF END IF FirstOperation? IF OptCyc1? { Activates the ToolChanger } SetFlag('10') END END RETURN doPostScript: psInit EachPS SeqC PostScript EOL psStuff NextPS RETURN doEndOpPS: psInit EachEOPS SeqC EndOpPS EOL psStuff NextPS RETURN absValueC: IF NOT AbsValue? AbsValue END RETURN incValueC: IF AbsValue? IncValue END RETURN absOrIncC: IF AbsoluteMoves? absValueC ELSE incValueC END RETURN entryMove: IF FirstOperation? OR NewTool? RapidF# { Forces FeedEnt/FeedRate } END IF FeedEntry? SeqC Feed ZIn FeedEnt EOL ELSE SeqC RapidC ZIn EOL END RETURN startSub: OpenSub EOR EOL SubID EOL doSubComment RETURN subWarning: IF NOT FeedConnect? IF AnyZshift? ' ' EOL SeqC '( 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? RapidC ZCP3C END EOL RETURN finishSubG92: {part 2} SeqC Preset ShiftRC EOL SeqC EndSub EOL CloseSub SeqC Preset UnshftRC EOL RETURN doWFOOps: IF Flag?('5') SetFlagF('5') { Suppress Redundant WFO for MP-WFO-OTAP-ECP } ELSE SeqC SetWFO EOL END SeqC SubCall CallLab RepLab OnePart EOL RETURN openMP: NewProg IF WorkFixtureOffsets? IF OneToolAllParts? AND ExitClearancePlane? SetFlag('5') { Suppress Redundant WFO for MP-WFO-OTAP-ECP } END NewWFO EachWFO {simple eachPart} doWFOOps IncWFO NextWFO {simple NextPart} startSub ELSE SeqC SubCall CallLab RepLab Parts EOL IF OneToolAllParts? AND ExitClearancePlane? SetFlag('2') { Need to output wfoStuff twice for MP-ESO-OTAP-ECP, once for all others } END startSub END RETURN closeMP: IF WorkFixtureOffsets? SeqC EndSub EOL CloseSub SeqC WFO1 EOL ELSE SeqC absOrIncC EOL SeqC Preset ShiftPC EOL SeqC EndSub EOL CloseSub SeqC Preset UnshftPC EOL END RETURN doAbsOrInc: IF Flag?('1') { Milling ZShiftOnly SepSubs/DrillSubs activated } IF ZMove? incValueC ELSE absOrIncC END END RETURN doDrillAbsOrInc: IF Flag?('1') { DrillSubs activated } IF SPZMove? incValueC ELSE absOrIncC END END RETURN restoreAbsOrInc: IF Flag?('1') { Milling ZShiftOnly SepSubs/DrillSubs activated } SeqC absOrIncC EOL 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 getACEPXY: SetACSPCompF Save# Num#('1') SPX# { Status Register Variable for X Axis } Save# Num#('2') SPY# { Status Register Variable for Y Axis } SetACSPComp RETURN setSRXYtoACEP: SetPass1 SetSRXYtoEP LoadFeat Num#('0') Num#('0') Num#('0') TrackXNO# ADD# Recall# Num#('1') SPX# { Status Register Variable for X Axis } TrackYNO# ADD# Recall# Num#('2') SPY# { Status Register Variable for Y Axis } RETURN toolPath: ResetCRCNum EACHFeat IF PointFeat? IF AutoCycle? IF LastFeat? getACEPXY END SeqC MoveSXYC EOL SeqC SubCall CallLab EOL CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY} ELSE IF NOT FirstFeat? SeqC doDrillAbsOrInc MoveSXYZC EOL END END ELSE IF RapidFeat? IF XMove? OR YMove? OR ZMove? SeqC doAbsOrInc ckCRC ckCRCNum RapidC MoveXYZC EOL END ELSE IF LineFeat? IF XMove? OR YMove? OR ZMove? SeqC doAbsOrInc ckCRC ckCRCNum FeedC MoveXYZC FeedRateC EOL END ELSE IF ArcFeat? EACHQuadrant { Do not use NOT, FIRST, LAST or NEXT modifiers in this loop } SeqC doAbsOrInc IF ArcCW? CWArcC ELSE CCWArcC END MoveXYZC IF ArcIJFormat? ArcIJ ELSE ArcR END ArcFeedC EOL NEXTQuadrant END END END END NEXTFeat restoreAbsOrInc RETURN autoCycCutSub1: {part 1} SaveSubStatus {save tool position} SetPass1 {element cut moves} startSub SetSRXYtoSP SeqC incValueC EOL RETURN autoCycCutSub2: {part 2} toolPath SeqC absOrIncC CRCOffC IF Repeats? AND FeedConnect? AND ZshiftOnly? ELSE RapidC ZCP2 END EOL SeqC EndSub EOL CloseSub SetSRSubXY {restore SR to 1st position value} SetSRSubMove RETURN autoCycPat: SetPass2 {position pattern} toolPath {call after NewProg for correct sub calls} SetPass1 {reset} RETURN milling: IF AutoCycle? NewProg autoCycCutSub1 entryMove autoCycCutSub2 autoCycPat ELSE entryMove toolPath END RETURN g92Sub: subWarning stdSub SeqC absOrIncC Connect StrtPos EOL milling finishSub1 finishSubG92 RETURN doSepSubZMoves: IF FeedConnect? SeqC FeedC ZInPlusInc FeedEnt EOL ELSE IF FeedEntry? IF NOT FirstCycle? SeqC RapidC ZCP2PlusInc EOL END SeqC Feed ZInPlusInc FeedEnt EOL ELSE IF FirstCycle? AND AutoCycle? Rapid END SeqC RapidC ZInPlusInc EOL END END SeqC SubCall CallLab EOL IF NOT FeedConnect? AND NOT AbsValue? TrackZNO# ZCP2PlusInc# SeqC ZCP2C EOL IF NOT AutoCycle? TrackZNO# ClearancePlane3# END END RETURN setSepSubZ: SetAbs TrackZNO# ADD# SPZ# MUL# RepsLess1# RepeatZ# SetInc RETURN zonlyRepAutoCycle: autoCycPat {write pattern moves and main calls} startSub NewProg EachCycle SetSRXYtoEP IF NOT FirstCycle? IF SPXMove? OR SPYMove? SeqC incValueC Connect StrtPosC EOL absOrIncC ELSE Connect END END SetStatusOn doSepSubZMoves SetStatusOff NextCycle SetStatusOn autoCycCutSub1 {build element sub} TrackZNO# SPZ# autoCycCutSub2 IF FeedConnect? IF NOT AbsValue? setSepSubZ END SeqC Rapid ZCP2 EOL END SeqC EndSub EOL CloseSub {Element shift, not pattern} RETURN zonlyRep: EachCycle SetSRXYtoEP IF NOT FirstCycle? Connect IF SPXMove? OR SPYMove? SeqC StrtPosC EOL END END doSepSubZMoves NextCycle startSub TrackZNO# SPZ# toolPath finishSub1 SeqC EndSub EOL CloseSub IF FeedConnect? AND NOT AbsValue? setSepSubZ END RETURN skipToLastFeat: EachFeat IF LastFeat? TrackXNO# SPX# TrackYNO# SPY# END NextFeat RETURN setDrillEndOpZ: IF RetractToCP1? TrackZNO# ClearancePlane1# ELSE TrackZNO# ClearancePlane2# END RETURN checkPass: {use the correct StrtPos} IF AutoCycle? SetPass2 ELSE SetPass1 END RETURN GetSpinOn: IF Drilling? AND Tap? { Speed is output on Drill Cycle line and SpinOn is not needed } ELSE IF SameTool? AND LAST NOT ProgStop? SpeedC ELSE Speed SpinOn END END RETURN doSpindleOrient: IF LastOP? ' M19' ELSE IF NEXT SameTool? ELSE ' M19' END END RETURN opGuts: IF Milling? SeqC ZCP2C EOL IF Repeats? NewProg IF ZshiftOnly? IF AutoCycle? {incremental Autocycle sub can have Z moves} zonlyRepAutoCycle ELSE {Z shift only, NOT Auto Cycle} SetFlag('1') { Milling ZShiftOnly SepSubs activated } zonlyRep SetFlagF('1') { Milling ZShiftOnly SepSubs deactivated } END {end Auto Cycle IF} ELSE {not Z only} g92Sub END {end Z only IF} ELSE {no repeat OPs} milling END IF AutoCycle? SeqC CRCOffC ZCP3C EOL SeqC doSpindleOrient EOL setSRXYtoACEP ELSE SeqC CRCOffC RapidC ZCP3C EOL SeqC doSpindleOrient EOL END ELSE IF Drilling? SeqC DrillCP EOL GetCycle IF FIStopOffWallRO? {Fine Bore} SeqC ' G76' ELSE IF BackBore? SeqC ' G87' ELSE SeqC Cycle END END FromCP StrtPos ZDepth RLevel Dwell Peck IF FIStopOffWallRO? {Fine Bore} ' Q' Retract# ELSE Retract END IF Tap? IF RigidTap? ' E' DIV# Num#('1') FeedTapIPR#('1') Speed ' R1' ELSE ' E' FeedEntry# Speed END ELSE FeedEnt END EOL IF CallMasterOp? SeqC SubCall CallLabB CallMasterNum# EOL skipToLastFeat ELSE TrackZNO# SPZ# IF MasterOp? SetFlag('1') { DrillSubs activated } NewMasterProg SeqC SubCall CallLab EOL startSub toolPath SeqC EndSub EOL CloseSub SetFlagF('1') { DrillSubs deactivated } ELSE toolPath END END setDrillEndOpZ SeqC DrillOff ZCP3C doSpindleOrient EOL END END RETURN progStart: InitProg ReverseXZArcs InitWFONum SetFlood SetMaxRPM('8000') IF Metric? SetMaxFeed('12700') ELSE SetMaxFeed('500') END Save# Num#('1') Num#('0') { Status Register Variable for X Axis } Save# Num#('2') Num#('0') { Status Register Variable for Y Axis } SetFlagF('1') { Milling ZShiftOnly SepSubs/DrillSubs deactivated } SetFlagF('2') { Need to output wfoStuff twice for MP-ESO-OTAP-ECP, once for all others } SetFlagF('5') { Suppress Redundant WFO for MP-WFO-OTAP-ECP } SetFlagF('10') { De-activate the Tool Changer } IF PSComment? AND UseComments? 'Utility Data:' EOL ' At Op Start: All literals and commands will appear at the beginning of the operation.' EOL ' At Op End: All literals and commands will appear at the end of the operation.' 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 ' NewWFO(56), NWFO(56) -' EOL ' The Work Fixture Offset # you specify will be used for all following operations.' EOL ' Do not use with the ncPost multiple part option.' EOL ' 4thAxisCW(12.5), 4ACW(12.5) -' EOL ' generates a + A move of the value you specify' EOL ' 4thAxisCCW(22.5), 4ACCW(22.5) -' EOL ' generates a - A move of the value you specify' EOL ' 5thAxisCW(30), 5ACW(30) -' EOL ' generates a + B move of the value you specify' EOL ' 5thAxisCCW(22.5), 5ACCW(22.5) -' EOL ' generates a - B move of the value you specify' EOL ' ' EOL ' The OPTCYC1 command' EOL ' ===================' EOL ' This will cause the Post to output The Next Tool Number Followed by a Tool Change ( M06 )' EOL ' ToolChanging is de-activated by default in this post.' EOL ' OptCYC1 switches it back on.' EOL ' NOTE: This command Works in the First Operation Utility Data box ONLY.' EOL END RETURN initOp: EOR EOL ProgID1 IF UseComments? '(' IF ProgramNameComment? ProgramName$ END ')' 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 ' MoveType$ ' INCHES )' EOL END IF PartsComment? '( PARTS PROGRAMMED: ' Parts# ' )' EOL END IF StartToolComment? '( FIRST TOOL IN SPINDLE )' EOL END END OpenSub restoreScale RETURN firstOp1: IF ToolChangeAtHome? SetHome END SeqC OpToolID EOL SeqC AbsOrInc EOL doPostScript doToolComment doOpComments doToolTypeComment RETURN firstOp2: CheckPass SeqC Plane Rapid WFOStuff StrtPos GetSpinOn EOL RETURN firstOp3: SeqC CoolOn EOL SeqC OfstOn EOL RETURN newToolOp1: SeqC ' M00' EOL SeqC RapidC ' G28' Rapid ' Z' EOL { Clear Offsets } SeqC ' X0 Y0' EOL SeqC AbsOrInc EOL RETURN newToolOp2: doEndOpPS RETURN newToolOp3: {Start new Operation} SeqC PlaneC EOL doPostScript doToolComment doOpComments doToolTypeComment IF Flag?('10') SeqC OpToolID ToolChng EOL END RETURN newToolOp4: checkPass SeqC PlaneC Rapid WFOStuff StrtPos GetSpinOn EOL RETURN newToolOp5: SeqC CoolOn EOL SeqC Rapid OfstOn EOL RETURN sameToolOp1: doEndOpPS IF LAST ProgStop? SeqC ' M19' EOL SeqC ' M00' EOL SeqC RapidC ' G28' Rapid ' Z' EOL { Clear Offsets } SeqC ' X0 Y0' EOL SeqC AbsOrInc EOL ' ' EOL ' ' EOL ELSE IF CoolOff? AND LAST NOT CoolOff? SeqC CoolOff EOL END IF NewToolOffset? SeqC RapidC ' G28' Rapid ' Z' EOL { Clear Offsets } END END RETURN sameToolOp2: {Start new Operation} doOpComments doPostScript checkPass RETURN sameToolOp3: {Start new Operation} IF LAST ProgStop? SeqC PlaneC RapidC WFOStuff StrtPos GetSpinOn EOL SeqC OfstOn EOL SeqC CoolOn EOL ELSE SeqC PlaneC RapidC WFOStuff StrtPos GetSpinOn EOL IF NewToolOffset? SeqC OfstOn EOL END IF NOT CoolOff? AND LAST CoolOff? SeqC CoolOn EOL END END RETURN end1: RETURN end2: SeqC ' M00' EOL SeqC RapidC ' G28' Rapid ' Z' EOL { Clear Offsets } doEndOpPS SeqC ' X0 Y0' EOL SeqC AbsOrInc EOL IF Flag?('10') SeqC OpToolID ToolChng EOL END RETURN end3: SeqC EOP EOL CloseSub Post2 {organize Subs into one program} EOR EOL Close IF UseComments? SetScale('1') {restore scale for comments} Reopen IF FileBytesComment? SeqC '( FILE LENGTH: ' FileBytes# ' CHARACTERS )' EOL END IF FileFeetComment? SeqC '( FILE LENGTH: ' FileFeet# ' FEET )' EOL END IF FileMetersComment? SeqC '( FILE LENGTH: ' FileMeters# ' METERS )' EOL END Close END RETURN mpAllTools1P: {Multiple Parts, All Tools 1 Part} EachOp {Start of post processing} IF EquallySpacedOffsets? SetFlag('2') { Need to output wfoStuff twice for MP-ESO-OTAP-ECP, once for all others } END IF FirstOperation? openMP firstOp1 firstOp2 firstOp3 ELSE IF NewTool? newToolOp1 newToolOp2 {to tool change, CS problem} newToolOp3 newToolOp4 newToolOp5 ELSE {implied SameTool?} sameToolOp1 sameToolOp2 sameToolOp3 END END {common point for all operations} opGuts NextOp {loops back to EachOP until last Operation} end1 end2 closeMP end3 RETURN mp1ToollAllPfu: {Multiple Parts, 1 Tool all Parts, full up} EachOp {Start of post processing} IF EquallySpacedOffsets? SetFlag('2') { Need to output wfoStuff twice for MP-ESO-OTAP-ECP, once for all others } END IF FirstOperation? firstOp1 openMP firstOp2 firstOp3 ELSE IF NewTool? newToolOp1 closeMP newToolOp2 {to tool change, CS problem} newToolOp3 openMP newToolOp4 newToolOp5 ELSE {implied SameTool?} sameToolOp1 sameToolOp2 sameToolOp3 END END {common point for all operations} opGuts NextOp {loops back to EachOP until last Operation} end1 closeMP end2 end3 RETURN mp1ToollAllPXcp: {Multiple Parts, 1 Tool all Parts, exit Clearance plane} EachOp {Start of post processing} SetFlag('2') { Need to output wfoStuff twice for MP-ESO-OTAP-ECP, once for all others } IF FirstOperation? firstOp1 firstOp2 firstOp3 openMP firstOp2 {need StrtPos in Sub} ELSE IF NewTool? closeMP SeqC ' M19' EOL newToolOp1 newToolOp2 {to tool change, CS problem} newToolOp3 newToolOp4 newToolOp5 openMP newToolOp4 {need StrtPos in Sub} ELSE {implied SameTool?} sameToolOp1 sameToolOp2 sameToolOp3 END END {common point for all operations} opGuts NextOp {loops back to EachOP until last Operation} closeMP SeqC ' M19' EOL end1 end2 end3 RETURN noMPs: {no multiple parts} EachOp {Start of post processing} SetFlag('2') { Need to output wfoStuff twice for MP-ESO-OTAP-ECP, once for all others } IF FirstOperation? firstOp1 firstOp2 firstOp3 ELSE IF NewTool? newToolOp1 newToolOp2 newToolOp3 newToolOp4 newToolOp5 ELSE {implied SameTool?} sameToolOp1 sameToolOp2 sameToolOp3 END END {common point for all operations} opGuts NextOp {loops back to EachOP until last Operation} end1 end2 end3 RETURN {Start of executable Prog, Top Level ****} progStart {setup and initializations} initOp IF MultipleParts? IF AllToolsOnePart? mpAllTools1P ELSE {implied OneToolAllParts?} IF FullUp? mp1ToollAllPfu ELSE {implied ExitClearancePlane?} mp1ToollAllPXcp END END ELSE noMPs END

Wyszukiwarka

Podobne podstrony:
Mit Meldas 300 [SM] NMQ41 16 1
Mit Meldas 300 [PE] M548 89 1
Mit Meldas 520M [SP] MT48 16
Mit Meldas 3 [SM] C044 13 1
Mit Meldas 320M [SAV] MY34 89 1
Mit Meldas 320M [SI] PMY34 17 4
Mit Meldas 50M [DC] MU33 89 2
Mit Meldas 50M LW M134 89 2
Mit Meldas M520 MZ72 89 5m
Fanuc 15M Mon [SM] MT98 16 1
Mit Meldas 520L DP [IP] L669 85
Mit Meldas L3 [SSD] L489 85

więcej podobnych podstron