{Change Comments ***********************************************************}
{5/5/94
Created: Heid TNC 155 [HM] M654.81.2m
For: Fructus/Hillar Malm
Machine:
Control: Heidenhain TNC 155
Versions: ncCad 4.32.03/ncCAM 4.32.03/ncPost 4.32.03/Compost 4.21.20
Changes made per Mikael Bagge of Fructus.
This processor is a G-Code Heidenhain and resembles Fanuc control code.
I used Fanuc 6M M001.2m as a template, and added the basic construction from
Heid TNC 155 [EMC] M612.81.8m
DWB}
{2/24/95
Updated: Heid TNC 155 [HM] M654.81.2m
For: Gibbs & Associates/Fructus/Hillar Malm/Micron Technology
Versions: ncCad 4.33.01/ncCAM 4.33/ncPost 4.33.05/Compost 4.21.27
Versions: Catalyst v2.14.30C/Catalyst v2.14.30PPC/Compost 4.21.27
Updated to Version 4.2 per Fanuc 6M M001.81.2f Format.
Added CkCRC sub for CRCOffC per version 4.2.
CutterRadiusCompensation ExitLength will output G40 on LastFeat AND LineFeat at StdLine sub.
Added logic to output CRCOnC in OneFeat ToolPath.
Added logic to suppress output of CRCOnC on ZMove Feature.
Added support of CRC during multiple pocket dog-bone operation.
Added condition to output CRCOnC for XMove OR YMove only at CkCRC sub.
Outputs G41/G42 on First LineFeat after Z Plunge.
Modified condition to output CRCOffC for LastFeat AND AutoCycle at ToolPath RapidFeat.
Assures that G40 is not output prior to LastFeat.
Added CRCOffC to RapidFeat at ToolPath.
Outputs G40 at all ZMoveOnly Retract Features.
DWB}
{2/24/95
Copied: Heid TNC 155 [HM] M654.81.3m
Created: Heid TNC 155 [HM] M654.81.3
For: Gibbs & Associates/Fructus/Hillar Malm/Micron Technology
Versions: ncCad 4.33.01/ncCAM 4.33/ncPost 4.33.05/Compost 4.21.27
Versions: Catalyst v2.14.30C/Catalyst v2.14.30PPC/Compost 4.21.27
Created English version.
Changed Compost General Default Formats.
Changed Address F from ###0 to ###^0
Changed Addresses A, B, C, I, J, K, Q, R, X, Y and Z from ±####0.###;+0 to ±###0.####;+0
Changed Prog Numeric Format Definitions.
Changed Format#4 from ####.###;0 to ###.####;0
Changed Format#6 from ###0.###;0 to ##0.####;0
Changed Format#7 from ±####0.###;+0 to ±###0.####;+0
Changed Format#8 from *±####0.###;+0 to *±###0.####;+0
Changed RestoreScale sub.
Changed IF NOT Metric? to IF Metric?
Changed SetScale argument from 25.4 to .03937007874
Switched English and Metric words in commented stuff.
Changed literal METERS to INCHES at FirstOperation ProgComments.
Changed literal G71 [ Metric Mode ] to G70 [ Inch Mode ] at FirstOperation and end of Prog.
DWB}
{1/25/96
Updated & Modified: Heid TNC 155 [HM] M654.81.3
For: Fructus/Hillar Malm
Versions: ncCad 4.33.01/ncCAM 4.33.01/ncPost 4.33.09/Catalyst v2.28.08/Compost 4.21.34/1.0a
Changes made per Mikael Bagge of Fructus.
Updated for Catalyst v2.20 per Fanuc 6M M001.85.02 Format.
Added forced LineFeed, ASCII 10, via SetLineStrtChr at setup and initializations.
DWB}
{4/9/97
Updated: Heid TNC 155 [HM] M654.85
Created: Heid TNC 155 [HM] M654.89
For: Gibbs & Associates/General Tool
Versions: Catalyst v3.32C/ComPost2 MSL 68K
Updated for Catalyst v3.32C per Fanuc 6M M001.89b Format.
Used Heid TNC 415 [ABB] M054.89m.
Added NewWFOF at PSInit sub.
Cancels any previous setting from earlier posting.
Changed FORMAT#2 from ±###.###;+0 to ±#####.###;+0 at Prog Numeric Format Definitions.
Changed FORMAT#3 from *±###.###;+0 to *±#####.###;+0 at Prog Numeric Format Definitions.
Deleted version comments.
Moved contents of FormatLine back to ToolPath LineFeat.
Added SetMaxFeed(25400) for Metric VNC files.
Added Speed after MP-OTAP-FU condition at FirstOperation and NewTool.
Added Speed SpinOn for MP-OTAP-ECP condition at FirstOperation and NewTool.
Added Speed after MP-OTAP-FU condition at FirstOperation and NewTool.
Added Speed SpinOn for MP-OTAP-ECP condition at FirstOperation and NewTool.
Corrected Drill Cycles per Heid TNC 355 [SP] MY41.89.1m.
No Drill Subs for Operations with SPZMove or RetractToCP1.
Must Rapid to next hole and redefine Drill Cycle.
Added Var(5) for variable Drill Depth situation at IF Drilling.
DWB}
{4/17/97
Copied: Heid TNC 155 [HM] M654.89
Created: Juaristi [GT] MY75.89
For: General Tool
Machine: Juaristi
Control: Heidenhain TNC 155
Versions: Catalyst v3.33C/ComPost2 MSL 68K
Changes made per David Bishop of General Tool, phone calls, manuals and sample printout.
Changed End Program from M2 to M30 in Compost2 Program Stops dialog.
Changed FORMAT#2 from ±#####.###;+0 to ±#####.###;+0. at Prog Numeric Format Definitions.
Changed FORMAT#3 from *±#####.###;+0 to *±#####.###;+0. at Prog Numeric Format Definitions.
Changed FORMAT#4 from ###.####;0 to ###.####;0. at Prog Numeric Format Definitions.
Changed FORMAT#6 from ##0.####;0 to ##0.####;0. at Prog Numeric Format Definitions.
Changed FORMAT#7 from ±###0.####;+0 to ±###0.####;+0. at Prog Numeric Format Definitions.
Changed FORMAT#8 from *±###0.####;+0 to *±###0.####;+0. at Prog Numeric Format Definitions.
Added TrackXNO# to FORMAT#4 at Prog Numeric Format Definitions.
Added TrackYNO# to FORMAT#4 at Prog Numeric Format Definitions.
Added RepsLess1# to FORMAT#5 at Prog Numeric Format Definitions.
Added CalcZFmSurf# to FORMAT#7 at Prog Numeric Format Definitions.
Deleted DIV# from FORMAT#7 at Prog Numeric Format Definitions.
Deleted XStockMin# from FORMAT#7 at Prog Numeric Format Definitions.
Deleted XStockMax# from FORMAT#7 at Prog Numeric Format Definitions.
Deleted YStockMin# from FORMAT#7 at Prog Numeric Format Definitions.
Deleted YStockMax# from FORMAT#7 at Prog Numeric Format Definitions.
Deleted ZStockMin# from FORMAT#7 at Prog Numeric Format Definitions.
Deleted ZStockMax# from FORMAT#7 at Prog Numeric Format Definitions.
Changed all comment Control In and Out parentheses characters.
Starting character changed from ( to &T.
Ending character changed from ) to &R.
Customer requested that subs be included in Main Program Output.
Commented out OpenSub at StartSub.
Commented out CloseSub at FinishSubG92, AutoCycCutSub2, ZonlyRepAutoCycle and ZonlyRep subs,
IF Drilling MasterOp and at end of Prog.
Changed Post2 to Post at end of Prog.
Added condition to not SubCall for first AutoCycle Posiiton at ToolPath AutoCycle PointFeat.
Modified ZonlyRepAutoCycle sub.
Moved AutoCycPat call to end.
Added SetPass1 at start.
Added SetPass2 just prior to AutoCycPat call.
Added TrackXNO# StartPosX# just prior to AutoCycPat call.
Added TrackYNO# StartPosY# just prior to AutoCycPat call.
Customer requested that all sub numbers start 200 greater than starting Program#
Added variables 2, 3 and 4 for sub program numbers and control.
Var(1) already existed and is used for MultipleParts at OpenMP and CloseMP.
Modified Var(1) to ADD 200 to Program# and store at OpenMP.
Changed Program# to Recall# Num#('1') at OpenMP.
Added DoMPSubComment sub.
Identicle to DoSubComment sub except that it uses Var(1).
Added Var(2) to ADD 200 to Program# and store for Repeat and AutoCycle Positioning SubPrograms.
Modified Var(2) to ADD 200 to Program# and store at IF Milling Repeats and IF Drilling Repeats,
CallMasterOp and MasterOp.
Changed Program# to Recall# Num#('2') at DoSubComment, StartSub and ZonlyRep sub and
IF Drilling CallMasterOp and MasterOp.
Moved SeqC ' L' Program# '.' Repeats# EOL from StdSub to FinishSubG92.
Changed Program# to Recall# Num#('2').
Changed Repeats# to RepsLess1#.
Added Var(3) to ADD 200 to Program# and store for AutoCycle Incremental Contour SubPrograms.
Added DoACSubComment sub.
Identicle to DoSubComment sub except that it uses Var(3).
Added StartACSub.
Identicle to StartSub sub except that it uses Var(3) and calls DoACSubComment sub instead of
DoSubComment sub.
Changed StartSub call to StartACSub call at AutoCycCutSub1.
Modified Var(3) to ADD 200 to Program# and store for AutoCycles at Milling sub.
Modified Var(3) to ADD 200 to Program# and store at ZonlyRepAutoCycle sub.
Added transfer of Var(2) value to Var(3) at end of ZonlyRepAutoCycle sub.
Changed Program# to Recall# Num#('3') at ToolPath PointFeat AutoCycle.
Changed Program# to Recall# Num#('3') at ZonlyRepAutoCycle sub.
Added Var(4) to count ZShift Operations and suppress final SubCall.
Works just like RepsLess1.
Added Var(4) initialize, increment and test at ZonlyRepAutoCycle sub.
Added Var(4) initialize, increment and test at ZonlyRep sub.
Corrected problems with Drill Cycle Paramters.
Changed ClearancePlane2# to CalcZSurf# three places at DrillCycle sub.
Changed SUB# ClearancePlane2# FIRST SPZ# to CalcZFmSurf# three places at IF Drilling.
Customer requested Helical Arcs to be segmented.
Added tests for all three planes with depth axis move.
Added EACHArcSegment/NEXTArcSegment loop at ToolPath ArcFeat.
Added SetArcSegmentAccuracy('.005') at setup and initializations.
Modified GetCoolOn sub.
No longer supports M13 SpinOn/CoolOn combination.
Added condition to output CoolOn for FirstOperation, NewTool, LAST ProgStop and LAST CoolOff
situations.
This is because CoolOn is turned on at ZCP2.
Deleted G30/G31 graphic definition blocks at SetUpStuff sub.
Deleted EachTool/NextTool loop at SetUpStuff sub.
Tools are defined at FirstOperation and NewTool.
Moved remaining code from SetUpStuff sub to FirstOperation.
Increased SetMaxSeparateSubCalls from 50 to 200 at setup and initializations.
Decreased SetMaxRPM from 10000 to 800 at setup and initializations.
Deleted SetLineStrtChr at setup and initializations and at end of Prog.
Was adding ASCII(10) to start of each block.
Added ASCII(10) to EOR for start of output at FirstOperation.
Modified ToolChng blocks at FirstOperation and NewTool.
Added CoolOff at NewTool and end of Prog.
Added LAST ZCP1 at NewTool, SameTool and end of Prog.
Deleted G54 AbsOrInc from FirstHome block at end of Prog.
Deleted literal 'X+0 Y+0' at end of Prog.
Deleted literal ' X+220. Y+75. Z+100.' at end of Prog.
Deleted UnTool ToolChng at end of Prog.
Deleted literal ' Z+200.' at end of Prog.
DWB}
{4/17/97
Copied: Juaristi [GT] MY75.89
Created: Juaristi LH [GT] MY76.89
For: General Tool
Machine: Juaristi
Control: Heidenhain TNC 155
Versions: Catalyst v3.33C/ComPost2 MSL 68K
Changes made per David Bishop of General Tool, phone calls, manuals and sample printout.
Updated for Catalyst v3.33C per LongHand M001.89c Format.
Customer requested support of 532 block limit for DNC purposes.
Identicle to the way our Dyna Myte Long post processors work, when the program gets to a certain
point, the code is broken up into batches, with the post outputting EOP at end of each batch, and
restarting the line numbers from the beginning.
Used logic from Dyna Myte 2000 long M346.80.1.
Requires post to not support sub programs.
Changed Sequence Label from N to N? in Compost2 General Info dialog.
Changed Seq and SeqC to SeqLab throughout Prog.
Added LineOverCk sub.
Outputs M00, M30, BreakComment, NewProg# and NewToolDef blocks.
Called just prior to NextFeat at ToolPath.
Added Retag at end of Prog.
Corrected ncPost problem with Retag outputting two asterisks at end of each block.
NOTE: Problem does not occur in Virtual.
Changed ASCII End Of Block Codes from 42 13 0 0 to 13 0 0 0 in Compost2 General Info dialog.
ASCII 42 is an asterisk, which was being output at end of each block.
Added GetEOL sub.
Outputs literal * at end of every non EmptyLine block.
Correct Virtual problem with LineNumOver? Boolean.
Command does not work.
NOTE: Problem does not occur in ncPost.
Added Var(8) to count SeqLab blocks.
Added Var(8) increment at GetEOL sub.
Added GetCommentEOL sub.
Outputs literal * at end of every non EmptyLine block.
Does not increment Var(8)
Added Var(8) test at LineOverCk sub.
DWB}
{5/1/97
Modified: Juaristi LH [GT] MY76.89
Created: Juaristi LH [GT] MY76.89.1
For: General Tool
Versions: Catalyst v3.33C/ComPost2 MSL 68K
Changes made per David Bishop of General Tool.
Modified Drill Cycles that RetractToCP1 at ToolPath PointFeat.
Changed so that Drill Cycle is not redefined for every hole position.
Post now outputs move to ZCP1, MoveSXYC and ZCP2.
G79, Cycle Call is output with ZCP2.
DWB}
{6/12/97
Modified: Juaristi LH [GT] MY76.89.1
Created: Juaristi LH [GT] MY76.89.2
For: General Tool
Versions: Catalyst v3.33C/ComPost2 MSL 68K
Changes made per David Bishop of General Tool.
Customer reported FORMAT of Canned Drilling Cycles FeedRate Parameters incorrect.
Changed FORMAT#10, '±#bbb0.bbbb#' to FORMAT#11 at Prog Numeric Format Definitions.
Added FORMAT#10, '###^0' at Prog Numeric Format Definitions.
Changed FeedEntry# from FORMAT#5 to FORMAT#10 at Prog Numeric Format Definitions.
Customer requested support for LongHand FIFO and FIStopRO Drilling Cycles.
Added support at ToolPath and IF Drilling.
Added GetZCP3C sub.
Customer reported that Program Break Routine occured at the wrong time.
Break occured during contour between FirstFeat, which output G41 Approach Length Feature, and
an ArcFeat, which was probably a Approach Radius, although this was not confirmed.
In addition to this, Program Break outputs M30 which deactivates Miscellaneous Functions such
as CoolOn and SpinOn conditions.
Changed Line Number Counter from Var(8) to Var(9).
Added Var(8), Program Break Line Number Limit value of 500 at setup and initializations.
Added Flag(4), Program Break CoolOn Reset.
Added ProgramBreak sub.
Contains output code and logic for creating new batch of program blocks.
Moved GetCoolOn sub after ProgramBreak sub.
Moved LineOverCk sub after GetCoolOn sub.
Modified contents of LineOverCk sub.
Added SeqLab OpToolID Plane Speed SpinOn GetEOL block at LineOverCk.
Added SeqLab GetCoolOn GetEOL block at LineOverCk.
Added controlled situation tests just prior to NextFeat at ToolPath.
For Drilling, LineOverCk is called after second Feature and prior to last two Features.
For Milling, LineOverCk is called after fifth Feature, prior to last two Features.
In addition to this, current and NEXT Features must be either RapidFeat or LineFeat.
Added LineNumOver test and call to ProgramBreak at NewTool and SameTool.
Added calls to LineOverCk at ToolPath ArcFeat ZMove, XYZRep, NoRepAutoCycle, XYZRepAutoCycle,
three places at ZonlyRepAutoCycle, IF Drilling and DoNewPart.
Allows for Program Break to occur while Tool is above part.
DWB}
{7/3/97
Modified: Juaristi LH [GT] MY76.89.2
Created: Juaristi LH [GT] MY76.89.3
For: General Tool
Versions: Catalyst v3.35C/ComPost2 MSL 68K
Changes made per David Bishop of General Tool.
Added TPLineOverCk sub.
Causes Tool to Rapid Retract to PRIME ZCP1 prior to Program Break blocks and follows this with
a Rapid Position to PRIME ZCP2C, a Rapid Position to ZCP2C, and a FeedC Position to MoveZC.
Tests for Incremental mode.
Tool Clearance Moves are done in Absolute because it is easier to interpret and ZCP1C does not
output anything while IncValue is in effect.
PRIME ZCP1C, PRIME ZCP2C and ZCP2C are output in Absolute coordinates, MoveZC in Incremental.
PRIME Command used for any combination of MultipleParts, Patterns and ZShifting situations.
Called three places at ToolPath.
DWB}
{Prog Numeric Format Definitions ****}
#1 = '#.00'
#2 = '±#####.###;+0.'
#3 = '*±#####.###;+0.'
#4 = '###.####;0.'
#5 = '#######0'
#6 = '##0.####;0.'
#7 = '±###0.####;+0.'
#8 = '*±###0.####;+0.'
#9 = '#'
#10 = '###^0'
#11 = '±#bbb0.bbbb#'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ADD#,4)
FORMAT(ToolDiameter#,4)
FORMAT(TrackXNO#,4)
FORMAT(TrackYNO#,4)
FORMAT(TrackZNO#,4)
FORMAT(Recall#,5)
FORMAT(PartNum#,5)
FORMAT(Program2#,5)
FORMAT(Program#,5)
FORMAT(Operation#,5)
FORMAT(Tool#,5)
FORMAT(Parts#,5)
FORMAT(Dwell#,6)
FORMAT(ToolLength#,7)
FORMAT(CalcZFmSurf#,7)
FORMAT(SUB#,8)
FORMAT(TLLength#,8)
FORMAT(CalcCP2FmSurf#,8)
FORMAT(Peck#,8)
FORMAT(RapidF#,9)
FORMAT(FeedEntry#,10)
FORMAT(PartShiftX#,11)
FORMAT(PartShiftY#,11)
FORMAT(PartShiftZ#,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 }
ELSE
SetScale('1')
END
RETURN
GetEOL:
IF NOT EmptyLine?
'*'
Save# Num#('9') ADD# Recall# Num#('9') Num#('1')
END
EOL
RETURN
GetCommentEOL:
IF NOT EmptyLine?
'*'
END
EOL
RETURN
ProgramBreak:
SeqLab EOP GetEOL
'&T &R' GetEOL
'&T Program Break &R' GetEOL
'&T &R' GetEOL
NewProg
EOR Program# ' G70' GetEOL { Inch }
'¦1' EOL {retag reseq starting value, ¦ is option-7}
Save# Num#('9') Num#('1')
SetFlag('4') { Program Break CoolOn Reset }
RETURN
GetCoolOn:
IF Flag?('4') { Program Break CoolOn Reset }
SetFlagF('4')
CoolOn
ELSE
IF FirstOperation? OR NewTool? OR LAST ProgStop? OR LAST CoolOff?
CoolOn
END
END
RETURN
LineOverCk:
IF GTEqual? Recall# Num#('9') Recall# Num#('8')
SeqLab SpinOff GetEOL
SeqLab ' M00' GetEOL
ProgramBreak
SeqLab ' M00' GetEOL
SeqLab OpToolID Plane Speed SpinOn GetEOL
SeqLab GetCoolOn GetEOL
END
RETURN
TPLineOverCk:
IF AbsValue?
SeqLab RapidC PRIME ZCP1C GetEOL
LineOverCk
SeqLab PRIME ZCP2C GetEOL
SeqLab ZCP2C GetEOL
SeqLab FeedC MoveZC FeedEntC GetEOL
ELSE
SeqLab RapidC AbsOrInc PRIME ZCP1C GetEOL
LineOverCk
SeqLab PRIME ZCP2C GetEOL
SeqLab ZCP2C GetEOL
SeqLab FeedC IncValue MoveZC FeedEntC GetEOL
END
RETURN
WFONum:
{ NOTE: This Post Processor does not support WorkFixtureOffsets. }
RETURN
WFOStuff:
{ NOTE: This Post Processor does not support WorkFixtureOffsets. }
RETURN
DoPartCycleComment:
IF MultipleParts? AND UseComments? AND SubComment?
'&T PART NUMBER: ' PartNum# ' &R' GetCommentEOL
END
RETURN
DoCycleComment:
IF UseComments? AND SubComment?
'&T CYCLE START &R' GetCommentEOL
END
RETURN
DoACSubComment:
IF UseComments? AND SubComment?
'&T SUB NUMBER: ' Recall# Num#('3') ' &R' GetCommentEOL
END
RETURN
DoOpComments:
IF UseComments?
SetScale('1')
IF OperationIDComment?
'&T OPERATION ' Operation# ': ' OperationType$ ' &R' GetCommentEOL
END
IF OperationComment?
'&T ' OperationComment$ ' &R' GetCommentEOL
END
IF WorkGroupComment?
'&T ' WorkGroupComment$ ' &R' GetCommentEOL
END
IF ToolTypeComment?
'&T TOOL ' Tool# ': ' ToolDiameter# ' ' ToolType$ ' &R' GetCommentEOL
END
IF ToolComment?
'&T ' ToolComment$ ' &R' GetCommentEOL
END
RestoreScale
END
RETURN
PSInit:
NewWFOF
RotateF
OptCyc1F
MasterOpF
CallMasterOpF
RETURN
PSStuff:
IF FourthCW?
FORMAT(FourthDegree#,2)
SeqLab ' A' FourthDegree# GetEOL
FourthCWF
END
IF FourthCCW?
FORMAT(FourthDegree#,3)
SeqLab ' A' FourthDegree# GetEOL
FourthCCWF
END
IF FifthCW?
FORMAT(FifthDegree#,2)
SeqLab ' B' FifthDegree# GetEOL
FifthCWF
END
IF FifthCCW?
FORMAT(FifthDegree#,3)
SeqLab ' B' FifthDegree# GetEOL
FifthCCWF
END
RETURN
DoPostScript:
PSInit
EachPS
SeqLab PostScript GetEOL
PSStuff
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqLab EndOpPS GetEOL
PSStuff
NextPS
RETURN
EntryMove:
IF FeedEntry?
SeqLab FeedC ZInC FeedEntC GetEOL
ELSE
SeqLab RapidC ZInC GetEOL
END
RETURN
ExitMove:
SeqLab
IF FeedConnect?
IF NOT AutoCycle?
IF NOT NoZMoves?
FeedC ZInC FeedEntC
END
END
ELSE
CRCOffC
IF FIFO?
FeedC PRIME ZCP2C FeedEntC
ELSE
RapidC PRIME ZCP2C
END
END
GetEOL
RETURN
ExitMove2:
IF FIFO?
FeedC ZCP3C FeedEntC
ELSE
RapidC ZCP3C
END
RETURN
CycleWarning:
{ NOTE: This Post Processor takes care of Z Clearance. }
RETURN
FormatArc:
ArcIJ
IF ArcCW?
CWArc
ELSE
CCWArc
END
MoveXY MoveZC
RETURN
ckCRC:
IF LastFeat?
CRCOffC
ELSE
IF NOT ZMove?
CRCOnC
END
END
RETURN
ckCRCNum:
{ Not Supported }
RETURN
DrillCycle:
SeqLab Cycle
IF Tap?
' P01' CalcCP2FmSurf#
' P02' SUB# CalcZSurf# SPZ#
' P03'
IF Dwell?
Dwell#
ELSE
'0'
END
' P04' FeedEntry#
ELSE
' P01' CalcCP2FmSurf#
' P02' SUB# CalcZSurf# SPZ#
' P03'
IF Peck?
Peck#
ELSE
SUB# CalcZSurf# SPZ#
END
' P04'
IF Dwell?
Dwell#
ELSE
'0'
END
' P05' FeedEntry#
END
GetEOL
RETURN
ToolPath:
EACHFeat
IF PointFeat? { Drilling Only }
IF FIFO? OR FIStopRO?
IF FIFO?
SeqLab RapidC MoveSXYC GetEOL
SeqLab RapidC ZCP2C GetEOL
SeqLab FeedC MoveSZC FeedEntC GetEOL
IF Dwell?
FORMAT(Dwell#,5)
SeqLab ' G04 F' Dwell# GetEOL
FORMAT(Dwell#,6)
END
SeqLab FeedC ZCP2C GetEOL
IF RetractToCP1?
SeqLab RapidC ZCP1C GetEOL
END
ELSE { FIStopRO }
SeqLab RapidC MoveSXYC
IF NOT EmptyLine?
SpinOn
END
GetEOL
SeqLab RapidC ZCP2C GetEOL
SeqLab FeedC MoveSZC FeedEntC GetEOL
SeqLab SpinOff GetEOL
IF RetractToCP1?
SeqLab RapidC ZCP1C GetEOL
ELSE
SeqLab RapidC ZCP2C GetEOL
END
END
ELSE
IF FirstFeat?
SeqLab ' G79' GetEOL { CycleCall }
IF RetractToCP1?
IF NOT LastFeat?
SeqLab Rapid ZCP1 GetEOL
END
END
ELSE
IF SPZMove? AND RetractToCP1?
SeqLab MoveSXYC GetEOL
SeqLab ZCP2 GetEOL
DrillCycle
SeqLab ' G79' GetEOL { CycleCall }
IF NOT LastFeat?
SeqLab Rapid ZCP1 GetEOL
END
ELSE
IF SPZMove?
SeqLab Rapid MoveSXYC GetEOL
DrillCycle
SeqLab ' G79' GetEOL { CycleCall }
ELSE
IF RetractToCP1?
SeqLab MoveSXYC GetEOL
SeqLab ZCP2 ' G79' GetEOL { CycleCall }
IF NOT LastFeat?
SeqLab Rapid ZCP1 GetEOL
END
ELSE
SeqLab MoveSXYC ' G79' GetEOL { CycleCall }
END
END
END
END
TrackZNO# SPZ#
END
ELSE
IF RapidFeat?
IF XMove? OR YMove? OR ZMove?
SeqLab ckCRC RapidC MoveXYZC GetEOL
END
ELSE
IF LineFeat?
IF XMove? OR YMove? OR ZMove?
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqLab ckCRC FeedC MoveXYZC FeedRateC GetEOL
DecelMove2
END
SeqLab ckCRC FeedC MoveXYZC DecelFeed GetEOL
ELSE
SeqLab ckCRC FeedC MoveXYZC FeedRateC GetEOL
END
END
ELSE
IF ArcFeat?
IF ZMove?
EACHArcSegment
SeqLab ckCRC FeedC MoveXYZC FeedRateC GetEOL
IF GTEqual? Recall# Num#('9') Recall# Num#('8')
TPLineOverCk
END
NEXTArcSegment
ELSE
EACHQuadrant { Do not use NOT, FIRST, LAST or NEXT modifiers in this loop }
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
SeqLab FormatArc ArcFeedC GetEOL
DecelMove2
END
SeqLab FormatArc DecelFeed GetEOL
ELSE
SeqLab FormatArc ArcFeedC GetEOL
END
NEXTQuadrant
END
END
END
END
IF AutoCycle?
SetAbs
Save# Num#('6') SUB# EPX# CurOriginPosX#
Save# Num#('7') SUB# EPY# CurOriginPosY#
SetInc
END
END
IF GTEqual? Recall# Num#('9') Recall# Num#('8')
IF PointFeat?
IF NOT FirstFeat? AND LAST NOT FirstFeat?
IF NOT LastFeat? AND NEXT NOT LastFeat?
TPLineOverCk
END
END
ELSE
IF GTEqual? FeatNum# Num#('5')
IF NOT LastFeat? AND NEXT NOT LastFeat?
IF NOT ArcFeat? AND NEXT NOT ArcFeat?
TPLineOverCk
END
END
END
END
END
NEXTFeat
RETURN
AutoCycCutSub1: {part 1}
CalcACSRXY {calc tool position, CalcAutoCycleStatusRecordXY}
SaveSubStatus {save tool position}
SetPass1 {element cut moves}
SetSRXYtoSP
IF Repeats? AND ZShiftOnly?
EntryMove
END
SeqLab IncValue GetEOL
RETURN
AutoCycCutSub2: {part 2}
SeqLab AbsOrInc
IF FIFO?
FeedC ZCP2 FeedEntC
ELSE
RapidC ZCP2
END
GetEOL
SetSRSubXY {restore SR to 1st position value}
ReSetPass2 {restore for positioning moves}
RETURN
Milling:
EntryMove
ToolPath
RETURN
XYZRep:
CycleWarning
FindAnyZMoves
EachRep
LineOverCk
DoCycleComment
IF FirstCycle?
EntryMove
ELSE
CRCOffC
IF FeedConnect?
IF SPXMove? OR SPYMove?
SeqLab FeedC MoveSXYC FeedEntC GetEOL
END
IF ZShiftOnly?
EntryMove
END
ELSE
IF SPXMove? OR SPYMove?
SeqLab RapidC MoveSXYC GetEOL
END
IF FeedEntry?
SeqLab ZCP2C GetEOL
END
EntryMove
END
END
ToolPath
ExitMove
NextRep
RETURN
NoRepAutoCycle:
EACHFeat
LineOverCk
DoCycleComment
IF SPXMove? OR SPYMove?
SeqLab RapidC MoveSXYC GetEOL
END
AutoCycCutSub1
Milling
AutoCycCutSub2
NEXTFeat
RETURN
XYZRepAutoCycle:
CycleWarning
EachRep
EACHFeat
LineOverCk
DoCycleComment
IF SPXMove? OR SPYMove?
SeqLab RapidC MoveSXYC GetEOL
END
SetAbs
Save# Num#('4') SPX#
Save# Num#('5') SPY#
SetInc
AutoCycCutSub1
Milling
AutoCycCutSub2
SetAbs
TrackXNO# ADD# Recall# Num#('4') Recall# Num#('6')
TrackYNO# ADD# Recall# Num#('5') Recall# Num#('7')
SetAbsOrInc
NEXTFeat
NextRep
RETURN
ZonlyRepAutoCycle:
EACHFeat
LineOverCk
DoCycleComment
IF SPXMove? OR SPYMove?
SeqLab RapidC MoveSXYC GetEOL
END
AutoCycCutSub1
EachRep
IF NOT FirstCycle?
IF FeedConnect?
LineOverCk
SeqLab AbsOrInc GetEOL
DoCycleComment
IF SPXMove? OR SPYMove?
SeqLab IncValue MoveSXYC GetEOL
AbsOrInc
END
ELSE
AbsOrInc
ExitMove
LineOverCk
DoCycleComment
IF SPXMove? OR SPYMove?
SeqLab IncValue MoveSXYC GetEOL
AbsOrInc
END
IF FeedEntry? AND NOT FIFO?
SeqLab ZCP2 GetEOL
END
END
EntryMove
SeqLab IncValue GetEOL
END
EntryMove
ToolPath
NextRep
AutoCycCutSub2
NEXTFeat
RETURN
DrillStuff:
SeqLab ZCP2C GetCoolOn GetEOL
GetCycle
IF FIFO? OR FIStopRO?
RapidF# { Force FeedEnt }
ELSE
SeqLab Cycle
IF Tap?
' P01' CalcCP2FmSurf#
' P02' CalcZFmSurf#
' P03'
IF Dwell?
Dwell#
ELSE
'0'
END
' P04' FeedEntry#
ELSE
' P01' CalcCP2FmSurf#
' P02' CalcZFmSurf#
' P03'
IF Peck?
Peck#
ELSE
CalcZFmSurf#
END
' P04'
IF Dwell?
Dwell#
ELSE
'0'
END
' P05' FeedEntry#
END
GetEOL
TrackZNO# FIRST SPZ# {.81.2}
END
RETURN
CheckPass:
IF AutoCycle? {use the correct StrtPos}
SetPass2
ELSE
SetPass1
END
RETURN
SetDrillEndOpZ:
IF RetractToCP1?
TrackZNO# ClearancePlane1#
ELSE
TrackZNO# ClearancePlane2#
END
RETURN
GetZCP3C:
IF FIStopRO?
SeqLab ZCP3C GetEOL
ELSE
IF FIFO?
SeqLab RapidC
IF NOT EmptyLine?
ZCP3
ELSE
ZCP3C
END
GetEOL
ELSE
SeqLab Rapid ZCP3 GetEOL
END
END
RETURN
GetStartOfSameTool:
DoPartCycleComment
DoOpComments
DoPostScript
CheckPass
RETURN
MasterSub:
IF FirstOperation?
IF MultipleParts? AND OneToolAllParts? AND NOT FirstPart?
ELSE
IF ToolChangeAtHome?
SetHome
END
SeqLab CRCOff Plane Rapid AbsOrInc ZCP1 GetEOL
SeqLab Home GetEOL
SeqLab ' G99' OpToolID ' L0 R0' GetEOL
SeqLab ' M00' GetEOL
SeqLab OpToolID Plane Speed SpinOn GetEOL
DoPartCycleComment
DoOpComments
DoPostScript
CheckPass
SeqLab Rapid AbsOrInc StrtPos GetEOL
END
ELSE
IF NewTool?
IF MultipleParts? AND OneToolAllParts? AND NOT FirstPart?
ELSE
{Finish off last Operation}
SeqLab CoolOff GetEOL
SeqLab LAST ZCP1 GetEOL
DoEndOpPS
IF GTEqual? Recall# Num#('9') Recall# Num#('8')
ProgramBreak
END
{Start new Operation}
SeqLab ' G99' OpToolID ' L0 R0' GetEOL
SeqLab ' M00' GetEOL { ProgStop for Manual Tool Change }
SeqLab OpToolID Plane Speed SpinOn GetEOL
DoPartCycleComment
DoOpComments
DoPostScript
CheckPass
SeqLab Rapid AbsOrInc StrtPos GetEOL
END
ELSE
IF SameTool?
DoEndOpPS
IF GTEqual? Recall# Num#('9') Recall# Num#('8')
SeqLab SpinOff GetEOL
SeqLab ' M00' GetEOL
ProgramBreak
SeqLab ' M00' GetEOL
{Start new Operation}
SeqLab OpToolID Plane Speed SpinOn GetEOL
GetStartOfSameTool
SeqLab Rapid AbsOrInc StrtPos GetEOL
ELSE
IF LAST ProgStop?
SeqLab CoolOff GetEOL
SeqLab LAST ZCP1 GetEOL
SeqLab ' M00' GetEOL
{Start new Operation}
GetStartOfSameTool
SeqLab PlaneC Speed SpinOn GetEOL
SeqLab Rapid AbsOrInc StrtPos GetEOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqLab CoolOff GetEOL
END
IF NewToolOffset?
{Start new Operation}
GetStartOfSameTool
SeqLab PlaneC SpeedC GetEOL
SeqLab Rapid AbsOrInc StrtPos GetEOL
ELSE
{Start new Operation}
GetStartOfSameTool
SeqLab PlaneC SpeedC GetEOL
SeqLab Rapid AbsOrInc StrtPos GetEOL
END
END
END
END
END
END {common point for all operations}
RapidF# { No Output }
IF Milling?
SeqLab ZCP2C GetCoolOn GetEOL
IF AutoCycle?
IF Repeats?
IF ZShiftOnly?
ZonlyRepAutoCycle
ELSE
XYZRepAutoCycle
END
IF NOT FeedConnect?
SeqLab ExitMove2 GetEOL
END
ELSE
NoRepAutoCycle
SeqLab ExitMove2 GetEOL
END
SetPass1
ELSE { NOT AutoCycle }
IF Repeats?
XYZRep
ELSE
Milling
END
SeqLab CRCOffC ExitMove2 GetEOL
END
ELSE
IF Drilling?
IF Repeats?
EachRep
LineOverCk
DoCycleComment
IF NOT FirstCycle?
SeqLab Rapid StrtPos GetEOL
END
DrillStuff
ToolPath
NextRep
ELSE
DrillStuff
ToolPath
END
SetDrillEndOpZ
SeqLab GetZCP3C GetEOL
END
END
RETURN
EndPartSub:
{End of program ************************************************************}
{finish last operation}
SeqLab CoolOff GetEOL
SeqLab ZCP1 GetEOL
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqLab FirstHome GetEOL
END
IF ProgStop?
SeqLab ' M00' GetEOL
END
RETURN
DoNewPart:
IF NOT FirstPart?
{Finish off last Part}
IF FullUp?
SeqLab CoolOff GetEOL
SeqLab ZCP1 GetEOL
END
{DoEndOpPS}
{Start new Part}
LineOverCk
GetStartOfSameTool
SeqLab PlaneC SpeedC GetEOL
SeqLab Rapid AbsOrInc StrtPos GetEOL
END
RETURN
DoParts:
EachPart
EachOp
IF AllToolsOnePart?
MasterSub
ELSE { OneToolAllParts }
IF GTEqual? Operation# Recall# Num#('1') { Tool First Op }
IF LTEqual? Operation# Recall# Num#('2') { Tool Last Op }
IF Equal? Operation# Recall# Num#('1') { Tool First Op }
DoNewPart
END
MasterSub
END
END
END
NextOp
IF AllToolsOnePart?
EndPartSub
END
NextPart
RETURN
GetToolFirstOp:
Save# Num#('1') Recall# Num#('3')
RETURN
GetToolLastOP:
SetFlag('3')
EachOp
IF Flag?('2')
IF Flag?('3')
IF GTEqual? Operation# Recall# Num#('1')
Save# Num#('2') Operation#
IF LastOp?
SetFlagF('2')
Save# Num#('3') Num#('0')
ELSE
IF NEXT NewTool?
SetFlagF('3')
Save# Num#('3') NEXT Operation#
END
END
END
END
END
NextOp
RETURN
MPLoop:
IF AllToolsOnePart?
DoParts
ELSE { OneToolAllParts }
IF LTEqual? Recall# Num#('1') Recall# Num#('3')
GetToolFirstOp
GetToolLastOP
DoParts
END
END
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
ReverseXZArcs
SetFlood
SetMaxRPM('800')
IF Metric?
SetMaxFeed('25400')
ELSE
SetMaxFeed('1000')
END
SetArcSegmentAccuracy('.005')
SaveProgNum2
SetProgNum('1')
Save# Num#('1') Num#('0') { Current Tool FirstOp# }
Save# Num#('2') Num#('0') { Current Tool LastOp# }
Save# Num#('3') Num#('0') { NewToolOp# }
Save# Num#('4') Num#('0') { XPos Status Register Updated Position for Repeated AutoCycles }
Save# Num#('5') Num#('0') { YPos Status Register Updated Position for Repeated AutoCycles }
Save# Num#('6') Num#('0') { LastFeat EPX# AbsPosValue for Repeated AutoCycles }
Save# Num#('7') Num#('0') { LastFeat EPY# AbsPosValue for Repeated AutoCycles }
Save# Num#('8') Num#('500') { Program Break Limit }
Save# Num#('9') Num#('0') { Line Number Counter - ( LineNumOver ) }
SetFlagF('1') { WFOStuff }
SetFlag('2') { MultipleParts OneToolAllParts }
SetFlag('3') { MultipleParts OneToolAllParts }
SetFlag('4') { Program Break CoolOn Reset }
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
ASCII('10') EOR Program2# ' G70' GetEOL { Inch }
IF UseComments?
IF ProgramNameComment?
'&T PROGRAM: ' ProgramName$ ' &R' GetCommentEOL
END
IF ProgramComment?
'&T ' ProgramComment$ ' &R' GetCommentEOL
END
IF FormatNameComment?
'&T FORMAT: ' FormatName$ ' &R' GetCommentEOL
END
IF TimeComment?
'&T ' Date$ ' AT ' Time$ ' &R' GetCommentEOL
END
IF MovesComment?
'&T OUTPUT IN ABSOLUTE INCHES &R' GetCommentEOL
END
IF PartsComment?
'&T PARTS PROGRAMMED: ' Parts# ' &R' GetCommentEOL
END
IF StartToolComment?
'&T FIRST TOOL IN SPINDLE &R' GetCommentEOL
END
END
OpenSub
RestoreScale
IF MultipleParts?
IF WorkFixtureOffsets?
'NOTE: This Post Processor does not support Work Fixture Offsets for Multiple Parts.' EOL
'Therefore, the output will be controlled by the following values that are' EOL
'already entered in Equally Spaced Offsets Edit Fields:' EOL
'X' PartShiftX# ' Y' PartShiftY# ' Z' PartShiftZ# EOL
'It is recommended that you change your selection to Equally Spaced Offsets.' EOL
END
IF OneToolAllParts?
EachOp
IF FirstOperation?
Save# Num#('3') 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
ELSE
MPLoop
END
ELSE
EachOp
MasterSub
NextOp
EndPartSub
END
SeqLab EOP GetEOL
Post
'N9999' EOR Program2# ' G70' GetEOL { Inch }
Close
Retag
IF UseComments?
SetScale('1') {restore scale for comments}
Reopen
IF FileBytesComment?
'&T FILE LENGTH: ' FileBytes# ' CHARACTERS &R' GetCommentEOL
END
IF FileFeetComment?
'&T FILE LENGTH: ' FileFeet# ' FEET &R' GetCommentEOL
END
IF FileMetersComment?
'&T FILE LENGTH: ' FileMeters# ' METERS &R' GetCommentEOL
END
Close
END
Wyszukiwarka
Podobne podstrony:
Juaristi [GT] MY75 89 2Yasnac MX2 MS [GT] MW35 89 1Fadal Format 1 LH AI MV41 89 1Dynapath 20M LH [PC] MV20 89Fanuc 3000C Mat LH PM M495 89 3Mit Mel 500M LH [ETS] MY80 89 1Fanuc 11M Demo LH [TI] MU21 89Fadal 2 LH [AIM] MY42 89 1Fadal Format 1 LH [FC] MU73 89 1Fadal Format 1 LH [PV] MU74 89Fanuc 15M Mon LH [RI] MU56 89 1Fanuc 0M P&W [GT] MW34 89 1Fadal Format 1 LH [CC] MU17 89Fanuc 6M Komo [GT] M925 89Fadal Format 2 LH WT MX53 89 4Fanuc 6M Kuraki LH FES MW33 89Fanuc 6M MTS [GT] M717 89więcej podobnych podstron