{Change Comments ***********************************************************}
{10/17/96
Modified: Fanuc 6M M001.13.1
Created: BP EZ-Trak [I] MZ59.13
For: Iomega
Machine: Bridgeport
Control: EZ-Trak
Versions: Catalyst v3.09C/Compost 4.21.37/v1.0b1
Changes made per Jeff Jensen of Iomega, manual and sample printouts.
DWB}
{10/30/96
Modified: BP EZ-Trak [I] MZ59.13
Created: BP EZ-Trak [I] MZ59.13.1
For: Iomega
Versions: Catalyst v3.09C/Compost 4.21.37/v1.0b1
Changes made per Jeff Jensen of Iomega and sample printouts.
Customer reported that Line Number cannot contain N Address.
Only number value is allowed.
Changed Sequence Label from N to ? in Compost2 General Info Dialog.
Added Format#8 '0000' at Prog Numeric Format Definitions.
Added Sequence# to Format#8 at Prog Numeric Format Definitions.
Changed Seq/SeqC to SeqLab/SeqLabC throughout Prog.
Added Retag at End3 sub.
Deleted Space between SUBPRGM and [PGM] words at StdSub, OpenMP, ToolPath AutoCycle,
ZonlyRepAutoCycle, ZonlyRep, and two places at OpGuts Drilling.
DWB}
{7/31/97
Initial: BP EZ-Trak [I] MZ59.13.1.txt
Created: BP EZ-Trak [WD] MX65.13.txt
changed all occurrances of literal '::' to '||',
MPK
}
{2/24/98
Updated & Modified: BP EZ-Trak [WD] MX65.13
Created: BP EZ-Trak [WD] MX65.15
For: Walt Disney
Versions: Catalyst v4.21.30(mac)/ComPost2 1.1b3
Changes made per
Updated for Catalyst v3.35C per Points List [V] M001.15a Format.
Customer requested no subs.
DWB}
{Prog Numeric Format Definitions ****}
#1 = '#.00'
#2 = '#####.###;0.'
#3 = '*#####.###;0.'
#4 = '####.####;0.'
#5 = '#######0'
#6 = '0000'
#7 = '#bbb0' { For Alternate Program# }
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(Recall#,4)
FORMAT(ADD#,4)
FORMAT(SUB#,4)
FORMAT(MUL#,4)
FORMAT(TrackZ#,4)
FORMAT(TrackXNO#,4)
FORMAT(TrackYNO#,4)
FORMAT(TrackZNO#,4)
FORMAT(CurOriginPosX#,4)
FORMAT(CurOriginPosY#,4)
FORMAT(HomeX#,4)
FORMAT(HomeY#,4)
FORMAT(StartPosX#,4)
FORMAT(StartPosY#,4)
FORMAT(ClearancePlane1#,4)
FORMAT(ClearancePlane2#,4)
FORMAT(ClearancePlane3#,4)
FORMAT(SPX#,4)
FORMAT(SPY#,4)
FORMAT(EPX#,4)
FORMAT(EPY#,4)
FORMAT(EPZ#,4)
FORMAT(ArcI#,4)
FORMAT(ArcJ#,4)
FORMAT(LineLength#,4)
FORMAT(ToolDiameter#,4)
FORMAT(FeedContour#,4)
FORMAT(Program#,5)
FORMAT(PartNum#,5)
FORMAT(Operation#,5)
FORMAT(Tool#,5)
FORMAT(Parts#,5)
FORMAT(Sequence#,6) { Necessary for correct output of Sequence Number value }
{Added Subroutines ***}
SetScale1:
IF Flag?('1') {CAM file is in Metric, tools and tool path}
SetScale('1') { change to English, this is a English post}
END
RETURN
RestoreScale1:
IF Flag?('1') {CAM file is in Metric, tools and tool path}
SetScale('.03937007874') { change to English, this is an English post}
END
RETURN
ckAbsOrInc:
IF AbsValue?
' ABS'
ELSE
' INC'
END
RETURN
DoSetHome:
RestoreScale1
IF ToolChangeAtHome?
TrackXNO# HomeX#
TrackYNO# HomeY#
ELSE
TrackXNO# Num#('0')
TrackYNO# Num#('0')
END
TrackZNO# ClearancePlane1#
SetScale1
RETURN
GetHome:
LoadFeat PRIME HomeX# PRIME HomeY# LAST ClearancePlane1#
IF XMove? OR YMove?
SeqLabC ' Rapid' ckAbsOrInc PRIME Home LAST ZCP1 EOL
END
RETURN
GetFirstHome:
LoadFeat FIRST PRIME HomeX# FIRST PRIME HomeY# ClearancePlane1#
IF XMove? OR YMove?
SeqLabC ' Rapid' ckAbsOrInc FIRST PRIME Home LAST ZCP1 EOL
END
RETURN
GetStartPos:
LoadFeat StartPosX# StartPosY# Num#('0')
IF XMove? OR YMove?
SeqLabC ' Rapid' ckAbsOrInc StrtPos MoveSZ EOL
END
RETURN
GetStartPosC:
SeqLabC ' Rapid' ckAbsOrInc StrtPos ZCP2 EOL
RETURN
GetOfstOn:
LoadFeat StartPosX# StartPosY# ClearancePlane1#
IF ZMove?
SeqLabC ' Rapid' ckAbsOrInc StrtPos ZCP1 EOL
END
RETURN
GetLASTOfstOff:
LoadFeat Num#('0') Num#('0') LAST ClearancePlane1#
IF ZMove?
SeqLabC ' Rapid' ckAbsOrInc ' X' Recall# Num#('6') ' Y' Recall# Num#('7') LAST ZCP1 EOL
END
RETURN
GetOfstOff:
LoadFeat Num#('0') Num#('0') ClearancePlane1#
IF ZMove?
SeqLabC ' Rapid' ckAbsOrInc ' X' Recall# Num#('6') ' Y' Recall# Num#('7') ZCP1 EOL
END
RETURN
GetZCP2C:
LoadFeat StartPosX# StartPosY# ClearancePlane2#
IF ZMove?
SeqLabC ' Rapid' ckAbsOrInc StrtPos ZCP2 EOL
END
RETURN
GetZCP3C:
LoadFeat Num#('0') Num#('0') ClearancePlane3#
IF ZMove?
IF Milling? AND FIFO?
SeqLabC ' Line' ckAbsOrInc ' X' Recall# Num#('6') ' Y' Recall# Num#('7') ZCP3 FeedEnt EOL
ELSE
SeqLabC ' Rapid' ckAbsOrInc ' X' Recall# Num#('6') ' Y' Recall# Num#('7') ZCP3 EOL
END
END
RETURN
GetMoveSXYZ:
IF PointFeat?
SeqLabC ' DR|PT' ckAbsOrInc MoveSX MoveSY MoveSZ EOL
ELSE
IF SPXMove? OR SPYMove? OR SPZMove?
IF AutoCycle?
IF Repeats? AND ZShiftOnly?
IF FeedEntry?
SeqLabC ' Line' ckAbsOrInc ' X' ADD# Recall# Num#('4') SPX# ' Y' ADD# Recall# Num#('5') SPY# MoveSZ FeedEnt EOL
ELSE
SeqLabC ' Rapid' ckAbsOrInc ' X' ADD# Recall# Num#('4') SPX# ' Y' ADD# Recall# Num#('5') SPY# MoveSZ EOL
END
TrackXNO# SPX#
TrackYNO# SPY#
SetInc
ELSE
SetInc
IF FeedEntry?
SeqLabC ' Line' ckAbsOrInc MoveSX MoveSY MoveSZ FeedEnt EOL
ELSE
SeqLabC ' Rapid' ckAbsOrInc MoveSX MoveSY MoveSZ EOL
END
END
ELSE
IF FeedEntry?
SeqLabC ' Line' ckAbsOrInc MoveSX MoveSY MoveSZ FeedEnt EOL
ELSE
SeqLabC ' Rapid' ckAbsOrInc MoveSX MoveSY MoveSZ EOL
END
END
END
END
RETURN
GetMoveXYZ:
IF RapidFeat?
' Rapid' ckAbsOrInc MoveXYZ
ELSE
' Line' ckAbsOrInc MoveXYZ
END
RETURN
FormatArc:
' ARC|CNTRPT' ckAbsOrInc
IF ArcCW?
' CW'
ELSE
' CCW'
END
MoveXYZ ' XC' ArcI# ' YC' ArcJ#
RETURN
GetExit:
IF Drilling?
Save# Num#('6') SPX#
Save# Num#('7') SPY#
ELSE
IF AutoCycle?
SetAbs
Save# Num#('6') ADD# Recall# Num#('4') EPX#
Save# Num#('7') ADD# Recall# Num#('5') EPY#
IF Repeats? AND ZShiftOnly? AND FeedConnect?
Save# Num#('8') EPZ#
ELSE
IF FIFO?
SeqLabC ' Line' ckAbsOrInc ' X' Recall# Num#('6') ' Y' Recall# Num#('7') PRIME ZCP2 FeedEnt EOL
ELSE
SeqLabC ' Rapid' ckAbsOrInc ' X' Recall# Num#('6') ' Y' Recall# Num#('7') PRIME ZCP2 EOL
END
END
ELSE
Save# Num#('6') EPX#
Save# Num#('7') EPY#
IF Repeats? AND NOT FeedConnect?
IF FIFO?
SeqLabC ' Line' ckAbsOrInc MoveXY PRIME ZCP2 FeedEnt EOL
ELSE
SeqLabC ' Rapid' ckAbsOrInc MoveXY PRIME ZCP2 EOL
END
ELSE
Save# Num#('8') EPZ#
END
END
END
RETURN
GetDrillCP:
IF RetractToCP1?
LoadFeat StartPosX# StartPosY# ClearancePlane1#
IF ZMove?
SeqLabC ' Rapid' ckAbsOrInc StrtPos ZCP1 EOL
END
ELSE
LoadFeat StartPosX# StartPosY# ClearancePlane2#
IF ZMove?
SeqLabC ' Rapid' ckAbsOrInc StrtPos ZCP2 EOL
END
END
RETURN
GetMoveSXY:
IF AutoCycle?
SeqLabC ' Rapid' ckAbsOrInc MoveSX MoveSY PRIME ZCP2 EOL
ELSE
IF FeedConnect?
SeqLabC ' Line' ckAbsOrInc MoveSX MoveSY ' Z' TrackZ# Recall# Num#('8') ' F' FeedContour# EOL
ELSE
SeqLabC ' Rapid' ckAbsOrInc MoveSX MoveSY PRIME ZCP2 EOL
END
END
RETURN
GetMoveSXYC:
IF SPXMove? OR SPYMove?
GetMoveSXY
END
RETURN
GetRepZCP2:
IF AutoCycle?
ResetPass2
SeqLabC ' Rapid' ckAbsOrInc MoveSX MoveSY ZCP2 EOL
ResetPass1
ELSE
IF NotEqual? PRIME ClearancePlane2# ClearancePlane2#
SeqLabC ' Rapid' ckAbsOrInc MoveSX MoveSY ZCP2 EOL
END
END
RETURN
GetACOffset:
SetScale1
SetACSPCompF
Save# Num#('4') MUL# SUB# SPX# CurOriginPosX# Recall# Num#('9')
Save# Num#('5') MUL# SUB# SPY# CurOriginPosY# Recall# Num#('9')
SetACSPComp
RestoreScale1
RETURN
GetSXYMove: { ZonlyRepAutoCycle }
IF FeedConnect?
GetACOffset
SeqLabC ' Line' ckAbsOrInc MoveSX MoveSY ' Z' Recall# Num#('8') FeedEnt EOL
ELSE
SeqLabC ' Rapid' ckAbsOrInc MoveSX MoveSY PRIME ZCP2 EOL
END
RETURN
GetSXYMoveC: { ZonlyRepAutoCycle }
ResetPass2
IF NotEqual? Recall# Num#('6') SPX# { SPXMove }
GetSXYMove
ELSE
IF NotEqual? Recall# Num#('7') SPY# { SPYMove }
GetSXYMove
END
END
ResetPass1
RETURN
GetACZShiftExit: { ZonlyRepAutoCycle }
SeqLabC ' Rapid' ckAbsOrInc ' X' Recall# Num#('6') ' Y' Recall# Num#('7') ZCP2 EOL
RETURN
ckCRCOn:
IF CutterRadiusCompensation? AND NOT ZMove? AND NOT Flag?('2')
SetFlag('2')
SeqLabC
' COMP|ON'
IF CRCLeft?
' LFT'
ELSE
' RGT'
END
' D' ToolDiameter# MoveSX MoveSY MoveSZ ' P' LineLength# FeedRate EOL
END
RETURN
ckCRCOff:
IF Flag?('2')
SetFlagF('2')
SeqLabC ' COMP|OFF' MoveZ EOL
END
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
DoPartCycleComment:
IF MultipleParts? AND UseComments? AND SubComment?
'( PART NO. ' PartNum# ' )' EOL
END
RETURN
DoCycleComment:
IF UseComments? AND SubComment?
'( CYCLE START )' EOL
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 ToolComment?
'( ' ToolComment$ ' )' EOL
END
RestoreScale
END
RETURN
PSInit:
NewWFOF
RotateF
FourthCWF
FourthCCWF
FifthCWF
FifthCCWF
OptCyc1F
MasterOpF
CallMasterOpF
RETURN
PSStuff:
RETURN
DoPostScript:
PSInit
EachPS
SeqLabC PostScript EOL
PSStuff
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqLabC EndOpPS EOL
PSStuff
NextPS
RETURN
ToolPath:
EACHFeat
IF PointFeat? { Drilling Only }
GetMoveSXYZ
ELSE
IF FirstFeat?
GetMoveSXYZ
END
IF XMove? OR YMove?
ckCRCOn
END
IF RapidFeat?
IF XMove? OR YMove? OR ZMove?
SeqLabC GetMoveXYZ EOL
END
ELSE
IF LineFeat?
IF XMove? OR YMove? OR ZMove?
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqLabC GetMoveXYZ FeedRate EOL
DecelMove2
END
SeqLabC GetMoveXYZ DecelFeed EOL
ELSE
SeqLabC GetMoveXYZ FeedRate 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
SeqLabC FormatArc ArcFeed EOL
DecelMove2
END
SeqLabC FormatArc DecelFeed EOL
ELSE
SeqLabC FormatArc ArcFeed EOL
END
NEXTQuadrant
END
END
END
END
IF LastFeat?
ckCRCOff
GetExit
END
NEXTFeat
RETURN
AutoCycCutSub1: {part 1}
CalcACSRXY {calc tool position, CalcAutoCycleStatusRecordXY}
GetACOffset
SaveSubStatus {save tool position}
SetPass1 {element cut moves}
SetSRXYtoSP
RETURN
AutoCycCutSub2: {part 2}
IF Repeats? AND ZShiftOnly? AND FeedConnect?
GetACZShiftExit
END
SetSRSubXY {restore SR to 1st position value}
SetSRSubMove
ReSetPass2 {restore for positioning moves}
RETURN
Milling:
ToolPath
RETURN
XYZRep:
FindAnyZMoves
EachRep
DoCycleComment
IF NOT FirstCycle?
IF FeedConnect?
GetMoveSXYC
ELSE
GetMoveSXYC
IF FeedEntry?
GetRepZCP2
END
END
END
ToolPath
NextRep
RETURN
NoRepAutoCycle:
EACHFeat
DoCycleComment
GetMoveSXYC
AutoCycCutSub1
Milling
AutoCycCutSub2
NEXTFeat
RETURN
XYZRepAutoCycle:
EachRep
DoCycleComment
IF NOT FirstCycle?
GetStartPosC
END
EACHFeat
IF NOT FirstFeat?
DoCycleComment
GetMoveSXYC
END
AutoCycCutSub1
Milling
AutoCycCutSub2
NEXTFeat
NextRep
RETURN
ZonlyRepAutoCycle:
EACHFeat
DoCycleComment
GetMoveSXYC
AutoCycCutSub1
EachRep
IF NOT FirstCycle?
IF FeedConnect?
DoCycleComment
GetSXYMoveC
ELSE
DoCycleComment
GetSXYMoveC
IF FeedEntry? AND NOT FIFO?
GetRepZCP2
END
END
END
ToolPath
NextRep
AutoCycCutSub2
NEXTFeat
RETURN
DrillStuff:
GetDrillCP
RETURN
CheckPass:
IF AutoCycle? {use the correct StrtPos}
SetPass2
ELSE
SetPass1
END
RETURN
ProgStart:
InitProg
SetAbs
ReverseXZArcs
InitWFONum
Save# Num#('1') Num#('0') { MultipleParts Current Tool FirstOp# }
Save# Num#('2') Num#('0') { MultipleParts ToolOp# Counter }
Save# Num#('4') Num#('0') { SetACSPCompF SPX# }
Save# Num#('5') Num#('0') { SetACSPCompF SPY# }
Save# Num#('6') Num#('0') { ToolPath LastFeat EPX# }
Save# Num#('7') Num#('0') { ToolPath LastFeat EPY# }
Save# Num#('8') Num#('0') { ToolPath LastFeat EPZ#/Repeat FeedConnect FIRST SPZ# }
IF Metric?
Save# Num#('9') Num#('.03937007874') { SetScale1/RestoreScale1 }
SetFlag('1') { SetScale1/RestoreScale1 }
ELSE
Save# Num#('9') Num#('1') { SetScale1/RestoreScale1 }
SetFlagF('1') { SetScale1/RestoreScale1 }
END
SetFlagF('2') { TRUE = CRCOnC }
RETURN
SetDrillEndOpZ:
IF RetractToCP1?
TrackZNO# ClearancePlane1#
ELSE
TrackZNO# ClearancePlane2#
END
RETURN
OpGuts:
IF Milling?
GetZCP2C
IF AutoCycle?
IF Repeats?
IF ZShiftOnly?
ZonlyRepAutoCycle
ELSE
XYZRepAutoCycle
END
ELSE
NoRepAutoCycle
END
SetPass1
ELSE { NOT AutoCycle }
IF Repeats?
XYZRep
ELSE
Milling
END
END
GetZCP3C
ELSE
IF Drilling?
GetCycle
IF Repeats?
EachRep
DoCycleComment
IF FirstCycle?
DrillStuff
END
ToolPath
NextRep
ELSE
DrillStuff
ToolPath
END
SetDrillEndOpZ
GetZCP3C
END
END
RETURN
InitOp:
FORMAT(Program#,7)
'0000 EZTRAK ' Program# ' MODE|INCH |' Date$ ' ' Time$ EOL
FORMAT(Program#,5)
IF UseComments? AND ProgramNameComment?
'( ' ProgramName$ ' )'
END
EOL
EachOp
IF FirstOperation?
IF ToolChangeAtHome?
SetHome
END
DoSetHome
END
NextOp
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
RestoreScale
RETURN
FirstOp1:
Plane { No output }
SeqLab ' || TOOLCHG' OpToolID EOL
DoPartCycleComment
DoOpComments
DoPostScript
RETURN
FirstOp2:
CheckPass
GetStartPos
RETURN
FirstOp3:
GetOfstOn
RETURN
NewToolOp1:
GetLASTOfstOff
RETURN
NewToolOp2:
DoEndOpPS
IF ToolChangeAtHome?
GetHome
END
IF LAST ProgStop?
SeqLabC ' || STOP' EOL
ELSE
IF OptionalStops?
SeqLabC ' || STOP' EOL
END
END
RETURN
NewToolOp3: {Start new Operation}
Plane { No output }
SeqLab ' || TOOLCHG' OpToolID EOL
DoPartCycleComment
DoOpComments
DoPostScript
RETURN
NewToolOp4:
CheckPass
GetStartPos
RETURN
NewToolOp5:
GetOfstOn
RETURN
SameToolOp1:
DoEndOpPS
IF LAST ProgStop?
GetLASTOfstOff
SeqLabC ' || STOP' EOL
END
RETURN
SameToolOp2: {Start new Operation}
Plane { No output }
DoPartCycleComment
DoOpComments
DoPostScript
CheckPass
RETURN
SameToolOp3: {Start new Operation}
GetStartPos
IF LAST ProgStop?
GetOfstOn
END
RETURN
End1:
GetOfstOff
RETURN
End2:
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
GetFirstHome
END
IF ProgStop?
SeqLabC ' || STOP' EOL
END
RETURN
End3:
Close
ReTag
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}
IF FirstOperation?
FirstOp1
FirstOp2
FirstOp3
ELSE
IF NewTool?
NewToolOp1
NewToolOp2
NewToolOp3
NewToolOp4
NewToolOp5
ELSE {implied SameTool?}
SameToolOp1
SameToolOp2
SameToolOp3
END
END
OpGuts
RETURN
MP1ToollAllPfu: {Multiple Parts, 1 Tool all Parts, full up}
IF FirstOperation?
IF FirstPart?
FirstOp1
FirstOp2
FirstOp3
END
ELSE
IF NewTool?
IF FirstPart?
NewToolOp1
NewToolOp2
NewToolOp3
NewToolOp4
NewToolOp5
END
ELSE {implied SameTool?}
SameToolOp1
SameToolOp2
SameToolOp3
END
END
OpGuts
RETURN
MP1ToollAllPXcp: {Multiple Parts, 1 Tool all Parts, exit Clearance plane}
IF FirstOperation?
IF FirstPart?
FirstOp1
FirstOp2
FirstOp3
END
ELSE
IF NewTool?
IF FirstPart?
NewToolOp1
NewToolOp2
NewToolOp3
NewToolOp4
NewToolOp5
END
ELSE {implied SameTool?}
SameToolOp1
SameToolOp2
SameToolOp3
END
END
OpGuts
RETURN
NoMPs: {no multiple parts}
IF FirstOperation?
FirstOp1
FirstOp2
FirstOp3
ELSE
IF NewTool?
NewToolOp1
NewToolOp2
NewToolOp3
NewToolOp4
NewToolOp5
ELSE {implied SameTool?}
SameToolOp1
SameToolOp2
SameToolOp3
END
END
OpGuts
RETURN
MasterSub:
IF MultipleParts?
IF AllToolsOnePart?
MPallTools1P
ELSE {implied OneToolAllParts?}
IF FullUp?
MP1ToollAllPfu
ELSE {implied ExitClearancePlane?}
MP1ToollAllPXcp
END
END
ELSE
NoMPs
END
RETURN
EndPartSub:
{End of program ************************************************************}
{finish last operation}
End1
End2
RETURN
DoNewPart:
{Finish off last Part}
IF FullUp?
GetOfstOff
END
{DoEndOpPS}
{Start new Part}
SameToolOp2
GetStartPos
IF FullUp?
GetOfstOn
END
RETURN
MPLoop:
Save# Num#('2') Recall# Num#('1')
IF WorkFixtureOffsets?
NewWFO
EachWFO
ELSE
EachPart
END
IF AllToolsOnePart?
EachOp
MasterSub
NextOp
EndPartSub
ELSE { OneToolAllParts }
EachOp
IF Equal? Operation# Recall# Num#('2') { Tool First Op }
IF FirstOperation? OR NewTool?
IF NOT FirstPart?
DoNewPart
END
END
MasterSub
IF LastOp?
IF LastPart?
Save# Num#('1') Num#('0')
END
Save# Num#('2') Recall# Num#('1')
ELSE
IF NEXT SameTool?
Save# Num#('2') NEXT Operation#
ELSE
IF LastPart?
Save# Num#('1') NEXT Operation#
Save# Num#('2') Num#('0')
ELSE
Save# Num#('2') Recall# Num#('1')
END
END
END
END
NextOp
END
IF WorkFixtureOffsets?
IncWFO
NextWFO
ELSE
NextPart
END
RETURN
{Start of executable Prog, Top Level ****}
ProgStart {setup and initializations}
InitOp
IF MultipleParts?
IF AllToolsOnePart?
MPLoop
ELSE
EachOp
IF FirstOperation?
Save# Num#('1') Operation#
END
NextOp
MPLoop MPLoop MPLoop MPLoop MPLoop
MPLoop MPLoop MPLoop MPLoop MPLoop
MPLoop MPLoop MPLoop MPLoop MPLoop
MPLoop MPLoop MPLoop MPLoop MPLoop
MPLoop MPLoop MPLoop MPLoop MPLoop
EndPartSub
END
ELSE
EachOp
MasterSub
NextOp
EndPartSub
END
End3
Wyszukiwarka
Podobne podstrony:
BP EZ Trak Plus [RPM] MW86 15BP EZ Trak [WD] MX65 13BP EZ Trak M025 15 2BP EZ Trak [DM] NMQ67 15BP EZ Trak SX [RPM] MW85 13 4BP EZ Trak DX 3A MX93 89 3mBP EZ Trak DX MY78 89 1Centurion V LH [CT] MW13 15 2mYasnac MX3 HS LH [NO] MV65 15Fanuc 15M Mat LH [KP] CV71 15Fanuc Pro3 Mak LH [AE] CV70 15MillPWR #LH [AR] MY26 15 1Haas LH [AM] CV24 15 2Haas LH [TI] MX14 15Dynapath 20M LH [SDT] CV52 15Fanuc 11M LH [JBT] DW53 15Fanuc 11M LH [JBT] DW53 15więcej podobnych podstron