Deckel Dialog 2 Ver M778 80 6


{09/29/89 Modified from Dynapath System 20M M074.40 for Pacific Packaging - DWB
Created 3 new subroutines to handle special Cutter Radius Compensation
formatting. They are called StartCCR1, StartCCR2 and EndCCR. The control
requires a 'G45' if the first or last move is linear and an 'A' address to
specify the distance from start point to next point. If the first or last move
is an arc, then the control requires a 'G47' and an 'A' address to specify the
radius of the arc.
Added 'G04 F#.#0;0' format for all dwell occurances.
The customer requested an output for handling tool changes. The output calls up
their own subprogram which is stored as program#4. So to handle the case where
they select multiple parts, or repeats, I called 'NewProg' 4 times, (to
increment the program#), during the first operation to ensure that the next
program# will be higher than their tool change subroutine.
Since the control doesn't use work fixture offsets, I removed the boolean for
such.
This prog has all the added routines that were found in Fanuc 6M M001.60}

{1/11/90
Updated: Deckel FP2NC Dialog 4 M248.61 to .69 format.
Jim Radcliffe}

{1/11/90
Copied & modified: Deckel FP2NC Dialog 4 M248.69
For: Specialty Silicone
Changed CRC ofset label to a D.
Add space between codes.
Changed sub format to Local Subs instead of Macro Sub.
Enabled SepSubs.
Modified Start Up & End blocks per I/O manual 4.86-/511/874 E, page 39.
NOTE: the $ sign in the start block indicates inch input.
Deleted the line 'N0L0N2' from beginning of prog.
Deleted the calls to macro sub number 4.
Jim Radcliffe}

{2/28/90
Copied & modified: Deckel Dialog 4 (SS) M276.69
For: Specialty Silicone
1 trailing decimal place for feeds.
Clear Plane values in MachSpec.
Different Home & ZCP1 stuff, no 'G52'
Rapids are not modal.
Added MoveCCR & FeedCCR subs
4 decimal places for axis moves
Modifications to drilling.
Jim Radcliffe}

{4/9/90
Copied & modified: Deckel Dialog 4 (SS) M276.69.6
Changed to CP1LessCP2# command in drilling
Jim Radcliffe}

{4/25/90, Updated: Deckel Dialog 4 (SS) M276.69.7 to .71.2 foramt, JR}
{NOTE: the A for CRC AutoCycles still needs to addressed correctly to be fully .70}

{4/26/90
Copied & modified: Deckel Dialog 4 (SS) M276.71.2
For: Pacific Packaginq
Machine: Deckel Dialog 3
Arcs need all axis & G codes, all G0 must also be defined otherwise G1 is implied.
Deleted G17's
Modified subs for drilling, 1 line subs only.
All Z moves nust have a ToolOffset
Trailing Zeros with + or - sign
Two digit G M T & D codes.
Change Subroutines to Program Loops.
NOTE: this should be a good example for machines that do looping only and not subs.
Reformated between tool stuff.
Jim Radcliffe}

{7/24/90, Replaced all occurances of SetSRXYZero with SetSRXYtoSP, DWB}

{4/03/91
Modified: Deckel Dialog 3 M247.72
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 6M M001.80 Format.
DWB}

{2/21/95
Copied & modified: Deckel Dialog 3 M247.79
For: Rick Meide / Remmele
Control: Deckel Dialog 2
Deleted ProgNum line from beginning of program.
Added '0' after P in ProgNum comment line.
Modified ZonlyRep sub so ToolOfst is before the FeedEnt command on the same line.
Moved FeedRateC from before to after Move on same line.
Changed literal L1 to L01 for specifying 1 repeat of a loop.
Changed RepsLess1 & PartsLess1 to RepsLess1# & PartsLess1# and formated
Changed OfstOff command to DoOfstOff to output Z0 D99.
This causes a move to Z0 with the D99 offset that the operator will enter
a usfull number for the program as to be equivalant to a FullUp for the tool.
Added CoolOff to TCZ line.
Corrected IF ZMove? arguments. They must be satisfied BEFORE the move command is called!
Modified Cutter Radius Compensation.
Deleted M70 commands. No Z motion while cutter comp is active.
Suppress activation of CRC until the first linear non-Z move.
Deleted StartCCR1 and FeedCCR subs and calls.
Not using G45/G47 CRC activation commands due to the above mentioned suppression.
Deleted MoveCCR sub. Changed its calles to MoveXYZC.
Deleted StartCCR2. Moved its info to StdLine.
Using Flag('1') to test for CRC avtivation.
Deleted EndCCR sub. Changed its call to SetFlagF('1'). Only need to output G40 and reset the flag!
Changed M61 (exact stop mode) to M62 (continuas contour mode)
Corrected Drilling Depths, a long established "bug".
Changed Drilling Dwell command to V.
Jim Radcliffe}

{3/10/95
Changed DoOfstOff was outputting D99 instead of D+99.
Changed to unconditional CRCOn CRCOffset commands.
Added TagInit command, InitProg did not seem to be doing it!
Unconditional MoveX and MoveY when turning CRCOn.
Jim Radcliffe}

{3/16/95
Added ZCP1 to Drilling RetractToCP1 argument before GetCycle IF SameTool and ­ to previous ZCP3.
Jim Radcliffe}

{5/23/95
Initial: Deckel Dialog 2 M778.80.2
Created: Deckel Dialog 2 M778.80.3
Comment: Per instructions from Rudy at Remmele
Added G64, turn off exact stop mode, to beginning of program to get smooth contours to.
Deleted SpinOff at end of tools.
Changed M0 to M00
Moved DoOpComments and DoPostScript to after OpToolID line.
Cleaned up:
Moved AbsOrInc at beginning of program to before MPATOP
Changed SeqLabC to SeqLab on OpToolID line.
Added space before M00 at end of program.
Suppressed Dwell output on Peck and Tap drilling cycles.
Jim Radcliffe}

{
Format: Deckel Dialog 2 Ver M778.80.4
1/5/95
For: Remmele
Added G64 to non-Drilling StrtPos lines
Added Rapid to follow all looping commands (Work around bug in control)
Removed DoOfstOff for ProgStop? cases
Moved DoOfstOff line to immediately precede the OpToolID and EOP
TH}

{
Format: Deckel Dialog 2 Ver M778.80.5
1/23/95
For: Remmele
Added Rapid to FinishSubG92 and CloseMP
TH}

{
Format: Deckel Dialog 2 Ver M778.80.6
2/6/95
For: Remmele
Removed IF NOT LAST ProgStop from
SeqLabC Rapid DoOfstOff CoolOff EOL
in NewTool?
Added SetStatusOff and SetStatusOn in ZOnlyRep to fix multiple parts positioning
TH}

{Prog Numeric Format Definitions *******************************************}

#1 = '#.00'
#2 = '###^##0'
#3 = '*###^##0'
#4 = '####.####;0.'
#5 = '#######0'
#6 = '#0^'
#7 = 'Ä…#^###0'
#8 = '0000'
#9 = 'Ä…00'
#10 = '00'
#11 = '*#^###0'

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ToolDiameter#,4)
FORMAT(Operation#,5)
FORMAT(Tool#,5)
FORMAT(Parts#,5)
FORMAT(SpeedRPM#,5)
FORMAT(Dwell#,6)
FORMAT(ArcR#,7)
FORMAT(CP1LessCP2#,7)
FORMAT(TCZ#,7)
FORMAT(SUB#,7)
FORMAT(Tag#,8)
FORMAT(ToolOffset#,9)
FORMAT(RepsLess1#,10)
FORMAT(PartsLess1#,10)
FORMAT(Peck#,11)
FORMAT(Retract#,11)

{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

DoSubComment:
IF UseComments? AND SubComment?
'( SUB NUMBER: ' Tag# ' )' 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: {reset flags}
RotateF
RETURN

PSStuff:
IF FourthCW?
FORMAT(FourthDegree#,2)
SeqLabC ' A' FourthDegree# EOL
FourthCWF {reset flag}
END
IF FourthCCW?
FORMAT(FourthDegree#,3)
SeqLabC ' A' FourthDegree# EOL
FourthCCWF {reset flag}
END
IF FifthCW?
FORMAT(FifthDegree#,2)
SeqLabC ' B' FifthDegree# EOL
FifthCWF {reset flag}
END
IF FifthCCW?
FORMAT(FifthDegree#,3)
SeqLabC ' B' FifthDegree# EOL
FifthCCWF {reset flag}
END
RETURN

DoPostScript:
PSInit
EachPS
SeqLabC PostScript EOL
PSStuff
NextPS
RETURN

DoEndOpPS:
PSInit
EachEOPS
SeqLabC EndOpPS EOL
PSStuff
NextPS
RETURN

EntryMove:
IF FeedEntry?
SeqLabC Feed ZIn ToolOfst FeedEnt EOL
ELSE
SeqLabC Rapid ZIn ToolOfst EOL
END
RETURN

SubWarning:
IF NOT FeedConnect?
IF AnyZshift?
' ' EOL
'( WARNING Z CLEARANCE WILL CHANGE WITH EACH CYCLE OF SUB REPEAT )' EOL
' ' EOL
END
END
RETURN

StdSub:
SubWarning
'>' Tag# EOL
SeqLab Connect StrtPos EOL
RETURN

FinishSub1: {part 1}
UnSkipZ
IF NOT FeedConnect?
SeqLabC Rapid ZCP3 ToolOfst EOL
END
RETURN

FinishSubG92: {part 2}
SeqLab Preset ShiftRC EOL
'<' Tag# EOL
SeqLabC RepLab RepsLess1# ' NÅ‚' Tag# ' N²' Tag# Rapid EOL
SeqLabC Preset UnshftRC EOL
RETURN

OpenMP: {using a loop function}
TagUp TagInc
'>' Tag# EOL
SeqLab {drop an unconditional to ensure proper tagging}
RETURN

CloseMP:
SeqLab Preset ShiftPC EOL
'<' Tag# EOL
SeqLabC RepLab PartsLess1# ' NÅ‚' Tag# ' N²' Tag# Rapid EOL
SeqLabC Preset UnshftPC EOL
TagDown
RETURN

FormatArc:
IF ArcCW?
CWArc
ELSE
CCWArc
END
IF XYPlane?
IF ZMove?
MoveX MoveY MoveZ ToolOfst ArcIJ
ELSE
MoveX MoveY ArcIJ
END
ELSE
IF XZPlane?
MoveX MoveYC MoveZ ToolOfst ArcIJ
ELSE
MoveXC MoveY MoveZ ToolOfst ArcIJ
END
END
RETURN

StdLine:
IF CutterRadiusCompensation? AND NOT Flag?('1')
SetFlag('1')
SeqLabC FeedRateC EOL
SeqLabC CRCOn CRCOfst MoveX MoveY Feed ' G64 M62' EOL
ELSE
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqLabC FeedC MoveXYZC FeedRateC EOL
DecelMove2
END
SeqLabC FeedC MoveXYZC DecelFeed EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqLabC FeedC MoveXYZC FeedRateC EOL
END
END
END
RETURN

ToolPath:
EACHFeat
IF PointFeat?
IF NOT FirstFeat?
IF Drilling?
SeqLabC ' U' Tag# Rapid MoveSXYC EOL
ELSE
IF AutoCycle?
SeqLabC Rapid MoveSXYC EOL
SeqLabC ' L01' ' NÅ‚' Tag# ' N²' Tag# Rapid EOL
END
END
END
ELSE
IF RapidFeat?
IF ZMove?
SeqLabC Rapid MoveXYZC ToolOfst EOL
ELSE
SeqLabC Rapid MoveXYZC EOL
END
ELSE
IF LineFeat?
IF ZMove? {skips CRCOn until first non-Z move line, outputs the tool offset as needed}
SeqLabC FeedC MoveXYZC ToolOfst FeedRateC EOL
ELSE
StdLine {enables CRC on first call}
END
ELSE
IF ArcFeat?
EACHQuadrant
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
SeqLabC FormatArc ArcFeedC EOL
DecelMove2
END
SeqLabC FormatArc DecelFeed EOL
ELSE
SeqLabC FormatArc ArcFeedC EOL
END
NEXTQuadrant
END
END
END
END
NEXTFeat
RETURN

AutoCycCutSub1: {part 1}
SaveSubStatus {save tool position}
SetPass1 {element cut moves}
'>' Tag# EOL
SetSRXYtoSP
SeqLab IncValue EOL
SeqLabC StrtPosC EOL
RETURN

AutoCycCutSub2: {part 2}
ToolPath
IF Repeats?
IF FeedConnect? AND ZshiftOnly?
SeqLabC CRCOffC SetFlagF('1') EOL {.69 removed RapidC}
SeqLab AbsOrInc EOL
ELSE
SeqLabC CRCOffC SetFlagF('1') EOL
SeqLabC AbsOrInc EOL
SeqLab Rapid ZCP2 ToolOfst EOL
END
ELSE
SeqLabC CRCOffC SetFlagF('1') EOL
SeqLabC AbsOrInc EOL
SeqLab Rapid ZCP2 ToolOfst EOL
END
'<' Tag# EOL
SetSRSubXY {restore tool position}
SetSRSubMove
RETURN

AutoCycPat:
SetPass2 {position pattern}
ToolPath {call after TagInc}
RETURN

Milling:
IF AutoCycle?
TagUp TagInc
AutoCycCutSub1
EntryMove
AutoCycCutSub2
AutoCycPat
TagDown
ELSE
EntryMove
ToolPath
SeqLabC CRCOffC SetFlagF('1') EOL
END
RETURN

G92Sub:
TagUp TagInc
StdSub
Milling
FinishSub1
FinishSubG92
TagDown
RETURN

ZonlyRepAutoCycle:
TagUp TagInc
'>' Tag# EOL
TagUp TagInc
SetPass1 {for correct Z's}
EachCycle
IF FirstCycle?
IF FeedConnect?
SeqLab Feed ZInPlusInc FeedEnt ToolOfst EOL
ELSE
IF FeedEntry?
SeqLab Feed ZInPlusInc FeedEnt ToolOfst EOL
ELSE
SeqLab Rapid ZInPlusInc ToolOfst EOL
END
END
AutoCycCutSub1 {build element sub}
AutoCycCutSub2
ELSE
IF FeedConnect?
SeqLabC Feed ZInPlusInc FeedEnt ToolOfst EOL
ELSE
IF FeedEntry?
SeqLabC Rapid ZCP2PlusInc ToolOfst EOL
SeqLabC Feed ZInPlusInc FeedEnt ToolOfst EOL
ELSE
SeqLabC Rapid ZInPlusInc ToolOfst EOL
END
END
IF NOT FeedConnect?
SeqLab {drop unconditional for proper tagging}
END
SeqLabC ' L01' ' NÅ‚' Tag# ' N²' Tag# Rapid EOL {call element sub}
END
NextCycle
TagDown
IF FeedConnect? {there is no Z up in the sub, .69}
SeqLab Rapid ZCP2 ToolOfst EOL
END
'<' Tag# EOL
AutoCycPat {write pattern moves and main calls}
TagDown
RETURN

ZonlyRep:
TagUp TagInc
EachCycle
IF FirstCycle?
IF FeedConnect?
SeqLabC FeedC ZInPlusInc ToolOfst FeedEnt EOL
ELSE
IF FeedEntry?
SeqLabC Feed ZInPlusInc ToolOfst FeedEnt EOL
ELSE
SeqLabC Rapid ZInPlusInc ToolOfst EOL
END
END
'>' Tag# EOL
SeqLab {dropped unconditional for proper tagging}
SkipZ
ToolPath
UnSkipZ
IF NOT FeedConnect?
SeqLabC CRCOffC SetFlagF('1') EOL
SeqLab Rapid ZCP3 ToolOfst EOL
ELSE
SeqLab CRCOffC SetFlagF('1') EOL
END
'<' Tag# EOL
ELSE
SetStatusOff
SeqLabC Connect StrtPos EOL
SetStatusOn
IF FeedConnect?
SeqLabC FeedC ZInPlusInc ToolOfst FeedEnt EOL
ELSE
IF FeedEntry?
SeqLabC Rapid ZCP2PlusIncC ToolOfst EOL
SeqLabC Feed ZInPlusInc ToolOfst FeedEnt EOL
ELSE
SeqLabC Rapid ZInPlusInc ToolOfst EOL
END
END
SeqLabC ' L01' ' NÅ‚' Tag# ' N²' Tag# Rapid EOL
END
NextCycle
TagDown
RETURN

CheckPass:
IF AutoCycle? {use the correct StrtPos}
SetPass2
ELSE
SetPass1
END
RETURN

GetSpindle:
' S'
IF CWSpindle?
'+'
ELSE
'-'
END
SpeedRPM#
RETURN

GetStartOfSameTool:
DoOpComments
DoPostScript
Plane {no output}
CheckPass
RETURN

DoOfstOff:
' Z0 D+99'
RETURN

{Start of executable Prog **************************************************}

{setup and initializations}
InitProg
TagInit
ReverseXZArcs
UseSeparateSubCalls
SetMaxSeparateSubCalls ('50') {?}
SetFlood
SetMaxRPM('6300')
SetMaxFeed('500') {?}
SetFlagF('1') { CRCOff }
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
' ToolChangeZ(10), TCZ(10) -' EOL
' The the value you specify in parantheses will be used' EOL
' for all following operations Z tool change positions.' EOL
' Command is Modal and 10.0000 is the default.' EOL
END
EachOp
IF FirstOperation?
EOR EOL
'($P0' ProgNum '/0000' ')' EOL
IF ToolChangeAtHome?
SetHome
END
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$ ' )' EOL
END
IF PartsComment?
'( PARTS PROGRAMMED: ' Parts# ' )' EOL
END
IF StartToolComment?
'( FIRST TOOL NOT IN SPINDLE )' EOL
END
END
OpenSub
RestoreScale
SeqLabC AbsOrInc EOL
SeqLabC ' G64' EOL
IF MultipleParts? AND AllToolsOnePart?
OpenMP
END
Plane {no output}
SeqLab OpToolID EOL
DoOpComments
DoPostScript
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
END
CheckPass
SeqLabC Rapid StrtPos GetSpindle CoolOn
IF NOT Drilling?
' G64'
END
EOL
SeqLabC Rapid ZCP1 ToolOfst EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
SeqLabC Rapid StrtPos EOL
END
ELSE
IF NewTool?

{Finish off last Operation}

IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP
END
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
IF ToolChangeAtHome?
SeqLabC Rapid Home EOL
END
IF LAST ProgStop?
SeqLabC ' M00' EOL
ELSE
IF OptionalStops?
SeqLabC ProgStop EOL
END
END

{Start new Operation}

Plane {no output}
SeqLabC Rapid DoOfstOff CoolOff EOL
SeqLab OpToolID EOL
DoOpComments
DoPostScript
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
END
CheckPass
SeqLabC Rapid StrtPos GetSpindle CoolOn
IF NOT Drilling?
' G64'
END
EOL
SeqLabC Rapid ZCP1 ToolOfst EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
SeqLabC Rapid StrtPos EOL
END
ELSE
IF SameTool?
DoEndOpPS
IF LAST ProgStop?
SeqLabC ' M00' EOL

{Start new Operation}

GetStartOfSameTool
SeqLabC Rapid StrtPos GetSpindle CoolOn
IF NOT Drilling?
' G64'
END
EOL
SeqLabC Rapid ZCP1 ToolOfst EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqLabC CoolOff EOL
END
IF NewToolOffset?
SeqLabC Rapid DoOfstOff EOL

{Start new Operation}

GetStartOfSameTool
SeqLabC Rapid StrtPos GetSpindle CoolOn
IF NOT Drilling?
' G64'
END
EOL
SeqLabC Rapid ZCP1 ToolOfst EOL
ELSE

{Start new Operation}

GetStartOfSameTool
SeqLabC Rapid StrtPos GetSpindle CoolOn
IF NOT Drilling?
' G64'
END
EOL
END
IF NOT CoolOff? AND LAST CoolOff?
SeqLabC CoolOn EOL
END
END
END
END
END
IF Milling?
SeqLabC Rapid ZCP2 ToolOfst 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
SeqLabC Rapid ZCP3 ToolOfst EOL
ELSE
IF Drilling?
IF Repeats?
TagUp TagInc
'>' Tag# EOL
SeqLab Rapid StrtPos EOL
END
IF RetractToCP1?
IF SameTool? AND NotEqual? LAST ClearancePlane3# ClearancePlane1#
SeqLabC Rapid ZCP1 ToolOfst EOL
ELSE
{we are already at CP1}
END
ELSE
SeqLabC Rapid ZCP2 ToolOfst EOL
END
GetCycle
TagUp TagInc
OpenSub {put the cycle in a subroutine block}
{ ZDepth needs to be incremental from ZCP2 }
{ ZDepth outputs incorrectly when in incremental and RetractToCP1 }
{ Using calculation to output correct Z value }
'U' Tag# Cycle FeedEnt GetSpindle
' Z' SUB# ZDepth# ClearancePlane2#
IF Peck?
' Z' Peck#
IF PeckChipBreaker?
Retract
ELSE
' Z' Retract#
END
ELSE
Dwell
END
IF RetractToCP1?
' Z' CP1LessCP2# {inc value to CP1 from CP2}
END
EOL
CloseSub
SeqLabC ' U' Tag# Rapid StrtPos EOL
ToolPath
TagDown
IF Repeats?
SeqLab Preset ShiftRC EOL
'<' Tag# EOL
SeqLabC RepLab RepsLess1 ' NÅ‚' Tag# ' N²' Tag# Rapid EOL
SeqLabC Preset UnshftRC EOL
TagDown
END
SeqLabC Rapid ZCP3 ToolOfst EOL
END
END
NEXTOp
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP
END
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
IF FIRST ToolChangeAtHome?
SeqLabC Rapid FirstHome EOL
END
IF ProgStop?
SeqLabC ' M00' EOL
END
IF MultipleParts? AND AllToolsOnePart?
CloseMP
END
SeqLabC Rapid DoOfstOff CoolOff EOL
SeqLabC EOP EOL
Post
Close
ReTag
ReOpen
IF UseComments?
SetScale('1')
IF FileBytesComment?
'( FILE LENGTH: ' FileBytes# ' CHARACTERS )' EOL
END
IF FileFeetComment?
'( FILE LENGTH: ' FileFeet# ' FEET )' EOL
END
IF FileMetersComment?
'( FILE LENGTH: ' FileMeters# ' METERS )' EOL
END
END
'?' EOL
'0000' EOL
Close


Wyszukiwarka