Dynapath 50M [HTT] MV13 89 1


{Change Comments ***********************************************************} {9/22/95, Updated Dynapath Delta 20 MT M779.81.3 to .85 format per Dynapath 20M Conv[RB] M617.85, JR} {11/2/95 Modified: Dynapath Delta 20 MT M779.85 For: Gibbs & Associates Versions: ncCad 4.33.01/ncCAM 4.33.01/ncPost 4.33.08/Catalyst v2.28.04/Compost 4.21.33/1.0a Various necessary minor changes, too numerous to list due to time constraints. DWB} {3/13/96 Initial: Dynapath Delta 20 MT M779.85.1 Created: Dynapath Delta 50 MT Mxxx.86 ForUser: Micron Tech Control: Dynapath Delta 50 Machine: ???? Develop: ComPost 4.21.34, Catalyst68K v3.02.02C Comment: New Processor per conversation with Brian Kramer at Micron Tech Added Coolant. Added automatic tool changer and tool offsets. Updated to .86 format. Jim Radcliffe} {3/22/96, Tested ZOnlyRepAutoCycle, Changed version # to .89, MPK} {4/24/96 Initial: Dynapath 50M [MT] M963.89 Created: Dynapath 50M [MT] M963.89.1 ForUser: Micron Technology, Inc. Develop: ComPost 4.21.34, Catalyst68K v3.02.13C Comment: Modified per faxes from Brian Kramer. Added Rigid Tapping. Tested reported bad F and L commands. Jim Radcliffe} {6/4/97 Initial: Dynapath 50M [MT] M963.89.1 Created: Dynapath 50M [MT] M963.89.2 ForUser: Micron Technology, Inc. Develop: ComPost2 68K 1.0b11, CatalystPPC v3.33C Comment: Modified processor per marked up readout from Brian Kramer. Changed first line of program from ProgramComment$ to Program#. Modified Q value output for Drill Peck Cycles. Jim Radcliffe} {20Feb98 Original: Dynapath 50M [MT] M963.89.2 Created: Dynapath 50M [HTT] MV13.89 For: HTT Inc Changes made per: Mark Tauschek of PCC Deleted old version numbers and comments e.g. {.62}, {commands}, {literals}, etc Deleted EOR at the start of FirstOperation Changed first line of program from '(' Program# ')' to '(' ProgramComment$ ')' Deleted IF ProgramNameComment? boolean in FirstOperation Deleted Literal '00' after OpToolID at FirstOp and NewTool Charles Winston} {02Mar98 Original: Dynapath 50M [HTT] MV13.89 Created: Dynapath 50M [HTT] MV13.89.1 For: PCC / HTT Inc Changes made per: Mark Tauschek of PCC Deleted ToolOffset# in FirstOperation and NewTool Deleted EOR and replaced with litteral 'END' at end of Prog. Charles Winston} {Prog Numeric Format Definitions *******************************************} #1 = '#.00' #2 = '###.###;0.' #3 = '*###.###;0.' #4 = '####.####;0.' #5 = '#######0' #6 = '###.#;0' #7 = '00' FORMAT(FileFeet#,1) FORMAT(FileMeters#,1) FORMAT(SPX#,4) FORMAT(SPY#,4) FORMAT(StartPosX#,4) FORMAT(StartPosY#,4) FORMAT(Retract#,4) FORMAT(ToolDiameter#,4) FORMAT(Recall#,5) FORMAT(Tag#,5) FORMAT(CallMasterNum#,5) FORMAT(Program#,5) FORMAT(Operation#,5) FORMAT(Tool#,5) FORMAT(Parts#,5) FORMAT(RapidF#,6) FORMAT(DIV#,6) FORMAT(Dwell#,6) FORMAT(NewWFO#,7) FORMAT(ToolOffset#,7) {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 Get$: { For conversational output } IF NOT EmptyLine? '$' END RETURN TurnCRCOn: IF CutterRadiusCompensation? AND NOT Flag?('2') IF NOT LastFeat? AND NOT ZMove? SetFlag('2') SeqLab '(1)' IF AutoCycle? MoveSX '/' MoveSY '/' ELSE MoveSX MoveSY END CRCOff Get$ EOL END END RETURN TurnCRCOff: IF CutterRadiusCompensation? AND Flag?('2') SetFlagF('2') SeqLab '(1)' IF AutoCycle? MoveX '/' MoveY '/' ELSE MoveXY END CRCOff Get$ EOL END RETURN DoSubComment: IF UseComments? AND SubComment? SeqLab '(T) SUB NUMBER ' Tag# Get$ EOL END RETURN DoOpComments: IF UseComments? SetScale('1') IF OperationIDComment? SeqLab '(T) OPERATION ' Operation# ' ' OperationType$ Get$ EOL END IF OperationComment? SeqLab '(T) ' OperationComment$ Get$ EOL END IF WorkGroupComment? SeqLab '(T) ' WorkGroupComment$ Get$ EOL END IF ToolTypeComment? SeqLab '(T) TOOL# ' Tool# ' ' ToolDiameter# ' ' ToolType$ Get$ EOL END IF ToolComment? SeqLab '(T) ' ToolComment$ Get$ EOL END RestoreScale END RETURN PSInit: NewWFOF RotateF OptCyc1F MasterOpF CallMasterOpF RETURN PSStuff: FourthCWF FourthCCWF FifthCWF FifthCCWF RETURN DoPostScript: PSInit EachPS SeqLab PostScript Get$ EOL PSStuff NextPS RETURN DoEndOpPS: PSInit EachEOPS SeqLab EndOpPS Get$ EOL PSStuff NextPS RETURN EntryMove: SeqLab IF FeedEntry? '(1)' ELSE '(0)' END ZIn IF AutoCycle? { Implies Incremental } '/' END IF FeedEntry? FeedEnt END Get$ EOL RETURN StartSub: OpenSub DoSubComment '>' Tag# EOL RETURN SubWarning: IF NOT FeedConnect? IF AnyZshift? SeqLab '(T) ' Get$ EOL SeqLab '(T) *** WARNING ***' Get$ EOL SeqLab '(T) Z CLEARANCE WILL' Get$ EOL SeqLab '(T) CHANGE WITH EACH' Get$ EOL SeqLab '(T) CYCLE OF SUB!' Get$ EOL SeqLab '(T) ' Get$ EOL END END RETURN StdSub: 'È' Tag# EOL SeqLab '(7)FÅ‚' Tag# 'L²' Tag# Get$ EOL SeqLab '(6)FÇ' Tag# 'T' RepsLess1 Get$ EOL StartSub RETURN FinishSub1: {part 1} IF NOT FeedConnect? SeqLab IF AutoCycle? '(0)' ZCP3 ELSE IF FIFO? '(1)' ZCP3 FeedEntC ELSE '(0)' ZCP3 END END Get$ EOL END RETURN FinishSubG92: {part 2} SeqLab '(0)' ShiftRC Preset Get$ EOL '<' Tag# EOL TagDown CloseSub SeqLab '(0)' UnshftRC Preset Get$ EOL RETURN OpenMP: TagUp TagInc IF WorkFixtureOffsets? NewWFO EachWFO SeqLab '(9)' SetWFO Get$ EOL SeqLab '(7)FÅ‚' Tag# 'L²' Tag# Get$ EOL IncWFO NextWFO ELSE 'È' Tag# EOL SeqLab '(7)FÅ‚' Tag# 'L²' Tag# Get$ EOL SeqLab '(6)FÇ' Tag# 'T' PartsLess1 Get$ EOL END StartSub RETURN CloseMP: IF WorkFixtureOffsets? '<' Tag# EOL TagDown CloseSub SeqLab '(9)' WFO1 Get$ EOL ELSE SeqLab '(0)' ShiftPC Preset Get$ EOL '<' Tag# EOL TagDown CloseSub SeqLab '(0)' UnshftPC Preset Get$ EOL END RETURN DoAbsOrInc: IF Flag?('1') { AbsoluteMoves? = TRUE } IF ZMove? AND AbsValue? SetInc ELSE IF NOT ZMove? AND NOT AbsValue? SetAbs END END END RETURN DoDrillAbsOrInc: IF Flag?('1') { AbsoluteMoves? = TRUE } IF SPZMove? AND AbsValue? SetInc ELSE IF NOT SPZMove? AND NOT AbsValue? SetAbs END END END RETURN RestoreAbsOrInc: IF Flag?('1') AND NOT AbsValue? { AbsoluteMoves? = TRUE } SetAbs END RETURN GetPlane: IF XYPlane? IF NOT AutoCycle? IF FirstFeat? IF XMove? OR YMove? 'P0' { This is the default Plane select } END END END ELSE IF XZPlane? 'P2' ELSE {YZPlane} 'P1' END END RETURN CheckMove: IF Drilling? IF Flag?('1') AND NOT AbsValue? { AbsoluteMoves? = TRUE } IF XMove? MoveSX '/' END IF YMove? MoveSY '/' END IF ZMove? MoveSZ '/' END ELSE MoveSXYZC END ELSE IF AutoCycle? { Implies Incremental } IF XMove? MoveX '/' END IF YMove? MoveY '/' END IF ZMove? MoveZ '/' END ELSE IF Flag?('1') AND NOT AbsValue? { AbsoluteMoves? = TRUE } IF XMove? MoveX '/' END IF YMove? MoveY '/' END IF ZMove? MoveZ '/' END ELSE MoveXYZC END END END RETURN FormatArc: DoAbsOrInc GetPlane CheckMove IF AutoCycle? ArcI '/' ArcJ '/' ELSE IF Flag?('1') AND NOT AbsValue? { AbsoluteMoves? = TRUE } ArcI '/' ArcJ '/' ELSE ArcIJ END END IF ArcCW? CWArc ELSE CCWArc END RETURN ckCRC: IF CutterRadiusCompensation? AND Flag?('2') IF NOT LastFeat? AND NOT ZMove? CRCOnC END END RETURN FormatLine: DoAbsOrInc GetPlane CheckMove ckCRC RETURN ckCRCNum: { Not supported } RETURN DrillCycle: Dwell Peck IF Peck? IF PeckChipBreaker? '/' END 'Q' Retract# END IF RigidTap? 'F' DIV# Num#('1') FeedTapIPR#('1') 'G8' ELSE FeedEnt Cycle END RETURN ToolPath: EACHFeat IF PointFeat? IF AutoCycle? IF NOT FirstFeat? SeqLab '(0)' MoveSXYC Get$ EOL END SeqLab '(7)FÅ‚' Tag# 'L²' Tag# Get$ EOL CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY} ELSE IF NOT FirstFeat? IF RetractToCP1? SeqLab '(0)' ZCP1 Rapid Get$ EOL SeqLab '(0)' MoveSXYC RLevel MoveSZ DrillCycle Get$ EOL ELSE SeqLab '(0)' DoDrillAbsOrInc CheckMove Get$ EOL END END END ELSE IF RapidFeat? IF XMove? OR YMove? OR ZMove? TurnCRCOn IF CutterRadiusCompensation? AND Flag?('2') SeqLab '(1)' FormatLine RapidFC Get$ EOL ELSE SeqLab '(0)' FormatLine Get$ EOL END END ELSE IF LineFeat? IF XMove? OR YMove? OR ZMove? TurnCRCOn IF Decelerate? IF RoomToDecel? DecelMove1 SeqLab '(1)' FormatLine FeedRateC Get$ EOL DecelMove2 END SeqLab '(1)' FormatLine DecelFeed Get$ EOL ELSE SeqLab '(1)' FormatLine FeedRateC Get$ EOL END END ELSE IF ArcFeat? EACHQuadrant { Do not use NOT, FIRST, LAST or NEXT modifiers in this loop } IF LastQuadrant? AND Decelerate? IF RoomToDecel? DecelMove1 SeqLab '(2)' FormatArc ArcFeedC Get$ EOL DecelMove2 END SeqLab '(2)' FormatArc DecelFeed Get$ EOL ELSE SeqLab '(2)' FormatArc ArcFeedC Get$ EOL END NEXTQuadrant END END END IF LastFeat? { Exit Length Feature } TurnCRCOff {.70} END END NEXTFeat RestoreAbsOrInc RETURN WFOStuff: IF NewWFO? IF MultipleParts? Get$ EOL SeqLab '(T) ' Get$ EOL SeqLab '(T) *** WARNING ***' Get$ EOL SeqLab '(T) DO NOT USE' Get$ EOL SeqLab '(T) NEWWFO() WITH' Get$ EOL SeqLab '(T) NCPOST MULTIPLE' Get$ EOL SeqLab '(T) PARTS!' Get$ EOL SeqLab '(T) ' Get$ EOL ELSE 'E' NewWFO# END ELSE IF NOT SameTool? IF NeedWFO1? 'E' NewWFO# END END END RETURN AutoCycCutSub1: {part 1} SaveSubStatus {save tool position} SetPass1 {element cut moves} StartSub SetSRXYtoSP SetInc SeqLab '(1)' 'P0X0./Y0./' Get$ EOL { AutoCycle dummy move to select correct Plane } RETURN AutoCycCutSub2: {part 2} ToolPath SetAbs IF Repeats? AND FeedConnect? AND ZshiftOnly? ELSE IF FIFO? SeqLab '(1)' ZCP2 FeedEntC Get$ EOL ELSE SeqLab '(0)' ZCP2 Get$ EOL END END '<' Tag# EOL CloseSub SetSRSubXY {restore SR to 1st position value} SetSRSubMove RETURN AutoCycPat: SetPass2 {position pattern} ToolPath {call after TagInc for correct sub calls} SetPass1 {reset} RETURN Milling: IF AutoCycle? TagUp TagInc AutoCycCutSub1 EntryMove AutoCycCutSub2 AutoCycPat TagDown ELSE EntryMove ToolPath END RETURN G92Sub: SubWarning StdSub SetAbs IF FeedConnect? '(1)' ELSE '(0)' END SeqLab StrtPos Get$ EOL Milling FinishSub1 FinishSubG92 RETURN ZonlyRepAutoCycle: AutoCycPat {write pattern moves and main calls} StartSub TagUp TagInc EachCycle SetSRXYtoEP IF FeedConnect? IF NOT FirstCycle? IF SPXMove? OR SPYMove? SetInc SeqLab '(1)' 'X' StartPosX# '/' 'Y' StartPosY# '/' Get$ EOL SetAbs SeqLab ELSE SeqLab '(1)' END ELSE SeqLab '(1)' END ZInPlusInc FeedEnt Get$ EOL ELSE IF NOT FirstCycle? IF SPXMove? OR SPYMove? SetInc SeqLab '(0)' 'X' StartPosX# '/' 'Y' StartPosY# '/' Get$ EOL SetAbs IF FeedEntry? SeqLab '(0)' ZCP2PlusInc Get$ EOL SeqLab '(1)' ZInPlusInc FeedEnt Get$ EOL ELSE SeqLab '(0)' ZInPlusInc Get$ EOL END ELSE IF FeedEntry? SeqLab '(0)' ZCP2PlusInc Get$ EOL SeqLab '(1)' ZInPlusInc FeedEnt Get$ EOL ELSE SeqLab '(0)' ZInPlusInc Get$ EOL END END ELSE IF FeedEntry? SeqLab '(1)' ZInPlusInc FeedEnt Get$ EOL ELSE SeqLab '(0)' ZInPlusInc Get$ EOL END END END IF FirstCycle? SetStatusOff {protect Z position for incremental sub} END SeqLab '(7)FÅ‚' Tag# 'L²' Tag# Get$ EOL NextCycle SetStatusOn AutoCycCutSub1 {build element sub} AutoCycCutSub2 IF FeedConnect? {there is no Z up in the sub} IF FIFO? SeqLab '(1)' ZCP2 FeedEnt Get$ EOL ELSE SeqLab '(0)' ZCP2 Get$ EOL END END TagDown '<' Tag# EOL CloseSub {Element shift, not pattern} TagDown RETURN ZonlyRep: EachCycle IF NOT FirstCycle? IF FeedConnect? '(1)' ELSE '(0)' END SeqLab StrtPos Get$ EOL END IF FeedConnect? SeqLab '(1)' ZInPlusInc FeedEnt Get$ EOL ELSE {Entry/Exit Connect} IF FeedEntry? IF NOT FirstCycle? SeqLab '(0)' ZCP2PlusInc Get$ EOL END SeqLab '(1)' ZInPlusInc FeedEnt Get$ EOL ELSE SeqLab '(0)' ZInPlusInc Get$ EOL END END SeqLab '(7)FÅ‚' Tag# 'L²' Tag# Get$ EOL NextCycle StartSub TrackZNO# FIRST SPZ# ToolPath FinishSub1 '<' Tag# EOL TagDown CloseSub RETURN CheckPass: IF AutoCycle? {use the correct StrtPos} SetPass2 ELSE SetPass1 END RETURN SkipToLastFeat: EachFeat IF LastFeat? TrackXNO# SPX# TrackYNO# SPY# END NextFeat RETURN SetDrillEndOpZ: IF RetractToCP1? TrackZNO# ClearancePlane1# ELSE TrackZNO# ClearancePlane2# END RETURN GetStartOfSameTool: Plane { no output } DoOpComments DoPostScript CheckPass RETURN {Start of executable Prog **************************************************} {setup and initializations} InitProg TagInit SetAbs ReverseXZArcs InitWFONum SetFlood UseSeparateSubCalls SetMaxSeparateSubCalls('50') SetMaxRPM('10000') SetMaxFeed('500') SetFlagF('1') { Milling ZShiftOnly SepSubs } SetFlagF('2') { CutterRadiusCompensation } SetFlagF('4') { SubPrograms require 2nd M30 at end } IF PSComment? AND UseComments? SeqLab '(T) PostScript:' Get$ EOL SeqLab '(T) Literals: put between single or double quotes.' Get$ EOL SeqLab '(T) Separate commands and literals with at least one space.' Get$ EOL SeqLab '(T) A CR ( RETURN key ) will start a new line.' Get$ EOL SeqLab '(T) Commands: may be capital and/or lower case letters. Separate commands with a space.' Get$ EOL SeqLab '(T) EndOP -' Get$ EOL SeqLab '(T) all literals and commands before an ENDOP command' Get$ EOL SeqLab '(T) will appear at the beginning of the operation. All' Get$ EOL SeqLab '(T) literals and commands after an ENDOP command will appear' Get$ EOL SeqLab '(T) at the end of the operation.' Get$ EOL SeqLab '(T) NewWFO(56), NWFO(56) -' Get$ EOL SeqLab '(T) The Work Fixture Offset # you specify will be used for all following operations.' Get$ EOL SeqLab '(T) Do not use with the ncPost multiple part option.' Get$ EOL SeqLab '(T) 4thAxisCW(12.5), 4ACW(12.5) -' Get$ EOL SeqLab '(T) generates a + A move of the value you specify' Get$ EOL SeqLab '(T) 4thAxisCCW(22.5), 4ACCW(22.5) -' Get$ EOL SeqLab '(T) generates a - A move of the value you specify' Get$ EOL SeqLab '(T) 5thAxisCW(30), 5ACW(30) -' Get$ EOL SeqLab '(T) generates a + B move of the value you specify' Get$ EOL SeqLab '(T) 5thAxisCCW(22.5), 5ACCW(22.5) -' Get$ EOL SeqLab '(T) generates a - B move of the value you specify' Get$ EOL END EachOp {Start of post processing *********************} IF FirstOperation? IF ProgramNameComment? '(' ProgramName$ ')' Get$ EOL END IF ToolChangeAtHome? SetHome END IF UseComments? IF ProgramComment? SeqLab '(T) ' ProgramComment$ Get$ EOL END IF FormatNameComment? SeqLab '(T) FORMAT ' FormatName$ Get$ EOL END IF TimeComment? SeqLab '(T) ' Date$ ' AT ' Time$ Get$ EOL END IF MovesComment? SeqLab '(T) OUTPUT IN ABSOLUTE INCHES' Get$ EOL END IF PartsComment? SeqLab '(T) PARTS PROGRAMMED ' Parts# Get$ EOL END IF StartToolComment? SeqLab '(T) FIRST TOOL NOT IN SPINDLE' Get$ EOL END END OpenSub RestoreScale IF MultipleParts? AND AllToolsOnePart? OpenMP END Plane { no output } DoOpComments DoPostScript SeqLab '(9)' ToolChng OpToolID Get$ EOL SeqLab '(9)' SpinOn OpToolID WFOStuff Speed Get$ EOL IF MultipleParts? AND OneToolAllParts? AND FullUp? OpenMP END IF NOT CoolOff? SeqLab '(9)' CoolOn Get$ EOL END CheckPass IF Milling? SeqLab '(0)' StrtPos Rapid Get$ EOL SeqLab '(0)' ZCP1 Get$ EOL END IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane? OpenMP IF Milling? SeqLab '(0)' StrtPos Rapid Get$ EOL END END ELSE IF NewTool? {Finish off last Operation} IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane? CloseMP END SeqLab '(9)' CoolOff Get$ EOL IF MultipleParts? AND OneToolAllParts? AND FullUp? CloseMP END DoEndOpPS SeqLab '(9)' SpinOff Get$ EOL IF LAST ProgStop? SeqLab '(9)' 'M0' Get$ EOL ELSE IF OptionalStops? SeqLab '(9)' ProgStop Get$ EOL END END {Start new Operation} Plane { no output } DoOpComments DoPostScript SeqLab '(9)' ToolChng OpToolID Get$ EOL SeqLab '(9)' SpinOn OpToolID WFOStuff Speed Get$ EOL IF MultipleParts? AND OneToolAllParts? AND FullUp? OpenMP END IF NOT CoolOff? SeqLab '(9)' CoolOn Get$ EOL END CheckPass IF Milling? SeqLab '(0)' StrtPos Rapid Get$ EOL SeqLab '(0)' ZCP1 Get$ EOL END IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane? OpenMP IF Milling? SeqLab '(0)' StrtPos Rapid Get$ EOL END END ELSE IF SameTool? DoEndOpPS IF LAST ProgStop? SeqLab '(9)' SpinOff Get$ EOL SeqLab '(9)' 'M0' Get$ EOL {Start new Operation} GetStartOfSameTool SeqLab '(9)' SpinOn OpToolID WFOStuff Speed Get$ EOL IF Milling? SeqLab '(0)' StrtPos Rapid Get$ EOL SeqLab '(0)' ZCP1 Get$ EOL END ELSE IF NewToolOffset? {Start new Operation} GetStartOfSameTool SeqLab '(9)' OpToolID WFOStuff IF NotEqual? SpeedRPM# LAST SpeedRPM# Speed END Get$ EOL IF Milling? SeqLab '(0)' StrtPos Rapid Get$ EOL SeqLab '(0)' ZCP1 Get$ EOL END ELSE {Start new Operation} GetStartOfSameTool SeqLab IF NewWFO? '(9)' WFOStuff END IF NotEqual? SpeedRPM# LAST SpeedRPM# IF EmptyLine? '(9)' END Speed END Get$ EOL IF Milling? SeqLab '(0)' StrtPos Rapid Get$ EOL END END END END END END {common point for all operations} IF MultipleParts? OR Repeats? OR AutoCycle? SetFlag('4') { SubPrograms require 2nd M30 at end } END IF Milling? LoadFeat Num#('0') Num#('0') ClearancePlane2# IF ZMove? SeqLab '(0)' ZCP2 Get$ EOL END IF Repeats? TagUp TagInc IF ZshiftOnly? IF AutoCycle? {incremental Autocycle sub can have Z moves} ZonlyRepAutoCycle ELSE {Z shift only, NOT Auto Cycle} IF UseSeparateSubCalls? AND CyclesLessThanMaxSubCalls? SetFlag('1') { Milling ZShiftOnly SepSubs } ZonlyRep SetFlagF('1') ELSE {no sep subs desired} G92Sub END END {end Auto Cycle IF} ELSE {not Z only} G92Sub END {end Z only IF} ELSE {no repeat OPs} Milling END LoadFeat Num#('0') Num#('0') ClearancePlane3# IF ZMove? IF AutoCycle? SeqLab '(0)' ZCP3 Get$ EOL ELSE IF FIFO? SeqLab '(1)' ZCP3 FeedEntC Get$ EOL ELSE SeqLab '(0)' ZCP3 Get$ EOL END END END ELSE IF Drilling? IF Repeats? TagUp TagInc StdSub SetAbs SeqLab '(0)' StrtPos Get$ EOL END GetCycle SeqLab '(0)' StrtPos RLevel ZDepth DrillCycle Get$ EOL IF CallMasterOp? AND NOT RetractToCP1? SeqLab '(7)' 'FÅ‚' CallMasterNum# 'L²' CallMasterNum# Get$ EOL SkipToLastFeat ELSE TrackZNO# FIRST SPZ# IF MasterOp? AND NOT RetractToCP1? SetFlag('1') {std sep sub Zreps in effect} SetFlag('4') { SubPrograms require 2nd M30 at end } TagUp NewMasterTag SeqLab '(7)FÅ‚' Tag# 'L²' Tag# Get$ EOL StartSub ToolPath '<' Tag# EOL TagDown CloseSub SetFlagF('1') {not std sep sub Zreps in effect} ELSE ToolPath END END SetDrillEndOpZ SeqLab '(0)' ZCP3 Rapid Get$ EOL IF Repeats? FinishSubG92 END END END NextOp {loops back to EachOP until last Operation} {End of program ************************************************************} {finish last operation} IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane? CloseMP END SeqLab '(9)' CoolOff Get$ EOL IF MultipleParts? AND OneToolAllParts? AND FullUp? CloseMP END DoEndOpPS SeqLab '(9)' SpinOff Get$ EOL IF MultipleParts? AND AllToolsOnePart? IF LAST ProgStop? SeqLab '(9)' 'M0' Get$ EOL ELSE IF OptionalStops? SeqLab '(9)' ProgStop Get$ EOL END END CloseMP END SeqLab '(9)' EOP Get$ EOL CloseSub Post2 {organize Subs into one program} IF Flag?('4') { SubPrograms exist } SetFlagF('4') SeqLab '(9)' EOP Get$ EOL { This is required a second time, at end of all subs } END 'END' EOL Close ReTag IF UseComments? SetScale('1') {restore scale for comments} Reopen IF FileBytesComment? 'N9997(T) FILE LENGTH: ' FileBytes# ' CHARACTERS' Get$ EOL END IF FileFeetComment? 'N9998(T) FILE LENGTH: ' FileFeet# ' FEET' Get$ EOL END IF FileMetersComment? 'N9999(T) FILE LENGTH: ' FileMeters# ' METERS' Get$ EOL END Close END

Wyszukiwarka

Podobne podstrony:
Dynapath 50M [TM] MT75 89
Dynapath 50M [MI] MV36 89
Dynapath 50M [HTD] MU69 89
Dynapath 50M [MT] M963 89 3
Dynapath 50M [AA] MY17 89 3
Mit Meldas 50M [DC] MU33 89 2
Dynapath 10M [LD] M546 89
Mit Meldas 50M LW M134 89 2
Dynapath 10M [NSN] MY70 89
Dynapath 20M [PC] MW17 89
Dynapath 40M [CP] M141 89 1
Dynapath 30 Tree M804 89
Dynapath 10M (CDS) M922 89
Dynapath 50M [NP] NMT68 12

więcej podobnych podstron