Heid TNC 155 [P&A] M694 81 10m


{Change Comments ***********************************************************}

{.68m, created metric version and .68 support, 12/14/89, Stefan VŠlimaa}
{.69m, new repeat offset shift commands, wfg}
{.70m, added missing END in ToolPath, wfg--TABLE resources are missing}

{7/24/90, Added InitProg globally to posts with this remark, DWB}
{7/24/90, Replaced all occurances of SetSRXYZero with SetSRXYtoSP, DWB}
{9/19/90, Updated to .71 with changes done for customer not reported to
GIBBS, sorry Stefan VŠlimaa}

{9/28/90 Comparison report from Stefan's version and our's:
Modified FORMAT(OriginUnShiftPX#,2).
Added FORMAT(SpeedRPM#,3).
Modified SetScale('24.5') to SetScale('25.4').
Modified all occurances of 'F2500' to 'F9999'.
Modified the literal M08 with the IF CoolantOff? postscript boolean in AutoCycCutSub2.
Modified the literal M09 with the IF CoolantOff? postscript boolean in FinishSub1, ZonlyRepAutoCycle and ZonlyRep.
Added IF ToolChangeAtHome? boolean and SetHome command to FirstOperation.
Modified BLK FORM MIN to BLK FORM 0.1 in FirstOperation.
Combined the StockMin# commands on one line.
Modified BLK FORM MAX to BLK FORM 0.2 in FirstOperation.
Combined the StockMax# commands on one line.
Deleted ' LBL 1' from FirstOperation
Deleted ' TOOL CALL 0 Z S 0.000' from FirstOperation.
Deleted ' L Z' ClearancePlane1# ' R0 F9999 M' from FirstOperation
Deleted ' L X' HomeX# ' Y' HomeY# ' R0 F9999 M06' from FirstOperation
Deleted ' LBL 0' from FirstOperation
Modified TABLE(1800,SpeedRPM#,1) to TABLE(4001,SpeedRPM#,1) in FirstOperation and NewTool.
Modified ' CALL LBL 1 REP' to ' L Z' ClearancePlane1# ' R0 F9999' SpinOff in NewTool.
Added IF ToolChangeAtHome? boolean at end of prog.
Moved Post to before literal END PGM at end of prog.
DWB}

{10/2/90
Copied & modified: Heidenhain TNC 155 M281.70m
For: Gibbs & Associates
Machine:
Control: Heidenhain TNC 155
Deleted argument from FORMAT(OriginUnShiftPX#,2).
Modified SetSRXYZero to SetSRXYtoSP in AutoCycCutSub1.
Added InitProg at beginning of executable prog.
Made massive changes to cleanup logic and readability.
Updated to Version 3.2 per Fanuc 6M M001.76.1 Format.
DWB}

{10/8/90
Copied & modified: Heid TNC 155 M281.76.1m
For: Gibbs & Associates
Machine:
Control: Heidenhain TNC 155
Added ArcI#, ArcJ# and SPZ# to FORMAT list.
Added SPZ# to EntryMove for AutoCycle entries.
Added IF Metric ' MM' ELSE ' INCH' END at FirstOperation and at end of prog.
DWB}

{12/16/92
Updated: Heid TNC 155 M281.76.1m
For: Gibbs & Associates
Updated to Version 4.1 per Fanuc 6M M001.81.2 Format.
Combined routines with Heid TNC 151 BP M139.81.2m
DWB}

{12/3/93
Modified: Heidenhain TNC 155 M281.81.2m
To: Heidenhain TNC 155 M281.81.3m
Fixed the RestoreScale function to work with both english and metric parts. Also removed
unneeded setscale commands and replaced them with math ( number ) commands.
[cwh]}

{9/23/94
Copied: Heidenhain TNC 155 M281.81.3m
Created: Heid TNC 155 [P&A] M694.81.3m
For: Cigraph PTY
Versions: ncCad 4.33/ncCAM 4.33/ncPost 4.33.03/Compost 4.21.22
Versions: Catalyst v2.05.54C/Compost 4.21.22
Changes made per Maurizio of Cigraph PTY.
Added FORMAT#7 '*Ä…####0.000' for Peck# at Prog Numeric Format Definitions.
Changed FORMAT for SpeedRPM# from FORMAT#6 to FORMAT#1 at Prog Numeric Format Definitions.
Changed FORMAT for Peck# from FORMAT#4 to FORMAT#7 at Prog Numeric Format Definitions.
Changed SetMaxRPM from '10000' to '15000' at setup and initializations.
Changed TABLE(4001,SpeedRPM#,1) to 'S ' SpeedRPM# at FirstOperation and NewTool.
Added DoL ZCP1 DoZR0 RF DoM block prior to StrtPos block at FirstOperation and NewTool.
Changed Swedish Labels for Canned Peck Drilling Cycle to English Labels at IF Drilling.
Changed DJUPBORRNING to PECKING for CYCL DEF 1.0.
Changed AVST to SET UP for CYCL DEF 1.1.
Changed DJUP to DEEP for CYCL DEF 1.2.
Changed INSTICK to PECK (-) for CYCL DEF 1.3.
Changed V.TID to DWELL for CYCL DEF 1.4.
Deleted DoL ZCP3 DoZR0 RF CheckCoolOff block at end of IF Drilling.
Deleted TOOL CALL block at end of Prog.
Deleted STOP M02 block at end of Prog.
DWB}

{10/14/94
Modified: Heid TNC 155 [P&A] M694.81.3m
For: Cigraph PTY
Versions: ncCad 4.33/ncCAM 4.33/ncPost 4.33.03/Compost 4.21.22
Versions: Catalyst v2.05.54C/Compost 4.21.22
Changes made per Maurizio of Cigraph PTY.
Changed Swedish Drilling labels with English labels from Heid TNC 151 BP M139.81.4m.
Deleted all Z axis output.
Added SetStatusOff/SetStatusOn and TrackZNO# ClearancePlane1# at FirstOperation.
Added SetStatusOff/SetStatusOn at IF Drilling.
This is to insure that any Z Axis Coordinate parameters used in Canned Drilling Cycles are
correctly handled.
Added DoZInSub.
Outputs ZIn from FirstOperation to be called by all other Operations.
Added DoZCP3Sub.
Outputs ZCP3 from FirstOperation to be called by all other Operations.
DWB}

{
10/25/94 [cwh]
Modified: Heid TNC 155 [P&A] M694.81.4m
For: Cigraph PTY / P & A
Changes:
Removed all coolant commands.
Removed DoZInSub and DoZCP3Sub.
10/25/94 [dwb]
Changed ClearancePlane2# from FORMAT#4 to FORMAT#7.
Changed literal 'M99' to literal 'M' for Drilling at ToolPath PointFeat.
Added call to EntryMove for Drilling at ToolPath PointFeat.
Outputs literal ' CALL LBL 1 REP ' blockand follows output of MoveSXYC block.
Added ZCP1 block back in at FirstOperation.
Moved SkipZ after ZCP1 block at FirstOperation.
Added literal ' CALL LBL 11 REP ' block at start of IF Drilling.
Deleted literal '(-)' for all non-Tapping Cycles Peck value at IF Drilling.
Added FIRST ZCP1 block at end of Prog.
Added UnSkipZ prior to FIRST ZCP1 block at end of Prog.
Added literal ' STOP M' block at end of Prog.
}

{1/12/95
Modified: Heid TNC 155 [P&A] M694.81.5m
For: Cigraph PTY
Versions: ncCad 4.33/ncCAM 4.33/ncPost 4.33.04/Compost 4.21.23
Versions: Catalyst v2.14.24C/Catalyst v2.14.24PPC/Compost 4.21.23
Changes made per Maurizio of Cigraph PTY.
Added Recall# to FORMAT#4 at Prog Numeric Format Definitions.
Changed '?' to 'N' for Sequence Labels in Composts Strings 2 Dialog
Added '000' Format for N Address in Mach Spec Defaults Formats.
Deleted all occurances of SeqLab.
Added SetLineStrtChr('?') at FirstOpertion.
Added SetLineStrtChr('') prior to all Comments.
Added SetLineStrtChr('?') following to all Comments.
Added SetLineStrtChr('') prior to Retag at end of Prog.
Deleted tons of literal Spaces and calls to Spaces sub throughout Prog.
Added GetSpaces sub to control position of characters at end of output blocks.
Uses Var(1) to store and compare values of coordinates output to Num# constants to output needed
extra spaces to align R0 F9999 M literal codes.
Changed Spaces sub to output 10 spaces instead of 12.
Deleted DoZR0 sub and changed all calls to same to call DoR0 sub.
As a result of spaces modifications throughout Prog, DoZR0 sub ended up only calling DoR0 sub.
Added Coolant support back in.
Modified EntryMove sub.
At first Milling Operation of program, ZIn is output to LBL 1 Macro.
All other Milling Operations will call LBL 1 Macro.
Using Flag(1) to control this.
Using Flag(2) to control similar code for ZDepth at IF Drilling.
Added call to LBL 9 Macro at ToolPath PointFeat.
Added ZCP1 2 places at NewTool.
Added ZCP2 and ZCP3 to non-SameTool Milling Operations.
Added ZCP2 to non-SameTool Drilling Operations.
Deleted all SkipZ and UnSkipZ commands.
Added ToolChangeAtHome at NewTool.
Added literal '^' at end of Prog.
DWB}

{6/20/95
Modified: Heid TNC 155 [P&A] M694.81.6m
For: Cigraph PTY
Versions: ncCad 4.33.01/ncCAM 4.33.01/ncPost 4.33.06/Catalyst v2.14.40/Compost 4.21.29
Changes made per Maurizio of Cigraph PTY.
Customer requested that conditional FeedRate values be output with address F and no value.
Added Flag(3) at RestoreScale.
Necessary for correct English to Metric conversion of FeedRate Number Commands.
Past problems with asking IF NOT Metric? too many times.
Recalling Saved FeedEntry#, FeedContour#, ArcFeed# and DecelFeed# values do not scale.
Saving the values multiplied by 25.4
Added Var(2) and Var(3) for conditional compare.
Added ckF sub, CheckFeed.
Outputs value stored in Var(2) when NotEqual to Var(3)
Called at RF, FE, FR, AF and DF subs.
Called at EntryMove sub.
Called at IF Milling.
Called at IF Drilling.
Added NF sub.
Stores zero to Var(3) for NullFeed to force next value at ckF sub.
Called at start of ToolPath.
Called at ToolPath PointFeat.
Called at G92Sub.
Called at FirstOperation ZCP1.
Called at NewTool ZCP1, 2 places.
Called at SameTool StrtPos.
Called at end of prog ZCP1.
Changed Rapid Feed value from 100409 to 99990 in Mach Spec Numbers Dialog.
Modified RF sub, RapidFeed.
Stores RapidF# to Var(3), instead of 9999, for RapidFeed, instead of just outputting F9999.
Sub was already part of prog, so no extra calls to sub were required.
Added FE sub.
Stores FeedEntry# to Var(3).
Called at G92Sub.
Added FR sub.
Stores FeedContour# to Var(3).
Called at StdLine sub.
Called at LineFeat.
Added AF sub.
Stores ArcFeed# to Var(3).
Called at ArcFeat.
Added DF sub.
Stores DecelFeed# to Var(3).
Called at StdLine sub.
Called at ArcFeat.
Saving 150 to Var(3) for FeedEnt at EntryMove.
Saving 5000 to Var(3) for ZCP2 at IF Milling and IF Drilling.
Changed literal to call ckF
UnCommented out DoZInSub and DoZCP3Sub subs.
Commented out calls to those subs at FirstOperation.
See 10/25/94.
DWB}

{6/30/95
Modified: Heid TNC 155 [P&A] M694.81.7m
For: Cigraph PTY
Versions: ncCad 4.33.01/ncCAM 4.33.01/ncPost 4.33.06/Catalyst v2.14.40/Compost 4.21.30/1.0a
Changes made per Maurizio of Cigraph PTY.
Customer requested that output start with line number 000.
Any other value causes control to hang up.
Moved SetLineStrtChr('?') to after literal 'BEGIN PGM' block at FirstOperation.
Added literal '000' to literal 'BEGIN PGM' block at FirstOperation.
Customer is responsible for rest of line number output.
DWB}

{8/3/95
Modified: Heid TNC 155 [P&A] M694.81.8m
For: Cigraph PTY
Versions: ncCad 4.33.01/ncCAM 4.33.01/ncPost 4.33.06/Catalyst v2.14.40/Compost 4.21.32/1.0a
Changes made per Maurizio of Cigraph PTY.
Additional modifications to conditional FeedRates per 6/20/95.
Minor modifications made to ckF sub.
Added Var(4), FeedEntry# value of LBL 1 subroutine created for first Milling Operation.
Customer requested that value entered in FeedEntry edit field be output instead of F150.
Var(4) is initialized at setup and initializations.
First Milling Operation creates LBL 1 subroutine at EntryMove sub.
LBL 1 subroutine contains code for ZIn FeedEnt.
Replaced Var(3) forced storage of Num(150) to call to FE sub at EntryMove sub per changes made
on 1/12/95.
Call to NF ensures that LBL 1 subroutine gets FeedEntry output.
Storing value of Var(3) to Var(4) for LBL 1 subroutine at EntryMove sub.
Storing value of Var(4) to Var(2) for CALL LBL 1 subroutine at EntryMove sub.
Deleted line number changes made on 6/30/95.
Post is reverted back to first line number equal to value entered in Posting Dialog.
Deleted literal '^' at end of Prog per changes made on 1/12/95.
DWB}

{8/10/95
Modified: Heid TNC 155 [P&A] M694.81.9m
For: Cigraph PTY
Versions: ncCad 4.33.01/ncCAM 4.33.01/ncPost 4.33.06/Catalyst v2.20/Compost 4.21.32/1.0a
Changes made per Maurizio of Cigraph PTY.
Additional modifications to conditional FeedRates per 6/20/95.
Added condition to test for Flag(3) to store correct RapidF# value during INCH to METRIC
conversion and to suppress F99999 as requested.
DWB}

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

#1 = '####0.000'
#2 = '###.###;0.'
#3 = '*###.###;0.'
#4 = 'Ä…####0.000'
#5 = '#######0'
#6 = '*Ä…####0.000'
#7 = '####.#####'

FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(Dwell#,1)
FORMAT(SpeedRPM#,1)
FORMAT(Recall#,4)
FORMAT(XStockMin#,4)
FORMAT(XStockMax#,4)
FORMAT(YStockMin#,4)
FORMAT(YStockMax#,4)
FORMAT(ZStockMin#,4)
FORMAT(ZStockMax#,4)
FORMAT(HomeX#,4)
FORMAT(HomeY#,4)
FORMAT(EPX#,4)
FORMAT(EPY#,4)
FORMAT(ArcI#,4)
FORMAT(ArcJ#,4)
FORMAT(ZDepth#,4)
FORMAT(RepeatX#,4)
FORMAT(RepeatY#,4)
FORMAT(PartShiftX#,4)
FORMAT(PartShiftY#,4)
FORMAT(OriginUnShiftPX#,4)
FORMAT(OriginUnShiftPY#,4)
FORMAT(OriginUnShiftRX#,4)
FORMAT(OriginUnShiftRY#,4)
FORMAT(ToolDiameter#,4)
FORMAT(TLLength#,4)
FORMAT(TLDia#,4)
FORMAT(DIV#,4)
FORMAT(TLNum#,5)
FORMAT(Program#,5)
FORMAT(Operation#,5)
FORMAT(Tool#,5)
FORMAT(Parts#,5)
FORMAT(ClearancePlane2#,6)
FORMAT(Peck#,6)
FORMAT(MUL#,7)
FORMAT(RapidF#,7)
FORMAT(FeedEntry#,7)
FORMAT(FeedContour#,7)
FORMAT(ArcFeed#,7)
FORMAT(DecelFeed#,7)

{Prog Subroutines **********************************************************}

RestoreScale:
IF NOT Metric? { CAM file is in English, tools and tool path }
SetScale('25.4') { change to Metric, this is a Metric post }
SetFlag('3')
ELSE
SetScale('1')
SetFlagF('3')
END
RETURN

DoSubComment:
IF UseComments? AND SubComment?
'( SUB NUMBER: ' Program# ' )' EOL
END
RETURN

DoOpComments:
IF UseComments?
SetLineStrtChr('')
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
SetLineStrtChr('?')
END
RETURN

PSInit: {reset flags}
RotateF
RETURN

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

DoPostScript:
PSInit
EachPS
PostScript EOL {literals}
PSStuff {commands}
NextPS
RETURN

DoEndOpPS:
PSInit
EachEOPS
EndOpPS EOL {literals}
PSStuff {commands}
NextPS
RETURN

DoL:
' L '
RETURN

DoM:
' M'
RETURN

Spaces:
' '
RETURN

GetSpaces:
IF LessThan? ABS# Recall# Num#('1') Num#('100')
' '
END
IF LessThan? ABS# Recall# Num#('1') Num#('10')
' '
END
RETURN

DoR0:
'R0'
RETURN

ckF: { Test Conditional RapidFC/FeedRateC/ArcFeedC/DecelFeedC }
' F'
IF NotEqual? Recall# Num#('2') Recall# Num#('3')
FORMAT(Recall#,5)
Recall# Num#('3')
FORMAT(Recall#,4)
END
Save# Num#('2') Recall# Num#('3')
RETURN

NF:
Save# Num#('2') Num#('0') { Dummy FeedValue Forces Output }
RETURN

RF:
Save# Num#('3') Num#('9999') {RapidF#}
ckF
RETURN

FE:
IF Flag?('3')
Save# Num#('3') MUL# FeedEntry# Num#('25.4')
ELSE
Save# Num#('3') FeedEntry#
END
ckF
RETURN

FR:
IF Flag?('3')
Save# Num#('3') MUL# FeedContour# Num#('25.4')
ELSE
Save# Num#('3') FeedContour#
END
ckF
RETURN

AF:
IF Flag?('3')
Save# Num#('3') MUL# ArcFeed# Num#('25.4')
ELSE
Save# Num#('3') ArcFeed#
END
ckF
RETURN

DF:
IF Flag?('3')
Save# Num#('3') MUL# DecelFeed# Num#('25.4')
ELSE
Save# Num#('3') DecelFeed#
END
ckF
RETURN

CheckCoolOn:
IF CoolOff?
DoM
ELSE
CoolOn
END
RETURN

CheckCoolOff:
IF LAST CoolOff?
DoM
ELSE
CoolOff
END
RETURN

DoZInSub:
OpenSub
IF UseComments? AND SubComment?
'( SUB NUMBER: 1 )' EOL
END
' LBL 1' EOL
DoL ZIn DoR0 FE DoM EOL
' LBL 0' EOL
CloseSub
RETURN

DoZCP3Sub:
OpenSub
IF UseComments? AND SubComment?
'( SUB NUMBER: 11 )' EOL
END
' LBL 11' EOL
DoL ZCP3 DoR0 NF RF EOL
' LBL 0' EOL
CloseSub
RETURN

EntryMove:
IF Flag?('1')
' CALL LBL 1 REP' EOL
Save# Num#('2') Recall# Num#('4')
ELSE
' LBL 1' EOL
' ' ZIn
Save# Num#('1') SPZ# GetSpaces
Spaces ' ' DoR0 NF FE DoM EOL
' LBL 0' EOL
Save# Num#('4') Recall# Num#('3')
END
RETURN

StartSub:
OpenSub
DoSubComment
' LBL ' Program# EOL
RETURN

SubWarning:
{ NOTE: Processor does not support ZMoves. }
RETURN

StdSub:
' CALL LBL ' Program# ' REP ' Repeats# ' / ' Repeats# EOL
StartSub
RETURN

FinishSub1: {part 1}
' CALL LBL 11 REP' EOL
Save# Num#('2') Num#('9999') {RapidF#}
RETURN

FinishSubG92: {part 2}
' CYCL DEF 7.0 NOLLPUNKT' EOL
' CYCL DEF 7.1 IX' RepeatX# EOL
' CYCL DEF 7.2 IY' RepeatY# EOL
' LBL 0' EOL
CloseSub
' CYCL DEF 7.0 NOLLPUNKT' EOL
' CYCL DEF 7.1 IX' OriginUnShiftRX#('0') EOL
' CYCL DEF 7.2 IY' OriginUnShiftRY#('0') EOL
RETURN

OpenMP:
IF EquallySpacedOffsets?
NewProg
' CALL LBL ' Program# ' REP ' Parts# ' / ' Parts# EOL
StartSub
ELSE
'( NOTE: This post processor does not support work fixture offsets!!! )' EOL
'( Reprocess using Equally Spaced Offsets!!! )' EOL
END
RETURN

CloseMP:
IF EquallySpacedOffsets?
' CYCL DEF 7.0 NOLLPUNKT' EOL
' CYCL DEF 7.1 IX' PartShiftX# EOL
' CYCL DEF 7.2 IY' PartShiftY# EOL
' LBL 0' EOL
CloseSub
' CYCL DEF 7.0 NOLLPUNKT' EOL
' CYCL DEF 7.1 IX' OriginUnShiftPX#('0') EOL
' CYCL DEF 7.2 IY' OriginUnShiftPY#('0') EOL
END
RETURN

CRC:
IF CutterRadiusCompensation?
IF CRCleft?
'RL'
ELSE
'RR'
END
ELSE
DoR0
END
RETURN

CheckMove:
IF AutoCycle? {implies incremental}
IF ArcFeat?
' IX' EPX# ' IY' EPY#
Save# Num#('1') EPX# GetSpaces
Save# Num#('1') EPY# GetSpaces
ELSE
IF XMove? AND YMove?
' IX' EPX# ' IY' EPY#
Save# Num#('1') EPX# GetSpaces
Save# Num#('1') EPY# GetSpaces
ELSE
IF XMove?
' IX' EPX#
Save# Num#('1') EPX# GetSpaces
END
IF YMove?
' IY' EPY#
Save# Num#('1') EPY# GetSpaces
END
Spaces ' '
END
END
' '
ELSE
IF RapidFeat?
MoveXYC
ELSE
MoveX MoveY
END
Save# Num#('1') EPX# GetSpaces
Save# Num#('1') EPY# GetSpaces
' '
END
RETURN

FormatArc:
IF AutoCycle? {implies incremental}
' CC IX' ArcI# ' IY' ArcJ# EOL
ELSE
' CC ' ArcIJ EOL
END
' C ' CheckMove
IF ArcCW?
'DR-'
ELSE
'DR+'
END
' ' CRC
RETURN

StdLine:
IF Decelerate?
IF RoomToDecel?
DecelMove1
DoL CheckMove CRC FR DoM EOL
DecelMove2
END
DoL CheckMove CRC DF DoM EOL
ELSE
IF XMove? OR YMove?
DoL CheckMove CRC FR DoM EOL
END
END
RETURN

ToolPath:
EACHFeat
IF PointFeat?
IF NOT FirstFeat?
DoL
IF SPXMove? AND SPYMove?
MoveSXYC
ELSE
MoveSXYC ' '
END
Save# Num#('1') SPX# GetSpaces
Save# Num#('1') SPY# GetSpaces
' ' DoR0 NF RF ' M' EOL
IF Drilling?
' CALL LBL 9 REP' NF EOL
END
END
IF AutoCycle?
' CALL LBL ' Program# ' REP' EOL
CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
END
ELSE
IF RapidFeat?
IF LastFeat? AND AutoCycle? {.70}
DoL CheckMove 'R0' RF DoM EOL
ELSE
IF XMove? OR YMove?
DoL CheckMove CRC RF DoM EOL
END
END
ELSE
IF LineFeat?
IF AutoCycle? {.70}
IF LastFeat?
DoL CheckMove 'R0' FR DoM EOL
ELSE
StdLine {enables CRC on first call}
END
ELSE
StdLine
END
ELSE
IF ArcFeat?
EACHQuadrant
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
FormatArc AF DoM EOL
DecelMove2
END
FormatArc DF DoM EOL
ELSE
FormatArc AF DoM EOL
END
NEXTQuadrant
END
END
END
END
NEXTFeat
RETURN

WFOStuff:
{ NOTE: This Post Processor does not support WorkFixtureOffsets. }
RETURN

AutoCycCutSub1: {part 1}
SaveSubStatus {save tool position}
SetPass1 {element cut moves}
StartSub
SetSRXYtoSP
SetInc
RETURN

AutoCycCutSub2: {part 2}
ToolPath
SetAbs
IF Repeats? AND FeedConnect? AND ZshiftOnly?
{.69 removed RapidC} {.71.2 removed CRCOffC, gets turned off in ToolPath}
ELSE
' CALL LBL 11 REP' EOL
Save# Num#('2') Num#('9999') {RapidF#}
END
' LBL 0' EOL
CloseSub
SetSRSubXY {restore SR to 1st position value}
SetSRSubMove
RETURN

AutoCycPat:
SetPass2 {position pattern}
ToolPath {call after NewProg for correct sub calls}
SetPass1 {reset}
RETURN

Milling:
IF AutoCycle?
NewProg
AutoCycCutSub1
EntryMove
AutoCycCutSub2
AutoCycPat
ELSE
EntryMove
ToolPath
END
RETURN

G92Sub:
SubWarning
StdSub
SetAbs
DoL StrtPos
Save# Num#('1') StartPosX# GetSpaces
Save# Num#('1') StartPosY# GetSpaces
' ' DoR0 NF
IF FeedConnect?
FE
ELSE
RF
END
DoM EOL
Milling
FinishSub1
FinishSubG92
RETURN

ZonlyRepAutoCycle:
{ NOTE: Processor does not support ZMoves. }
RETURN

ZonlyRep:
{ NOTE: Processor does not support ZMoves. }
RETURN

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

GetStartOfSameTool:
DoOpComments
DoPostScript
CheckPass
RETURN

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

{setup and initializations}
InitProg
ReverseXZArcs
SetFlood
{UseSeparateSubCalls}
{SetMaxSeparateSubCalls('50')}
SetMaxRPM('15000')
SetFlagF('1') { For Milling ZIn }
SetFlagF('2') { For Drilling ZDepth }
SetFlagF('3') { Metric }
Save# Num#('1') Num#('0') { Number of Spaces to Add }
Save# Num#('2') Num#('0') { Current FeedValue }
Save# Num#('3') Num#('0') { Test for conditional RapidFC/FeedEntC/FeedRateC/ArcFeedC/DecelFeedC }
Save# Num#('4') Num#('0') { FeedEntry# value of first Milling Operation }
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
END
EachOp {Start of post processing *********************}
IF FirstOperation?
SetLineStrtChr('?')
' BEGIN PGM ' ProgramName$ ' MM' EOL
IF ToolChangeAtHome?
SetHome
END
' BLK FORM 0.1 Z X' XStockMin# ' Y' YStockMin# ' Z' ZStockMin# EOL
' BLK FORM 0.2 X' XStockMax# ' Y' YStockMax# ' Z' ZStockMax# EOL
IF UseComments?
SetLineStrtChr('')
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 ABSOLUTE METERS )' EOL
END
IF PartsComment?
'( PARTS PROGRAMMED: ' Parts# ' )' EOL
END
IF StartToolComment?
'( FIRST TOOL NOT IN SPINDLE )' EOL
END
SetLineStrtChr('?')
END
EachTool
SetScale('1')
' TOOL DEF ' TLNum#
RestoreScale
Save# Num#('1') TLLength#
IF NOT Metric?
Save# Num#('1') MUL# TLLength# Num#('25.4')
END
' L' Recall# Num#('1')
GetSpaces
' R' DIV# TLDia# NUM#('2') EOL { TLRadius# }
NextTool
OpenSub
RestoreScale
IF MultipleParts? AND AllToolsOnePart?
OpenMP
END
SetAbs
Plane {no output}
TrackZNO# ClearancePlane1#
SetStatusOff
{DoZInSub}
{DoZCP3Sub}
SetStatusOn
DoOpComments
DoPostScript
' TOOL CALL ' Tool# ' Z S ' SpeedRPM# EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
END
DoL ZCP1
Save# Num#('1') ClearancePlane1# GetSpaces
Spaces ' ' DoR0 NF RF DoM EOL
CheckPass
DoL StrtPos
Save# Num#('1') StartPosX# GetSpaces
Save# Num#('1') StartPosY# GetSpaces
' ' DoR0 RF SpinOn EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
DoL StrtPos ' ' DoR0 NF RF DoM EOL
END
ELSE
IF NewTool?

{Finish off last Operation}

IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP
END
' ' ZCP1
Save# Num#('1') ClearancePlane1# GetSpaces
Spaces ' ' DoR0 RF CheckCoolOff EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
IF ToolChangeAtHome?
DoL Home
Save# Num#('1') HomeX# GetSpaces
Save# Num#('1') HomeY# GetSpaces
' ' DoR0 RF SpinOff EOL
ELSE
' ' SpinOff EOL
END
IF LAST ProgStop?
' STOP M' EOL
ELSE
IF OptionalStops?
' STOP M' EOL
END
END

{Start new Operation}

DoOpComments
DoPostScript
SetAbs
Plane {no output}
' TOOL CALL ' Tool# ' Z S ' SpeedRPM# EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
END
' ' ZCP1
Save# Num#('1') ClearancePlane1# GetSpaces
Spaces ' ' DoR0 NF RF DoM EOL
CheckPass
DoL StrtPos
Save# Num#('1') StartPosX# GetSpaces
Save# Num#('1') StartPosY# GetSpaces
' ' DoR0 RF SpinOn EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
DoL StrtPos ' ' DoR0 NF RF DoM EOL
END
ELSE
IF SameTool?
DoEndOpPS
IF LAST ProgStop?
' STOP M' EOL
END

{Start new Operation}

GetStartOfSameTool
SetAbs
Plane {no output}
DoL StrtPos
Save# Num#('1') StartPosX# GetSpaces
Save# Num#('1') StartPosY# GetSpaces
' ' DoR0 RF DoM EOL
END
END
END {common point for all operations}
IF Milling?
IF NOT SameTool?
' ' ZCP2
Save# Num#('1') ClearancePlane2# GetSpaces
Save# Num#('3') Num#('5000') { Pseudo FeedEntry# }
Spaces ' ' DoR0 ckF CheckCoolOn EOL
END
IF Repeats?
NewProg
G92Sub
ELSE {no repeat OPs}
Milling
END
IF Flag?('1')
' CALL LBL 11 REP' EOL
Save# Num#('2') Num#('9999') {RapidF#}
ELSE
SetFlag('1')
' LBL 11' EOL
' ' ZCP3
Save# Num#('1') ClearancePlane3# GetSpaces
Spaces ' ' DoR0 NF RF DoM EOL
' LBL 0' EOL
END
ELSE
IF Drilling?
IF NOT SameTool?
' ' ZCP2
Save# Num#('1') ClearancePlane2# GetSpaces
Save# Num#('3') Num#('5000') { Pseudo FeedEntry# }
Spaces ' ' DoR0 ckF CheckCoolOn EOL
END
IF Repeats?
NewProg
StdSub
DoL StrtPos ' ' DoR0 RF DoM EOL
END
GetCycle
IF Tap?
' CYCL DEF 2.0 TAPPING' EOL
' CYCL DEF 2.1 SET UP ' ClearancePlane2# EOL
' CYCL DEF 2.2 DEEP ' ZDepth# EOL
' CYCL DEF 2.3 DWELL 0' EOL
' CYCL DEF 2.4' FE EOL
ELSE
' CYCL DEF 1.0 PECKING' EOL
' CYCL DEF 1.1 SET UP ' ClearancePlane2# EOL
' CYCL DEF 1.2 DEEP ' ZDepth# EOL
' CYCL DEF 1.3 PECK ' Peck# EOL
' CYCL DEF 1.4 DWELL '
IF Dwell?
Dwell#
ELSE
'0'
END
EOL
' CYCL DEF 1.5' FE EOL
END
IF Flag?('2')
' CALL LBL 9 REP' EOL
ELSE
SetFlag('2')
' LBL 9' EOL
' CYCL CALL' DoM EOL
' LBL 0' EOL
END
ToolPath
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
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
DoL FIRST ZCP1
Save# Num#('1') ClearancePlane1# GetSpaces
Spaces ' ' DoR0 RF
IF CoolOff?
DoM
ELSE
CoolOff
END
EOL
DoL
IF ToolChangeAtHome?
Home
Save# Num#('1') HomeX# GetSpaces
Save# Num#('1') HomeY# GetSpaces
ELSE
Spaces Spaces ' '
END
' R0' RF SpinOff EOL
IF MultipleParts? AND AllToolsOnePart?
CloseMP
END
' STOP M' EOL
Post
' END PGM ' ProgramName$ ' MM' EOL
SetLineStrtChr('')
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


Wyszukiwarka

Podobne podstrony:
Heid TNC 155 [FMI] M816 81 2
Heid TNC 155 [ESS] M980 15
Heid TNC 155 [EMC] M612 89m
Heid TNC 155 [PB] M550 89 1m
Heid TNC 155 [Mikron] MV92 89m
Heid TNC 155 Hkrt Z M614 89m
Heidenhain TNC 155 M281 81 3m
Heid TNC 155 Lagun TC MT19 89m
Heid TNC 155 [JP] MX68 89 4m
Heid TNC 155 Mikron TC MT20 89m
Heid TNC 155 [KP] MV27 89 1m
Heid TNC 155 [HM] M654 85m
Heid TNC 155 Sajo 450 M030 89
Heid TNC 155 [FLV] MW06 89m
Heid TNC 155 Hkrt Z M614 89
Heid TNC 155 [FS] MY83 89 3m
Heid TNC 155 [HM] M654 85

więcej podobnych podstron