{12/15/88 TF change XYZ from conditional, 'T0Z1.' from T0Z0}
{6/4/89 force EPs on arcs, and in proper planes, WFG}
{7/16/89 cust requests, for Visual Technics, also Metric, Postscript, multiple parts}
{7/27/89, G29 before all E's, WFG}
{9/11/89, repeats with weird origin shift WFG}
{9/14/89, fix SepSubs, WFG}
{10/30/89, shift of arc IJ's with long hand repeats & rapid/feed prob, WFG}
{10/30/89, needs 3.19alpha6 to run, WFG}
{4/20/90
Modified: Anilam Crusader (VT) M220.67
Re-Wrote drilling section to include more cycles & retract to ZCP1
Moved DoPostScript to before TCZ# command for proper operation.
Fix problem, missing G1 for RepZ op feed connect.
Jim Radcliffe}
{4/24/90, Update: Anilam Crusader (VT) M220.68 to .71.2 format, JR}
{4/27/90, Modified: Anilam Crusader (VT) M220.71.2, added 'ENGLISH' to Moves header comment, JR}
{7/24/90, Replaced all occurances of SetSRXYZero with SetSRXYtoSP, DWB}
{3/7/91
Modified: Anilam Crusader (VT) M220.72
Added ###.##;0. in the Default Formats dialog in the form, for FeedEnt and FeedRate.
There was no FORMAT for these two commands, and the result was a bunch of zeros on one line, and
all EOLs were ignored until ncPost exited ToolPath, and output the move to ZCP3.
DWB}
{4/03/91
Modified: Anilam Crusader (VT) M220.72.1
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 6M M001.80 Format.
DWB}
{11/13/91
Modified: Anilam Crusader (VT) M220.79
For: Visual Technic
Added FORMAT #7 = '00' for TLNum# to output 4 digits at all times. And changed
the literal 'G29T100' to 'G29T0'.
Kim Michelman}
{03/18/92
Modified: Anilam Crusader (VT) M220.79.1
For: Visual Technic
Retyped the 'G29E' at the end of the prog, for some reason was only reading the 'E'.
Kim Michelman}
{03/19/92
Modified: Anilam Crusader (VT) M220.79.2
For: Visual Technic
Changed the EndSub in the form to read G29, and added a literal 'E' at the
end of the the subs being called and changed the literal 'G29E' at end of the program.
Kim Michelman}
{8/14/92
Modified: Anilam Crusader (VT) M220.79.3
For: Visual Technic
Changed PeckValue to Peck# and Formated to #2.
Changed the Dwell# Format to #2.
Updated the PSStuff.
Updated to Version 4.0 per Fanuc 6M M001.81 Format.
Kim Michelman}
{9/18/92
Modified: Anilam Crusader (VT) M220.81.1
For: Visual Technic
Added OptCyc1 boolean for postscript. Customer requested 'M1000' & 'M2000'.
Kim Michelman}
{7/2/93
Modified: Anilam Crusader (VT) M220.81.3
For: Visual Technic
Modified FormatArc ao that arcs whose segment height is less than .0005
get output as a linear move.
Jim Radcliffe}
{9/10/93, .81.4m, created metric version from .81.4 Prog and .81.3m Prog & Form, JR}
{10/4/93, .81.5m, changed MaxFeed to 2100, JR}
{2/9/96, Updated .81 version to .84, MPK}
{3/22/96, Tested ZOnlyRepAutCycle, Incremented number to .87, MPK}
#1 = '0.00'
#2 = '###.####;0.'
#3 = '###;0'
#4 = '##^'
#5 = '###.###;0.'
#6 = '*###.###;0.'
#7 = '00'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(Dwell#,2)
FORMAT(TLDia#,2)
FORMAT(TLLength#,2)
FORMAT(TCZ#,2)
FORMAT(ClearancePlane1#,2)
FORMAT(ToolLength#,2)
FORMAT(FeedEntry#,2)
FORMAT(ClearancePlane2#,2)
FORMAT(CurOriginPosX#,2)
FORMAT(CurOriginPosY#,2)
FORMAT(Peck#,2)
FORMAT(Parts#,3)
FORMAT(TLNum#,7)
DoSubComment:
IF UseComments? AND SubComment?
'( SUB NUMBER: ' Tag# ' )' EOL
END
RETURN
PSStuff: {revised.72}
IF FourthCW?
FORMAT(FourthDegree#,5)
Seq 'A' FourthDegree# EOL
FourthCWF {reset flag}
END
IF FourthCCW?
FORMAT(FourthDegree#,6)
Seq 'A' FourthDegree# EOL
FourthCCWF {reset flag}
END
IF FifthCW?
FORMAT(FifthDegree#,5)
Seq 'B' FifthDegree# EOL
FifthCWF {reset flag}
END
IF FifthCCW?
FORMAT(FifthDegree#,6)
Seq 'B' FifthDegree# EOL
FifthCCWF {reset flag}
END
RETURN
DoPostScript:
EachPS
Seq PostScript EOL
PSStuff
NextPS
RETURN
DoEndOpPS:
EachEOPS
Seq EndOpPS EOL
PSStuff
NextPS
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
IF NOT Metric? {CAM file is in english, tools and tool path}
SetScale('25.4') { change to Metric, this is an Metric post}
END
END
RETURN
StartSub:
OpenSub
DoSubComment
Seq 'G29S' Tag# EOL
RETURN
EntryMove:
IF FeedEntry?
Seq Feed ZIn FeedEnt EOL
ELSE
Seq RapidC ZIn EOL
END
RETURN
SubWarning:
IF NOT FeedConnect? AND UseComments?
IF AnyZshift?
' ' EOL
'( WARNING Z CLEARANCE WILL CHANGE WITH EACH CYCLE OF SUB REPEAT )' EOL
' ' EOL
END
END
RETURN
FinishSub1: {part 1}
UnSkipZ
Seq CRCOffC
IF NOT FeedConnect?
IF AutoCycle?
ZCP3C
ELSE
IF FIFO? {.81}
FeedC ZCP3C FeedRateC
ELSE
RapidC ZCP3C
END
END
END
EOL
RETURN
OpenMP1T:
NewProg TagInc
EachPart
IF NOT FirstPart?
Seq 'M1101' EOL
Seq 'X' CurOriginPosX# 'Y' CurOriginPosY# 'Z' ToolLength# EOL
END
Seq 'G29C' Tag# EOL
NextPart
StartSub
Seq Rapid StrtPos EOL
RETURN
OpenMPAT:
EachPart
RETURN
CallMPAT:
IF NOT FirstPart?
Seq 'M1101' EOL
Seq 'X' CurOriginPosX# 'Y' CurOriginPosY# 'Z' ToolLength# EOL
ELSE
NewProg {firstPart only, 1 per tool}
END
TagInc
Seq 'G29C' Tag# EOL
IF FirstPart?
StartSub
Seq Rapid StrtPos EOL
DoOpComments
END
RETURN
CloseMP1T:
Seq 'G29E' EOL
CloseSub
RETURN
RetMPAT:
Seq 'G29E' EOL
CloseSub
RETURN
CloseMPAT:
NextPart
RETURN
ArcSegHeight#:
MUL# ArcR# SUB# Num#('1') COS# DIV# ArcAngle# Num#('2')
RETURN
FormatArc:
IF LessThan? ArcSegHeight# Num#('.0005')
FeedC {output a linear move}
ELSE
IF ArcCW?
CWArc
ELSE
CCWArc
END
END
IF XYPlane?
MoveX MoveY MoveZC { force endpoints in proper plane }
ELSE
IF XZPlane?
MoveX MoveZ MoveYC
ELSE
MoveY MoveZ MoveXC { YZ plane }
END
END
IF LessThan? ArcSegHeight# Num#('.0005')
{we are outputting a linear move}
ELSE
IF ArcIJFormat?
ArcIJ
ELSE
ArcR
END
END
RETURN
StdLine: {enables CRC on first call, .70}
IF Decelerate?
IF RoomToDecel?
DecelMove1
Seq CRCOnC FeedC MoveXYZC FeedRateC EOL
DecelMove2
END
Seq CRCOnC FeedC MoveXYZC DecelFeed EOL
ELSE
Seq CRCOnC FeedC MoveXYZC FeedRateC EOL
END
RETURN
ToolPath:
EACHFeat
IF PointFeat?
Seq MoveSXYC EOL
IF Tap? OR AutoCycle? {uses subs}
Seq 'G29C' Tag# EOL
END
ELSE
IF RapidFeat?
IF OptCyc1?
IF Flag?('1')
SetFlagF('1')
Seq 'M2000' EOL {turn off look ahead}
END
END
IF LastFeat? AND AutoCycle? {.70}
Seq CRCOffC RapidC MoveXYZC EOL
ELSE
Seq RapidC MoveXYZC EOL
END
ELSE
IF LineFeat?
IF OptCyc1?
IF Flag?('1')
{M1000 is currently on}
ELSE
SetFlag('1')
Seq 'M1000' EOL {turn on look ahead}
END
END
IF AutoCycle? {.70}
IF LastFeat?
Seq CRCOffC FeedC MoveXYZC FeedRateC EOL
ELSE
IF ZMove? {skip CRCOn until first non-Z move line, skipping ramps}
Seq FeedC MoveXYZC FeedRateC EOL
ELSE
StdLine {enables CRC on first call}
END
END
ELSE
StdLine
END
ELSE
IF ArcFeat?
IF OptCyc1?
IF Flag?('1')
{M1000 is currently on}
ELSE
SetFlag('1') {turn on look ahead}
Seq 'M1000' EOL
END
END
EACHQuadrant
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
Seq CRCOnC FormatArc ArcFeedC EOL
DecelMove2
END
Seq CRCOnC FormatArc DecelFeed EOL
ELSE
Seq CRCOnC FormatArc ArcFeedC EOL
END
NEXTQuadrant
END
END
END
END
NEXTFeat
IF OptCyc1?
IF Flag?('1')
SetFlagF('1')
Seq 'M2000' EOL {turn off look ahead}
END
END
RETURN
AutoCycCutSub1: {part 1}
SaveSubStatus {save tool position}
SetPass1 {element cut moves}
StartSub
SetSRXYtoSP
Seq IncValue EOL
Seq StrtPosC EOL
RETURN
AutoCycCutSub2: {part 2}
ToolPath
IF Repeats? AND FeedConnect? AND ZshiftOnly?
Seq AbsOrInc EOL {.69 removed RapidC} {.71.2 removed CRCOffC, gets turned off in ToolPath}
ELSE
IF FIFO? {.81}
Seq AbsOrInc FeedC ZCP2 FeedRateC EOL
ELSE
Seq AbsOrInc RapidC ZCP2 EOL {.71.2 removed CRCOffC, gets turned off in ToolPath}
END
END
Seq EndSub 'E' EOL
CloseSub
SetSRSubXY {restore tool position}
SetSRSubMove
RETURN
AutoCycPat:
SetPass2 {position pattern}
ToolPath {call after NewProg for correct sub calls}
RETURN
Milling:
IF AutoCycle?
NewProg TagInc
AutoCycCutSub1
EntryMove
AutoCycCutSub2
AutoCycPat
ELSE
EntryMove
ToolPath
END
RETURN
G92Sub:
SubWarning
IF MultipleParts? OR AnyZShift?
IF UseComments?
'( THIS REPEAT OP WILL BE LONGHAND DUE TO MULT PARTS OR Z SHIFT)' EOL
END
EachRep {can't nest origin shifts or origin shift Z}
IF NOT FirstCycle?
Seq Connect StrtPos EOL
END
ELSE
NewProg TagInc
EachRep
IF NOT FirstCycle?
Seq 'M1101' EOL
Seq 'X' CurOriginPosX# 'Y' CurOriginPosY# 'Z' ToolLength# EOL
END
Seq 'G29C' Tag# EOL
NextRep
StartSub
Seq AbsOrInc Connect StrtPos EOL
END
Milling
FinishSub1
IF MultipleParts? OR AnyZShift?
NextRep
Else
Seq 'G29E' EOL
CloseSub
Seq 'M1101' EOL
Seq 'X0Y0Z' ToolLength# EOL
END
RETURN
ZonlyRepAutoCycle:
NewProg TagInc
AutoCycPat {write pattern moves and main calls}
StartSub
NewProg TagInc
SetPass1 {for correct Z's}
EachCycle
SetSRXYtoEP
IF FeedConnect?
IF NOT FirstCycle?
IF SPXMove? OR SPYMove?
Seq Feed IncValue StrtPosC EOL
Seq AbsOrInc
ELSE
Seq Feed
END
ELSE
Seq Feed
END
ZInPlusInc FeedEnt EOL
ELSE
IF NOT FirstCycle?
IF SPXMove? OR SPYMove?
Seq Rapid IncValue StrtPosC EOL
IF FeedEntry?
Seq AbsOrInc ZCP2PlusInc EOL
Seq Feed ZInPlusInc FeedEnt EOL
ELSE
Seq AbsOrInc ZInPlusInc EOL
END
ELSE
IF FeedEntry?
Seq Rapid ZCP2PlusInc EOL
Seq Feed ZInPlusInc FeedEnt EOL
ELSE
Seq Rapid ZInPlusInc EOL
END
END
ELSE
IF FeedEntry?
Seq Feed ZInPlusInc FeedEnt EOL
ELSE
Seq Rapid ZInPlusInc EOL
END
END
END
IF FirstCycle?
SetStatusOff {protect Z position for incremental sub}
END
Seq 'G29C' Tag# EOL
NextCycle
SetStatusOn
AutoCycCutSub1 {build element sub}
AutoCycCutSub2
{.69, removed FinishSub1}
IF FeedConnect? {there is no Z up in the sub, .69}
IF FIFO? {.81}
Seq Feed ZCP2 FeedRate EOL {.69}
ELSE
Seq Rapid ZCP2 EOL {.69}
END
END {.69}
Seq 'G29E' EOL
CloseSub
{Element shift, not pattern}
RETURN
ZonlyRep:
NewProg TagInc
EachCycle
IF FeedConnect?
IF NOT FirstCycle?
Seq Feed StrtPos EOL
END
Seq FeedC ZInPlusInc FeedEnt EOL
ELSE
IF NOT FirstCycle?
Seq Rapid StrtPos EOL
END
IF FeedEntry?
IF NOT FirstCycle?
Seq ZCP2PlusIncC EOL
END
Seq Feed ZInPlusInc FeedEnt EOL
ELSE
Seq ZInPlusInc EOL
END
END
Seq 'G29C' Tag# EOL
NextCycle
SetStatusRapid {force next G1,G2,G3,etc.}
StartSub
SkipZ
ToolPath
FinishSub1
Seq 'G29E' EOL
CloseSub
RETURN
CheckPass:
IF AutoCycle? {use the correct StrtPos}
SetPass2
ELSE
SetPass1
END
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
ReverseXZArcs
UseSeparateSubCalls
SetMaxSeparateSubCalls ('1000')
SetTCZ('88.9')
SetMaxRPM('10000') {?}
SetMaxFeed('2100')
SetFlagF('1')
IF PSComment? AND UseComments?
'PostScript:' 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
' EndOP -' EOL
' all literals and commands before an ENDOP command' EOL
' will appear at the beginning of the operation. All ' EOL
' literals and commands after an ENDOP command will appear' EOL
' at the end of the operation. ' EOL
' 4thAxisCW(12.5), 4ACW(12.5) -' EOL
' generates a + A move of the value you specify' EOL
' 4thAxisCCW(22.5), 4ACCW(22.5) -' EOL
' generates a - A move of the value you specify' 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
' TCZ(), TOOLCHANGEZ() -' EOL
' Set the Toolchange Z value. Modal, changes all following OPs.' EOL
' Value is set to Z88.9 as a default.' EOL
' OptCyc1, OptionalCycle1 -' EOL
' For the selected operation to use look ahead.' EOL
END
IF MultipleParts? AND AllToolsOnePart?
OpenMPAT
TagInit
END
EachOp
IF FirstOperation?
IF FirstPart?
EOR EOL
IF UseComments?
IF ProgramNameComment?
'( PROGRAM: ' ProgramName$ ' )' EOL
END
IF ProgramComment?
'( ' ProgramComment$ ' )' EOL
END
IF FormatNameComment?
'( FORMAT: ' FormatName$ ' )' EOL
END
IF TimeComment?
'( ' Date$ ' AT ' Time$ ' )' EOL
END
IF MovesComment?
'( OUTPUT IN ' MoveType$ ' METRIC )' EOL
END
IF PartsComment?
'( PARTS PROGRAMMED: ' Parts# ' )' EOL
END
END
OpenSub
IF NOT Metric? {CAM file is in english, tools and tool path}
SetScale('25.4') { change to Metric, this is an Metric post}
END
'N0' Rapid Plane 'G71' AbsValue EOL
EachTool
Seq 'G29T10' TLNum# 'X' TLDia# 'Z' TLLength# EOL
NextTool
Seq 'T0' EOL
DoPostScript
IF ToolChangeAtHome?
Seq Home 'Z' TCZ# EOL
ELSE
Seq 'Z' TCZ# EOL
END
END {end firstPart?}
IF MultipleParts?
IF OneToolAllParts? AND FullUp?
DoOpComments
OpenMP1T
ELSE
IF AllToolsOnePart?
CallMPAT {has DoOpComments}
END
END
ELSE
DoOpComments
END
IF FirstPart?
Seq OpToolID EOL
CheckPass
Seq AbsOrInc StrtPos 'Z' ClearancePlane1# EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP1T
END
END {end firstPart?}
ELSE
IF NewTool?
IF FirstPart?
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP1T
END
Seq 'T0' EOL
DoEndOpPS
END {end firstPart?}
IF MultipleParts?
IF OneToolAllParts? AND FullUp?
Seq 'Z' TCZ# EOL
CloseMP1T
IF ToolChangeAtHome?
Seq Rapid Home 'Z' TCZ# EOL
END
ELSE
IF AllToolsOnePart?
IF FirstPart?
Seq 'Z' TCZ# EOL
IF ToolChangeAtHome?
Seq Rapid Home 'Z' TCZ# EOL
END
RetMPAT
END {end firstPart?}
ELSE
IF ToolChangeAtHome?
Seq Rapid Home 'Z' TCZ# EOL
ELSE
Seq 'Z' TCZ# EOL
END
END
END
ELSE
DoPostScript
IF ToolChangeAtHome?
Seq Rapid Home 'Z' TCZ# EOL
ELSE
Seq 'Z' TCZ# EOL
END
END
{Start new Operation}
IF MultipleParts?
IF OneToolAllParts? AND FullUp?
DoOpComments
IF LAST ProgStop?
SeqC 'M00' EOL
ELSE
SeqC ProgStop EOL
END
OpenMP1T
Seq OpToolID EOL
ELSE
IF AllToolsOnePart?
IF LAST ProgStop?
SeqC 'M00' EOL
ELSE
SeqC ProgStop EOL
END
CallMPAT {has DoOpComments}
IF FirstPart?
Seq OpToolID EOL
END {end firstPart?}
ELSE
Seq OpToolID EOL
DoOpComments
IF LAST ProgStop?
SeqC 'M00' EOL
ELSE
SeqC ProgStop EOL
END
END
END
ELSE
Seq OpToolID EOL
DoOpComments
IF LAST ProgStop?
SeqC 'M00' EOL
ELSE
SeqC ProgStop EOL
END
END
IF FirstPart?
CheckPass
Seq Plane Rapid StrtPos 'Z' ClearancePlane1# EOL {add plane}
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP1T
END
END {end firstPart?}
ELSE
IF SameTool? AND FirstPart?
DoEndOpPS
IF LAST ProgStop?
Seq OfstOff EOL
Seq 'G4' EOL
{Start new Operation}
DoOpComments
DoPostScript
CheckPass
Seq Plane Rapid StrtPos EOL {add plane}
Seq OfstOn EOL
ELSE
IF NewToolOffset?
Seq OfstOff EOL
{Start new Operation}
DoOpComments
DoPostScript
CheckPass
Seq Plane Rapid StrtPos EOL {add plane}
Seq OfstOn EOL
ELSE
{Start new Operation}
DoOpComments
DoPostScript
CheckPass
Seq Plane Rapid StrtPos EOL {add plane}
END
END
END
END
END
IF FirstPart?
IF Milling?
Seq ZCP2C EOL
IF Repeats?
IF ZshiftOnly?
IF AutoCycle? {incremental Autocycle sub can have Z moves}
ZonlyRepAutoCycle
ELSE {Z shift only, NOT Auto Cycle}
IF UseSeparateSubCalls? AND CyclesLessThanMaxSubCalls?
FindAnyZMoves {for normal abs subroutine}
IF NoZMoves?
ZonlyRep
ELSE
G92Sub {pattern shift, not element}
END
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
IF AutoCycle?
Seq ZCP3C EOL
ELSE
IF FIFO? {.81}
Seq FeedC CRCOffC ZCP3C FeedRateC EOL
ELSE
Seq RapidC CRCOffC ZCP3C EOL
END
END
ELSE
IF Drilling?
IF Repeats?
SubWarning
IF MultipleParts? OR AnyZShift?
IF UseComments?
'( THIS REPEAT OP WILL BE LONGHAND DUE TO MULT PARTS OR Z SHIFT)' EOL
END
EachRep {can't nest origin shifts or origin shift Z}
IF NOT FirstCycle?
Seq Connect StrtPos EOL
END
ELSE
NewProg TagInc
EachRep
IF NOT FirstCycle?
Seq 'M1101' EOL
Seq 'X' CurOriginPosX# 'Y' CurOriginPosY# 'Z' ToolLength# EOL
END
Seq 'G29C' Tag# EOL
NextRep
StartSub
Seq AbsOrInc Connect StrtPos EOL
END
END
Seq DrillCP EOL
IF Tap?
NewProg TagInc
OpenSub
Seq 'G29S' Tag# EOL
Seq Feed ZDepth 'F' FeedEntry# EOL
Seq 'M4' EOL
Seq 'Z' ClearancePlane2# EOL
Seq 'M3' EOL
Seq Rapid EOL
Seq 'G29E' EOL
CloseSub
ToolPath
ELSE
GetCycle
IF RetractToCP1?
Seq 'M1313' EOL
END
Seq 'G29LV20 ' FeedEntry# EOL
Seq 'G29LV21 ' ClearancePlane2# EOL
IF Dwell?
Seq 'G29LV22 ' Dwell# EOL
END
IF Peck?
Seq 'G29LV23 ' Peck# EOL
END
IF RetractToCP1?
Seq 'G29LV24 ' ClearancePlane1# EOL
END
IF FIFO? AND Dwell?
Seq 'G89' EOL
ELSE
Seq Cycle EOL
END
Seq 'G1' ZDepth EOL
Seq StrtPos EOL
TrackZNO# ZDepth# {.81}
ToolPath
IF RetractToCP1? {.81}
TrackZNO# ClearancePlane1#
ELSE
TrackZNO# ClearancePlane2#
END
Seq 'G80' EOL
IF RetractToCP1?
Seq 'M1314' EOL
END
END
IF Repeats?
IF MultipleParts? OR AnyZShift?
NextRep
ELSE
Seq 'G29E' EOL
CloseSub
Seq 'M1101' EOL
Seq 'X0Y0Z' ToolLength# EOL
END
END
Seq Rapid ZCP3C EOL
END
END
END
NextOp
IF FirstPart?
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP1T
END
Seq 'T0' EOL
DoEndOpPS
END {end firstPart?}
IF MultipleParts?
IF OneToolAllParts? AND FullUp?
Seq 'Z' TCZ# EOL
CloseMP1T
IF FIRST ToolChangeAtHome?
Seq Rapid FirstHome 'Z' TCZ# EOL
END
ELSE
IF AllToolsOnePart?
IF FirstPart?
Seq 'Z' TCZ# EOL
IF FIRST ToolChangeAtHome?
Seq Rapid FirstHome 'Z' TCZ# EOL
END
RetMPAT
END {end firstPart?}
ELSE
IF FIRST ToolChangeAtHome?
Seq Rapid FirstHome 'Z' TCZ# EOL
ELSE
Seq 'Z' TCZ# EOL
END
END
END
ELSE
IF FIRST ToolChangeAtHome?
Seq Rapid FirstHome 'Z' TCZ# EOL
ELSE
Seq 'Z' TCZ# EOL
END
END
IF ProgStop?
SeqC 'M00' EOL
END
IF MultipleParts? AND AllToolsOnePart?
CloseMPAT
END
Seq EndSub 'E' EOL
Post
EOR EOL
Close
IF UseComments?
SetScale('1')
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
Wyszukiwarka
Podobne podstrony:
Anilam Crusader II SM M987 81 4Anilam Crusader [USS] M195 89Anilam Crusader 2 M158 81mAnilam Crusader L051 82Anilam Crusader II G&C M995 89Anilam Crusader 2[MD] M463 89Anilam Crusader 2 L231 82BP BTC [VT] M959 89 1Anilam 1400 [UPE] CU05 15 1więcej podobnych podstron