{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}
{5/1/97
Modified: Juaristi [GT] MY75.89
Created: Juaristi [GT] MY75.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 [GT] MY75.89.1
Created: Juaristi [GT] MY75.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.
Added FORMAT#10, '###^0' at Prog Numeric Format Definitions.
Changed FeedEntry# from FORMAT#5 to FORMAT#10 at Prog Numeric Format Definitions.
Customer reported that some Drilling Operations were calling a non-existing sub.
Caused by testing for situations to bypass MasterOp/CallMasterOp.
Deleted RetractToCP1 test at IF Drilling.
Customer requested support for LongHand FIFO and FIStopRO Drilling Cycles.
Added FORMAT#9, '#' at Prog Numeric Format Definitions.
Added RapidF# to FORMAT#9 at Prog Numeric Format Definitions.
To force FeedEnt at FirstFeat.
Added support at ToolPath and IF Drilling.
Added GetZCP3C sub.
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'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ToolDiameter#,4)
FORMAT(TrackXNO#,4)
FORMAT(TrackYNO#,4)
FORMAT(TrackZNO#,4)
FORMAT(Recall#,5)
FORMAT(TLNum#,5)
FORMAT(Program2#,5)
FORMAT(Program#,5)
FORMAT(CallMasterNum#,5)
FORMAT(Operation#,5)
FORMAT(RepsLess1#,5)
FORMAT(Tool#,5)
FORMAT(Parts#,5)
FORMAT(Dwell#,6)
FORMAT(CurOriginPosZ#,7)
FORMAT(ToolLength#,7)
FORMAT(CalcZFmSurf#,7)
FORMAT(SUB#,8)
FORMAT(TLLength#,8)
FORMAT(CalcCP2FmSurf#,8)
FORMAT(Peck#,8)
FORMAT(RapidF#,9)
FORMAT(FeedEntry#,10)
{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
WFONum:
{ NOTE: This Post Processor does not support WorkFixtureOffsets. }
RETURN
WFOStuff:
{ NOTE: This Post Processor does not support WorkFixtureOffsets. }
RETURN
DoMPSubComment:
IF UseComments? AND SubComment?
'&T SUB NUMBER: ' Recall# Num#('1') ' &R' EOL
END
RETURN
DoSubComment:
IF UseComments? AND SubComment?
'&T SUB NUMBER: ' Recall# Num#('2') ' &R' EOL
END
RETURN
DoACSubComment:
IF UseComments? AND SubComment?
'&T SUB NUMBER: ' Recall# Num#('3') ' &R' EOL
END
RETURN
DoOpComments:
IF UseComments?
SetScale('1')
IF OperationIDComment?
'&T OPERATION ' Operation# ': ' OperationType$ ' &R' EOL
END
IF OperationComment?
'&T ' OperationComment$ ' &R' EOL
END
IF WorkGroupComment?
'&T ' WorkGroupComment$ ' &R' EOL
END
IF ToolTypeComment?
'&T TOOL ' Tool# ': ' ToolDiameter# ' ' ToolType$ ' &R' EOL
END
IF ToolComment?
'&T ' ToolComment$ ' &R' EOL
END
RestoreScale
END
RETURN
PSInit:
NewWFOF
RotateF
OptCyc1F
MasterOpF
CallMasterOpF
RETURN
PSStuff:
IF FourthCW?
FORMAT(FourthDegree#,2)
SeqC ' A' FourthDegree# EOL
FourthCWF
END
IF FourthCCW?
FORMAT(FourthDegree#,3)
SeqC ' A' FourthDegree# EOL
FourthCCWF
END
IF FifthCW?
FORMAT(FifthDegree#,2)
SeqC ' B' FifthDegree# EOL
FifthCWF
END
IF FifthCCW?
FORMAT(FifthDegree#,3)
SeqC ' B' FifthDegree# EOL
FifthCCWF
END
RETURN
DoPostScript:
PSInit
EachPS
SeqC PostScript EOL
PSStuff
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqC EndOpPS EOL
PSStuff
NextPS
RETURN
EntryMove:
LoadFeat Num#('0') Num#('0') FIRST SPZ#
IF ZMove?
IF FeedEntry?
SeqC FeedC ZInC FeedEntC EOL
ELSE
SeqC RapidC ZInC EOL
END
END
RETURN
StartSub:
{OpenSub}
SeqC ' G98 L' Recall# Num#('2') EOL { SubID }
DoSubComment
RETURN
StartACSub:
{OpenSub}
SeqC ' G98 L' Recall# Num#('3') EOL { SubID }
DoACSubComment
RETURN
SubWarning:
IF NOT FeedConnect?
IF AnyZshift?
' ' EOL
'&T WARNING Z CLEARANCE WILL CHANGE WITH EACH CYCLE OF SUB REPEAT &R' EOL
' ' EOL
END
END
RETURN
StdSub:
StartSub
RETURN
FinishSub1: {part 1}
SeqC CRCOffC
IF NOT FeedConnect?
IF AutoCycle?
ZCP3C
ELSE
IF FIFO?
FeedC ZCP3C FeedEntC
ELSE
RapidC ZCP3C
END
END
END
EOL
RETURN
FinishSubG92: {part 2}
SeqC Preset ShiftRC EOL
SeqC ' G98 L0' EOL { EndSub }
SeqC ' L' Recall# Num#('2') '.' RepsLess1# EOL
{CloseSub}
SeqC Preset UnshftRC EOL
RETURN
OpenMP:
IF EquallySpacedOffsets?
NewProg
Save# Num#('1') ADD# Program# Num#('200')
SeqC ' G98 L' Recall# Num#('1') EOL { SubCall CallLab }
DoMPSubComment
END
RETURN
CloseMP:
IF EquallySpacedOffsets?
SeqC ' G98 L0' EOL { EndSub }
EachPart
IF NOT FirstPart?
SeqC ' G54' AbsOrInc
IF AllToolsOnePart?
FirstHome
ELSE
LAST Home
END
IF NotEqual? PartShiftZ# Num#('0')
' Z' CurOriginPosZ#
END
' L' Recall# Num#('1') EOL
END
NextPart
END
RETURN
DoAbsOrInc:
IF Flag?('1') AND AbsoluteMoves?
IF ZMove? AND AbsValue?
IncValue
ELSE
IF NOT ZMove? AND NOT AbsValue?
AbsValue
END
END
END
RETURN
DoDrillAbsOrInc:
{ Not Supported }
RETURN
RestoreAbsOrInc:
IF Flag?('1') AND AbsoluteMoves? AND NOT AbsValue?
SeqC AbsValue EOL
END
RETURN
FormatArc:
DoAbsOrInc
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:
SeqC 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
EOL
RETURN
ToolPath:
EACHFeat
IF PointFeat?
IF AutoCycle?
SeqC MoveSXYC EOL
IF NOT FirstFeat?
SeqC ' L' Recall# Num#('3') EOL { SubCall CallLab }
END
CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
ELSE
IF FIFO? OR FIStopRO?
IF FIFO?
SeqC RapidC MoveSXYC EOL
SeqC RapidC ZCP2C EOL
SeqC FeedC MoveSZC FeedEntC EOL
IF Dwell?
FORMAT(Dwell#,5)
SeqC ' G04 F' Dwell# EOL
FORMAT(Dwell#,6)
END
SeqC FeedC ZCP2C EOL
IF RetractToCP1?
SeqC RapidC ZCP1C EOL
END
ELSE { FIStopRO }
SeqC RapidC MoveSXYC
IF NOT EmptyLine?
SpinOn
END
EOL
SeqC RapidC ZCP2C EOL
SeqC FeedC MoveSZC FeedEntC EOL
SeqC SpinOff EOL
IF RetractToCP1?
SeqC RapidC ZCP1C EOL
ELSE
SeqC RapidC ZCP2C EOL
END
END
ELSE
IF FirstFeat?
SeqC ' G79' EOL { CycleCall }
IF RetractToCP1?
SeqC Rapid ZCP1 EOL
END
ELSE
IF SPZMove? AND RetractToCP1?
SeqC MoveSXYC EOL
SeqC ZCP2 EOL
DrillCycle
SeqC ' G79' EOL { CycleCall }
SeqC Rapid ZCP1 EOL
ELSE
IF SPZMove?
SeqC Rapid MoveSXYC EOL
DrillCycle
SeqC ' G79' EOL { CycleCall }
ELSE
IF RetractToCP1?
SeqC MoveSXYC EOL
SeqC ZCP2 ' G79' EOL { CycleCall }
SeqC Rapid ZCP1 EOL
ELSE
SeqC MoveSXYC ' G79' EOL { CycleCall }
END
END
END
END
TrackZNO# SPZ#
END
END
ELSE
IF RapidFeat?
IF XMove? OR YMove? OR ZMove?
SeqC DoAbsOrInc ckCRC RapidC MoveXYZC EOL
END
ELSE
IF LineFeat?
IF XMove? OR YMove? OR ZMove?
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqC DoAbsOrInc ckCRC FeedC MoveXYZC FeedRateC EOL
DecelMove2
END
SeqC DoAbsOrInc ckCRC FeedC MoveXYZC DecelFeed EOL
ELSE
SeqC DoAbsOrInc ckCRC FeedC MoveXYZC FeedRateC EOL
END
END
ELSE
IF ArcFeat?
IF XYPlane? AND ZMove?
EACHArcSegment
SeqC DoAbsOrInc ckCRC FeedC MoveXYZC FeedRateC EOL
NEXTArcSegment
ELSE
IF XZPlane? AND YMove?
EACHArcSegment
SeqC DoAbsOrInc ckCRC FeedC MoveXYZC FeedRateC EOL
NEXTArcSegment
ELSE
IF YZPlane? AND XMove?
EACHArcSegment
SeqC DoAbsOrInc ckCRC FeedC MoveXYZC FeedRateC EOL
NEXTArcSegment
ELSE
EACHQuadrant { Do not use NOT, FIRST, LAST or NEXT modifiers in this loop }
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
SeqC FormatArc ArcFeedC EOL
DecelMove2
END
SeqC FormatArc DecelFeed EOL
ELSE
SeqC FormatArc ArcFeedC EOL
END
NEXTQuadrant
END
END
END
END
END
END
END
NEXTFeat
RestoreAbsOrInc
RETURN
AutoCycCutSub1: {part 1}
SaveSubStatus {save tool position}
SetPass1 {element cut moves}
StartACSub
SetSRXYtoSP
SeqC IncValue EOL
RETURN
AutoCycCutSub2: {part 2}
ToolPath
SeqC AbsOrInc
IF Repeats? AND FeedConnect? AND ZshiftOnly?
ELSE
IF FIFO?
FeedC ZCP2 FeedEntC
ELSE
RapidC ZCP2
END
END
EOL
SeqC ' G98 L0' EOL { EndSub }
{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
Save# Num#('3') ADD# Program# Num#('200')
AutoCycCutSub1
EntryMove
AutoCycCutSub2
AutoCycPat
ELSE
EntryMove
ToolPath
END
RETURN
G92Sub:
SubWarning
StdSub
SeqC AbsOrInc Connect StrtPos EOL
Milling
FinishSub1
FinishSubG92
RETURN
ZonlyRepAutoCycle:
SetPass1 {reset}
StartSub
NewProg
Save# Num#('3') ADD# Program# Num#('200')
Save# Num#('4') Num#('0') { ZShiftRepeats# }
EachCycle
SetSRXYtoEP
IF FeedConnect?
Feed
IF NOT FirstCycle?
IF SPXMove? OR SPYMove?
SeqC IncValue StrtPosC EOL
AbsOrInc
END
END
SeqC ZInPlusInc FeedEnt EOL
ELSE
IF NOT FirstCycle?
Rapid
IF SPXMove? OR SPYMove?
SeqC IncValue StrtPosC EOL
AbsOrInc
END
IF FeedEntry?
SeqC ZCP2PlusInc EOL
END
END
IF FeedEntry?
SeqC Feed ZInPlusInc FeedEnt EOL
ELSE
IF FirstCycle?
Rapid
END
SeqC RapidC ZInPlusInc EOL
END
END
IF FirstCycle?
SetStatusOff {protect Z position for incremental sub}
END
Save# Num#('4') ADD# Recall# Num#('4') Num#('1') { ZShiftRepeats# }
IF NotEqual? Recall# Num#('4') Repeats#
SeqC ' L' Recall# Num#('3') EOL { SubCall CallLab }
END
NextCycle
SetStatusOn
AutoCycCutSub1 {build element sub}
AutoCycCutSub2
IF FeedConnect? {there is no Z up in the sub}
IF FIFO?
SeqC Feed ZCP2 FeedEnt EOL
ELSE
SeqC Rapid ZCP2 EOL
END
END
SeqC ' G98 L0' EOL { EndSub }
{CloseSub}
{Element shift, not pattern}
Save# Num#('3') Recall# Num#('2')
SetPass2 {position pattern}
TrackXNO# StartPosX#
TrackYNO# StartPosY#
AutoCycPat {write pattern moves and main calls}
RETURN
ZonlyRep:
Save# Num#('4') Num#('0') { ZShiftRepeats# }
EachCycle
IF NOT FirstCycle?
SeqC Connect StrtPos EOL
END
IF FeedConnect?
SeqC FeedC ZInPlusInc FeedEnt EOL
ELSE {Entry/Exit Connect}
IF FeedEntry?
IF NOT FirstCycle?
SeqC RapidC ZCP2PlusIncC EOL
END
SeqC Feed ZInPlusInc FeedEnt EOL
ELSE
SeqC RapidC ZInPlusInc EOL
END
END
Save# Num#('4') ADD# Recall# Num#('4') Num#('1') { ZShiftRepeats# }
IF NotEqual? Recall# Num#('4') Repeats#
SeqC ' L' Recall# Num#('2') EOL { SubCall CallLab }
END
NextCycle
StartSub
TrackZNO# FIRST SPZ#
ToolPath
FinishSub1
SeqC ' G98 L0' EOL { EndSub }
{CloseSub}
RETURN
CheckPass:
IF AutoCycle? {use the correct StrtPos}
SetPass2
ELSE
SetPass1
END
RETURN
SkipToLastFeat:
EachFeat
IF LastFeat?
TrackXNO# SPX#
TrackYNO# SPY#
END
NextFeat
RETURN
SetDrillEndOpZ:
IF RetractToCP1?
TrackZNO# ClearancePlane1#
ELSE
TrackZNO# ClearancePlane2#
END
RETURN
GetZCP3C:
IF RetractToCP1? OR FIStopRO?
SeqC ZCP3C EOL
ELSE
IF FIFO?
SeqC RapidC
IF NOT EmptyLine?
ZCP3
ELSE
ZCP3C
END
EOL
ELSE
SeqC Rapid ZCP3 EOL
END
END
RETURN
GetStartOfSameTool:
DoOpComments
DoPostScript
CheckPass
RETURN
GetCoolOn:
IF FirstOperation? OR NewTool? OR LAST ProgStop? OR LAST CoolOff?
CoolOn
END
RETURN
SetUpStuff:
{ Nothing requested }
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
ReverseXZArcs
SetFlood
UseSeparateSubCalls
SetMaxSeparateSubCalls('200')
SetMaxRPM('800')
IF Metric?
SetMaxFeed('25400')
ELSE
SetMaxFeed('1000')
END
SetArcSegmentAccuracy('.005')
SaveProgNum2
SetProgNum('1')
Save# Num#('1') Num#('0') { MultipleParts Program# }
Save# Num#('2') Num#('0') { Repeats Program# }
Save# Num#('3') Num#('0') { AutoCycle Program# }
Save# Num#('4') Num#('0') { ZShiftRepeats# }
SetFlagF('1') { Milling ZShiftOnly SepSubs }
SetFlagF('5') { Variable Drill Depths }
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
SetUpStuff
EachOp {Start of post processing *********************}
IF FirstOperation?
ASCII('10') EOR Program2# ' G70' EOL { Inch }
IF ToolChangeAtHome?
SetHome
END
IF UseComments?
IF ProgramNameComment?
'&T PROGRAM: ' ProgramName$ ' &R' EOL
END
IF ProgramComment?
'&T ' ProgramComment$ ' &R' EOL
END
IF FormatNameComment?
'&T FORMAT: ' FormatName$ ' &R' EOL
END
IF TimeComment?
'&T ' Date$ ' AT ' Time$ ' &R' EOL
END
IF MovesComment?
'&T OUTPUT IN ABSOLUTE INCHES &R' EOL
END
IF PartsComment?
'&T PARTS PROGRAMMED: ' Parts# ' &R' EOL
END
IF StartToolComment?
'&T FIRST TOOL IN SPINDLE &R' EOL
END
END
OpenSub
RestoreScale
IF MultipleParts? AND AllToolsOnePart?
OpenMP
END
Seq CRCOff Plane Rapid AbsOrInc ZCP1 EOL
SeqC Home EOL
SeqC ' G99' OpToolID ' L0 R0' EOL
SeqC ' M00' EOL
SeqC OpToolID Plane Speed SpinOn EOL
DoOpComments
DoPostScript
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
IF EquallySpacedOffsets?
SeqC ZCP1 Speed EOL
END
END
CheckPass
SeqC Rapid AbsOrInc StrtPos EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
IF EquallySpacedOffsets?
SeqC Speed SpinOn EOL
SeqC Rapid AbsOrInc StrtPos EOL
END
END
ELSE
IF NewTool?
{Finish off last Operation}
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP
END
SeqC CoolOff EOL
SeqC LAST ZCP1 EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
{Start new Operation}
Seq ' G99' OpToolID ' L0 R0' EOL
SeqC ' M00' EOL { ProgStop for Manual Tool Change }
SeqC OpToolID CRCOffC Plane Speed SpinOn EOL
DoOpComments
DoPostScript
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
IF EquallySpacedOffsets?
SeqC ZCP1 Speed EOL
END
END
CheckPass
SeqC Rapid AbsOrInc StrtPos EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
IF EquallySpacedOffsets?
SeqC Speed SpinOn EOL
SeqC Rapid AbsOrInc StrtPos EOL
END
END
ELSE
IF SameTool?
DoEndOpPS
IF LAST ProgStop?
SeqC CoolOff EOL
SeqC LAST ZCP1 EOL
SeqC ' M00' EOL
{Start new Operation}
GetStartOfSameTool
SeqC PlaneC Speed SpinOn EOL
SeqC Rapid AbsOrInc StrtPos EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
IF NewToolOffset?
{Start new Operation}
GetStartOfSameTool
SeqC PlaneC SpeedC EOL
SeqC Rapid AbsOrInc StrtPos EOL
ELSE
{Start new Operation}
GetStartOfSameTool
SeqC PlaneC SpeedC EOL
SeqC Rapid AbsOrInc StrtPos EOL
END
END
END
END
END {common point for all operations}
IF Milling?
SeqC ZCP2C GetCoolOn EOL
IF Repeats?
NewProg
Save# Num#('2') ADD# Program# Num#('200')
IF ZshiftOnly?
IF AutoCycle? {incremental Autocycle sub can have Z moves}
ZonlyRepAutoCycle
ELSE {Z shift only, NOT Auto Cycle}
IF UseSeparateSubCalls? AND CyclesLessThanMaxSubCalls?
SetFlag('1') { Milling ZShiftOnly SepSubs }
ZonlyRep
SetFlagF('1')
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?
SeqC ZCP3C EOL
ELSE
IF FIFO?
SeqC FeedC CRCOffC ZCP3C FeedEntC EOL
ELSE
SeqC RapidC CRCOffC ZCP3C EOL
END
END
ELSE
IF Drilling?
IF Repeats?
NewProg
Save# Num#('2') ADD# Program# Num#('200')
StdSub
SeqC AbsOrInc Rapid StrtPos EOL
END
SeqC ZCP2C GetCoolOn EOL
GetCycle
IF FIFO? OR FIStopRO?
IF MasterOp?
'&T &R' EOL
'&T Warning, no Drill Sub output, CallMasterOp will call ghost sub. &R' EOL
'&T &R' EOL
END
RapidF# { Force FeedEnt }
ToolPath
SeqC GetZCP3C EOL
ELSE
SeqC 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
EOL
TrackZNO# FIRST SPZ#
EachFeat
IF SPZMove?
SetFlag('5')
END
NextFeat
IF Flag?('5')
SetFlagF('5')
TrackZNO# FIRST SPZ#
ToolPath
SeqC GetZCP3C EOL
ELSE
IF CallMasterOp?
Save# Num#('2') ADD# CallMasterNum# Num#('200')
SeqC ' L' Recall# Num#('2') EOL { SubCall CallLab }
SeqC Rapid ZCP3 EOL
ELSE
TrackZNO# FIRST SPZ#
IF MasterOp?
NewMasterProg
Save# Num#('2') ADD# Program# Num#('200')
SeqC ' L' Recall# Num#('2') EOL { SubCall CallLab }
StartSub
ToolPath
SeqC ' G98 L0' EOL { EndSub }
{CloseSub}
SeqC Rapid ZCP3 EOL
ELSE
ToolPath
SeqC GetZCP3C EOL
END
END
END
END
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
SeqC CoolOff EOL
SeqC ZCP1 EOL
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqC FirstHome EOL
END
IF ProgStop?
SeqC ' M00' EOL
END
IF MultipleParts? AND AllToolsOnePart?
CloseMP
END
SeqC EOP EOL
{CloseSub}
Post
'N9999' EOR Program2# ' G70' EOL { Inch }
Close
IF UseComments?
SetScale('1') {restore scale for comments}
Reopen
IF FileBytesComment?
'&T FILE LENGTH: ' FileBytes# ' CHARACTERS &R' EOL
END
IF FileFeetComment?
'&T FILE LENGTH: ' FileFeet# ' FEET &R' EOL
END
IF FileMetersComment?
'&T FILE LENGTH: ' FileMeters# ' METERS &R' EOL
END
Close
END
Wyszukiwarka
Podobne podstrony:
Juaristi LH [GT] MY76 89 3Yasnac MX2 MS [GT] MW35 89 1Fanuc 0M P&W [GT] MW34 89 1Fanuc 6M Komo [GT] M925 89Fanuc 6M MTS [GT] M717 89Bandit IV AB [DM] MV32 89 1Fadal Format 2 [MM] MW60 89Fadal Format 2 [PEP] M116 89 1Fanuc MF M4 MS NS SSI M421 89 2Fanuc 10M MVJR [DM] M740 89Yasnac MX1 MS [BI] M076 89 2Cin Acr 900V2 [KM] MT25 89więcej podobnych podstron