plik


{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 2
Yasnac MX2 MS [GT] MW35 89 1
Fadal Format 1 LH AI MV41 89 1
Dynapath 20M LH [PC] MV20 89
Fanuc 3000C Mat LH PM M495 89 3
Mit Mel 500M LH [ETS] MY80 89 1
Fanuc 11M Demo LH [TI] MU21 89
Fadal 2 LH [AIM] MY42 89 1
Fadal Format 1 LH [FC] MU73 89 1
Fadal Format 1 LH [PV] MU74 89
Fanuc 15M Mon LH [RI] MU56 89 1
Fanuc 0M P&W [GT] MW34 89 1
Fadal Format 1 LH [CC] MU17 89
Fanuc 6M Komo [GT] M925 89
Fadal Format 2 LH WT MX53 89 4
Fanuc 6M Kuraki LH FES MW33 89
Fanuc 6M MTS [GT] M717 89

więcej podobnych podstron