plik


{ MILL=T LATHE=F SIMPLE_ROT_POS=T ROTARY_MILL=F ADV_MILL=F SUBS=T MILLTURN_Y-AXIS=F METRIC=F } {Change Comments ***********************************************************} { 10/24/94 [cwh] B611.81.5 ( from B611.81.4 ) Made changes to ZOnlyRep and FinishSub1 subs to properly handle Feed connects and clearance moves. } {11/8/94 Modified: Fadal Format 2 (FW) B611.81.5 For: Gibbs & Associates Versions: Catalyst v2.14.12C/Compost 4.21.23 Changes made per Pete Jackson Changed all occurances of SeqC to SeqLab. Charles reported a problem involving operations that do not change coordinate systems from previous operations. Added ClearCSOffset at NotSameToolWFO and SameToolWFO subs. DWB} {11/16/94 Fixed Program Stop bug in NewToolOp2. Tom Hubina} { Format: Fadal Format 2 (FW) B611.00 1/4/95 Changed version number to .00 from .81.7 per Fanuc 6M (PW) C001.00.03 Changed all CSAngleAC and CSAngleBC calls to CSAngleA and CSAngleB to output the A and B commands at the start of every operation. Added AAxisAvail? and BAxisAvail? checks to CSAngleA and CSAngleB subs Added return to CS1 moves to End2 Added G92 reset of A and/or B axis to End2 Changed NotSameTool WFO so it would restate the current WFO if no change in CS Added ClearCSOffset to OpenMP: CloseMP: and SubCSMP: Added if AChange? OR BChange? to home postition call-out in SameToolOp1 Replaced SetZRepInc and RestoreAbsOrInc with one sub called DoAbsOrInc. Any line with SetZRepInc now has DoAbsOrInc as the first command after the SeqC. TH} { Format: Fadal Format 2 (FW) B611.00.01 1/13/95 Formatted TrackZNO# to #4 } { Added ClearCSOffset to SubCSMP TH} { Changed SeqC's to SeqLabs 4/21/95 TH} { Fixed unwind code in End2: 5/25/95 TH} {6/9/95 Fixed CRC so it won't output on a helix TH} {7/10/95 Updated: Fadal Format 2 (FW) B611.00.04 For: Gibbs & Associates/Tru-Cut Machine Company Versions: ncCad 4.33.01/ncCAM 4.33.01/ncPost 4.33.06/Catalyst v2.14.40/Compost 4.21.30/1.0a Changes made per Pete Jackson and Bryan Widholm of Tru-Cut Machine Company. Changed Coolant On from M07 to M08 in Mach Spec Commands 3 dialog. Updated to Version 4.2 per Fanuc 6M M001.81.2g Format. Modified CkCRC sub. Added logic to suppress output of CRCOnC on ZMove Feature. Added logic to suppress output of CRCOnC in OneFeat ToolPath. Moved ResetCRCNum at start of ToolPath to CkCRC sub. Added support of CRC during multiple pocket dog-bone operation. Added condition to output CRCOnC for XMove OR YMove only at CkCRC sub. Outputs G41/G42 on First LineFeat after Z Plunge. Modified condition to output CRCOffC for LastFeat AND AutoCycle at ToolPath RapidFeat. Assures that G40 is not output prior to LastFeat. Added CRCOffC to ZMoveOnly Feature at ToolPath RapidFeat. Outputs G40 at all Z Retract blocks. Deleted DoArcCRC sub. CkCRC sub now also called at FormatArc sub. Deletes use of Flag(8) Deleted CRCValue sub. Not needed because problem has been resolved, see CNCVIS1 M611.81.7, 5/5/93. Simplified output of Canned Drill Cycle block at IF Drilling. DWB} {8/23/95 - Updated to .10 format TH} {1/17/96, Updated .10 to .11 version, MPK} {3/25/96, Tested ZOnlyRepAutoCycle, Changed version # to .12, MPK} {11/17/97, Initial : Fadal Format 2 [FW] B611.12 Created: Fadal Format 2 [AM] BW48.12 Customer: Astro Machine 1. Added CRCOfst to OfstOn (Z-axis motion) in 6 places. 2. Added RapidF# to ToolPath sub routine and FORMAT for RapidF#. JHE} {25Jan99 Original: Fadal Format 2 [AM] BW48.12 Created: Fadal Format 2 [AM] BW48.12.1 For: Astro Machine Changes made per: Al Boothe Develop: Catalyst 5.03/ComPost2 1.7b13 Added Post Header Comment at the top of Prog. Changed the Pulse? Boolean to PosApproach? before and after the Drilling Cycle. This fixed the customers Positive approach problem. M46 and M47 were not being output. Charles Winston} {3/19/99 Initial: Fadal Format 2 [AM] BW48.12.1 Created: Fadal Format 2 [AM] PMW48.17.6 Made Simple 4th axis poitioning post per CNCVIS2 PM611.17.6 MPK} {Prog Numeric Format Definitions ****} #1 = '#.00' #2 = '#####.###;0.' #3 = '*#####.###;0.' #4 = '####.####;0.' #5 = '#######0' #6 = '00' #7 = '#' FORMAT(FileFeet#,1) FORMAT(FileMeters#,1) FORMAT(UnitAngle#,2) FORMAT(TrackCNO#,2) FORMAT(TrackC#,2) FORMAT(MoveC#,2) FORMAT(Dwell#,2) FORMAT(Recall#,4) FORMAT(ADD#,4) FORMAT(ToolDiameter#,4) FORMAT(TrackXNO#,4) FORMAT(TrackYNO#,4) FORMAT(TrackZNO#,4) FORMAT(Program#,5) FORMAT(Operation#,5) FORMAT(Tool#,5) FORMAT(NewWFO#,5) FORMAT(Parts#,5) FORMAT(TRUNC#,6) FORMAT(Program2#,6) FORMAT(CallMasterNum#,6) FORMAT(RapidF#,7) {Added Subroutines ****} spReset: {update to the correct StartPos} TrackXNO# SPX# TrackYNO# SPY# RETURN resetSP: {update to the correct StartPos} IF Rotations? OR Repeats? OR AutoCycle? 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 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 } 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: 'E' 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? SeqLabC '* SUB NUMBER: ' Program# EOL END RETURN doOpComments: IF UseComments? SetScale('1') SeqLabC '* OPERATION ' Operation# IF OperationIDComment? ': ' OperationType$ END EOL IF OperationComment? SeqLabC '* ' OperationComment$ EOL END IF WorkGroupComment? SeqLabC '* ' WorkGroupComment$ EOL END SeqLabC '* TOOL ' Tool# IF ToolTypeComment? ': ' ToolDiameter# ' ' ToolType$ END EOL IF ToolComment? SeqLabC '* ' ToolComment$ EOL END restoreScale END RETURN psInit: NewWFOF FourthCWF FourthCCWF RotateF OptCyc1F MasterOpF CallMasterOpF RETURN psStuff: IF FifthCW? FORMAT(FifthDegree#,2) SeqLabC 'B' FifthDegree# EOL FifthCWF END IF FifthCCW? FORMAT(FifthDegree#,3) SeqLabC 'B' FifthDegree# EOL FifthCCWF END RETURN doPostScript: psInit EachPS SeqLabC PostScript EOL psStuff NextPS RETURN doEndOpPS: psInit EachEOPS SeqLabC 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: StrtPos 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? SeqLabC Feed ZIn FeedEntC EOL ELSE SeqLabC RapidC ZIn EOL END RETURN startSub: OpenSub SeqLabC SubIDF EOL doSubComment RETURN subWarning: IF NOT FeedConnect? IF AnyZshift? ' ' EOL SeqLabC '* WARNING Z CLEARANCE WILL CHANGE WITH EACH CYCLE OF SUB REPEAT' EOL ' ' EOL END END RETURN stdSub: FORMAT(Recall#,6) Save# Num#('10') Num#('0') { FORMATting for Number of Subroutine Loops } EachRep Save# Num#('10') ADD# Recall# Num#('10') Num#('1') IF GreaterThan? Recall# Num#('10') Num#('99') SeqLabC CallLab '99' EOL Save# Num#('10') Num#('1') END NextRep SeqLabC CallLab Recall# Num#('10') EOL startSub FORMAT(Recall#,4) RETURN finishSub1: {part 1} IF NOT FeedConnect? SeqLabC RapidC ZCP3C EOL END RETURN finishSubG92: {part 2} SeqLabC Preset ShiftR EOL SeqLabC EndSub EOL CloseSub SeqLabC Preset UnshiftR EOL RETURN doWFOOps: IF Flag?('5') SetFlagF('5') { Suppress Redundant WFO for MP-WFO-OTAP-ECP } ELSE SeqLabC Rapid doStartPos SetWFO EOL END SeqLabC CallLab 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 FORMAT(Recall#,6) Save# Num#('10') Num#('0') { FORMATting for Number of Subroutine Loops } EachPart Save# Num#('10') ADD# Recall# Num#('10') Num#('1') IF GreaterThan? Recall# Num#('10') Num#('99') SeqLabC CallLab '99' EOL Save# Num#('10') Num#('1') END NextPart SeqLabC CallLab Recall# Num#('10') EOL IF OneToolAllParts? AND ExitClearancePlane? SetFlag('2') { Need to output wfoStuff twice for MP-ESO-OTAP-ECP, once for all others } END startSub FORMAT(Recall#,4) END RETURN closeMP: IF WorkFixtureOffsets? SeqLabC EndSub EOL CloseSub ELSE SeqLabC Preset ShiftP EOL SeqLabC EndSub EOL CloseSub SeqLabC Preset UnshiftP EOL END RETURN SubCSMP: IF WFOCS? IF ChangeCS? SeqLabC EndSub EOL CloseSub NewProg StartSub SaveCSProg END ClearCSOffset 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 } SeqLabC absOrIncC EOL END RETURN ckCRC: IF LastFeat? IF NOT ArcFeat? CRCOffC END ELSE IF NOT ZMove? CRCOnC END END RETURN ckCRCNum: IF NOT LastFeat? AND Equal? SPZ# EPZ# CRCOffsetC END RETURN StdLine: {enables CRC on first call} IF Decelerate? IF RoomToDecel? DecelMove1 SeqLabC DoAbsOrInc CkCRC FeedC MoveXYZC FeedRateC CRCOffsetC EOL DecelMove2 END SeqLabC DoAbsOrInc CkCRC FeedC MoveXYZC DecelFeed CRCOffsetC EOL ELSE IF XMove? OR YMove? OR ZMove? SeqLabC DoAbsOrInc CkCRC FeedC MoveXYZC FeedRateC CRCOffsetC EOL END END RETURN tpPointFeat: IF AutoCycle? SeqLabC MoveSXYC EOL IF Repeats? AND ZshiftOnly? SeqLabC CallLabB TRUNC# SUB# Program# Num#('1') '01' EOL ELSE SeqLabC CallLab '01' 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 SeqLabC doDrillAbsOrInc MoveSXYZC EOL END IF LastFeat? IF Flag?('9') { valid Drill Rotation Sub } restoreAbsOrInc IF NOT MasterOp? SeqLabC EndSub EOL CloseSub END END END END RETURN tpRapidFeat: IF XMove? OR YMove? OR ZMove? SeqLabC doAbsOrInc ckCRC RapidC MoveXYZC ckCRCNum EOL END RETURN tpLineFeat: IF XMove? OR YMove? OR ZMove? SeqLabC doAbsOrInc ckCRC FeedC MoveXYZC FeedRateC ckCRCNum EOL END RETURN tpArcFeat: EACHQuadrant { Do not use NOT, FIRST, LAST or NEXT modifiers in this loop } SeqLabC doAbsOrInc ckCRC IF ArcCW? CWArcC ELSE CCWArcC END MoveXYZC IF ArcIJFormat? ArcIJC ELSE ArcRC END ArcFeedC ckCRCNum EOL NEXTQuadrant RETURN toolPath: ResetCRCNum EACHFeat IF FirstFeat? resetSP END IF PointFeat? tpPointFeat ELSE IF RapidFeat? tpRapidFeat ELSE IF FirstFeat? OR Rapid? SeqLabC 'G8' EOL END IF LineFeat? tpLineFeat ELSE IF ArcFeat? tpArcFeat END END END END IF LastFeat? getEP END NEXTFeat SeqLabC CRCOffC EOL restoreAbsOrInc RETURN autoCycCutSub1: {part 1} SaveSubStatus {save tool position} SetPass1 {element cut moves} startSub SetSRXYtoSP SeqLabC incValueC EOL RETURN autoCycCutSub2: {part 2} toolPath SeqLabC absOrIncC IF Repeats? AND FeedConnect? AND ZshiftOnly? ELSE RapidC ZCP2 END EOL SeqLabC 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 SeqLabC 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 SeqLabC EndSub EOL CloseSub END SetPass1 SetStatusRapid RapidF# SetSRXYtoEP TrackZNO# ClearancePlane2# RETURN doSepSubFeedConnect: IF FeedConnect? FeedEntC END RETURN doSepSubSPMove: SetStatusOff IF SPXMove? OR SPYMove? IF AutoCycle? incValueC END SeqLabC Connect StrtPosC doSepSubFeedConnect EOL absOrIncC ELSE Connect END SetStatusOn RETURN doSepSubZMoves: IF FeedConnect? SeqLabC FeedC ZInPlusInc FeedEnt EOL ELSE IF FeedEntry? IF NOT FirstCycle? SeqLabC RapidC ZCP2PlusInc EOL END SeqLabC Feed ZInPlusInc FeedEnt EOL ELSE IF FirstCycle? AND AutoCycle? Rapid END SeqLabC RapidC ZInPlusInc EOL END END SeqLabC CallLab '01' EOL IF NOT FeedConnect? AND NOT AbsValue? TrackZNO# ZCP2PlusInc# SeqLabC 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? SeqLabC 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 } RETURN zonlyRepAutoCycle: doSepSubContour EachCycle IF NOT FirstCycle? doSepSubSPMove END doSepSubZMoves NextCycle IF FeedConnect? doSepSubExit END SeqLabC 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 millingOp: SeqLabC 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? SeqLabC ZCP3C EOL setSRXYtoACEP ELSE SeqLabC RapidC ZCP3C EOL END RETURN skipToLastFeat: EachFeat IF LastFeat? TrackXNO# SPX# TrackYNO# SPY# END NextFeat RETURN setDrillEndOpZ: IF RetractToCP1? TrackZNO# ClearancePlane1# ELSE TrackZNO# ClearancePlane2# END RETURN drillingOp: IF NOT Rotations? IF PosApproach? { Positive Approach On } SeqLabC 'M46' EOL END END SeqLabC DrillCP EOL GetCycle SeqLabC IF RigidTap? 'G84.1' ELSE Cycle END FromCP doStartPos ZDepth RLevel Dwell Peck Retract FeedEnt IF RigidTap? Speed END EOL IF CallMasterOp? SeqLabC CallLabB CallMasterNum# '01' EOL skipToLastFeat ELSE TrackZNO# SPZ# IF MasterOp? SetFlag('1') { DrillSubs activated } NewMasterProg SeqLabC CallLab '01' EOL startSub toolPath SeqLabC EndSub EOL CloseSub SetFlagF('1') { DrillSubs deactivated } ELSE toolPath END END setDrillEndOpZ IF NOT Rotations? IF PosApproach? { Positive Approach Off } SeqLabC 'M47' EOL END SeqLabC DrillOff Rapid ZCP3 EOL END RETURN getSpeed: IF Drilling? GetCycle END IF Drilling? AND RigidTap? IF FirstOperation? OR NewTool? SeqLabC Speed EOL END SeqLabC SpeedC EOL SeqLabC 'G84.2' EOL ELSE IF FirstOperation? OR NewTool? SeqLabC Speed SpinOn EOL ELSE { SameTool } IF LAST ProgStop? SeqLabC SpeedC SpinOn EOL ELSE SeqLabC SpeedC EOL END END END RETURN checkPass: {use the correct StrtPos} IF AutoCycle? SetPass2 ELSE SetPass1 END RETURN rotateStartPosC: TrackXNO# Recall# Num#('1') { xOpEP } MoveSXC TrackYNO# Recall# Num#('2') { yOpEP } MoveSYC CalcSCAng FadalMoveC RETURN rotaryReps: {use the correct EndPos} EachRotation IF Milling? IF FirstRotation? NewProg SaveProgNum2 StartSub millingOp SeqLabC EndSub EOL CloseSub checkPass ELSE SeqLabC rotateStartPosC EOL END SeqLabC CallLabB Program2# '01' EOL ELSE IF Drilling? IF FirstRotation? IF PosApproach? { Positive Approach On } SeqLabC 'M46' EOL END drillingOp checkPass ELSE IF RetractToCP1? AND Equal? ClearancePlane1# ClearancePlane3# SeqLabC rotateStartPosC EOL ELSE IF NOT RetractToCP1? AND Equal? ClearancePlane2# ClearancePlane3# SeqLabC rotateStartPosC EOL ELSE { Need to cancel Drill Cycle between Rotations } SeqLabC DrillOff Rapid ZCP3 EOL SeqLabC rotateStartPosC EOL SeqLabC DrillCP EOL SeqLabC IF RigidTap? 'G84.1' ELSE Cycle END FromCP rotateStartPosC ZDepth RLevel Dwell Peck Retract FeedEnt IF RigidTap? Speed END EOL END END END IF CallMasterOp? IF NOT FirstRotation? SeqLabC CallLabB CallMasterNum# '01' EOL END ELSE IF MasterOp? IF NOT FirstRotation? SeqLabC CallLab '01' EOL END ELSE IF Flag?('9') { valid Drill Rotation Sub } SeqLabC CallLab '01' EOL END END END IF LastRotation? IF PosApproach? { Positive Approach Off } SeqLabC 'M47' EOL END SeqLabC DrillOff Rapid ZCP3 EOL END END 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('15000') 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 } Save# Num#('10') Num#('0') { FORMATting for Number of Subroutine Loops } 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 } 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: EOR EOL SeqLabC ProgID1 IF UseComments? AND ProgramNameComment? '*' ProgramName$ END EOL SetProgNum('0') IF UseComments? IF ProgramComment? SeqLabC '* ' ProgramComment$ EOL END IF FormatNameComment? SeqLabC '* FORMAT: ' FormatName$ EOL END IF TimeComment? SeqLabC '* ' Date$ ' AT ' Time$ EOL END IF MovesComment? SeqLabC '* OUTPUT IN ' MoveType$ ' INCHES' EOL END IF PartsComment? SeqLabC '* PARTS PROGRAMMED: ' Parts# EOL END IF StartToolComment? SeqLabC '* FIRST TOOL NOT IN SPINDLE' EOL END END OpenSub restoreScale RETURN firstOp1: IF ToolChangeAtHome? SetHome END SeqLabC OpToolID ToolChng EOL doOpComments doPostScript RETURN firstOp2: SeqLabC wfoStuff EOL IF Drilling? AND Tap? AND OptCyc1? SeqLabC Speed EOL SeqLabC 'G84.2' EOL ELSE SeqLabC Speed SpinOn EOL END checkPass SeqLabC Plane AbsOrInc Rapid doStartPos EOL RETURN firstOp3: SeqLabC OfstOn CRCOfst CoolOn EOL RETURN newToolOp1: SeqLabC Rapid AbsOrInc SpinOff CoolOff EOL SeqLabC 'G53Z0' EOL setAngleUnder360 RETURN newToolOp2: doEndOpPS IF ToolChangeAtHome? SeqLabC 'G53' Home EOL END IF LAST ProgStop? SeqLabC 'M00' EOL ELSE SeqLabC ProgStop EOL END RETURN newToolOp3: {Start new Operation} SeqLabC OpToolID ToolChng EOL doOpComments doPostScript RETURN newToolOp4: SeqLabC wfoStuff EOL IF Drilling? AND Tap? AND OptCyc1? SeqLabC Speed EOL SeqLabC 'G84.2' EOL ELSE SeqLabC Speed SpinOn EOL END CheckPass SeqLabC Plane AbsOrInc Rapid doStartPos EOL RETURN newToolOp5: SeqLabC OfstOn CRCOfst CoolOn EOL RETURN sameToolOp1: doEndOpPS IF LAST ProgStop? SeqLabC 'G0H0Z0' CoolOff SpinOff 'M00' EOL { does this do a full up? } ELSE IF CoolOff? AND LAST NOT CoolOff? SeqLabC CoolOff EOL END END setAngleUnder360 RETURN sameToolOp2: {Start new Operation} doOpComments doPostScript checkPass RETURN sameToolOp3: {Start new Operation} SeqLabC wfoStuff EOL IF LAST ProgStop? IF Drilling? AND Tap? AND OptCyc1? SeqLabC SpeedC EOL SeqLabC 'G84.2' EOL ELSE SeqLabC SpeedC SpinOn EOL END SeqLabC PlaneC AbsOrInc Rapid doStartPos EOL SeqLabC OfstOn CRCOfst CoolOn EOL {Added CRCOfst - JHE} ELSE IF NewToolOffset? SeqLabC 'G0H0Z0' EOL { OfstOff } SeqLabC SpeedC EOL SeqLabC PlaneC AbsOrInc Rapid doStartPos EOL SeqLabC OfstOn CRCOfst EOL ELSE SeqLabC SpeedC EOL SeqLabC PlaneC AbsOrInc Rapid doStartPos EOL END IF NOT CoolOff? AND LAST CoolOff? SeqLabC CoolOn EOL END END RETURN end1: SeqLabC Rapid AbsValue SpinOff CoolOff EOL SeqLabC 'G53Z0' EOL setAngleUnder360 IF NotEqual? UnitAngle# Num#('0') SeqLabC absOrIncC RapidC 'A' IF GreaterThan? UnitAngle# Num#('180') {Added - JHE} '-' END TrackC# Num#('0') EOL END RETURN end2: doEndOpPS IF ToolChangeAtHome? SeqLabC absOrIncC Rapid FirstHome EOL END IF ProgStop? SeqLabC 'M0' EOL END RETURN end3: SeqLabC 'X0Y0Z0E0H0' EOL SeqLabC EOP EOL EndSubs CloseSub Post2 {organize Subs into one program} EOR EOL Close Retag 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 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 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 Format 2 (AM) CW48 12
Fadal Format 1 [RPB] PMX95 17 6
Fadal Format 2 (AM) DW48 12
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] BW48 12 1
Fadal Format 1 [CSE] PM917 17 6
Fadal Format 2 [LC] PMT88 17 5
Fadal Format 1 [FS] RMQ11 17 7
Fadal Format 1 [Coh] PM997 17 5
Fadal Format 1 [SM] PMT74 17 6
Fadal Format 2 [E] PM585 17 6
Fadal Format 2 (AC) B807 12

więcej podobnych podstron