plik


{ MILL=T LATHE=F SIMPLE_ROT_POS=T ROTARY_MILL=T ADV_MILL=F SUBS=T MILLTURN_Y-AXIS=F METRIC=F } {Change Comments ***********************************************************} {12/7/90 Copied & modified: Fanuc 6M M001.76.1 For: Chandler Evans ( Colt Ind. ) Modified Sequence of start blocks in Prog. Moved WFOStuff to Speed line. Changed lowest WFO number in MachSpec to 56. Disabled MultipleParts using WFO's, MultipleParts only active for EquallySpacedOffsets. Moved CoolOff command to ZCP3 line. Changed IncValue OfstOff to literal 'G54G28Z0.H0M19'. Changed Home to literal 'G28X0.Y0.'. Added a SubCall to end of Prog, for Pallet change. JR} {4/26/91, Modified: Fanuc 6M Matsuura TS M362.76.1 For: Gibbs & Associates Updated to new 4.0 Version per Fanuc 6M M001.80 DWB} {12/15/91 Copied & Modified: Fanuc 6M Matsuura TS M362.79 For: Standard Iron & Wire Works, Inc. Updated to Version 4.0 per Fanuc 6M M001.81 Format. Changed Start-up blocks in prog, added - SeqC IncValue 'G28 Z0' EOL SeqC Preset 'X0.Y0.' EOL Put OpToolID and ToolChng on the same line. Put Speed SpinOn on the AbsOrInc line. Changed WFOStuff to output 'WFO not supported in this post'. Deleted G17,G18,& G19 in the form. Added 'G80' to the CoolOff line. Changed 'G54G28Z0.H0' to Rapid 'G49Z0M19'. Deleted StrtPos from the Cycle line in IF Drilling? Kim Michelman} {7/21/93 Copied & modified: Fanuc 6M Mat MC1000V M474.81.1 For: EmTech, Inc. Control: Fanuc 6MA Machine: Ooya Deleted 'M99 P5' line from beginning of program. Deleted 'G28X0.Y0.' line from beginning of program. Added block delete to preset line at beginning of program. Deleted coolant commands, this machine does not use it. Moved OfstOn to be output on same line as StrPos. Deleted extra 'G80' in prog that was added to the CoolOff line. Deleted 'M19' Changed Rapid 'G49Z0' to IncValue OfstOff, output G91 G28 Z0. Added line 'G49 G90' after OfstOff line. Move ProgStop ToolChng, put ToolComment on same line, added to 1st op also. Changed end of program to go to machine home X, Y & Z. Added 2 blank line between subs. Added spaces between codes. Deleted all WFO stuff, this processor was not using it and we are doing a Preset at the beginning of the progam. Updated to .81.2 Jim Radcliffe} {11/11/93 - 11/16/93 Copied & modified: Fanuc 6MA Ooya M583.81.2 For: Braden Eng / EmTech, Inc. Control: Fadal Added line '1111' before EOR at beginning of prog. Deleted Preset line from Beginning of program. Added saftey start block to beginning of program. Added WFOs Moved Speed SpinOn to WFOStuff line. Changed move to machine home at end of program to 'G50 X0 Y10.' Added Coolant. CRC offset number = tool number. Jim Radcliffe} {7/21/95, Updated Fadal [EI] M605.81.2 to .85 format per Fanuc 6M M001.85.01, JR} {1/17/96, Updated .85 to .86 version, MPK} {3/22/96, Tested ZOnlyRepAutoCycle, Changed version # to .89, MPK} {1/19/99 Updated: Fadal [EI] M605.89 Created: Fadal [EI] RM605.17.4 For: Gibbs & Associates/Tecfar Manufacturing Versions: Virtual 5.04.05/ComPost2 1.7b15 Changes made per Pete Jackson. Updated for Catalyst v5 per Fanuc 6M RM001.17.4 Format. DWB} {1/20/99 Copied: Fadal [EI] RM605.17.4 Created: Fadal [EI] RM605.17.5 For: Gibbs & Associates Versions: Virtual 5.05.04/ComPost2 1.7b15 Changed SetArcSegmentAccuracy to be .0005 for English and .0127 for Metric at progStart. DWB} {Prog Numeric Format Definitions ****} #1 = '#.00' #2 = '#####.###;0.' #3 = '*#####.###;0.' #4 = '####.####;0.' #5 = '#######0' #6 = '####^##0' #7 = '#' FORMAT(FileFeet#,1) FORMAT(FileMeters#,1) FORMAT(SUB#,2) FORMAT(UnitAngle#,2) FORMAT(TrackCNO#,2) FORMAT(TrackC#,2) FORMAT(MoveC#,2) FORMAT(Recall#,4) FORMAT(ADD#,4) FORMAT(ToolDiameter#,4) FORMAT(TrackX#,4) FORMAT(TrackXNO#,4) FORMAT(TrackYNO#,4) FORMAT(TrackZNO#,4) FORMAT(TRUNC#,5) FORMAT(Program#,5) FORMAT(Program2#,5) FORMAT(CallMasterNum#,5) FORMAT(Operation#,5) FORMAT(Tool#,5) FORMAT(NewWFO#,5) FORMAT(Parts#,5) FORMAT(Dwell#,6) FORMAT(RapidF#,7) {Added Subroutines ****} spReset: {update to the correct StartPos} TrackXNO# SPX# TrackYNO# SPY# TrackCNO# MoveC# IF AutoCycle? AND NOT PointFeat? Save# Num#('5') MoveC# { cOpEP } END RETURN resetSP: {update to the correct StartPos} IF Rotations? OR Repeats? OR AutoCycle? CalcSCAng IF AbsValue? spReset ELSE SetAbs spReset SetInc END END RETURN saveEP: {save the correct EndPos} IF PointFeat? IF AutoCycle? SetACSPCompF Save# Num#('1') ADD# Recall# Num#('1') SPX# { xOpEP } Save# Num#('2') ADD# Recall# Num#('2') SPY# { yOpEP } SetACSPComp ELSE Save# Num#('1') SPX# { xOpEP } Save# Num#('2') SPY# { yOpEP } END ELSE Save# Num#('1') EPX# { xOpEP } Save# Num#('2') EPY# { yOpEP } END Save# Num#('4') MoveC# { cOpEP } IF AutoCycle? AND NOT PointFeat? Save# Num#('5') SUB# MoveC# Recall# Num#('5') { cOpEP } END RETURN getEP: {save the correct EndPos} IF Rotations? OR Repeats? OR AutoCycle? IF AbsValue? saveEP ELSE SetAbs saveEP SetInc END END RETURN setSRXYtoACEP: TrackXNO# Recall# Num#('1') { xOpEP } TrackYNO# Recall# Num#('2') { yOpEP } TrackCNO# ADD# Recall# Num#('4') Recall# Num#('5') { cOpEP } RETURN {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 SeqC 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? '( SUB NUMBER: ' Program# ' )' EOL END RETURN doToolComment: IF UseComments? IF ToolComment? '( ' ToolComment$ ' )' EOL 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 SameTool? doToolComment END restoreScale END RETURN psInit: NewWFOF FourthCWF FourthCCWF RotateF OptCyc1F MasterOpF CallMasterOpF RETURN psStuff: IF FifthCW? FORMAT(FifthDegree#,2) SeqC ' B' FifthDegree# EOL FifthCWF END IF FifthCCW? FORMAT(FifthDegree#,3) 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 absValueC: IF NOT AbsValue? AbsValue END RETURN incValueC: IF AbsValue? IncValue END RETURN absOrIncC: IF AbsoluteMoves? absValueC ELSE incValueC END RETURN setAngleUnder360: {sets status register and machine to current rotary position between -360 and 360 deg} {Fanuc yes, Fadal no.} RETURN doStartPos: IF RotaryMill? ' X' TrackX# StartPosX# ' Y0.' TrackYNO# StartPosY# ELSE StrtPos END IF AAxisAvail? CalcSCAng FadalMoveC ELSE TrackCNO# Num#('0') END RETURN entryMove: IF FirstOperation? OR NewTool? RapidF# { Forces FeedEnt/FeedRate } ELSE IF LAST Rotations? OR LAST Repeats? RapidF# { Forces FeedEnt/FeedRate } END END IF FeedEntry? SeqC Feed ZIn FeedEntC EOL ELSE SeqC RapidC ZIn EOL END RETURN startSub: OpenSub ASCII('13') EOL SubID 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? 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 Rotations? AND RotaryMill? incValueC ELSE IF Flag?('1') { Milling ZShiftOnly SepSubs/DrillSubs activated } IF ZMove? incValueC ELSE absOrIncC END END END RETURN doACAbsOrInc: IF Rotations? AND CMove? incValueC ELSE absOrIncC END RETURN doDrillAbsOrInc: IF Rotations? AND RotaryMill? incValueC ELSE IF Flag?('1') { DrillSubs activated } IF SPZMove? incValueC ELSE absOrIncC END END END RETURN restoreAbsOrInc: IF Rotations? AND RotaryMill? AND NOT AutoCycle? SeqC absOrIncC EOL ELSE IF Flag?('1') { Milling ZShiftOnly SepSubs/DrillSubs activated } SeqC absOrIncC EOL END END RETURN ckCRC: IF LastFeat? CRCOffC ELSE IF NOT ZMove? CRCOnC IF NOT EmptyLine? SetFlag('21') END END END RETURN ckCRCNum: IF Flag?('21') IF NOT LastFeat? AND Equal? SPZ# EPZ# SetFlagF('21') ' D' Tool# { CRCOffsetC } END END RETURN tpPointFeat: IF AutoCycle? IF RotaryMill? CalcSCAng SeqC doACAbsOrInc MoveSXC FadalMoveCC EOL SetAbsOrInc TrackCNO# ADD# Recall# Num#('5') MoveC# EOL {calc MoveC position after sub call} ELSE SeqC MoveSXYC EOL END IF Repeats? AND ZshiftOnly? SeqC SubCall CallLabB TRUNC# SUB# Program# Num#('1') EOL ELSE SeqC SubCall CallLab EOL END CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY} ELSE IF FirstFeat? SetFlagF('9') { For valid Drill Rotation Sub } IF Rotations? IF NOT LastFeat? IF NOT MasterOp? SetFlag('9') { valid Drill Rotation Sub } NewProg StartSub END END END ELSE IF RotaryMill? CalcSCAng SeqC doDrillAbsOrInc MoveSXC MoveSZC FadalMoveCC EOL ELSE SeqC doDrillAbsOrInc MoveSXYZC EOL END END IF LastFeat? IF Flag?('9') { valid Drill Rotation Sub } restoreAbsOrInc IF NOT MasterOp? SeqC EndSub EOL CloseSub END END END END RETURN tpRapidFeat: IF RotaryMill? CalcCAng IF XMove? OR ZMove? OR CMove? SeqC ckCRC doAbsOrInc RapidC MoveXC MoveZC FadalMoveCC ckCRCNum EOL END ELSE IF XMove? OR YMove? OR ZMove? SeqC ckCRC doAbsOrInc RapidC MoveXYZC ckCRCNum EOL END END RETURN tpLineFeat: IF RotaryMill? CalcCAng IF XMove? OR ZMove? OR CMove? SeqC ckCRC doAbsOrInc FeedC MoveXC MoveZC FadalMoveCC AngleFeedC ckCRCNum EOL END ELSE IF XMove? OR YMove? OR ZMove? SeqC ckCRC doAbsOrInc FeedC MoveXYZC FeedRateC ckCRCNum EOL END END RETURN tpArcFeat: IF RotaryMill? EachArcSegment CalcCAng SeqC ckCRC doAbsOrInc FeedC MoveXC MoveZC FadalMoveCC AngleFeedC ckCRCNum EOL NextArcSegment ELSE EACHQuadrant { Do not use NOT, FIRST, LAST or NEXT modifiers in this loop } SeqC doAbsOrInc IF ArcCW? CWArcC ELSE CCWArcC END MoveXYZC IF ArcIJFormat? ArcIJC ELSE ArcRC END ArcFeedC EOL NEXTQuadrant END RETURN toolPath: ResetCRCNum EACHFeat IF FirstFeat? resetSP END IF PointFeat? tpPointFeat ELSE IF RapidFeat? tpRapidFeat ELSE IF LineFeat? tpLineFeat ELSE IF ArcFeat? tpArcFeat END END END END IF LastFeat? getEP 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 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 doStartPos EOL milling finishSub1 finishSubG92 RETURN doSepSubContour: SetPass1 TrackZNO# SPZ# startSub RapidF# IF AutoCycle? NewProg autoCycCutSub1 {build element sub} TrackZNO# SPZ# autoCycCutSub2 ELSE toolPath finishSub1 SeqC EndSub EOL CloseSub END SetPass1 SetStatusRapid RapidF# SetSRXYtoEP TrackZNO# ClearancePlane2# TrackCNO# Recall# Num#('4') { cOpEP } RETURN doSepSubFeedConnect: IF FeedConnect? IF CMove? AngleFeedC ELSE FeedEntC END END RETURN doSepSubSPMove: SetStatusOff IF RotaryMill? CalcSCAng IF SPXMove? OR CMove? IF Rotations? OR AutoCycle? incValueC END SeqC Connect MoveSXC FadalMoveCC doSepSubFeedConnect EOL absOrIncC ELSE Connect END ELSE IF SPXMove? OR SPYMove? IF AutoCycle? incValueC END SeqC Connect StrtPosC doSepSubFeedConnect EOL absOrIncC ELSE Connect END END SetStatusOn 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 doSepSubExit: IF NOT AbsValue? setSepSubZ END IF AutoCycle? SeqC Rapid ZCP2 EOL ELSE Rapid { Will be output at millingOp ZCP3 } END RETURN resetSepSubSR: SetPass1 SetStatusRapid RapidF# TrackXNO# Recall# Num#('1') { xOpEP } TrackYNO# Recall# Num#('2') { yOpEP } TrackCNO# Recall# Num#('4') { cOpEP } RETURN zonlyRepAutoCycle: doSepSubContour EachCycle IF NOT FirstCycle? doSepSubSPMove END doSepSubZMoves NextCycle IF FeedConnect? doSepSubExit END SeqC EndSub EOL CloseSub {Element shift, not pattern} autoCycPat {write pattern moves and main calls} resetSepSubSR TrackZNO# ClearancePlane2# RETURN zonlyRep: doSepSubContour EachCycle IF NOT FirstCycle? doSepSubSPMove END doSepSubZMoves NextCycle resetSepSubSR IF FeedConnect? doSepSubExit ELSE TrackZNO# ClearancePlane3# END RETURN ckCoolOff: IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane? ELSE IF LastOp? CoolOff ELSE IF NEXT NewTool? CoolOff ELSE IF ProgStop? CoolOff ELSE IF NOT CoolOff? AND NEXT CoolOff? CoolOff END END END END END RETURN millingOp: 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 setSRXYtoACEP ELSE SeqC CRCOffC RapidC ZCP3C END IF NOT Rotations? ckCoolOff END EOL RETURN skipToLastFeat: EachFeat IF LastFeat? TrackXNO# SPX# TrackYNO# SPY# CalcSCAng TrackCNO# MoveC# END NextFeat RETURN setDrillEndOpZ: IF RetractToCP1? TrackZNO# ClearancePlane1# ELSE TrackZNO# ClearancePlane2# END RETURN drillingOp: SeqC DrillCP EOL GetCycle SeqC Cycle FromCP RLevel ZDepth Dwell Peck Retract FeedEnt 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 IF NOT Rotations? SeqC DrillOff EOL SeqC Rapid ZCP3 ckCoolOff EOL END RETURN checkPass: {use the correct StrtPos} IF AutoCycle? SetPass2 ELSE SetPass1 END RETURN rotateStartPosC: TrackXNO# Recall# Num#('1') { xOpEP } MoveSXC IF NOT RotaryMill? TrackYNO# Recall# Num#('2') { yOpEP } MoveSYC END CalcSCAng FadalMoveC RETURN rotaryReps: {use the correct EndPos} EachRotation IF Milling? IF FirstRotation? NewProg SaveProgNum2 StartSub millingOp SeqC EndSub EOL CloseSub checkPass ELSE SeqC rotateStartPosC EOL END SeqC SubCall CallLabB Program2# EOL IF LastRotation? SeqC ckCoolOff EOL END ELSE IF Drilling? IF FirstRotation? drillingOp checkPass ELSE IF RetractToCP1? AND Equal? ClearancePlane1# ClearancePlane3# SeqC rotateStartPosC EOL ELSE IF NOT RetractToCP1? AND Equal? ClearancePlane2# ClearancePlane3# SeqC rotateStartPosC EOL ELSE { Need to cancel Drill Cycle between Rotations } SeqC DrillOff EOL SeqC Rapid ZCP3 EOL SeqC rotateStartPosC EOL SeqC DrillCP EOL SeqC Cycle FromCP RLevel ZDepth Dwell Peck Retract FeedEnt EOL END END END IF CallMasterOp? IF NOT FirstRotation? SeqC SubCall CallLabB CallMasterNum# EOL END ELSE IF MasterOp? IF NOT FirstRotation? SeqC SubCall CallLab EOL END ELSE IF Flag?('9') { valid Drill Rotation Sub } SeqC SubCall CallLab EOL END END END IF LastRotation? SeqC DrillOff EOL SeqC Rapid ZCP3 ckCoolOff EOL END END END IF LastRotation? EachFeat IF LastFeat? IF PointFeat? CalcSCAng ELSE CalcCAng END TrackCNO# MoveC# EOL END NextFeat END NextRotation TrackXNO# Recall# Num#('1') { xOpEP } TrackYNO# Recall# Num#('2') { yOpEP } TrackZNO# ClearancePlane3# RETURN opGuts: IF Rotations? rotaryReps ELSE IF Milling? millingOp ELSE IF Drilling? drillingOp END END END RETURN progStart: InitProg ReverseXZArcs InitWFONum SetFlood SetMaxRPM('10000') IF Metric? SetMaxFeed('12700') SetArcSegmentAccuracy('.0127') ELSE SetMaxFeed('500') SetArcSegmentAccuracy('.0005') END SetFadalSegAngleLimit('359.95') Save# Num#('1') Num#('0') { Status Register Variable for X Axis } Save# Num#('2') Num#('0') { Status Register Variable for Y Axis } Save# Num#('4') Num#('0') { Status Register Variable for C Axis } Save# Num#('5') Num#('0') { AutoCycle SetPass1 C Axis Travel } 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('9') { For valid Drill Rotation Sub } SetFlagF('21') { CRCOffsetC } 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 ' 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 END RETURN initOp: '1111' EOL EOR EOL 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 ' MoveType$ ' INCHES )' EOL END IF PartsComment? '( PARTS PROGRAMMED: ' Parts# ' )' EOL END IF StartToolComment? '( FIRST TOOL NOT IN SPINDLE )' EOL END END OpenSub restoreScale SeqC CRCOff ' G49' DrillOff AbsOrInc EOL SeqC IncValue OfstOff EOL RETURN firstOp1: IF ToolChangeAtHome? SetHome END Plane {no output} Seq OpToolID ToolChng EOL SeqC ProgStop doToolComment EOL doOpComments doPostScript RETURN firstOp2: SeqC wfoStuff Speed SpinOn EOL CheckPass SeqC AbsOrInc ' G43' Rapid doStartPos ZCP1 ToolOfst CoolOn EOL RETURN firstOp3: RETURN newToolOp1: SeqC IncValue OfstOff EOL SeqC AbsOrInc ' G49' EOL setAngleUnder360 RETURN newToolOp2: doEndOpPS IF LAST ProgStop? SeqC ' M0' EOL END RETURN newToolOp3: {Start new Operation} Plane {no output} Seq OpToolID ToolChng EOL SeqC ProgStop doToolComment EOL doOpComments doPostScript RETURN newToolOp4: SeqC wfoStuff Speed SpinOn EOL CheckPass SeqC AbsOrInc ' G43' Rapid doStartPos ZCP1 ToolOfst CoolOn EOL RETURN newToolOp5: RETURN sameToolOp1: IF LAST ProgStop? SeqC IncValue OfstOff EOL SeqC AbsOrInc ' G49' EOL doEndOpPS SeqC ' M0' EOL ELSE doEndOpPS IF NewToolOffset? SeqC IncValue OfstOff EOL SeqC AbsOrInc ' G49' EOL END END setAngleUnder360 RETURN sameToolOp2: {Start new Operation} doOpComments doPostScript CheckPass Plane {no output} RETURN sameToolOp3: {Start new Operation} IF LAST ProgStop? SeqC wfoStuff SpeedC SpinOn EOL SeqC AbsOrInc ' G43' Rapid doStartPos ZCP1 ToolOfst CoolOn EOL ELSE SeqC wfoStuff SpeedC EOL SeqC AbsOrInc IF NewToolOffset? ' G43' END Rapid doStartPos IF NewToolOffset? ZCP1 ToolOfst END IF NOT CoolOff? AND LAST CoolOff? CoolOn END EOL END RETURN end1: SeqC IncValue OfstOff EOL SeqC AbsOrInc ' G49' EOL setAngleUnder360 IF NotEqual? UnitAngle# Num#('0') SeqC absOrIncC RapidC ' A' IF GreaterThan? UnitAngle# Num#('180') {Added - JHE} '-' END TrackC# Num#('0') EOL END RETURN end2: doEndOpPS IF ProgStop? SeqC ' M0' EOL END RETURN end3: SeqC ' G53 X0. Y10.' EOL SeqC EOP EOL CloseSub Post2 {organize Subs into one program} EOR EOL 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 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 CoolOff 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 CoolOff 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:
Fadal 1 [SP] PM886 17 8
Fadal [EI] M605 89
Fadal [CM] PM992 17 6
Fadal [CM] PM992 17 6
Fadal [EI] D605 12
Fadal Format 2 [E] PM585 17 6
Fadal [EI] C605 12 1
Fadal [INS] PM452 17 6
Fadal Format 1 [RPB] PMX95 17 6
Fadal Format 1 [MD] PMV25 17 6
Fadal Format 2 [CM] PM235 17 5
Fadal Format 1 [Coh] PM212 17 5
Fadal Format 2 [AC] RM807 17 6
Fadal Format 2 [AM] PMW48 17 6
Fadal Format 1 [CSE] PM917 17 6
Fadal Format 2 [LC] PMT88 17 5

więcej podobnych podstron