Dynapath 50M [HTD] MU69 89


{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}

{8/20/98
Initial: Dynapath 50M [HTT] MV13.89.1
Created: Dynapath 50M [HTD] Mxxx.89
ForUser: Hoffman Tool & Die, Inc.
Control: Dynapath Delta 50M
Machine: Chevelier 2040HB - Manual Tool Change
Develop: ComPost2 1.1b3, Virtual Gibbs 4.24
Comment: New processor per marked up readout and conversation with Brian Ricketts.
Changed program identification from ProgramName$ to Program# and made ProgramName$ a comment.
Added program number as first line in program
Modified beginning of tool for manual tool changer.
Jim Radcliffe}

{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

DoToolComments:
IF UseComments?
SetScale('1')
IF ToolTypeComment?
SeqLab '(T) TOOL# ' Tool# ' ' ToolDiameter# ' ' ToolType$ Get$ EOL
END
IF ToolComment?
SeqLab '(T) ' ToolComment$ Get$ EOL
END
RestoreScale
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
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
DoToolComments
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?
'(' Program# ')' Get$ EOL
IF ToolChangeAtHome?
SetHome
END
IF UseComments?
IF ProgramNameComment?
SeqLab '(T) ' ProgramName$ Get$ EOL
END
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 Get$ EOL
SeqLab '(9)' OpToolID Get$ EOL
DoToolComments
SeqLab '(9)' SpinOn 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 Get$ EOL
SeqLab '(9)' OpToolID Get$ EOL
DoToolComments
SeqLab '(9)' SpinOn 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 [HTT] MV13 89 1
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