plik


{Change Comments ***********************************************************} {6/24/92 Copied & modified: K & T 180 Gemini D M507.81 For: Loveridge Machine Machine: Kierney & Trecker 180 Control: Gemini C This supports both Absolute and Incremental output per LongHand [AbsOrInc] M001.81. Changes made per conversations with Ron Erickson at Loveridge Machine and sample program. Deleted '(ZTB,H)' at WFOStuff sub, two places. Deleted '(ULF,ProgramName$)' at WFOStuff sub. Deleted '(USF,ProgramName$)' at WFOStuff sub, called at end of Prog. Added ToolOfst at FirstOperation, NewTool and SameTool. Added 'P0', Tool Length Offset Cancel, to SafeStart Block at FirstOperation. Added 'P0', Tool Length Offset Cancel, to 'Z200000M25' Block at NewTool and end of Prog. Added RapidC 'Z200000M25' RapidFC 'P0' at SameTool IF NewToolOffset = TRUE. Added 'DO', Tool Diameter Offset Cancel, to 'Z200000M25' Block at NewTool, SameTool end of Prog. Added CRCOffsetC to StdLine sub. Added 'G99', Cancel Absolute Offset, at end of Prog. DWB} {1/14/93 Modified: K & T 180 Gemini C M506.81 For: Loveridge Machine Changes made per conversation with Mark Jenson at Loveridge Machine. Updated to Version 4.1 per LongHand M001.81.1. Deleted RapidF from all occurances of literal M25, bypass offset command. Added CheckIndex sub and called from StrtPos block at FirstOperation, NewTool and SameTool. DWB} {1/15/98 Updated: K & T 180 Gemini C M506.81.2 Created: K & T 180 Gemini C M506.89 For: Gibbs & Associates/Loveridge Machine/General Hone Corporation Versions: Catalyst v4.21.30(mac)/ComPost2 1.1b3 Updated for Catalyst v3.35C per LongHand M001.89h Format. DWB} {1/16/98 Copied: K & T 180 Gemini C M506.89 Created: K&T CNC [GH] MW98.89 For: General Hone Corporation Machine: Kierney Trecker Control: K&T CNC Versions: Catalyst v4.21.30(mac)/ComPost2 1.1b3 Changes made per Dave Kauffman of General Hone Corporation, phone calls, MW98.89 Test.VNC. Changed FORMAT for M and T from #0 to 00 in Compost2 Default Format Dialog. Changed Seq to 'N' Operation# '00' at FirstOperation and NewTool. Added 'N' Operation# '00' EOL at GetStartOfSameTool. Changed literal 'Z200000M25' to 'Z180000' at GetOfstOff sub. Deleted LastCRCOfstOff sub and all calls to same. Deleted CRCOfstOff sub and all calls to same. Added literal 'X0Y120000', constant ToolChng Position for NOT ToolChangeAtHome at FirstOperation, two places at NewTool and EndPartSub Tool Starts and ends at this location. Deleted all occurances of AbsOrInc except at AutoCycCutSub2 and ZonlyRepAutoCycle subs. Added SetAbs at setup and initializations. Changed MoveType$ to literal 'ABSOLUTE' at end of Prog. Modified code at FirstOperation, NewTool and SameTool sub per customer requests. Modified code at EndPartSub and DoNewPart subs per customer requests. Added CoolOff to GetOfstOff at NewTool and SameTool. Added CoolOff to GetOfstOff at EndPartSub and DoNewPart subs. Made other changes per customer requests. DWB} {2/11/98 Modified: K&T CNC [GH] MW98.89 Created: K&T CNC [GH] MW98.89.1 For: General Hone Corporation Versions: Catalyst v4.21.30(mac)/ComPost2 1.1b3 Changes made per Dave Kauffman of General Hone Corporation, phone calls. Added Address O to Program ID Label Edit Field in Compost2 General Info Dialog. Added ###0 to FORMAT for Address O in Compost2 Default Formats Dialog. Added ProgID1 at FirstOperation. Customer requested that all Line Numbers be based on Operation#. Changed Sequence Label from N to N? in Compost2 General Info Dialog. Changed all Seq/SeqC to SeqLab/SeqLabC throughout Prog. Added SetOpLines sub. Outputs '¦' Operation# '00' EOL Added call to SetOpLines at FirstOperation, NewTool and GetStartOfSameTool. Changed 'N' Operation# '00' to SeqLab at FirstOperation and NewTool. Changed 'N' Operation# '00' EOL to SeqLab ' ' EOL at GetStartOfSameTool. Added Close, Retag and Reopen at end of Prog. DWB} {Prog Numeric Format Definitions ****} #1 = '#.00' #2 = '#####^##0' #3 = '*#####^##0' #4 = '####.####;0' #5 = '#######0' #6 = '0' 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(Program#,5) FORMAT(Operation#,5) FORMAT(Tool#,5) FORMAT(Parts#,5) FORMAT(RapidF#,6) {Prog Subroutines ****} RestoreScale: IF Metric? {CAM file is in Metric, tools and tool path} SetScale('.03937007874') { change to English, this is an English post} END RETURN SetOpLines: '¦' Operation# '00' EOL RETURN WFONum: { NOTE: This Post Processor does not support WorkFixtureOffsets. } RETURN WFOStuff: { NOTE: This Post Processor does not support WorkFixtureOffsets. } RETURN ResetWFO: { NOTE: This Post Processor does not support WorkFixtureOffsets. } RETURN DoPartCycleComment: IF MultipleParts? AND UseComments? AND SubComment? '(MSG, PART NO. ' PartNum# ')' EOL END RETURN DoCycleComment: IF UseComments? AND SubComment? '(MSG, CYCLE START)' EOL END RETURN DoOpComments: IF UseComments? SetScale('1') IF OperationIDComment? '(MSG, OPERATION ' Operation# ': ' OperationType$ ')' EOL END IF OperationComment? '(MSG, ' OperationComment$ ')' EOL END IF WorkGroupComment? '(MSG, ' WorkGroupComment$ ')' EOL END IF ToolTypeComment? '(MSG, TOOL ' Tool# ': ' ToolDiameter# ' ' ToolType$ ')' EOL END IF ToolComment? '(MSG, ' ToolComment$ ')' EOL END RestoreScale END RETURN PSInit: NewWFOF RotateF FifthCWF FifthCCWF OptCyc1F MasterOpF CallMasterOpF RETURN PSStuff: RETURN CheckIndex: { Called at StrtPos in EachOp/NextOp Loop } IF FourthCW? FORMAT(FourthDegree#,2) 'B' FourthDegree# FourthCWF END IF FourthCCW? FORMAT(FourthDegree#,3) 'B' FourthDegree# FourthCCWF END RETURN DoPostScript: PSInit EachPS SeqLabC PostScript EOL PSStuff NextPS RETURN DoEndOpPS: PSInit EachEOPS SeqLabC EndOpPS EOL PSStuff NextPS RETURN EntryMove: IF FeedEntry? SeqLabC FeedC ZInC IF NOT EmptyLine? { Mostly for FeedConnect ZShiftOnly with ZMove } FeedEntC END EOL ELSE SeqLabC RapidC ZInC IF NOT EmptyLine? { Mostly for FeedConnect ZShiftOnly with ZMove } RapidFC END EOL END RETURN ExitMove: IF NOT FeedConnect? CRCOffC IF FIFO? FeedC PRIME ZCP2C FeedEntC ELSE RapidC PRIME ZCP2C RapidFC END END RETURN ExitMove2: LoadFeat Num#('0') Num#('0') ClearancePlane3# IF ZMove? IF FIFO? FeedC ZCP3C FeedEntC ELSE RapidC ZCP3C RapidFC END END RETURN CycleWarning: { NOTE: This Post Processor takes care of Z Clearance. } RETURN FormatArc: IF ArcCW? CWArc ELSE CCWArc END IF AbsValue? MoveXYZC ELSE IF XYPlane? MoveXY IF ZMove? MoveZ END ELSE IF XZPlane? MoveX IF YMove? MoveY END MoveZ ELSE { YZPlane } IF XMove? MoveX END MoveY MoveZ END END END ArcIJ RETURN ckCRC: IF LastFeat? CRCOffC ELSE IF NOT ZMove? CRCOnC END END RETURN ckCRCNum: IF NOT LastFeat? AND Equal? SPZ# EPZ# CRCOffsetC END RETURN DrillFeature: IF NOT FirstFeat? IF RetractToCP1? SeqLabC DrillOff EOL SeqLabC Rapid ZCP1 RapidF EOL SeqLabC Cycle MoveSXYZC RLevel Peck FeedEnt EOL END END SeqLabC MoveSXYZC EOL RETURN ToolPath: EACHFeat IF PointFeat? { Drilling Only } DrillFeature ELSE IF RapidFeat? IF XMove? OR YMove? OR ZMove? SeqLabC ckCRC IF EmptyLine? SeqLabC RapidC MoveXYZC RapidFC ckCRCNum EOL ELSE SeqLabC FeedC MoveXYZC FeedRateC ckCRCNum EOL END END ELSE IF LineFeat? IF XMove? OR YMove? OR ZMove? IF Decelerate? IF RoomToDecel? DecelMove1 SeqLabC ckCRC FeedC MoveXYZC FeedRateC ckCRCNum EOL DecelMove2 END SeqLabC ckCRC FeedC MoveXYZC DecelFeed ckCRCNum EOL ELSE SeqLabC ckCRC FeedC MoveXYZC FeedRateC ckCRCNum EOL END END ELSE IF ArcFeat? EACHQuadrant { Do not use NOT, FIRST, LAST or NEXT modifiers in this loop } IF LastQuadrant? AND Decelerate? IF RoomToDecel? DecelMove1 SeqLabC FormatArc ArcFeedC EOL DecelMove2 END SeqLabC FormatArc DecelFeed EOL ELSE SeqLabC FormatArc ArcFeedC EOL END NEXTQuadrant IF LastFeat? AND CutterRadiusCompensation? SeqLabC ckCRC FeedC LastFeatExtend FeedRateC EOL 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 SeqLabC IncValue EOL RETURN AutoCycCutSub2: {part 2} SeqLabC AbsOrInc IF FIFO? FeedC ZCP2 FeedEntC ELSE RapidC ZCP2 RapidFC END EOL SetSRSubXY {restore SR to 1st position value} ReSetPass2 {restore for positioning moves} RETURN Milling: EntryMove ToolPath RETURN XYZRep: CycleWarning FindAnyZMoves EachRep DoCycleComment IF FirstCycle? EntryMove ELSE CRCOffC IF FeedConnect? IF SPXMove? OR SPYMove? SeqLabC FeedC MoveSXYC EOL END IF ZShiftOnly? EntryMove ELSE IF NOT NoZMoves? EntryMove END END ELSE IF SPXMove? OR SPYMove? SeqLabC RapidC MoveSXYC RapidFC EOL END IF FeedEntry? SeqLabC ZCP2C EOL END EntryMove END END ToolPath SeqLabC ExitMove EOL NextRep RETURN NoRepAutoCycle: EACHFeat DoCycleComment IF SPXMove? OR SPYMove? IF FIFO? SeqLabC Rapid MoveSXYC RapidF EOL ELSE SeqLabC RapidC MoveSXYC RapidFC EOL END END AutoCycCutSub1 Milling AutoCycCutSub2 NEXTFeat RETURN XYZRepAutoCycle: CycleWarning EachRep DoCycleComment IF NOT FirstCycle? IF FIFO? SeqLabC Rapid StrtPos RapidF EOL ELSE SeqLabC RapidC StrtPos RapidFC EOL END IF NOT FeedConnect? SeqLabC ZCP2C EOL END END EACHFeat IF NOT FirstFeat? DoCycleComment END IF SPXMove? OR SPYMove? IF FIFO? SeqLabC Rapid MoveSXYC RapidF EOL ELSE SeqLabC RapidC MoveSXYC RapidFC EOL END END AutoCycCutSub1 Milling AutoCycCutSub2 NEXTFeat SeqLabC CRCOffC LoadFeat Num#('0') Num#('0') PRIME ClearancePlane2# IF ZMove? ExitMove END EOL NextRep RETURN ZonlyRepAutoCycle: EACHFeat DoCycleComment IF SPXMove? OR SPYMove? IF FIFO? SeqLabC Rapid MoveSXYC RapidF EOL ELSE SeqLabC RapidC MoveSXYC RapidFC EOL END END AutoCycCutSub1 EachRep IF NOT FirstCycle? IF FeedConnect? DoCycleComment IF SPXMove? OR SPYMove? SeqLabC FeedC MoveSXYC FeedEntC EOL END AbsOrInc ELSE SeqLabC AbsOrInc ExitMove EOL DoCycleComment IF SPXMove? OR SPYMove? SeqLabC IncValue RapidC MoveSXYC RapidFC EOL AbsOrInc END IF FeedEntry? AND NOT FIFO? SeqLabC RapidC ZCP2 RapidFC EOL END END EntryMove SeqLabC IncValue EOL END ToolPath NextRep AutoCycCutSub2 NEXTFeat RETURN DrillStuff: GetCycle SeqLabC Cycle StrtPos ZDepth RLevel Peck FeedEnt EOL TrackZNO# FIRST SPZ# {.81.2} RETURN CheckPass: IF AutoCycle? {use the correct StrtPos} SetPass2 ELSE SetPass1 END RETURN SetDrillEndOpZ: IF RetractToCP1? TrackZNO# ClearancePlane1# ELSE TrackZNO# ClearancePlane2# END RETURN GetOfstOff: 'Z180000' RETURN GetStartOfSameTool: DoPartCycleComment DoOpComments DoPostScript CheckPass SetOpLines SeqLab ' ' EOL RETURN MasterSub: IF FirstOperation? IF MultipleParts? AND OneToolAllParts? AND NOT FirstPart? ELSE DoPartCycleComment DoOpComments DoPostScript SetOpLines SeqLab 'G98' IF ToolChangeAtHome? PRIME Home ELSE 'X0Y120000' END GetOfstOff EOL SeqLabC OpToolID ToolChng EOL SeqLabC Speed SpinOn EOL CheckPass SeqLabC Rapid Plane StrtPos CheckIndex RapidF CoolOn EOL SeqLabC ZCP1 ToolOfst EOL { OfstOn } END ELSE IF NewTool? IF MultipleParts? AND OneToolAllParts? AND NOT FirstPart? ELSE {Finish off last Operation} DoEndOpPS SeqLabC RapidC IF ToolChangeAtHome? PRIME Home ELSE 'X0Y120000' END GetOfstOff 'P0' RapidFC CoolOff EOL IF LAST ProgStop? SeqLabC 'M00' EOL ELSE SeqLabC ProgStop EOL END {Start new Operation} DoPartCycleComment DoOpComments DoPostScript SetOpLines SeqLab 'G98' IF ToolChangeAtHome? PRIME Home ELSE 'X0Y120000' END GetOfstOff EOL SeqLabC OpToolID ToolChng EOL SeqLabC Speed SpinOn EOL CheckPass SeqLabC Rapid PlaneC StrtPos CheckIndex RapidF CoolOn EOL SeqLabC ZCP1 ToolOfst EOL { OfstOn } END ELSE IF SameTool? DoEndOpPS IF LAST ProgStop? SeqLabC RapidC GetOfstOff 'P0' RapidFC CoolOff EOL SeqLabC 'M00' EOL {Start new Operation} GetStartOfSameTool SeqLabC Speed SpinOn EOL SeqLabC Rapid PlaneC StrtPos CheckIndex RapidF CoolOn EOL SeqLabC ZCP1 ToolOfst EOL { OfstOn } ELSE IF CoolOff? AND LAST NOT CoolOff? SeqLabC CoolOff EOL END IF NewToolOffset? SeqLabC RapidC GetOfstOff 'P0' RapidFC EOL {Start new Operation} GetStartOfSameTool SeqLabC SpeedC EOL SeqLabC Rapid PlaneC StrtPos CheckIndex RapidF EOL SeqLabC ZCP1 ToolOfst EOL { OfstOn } ELSE {Start new Operation} GetStartOfSameTool SeqLabC SpeedC EOL SeqLabC Rapid PlaneC StrtPos CheckIndex RapidF EOL END IF NOT CoolOff? AND LAST CoolOff? SeqLabC CoolOn EOL END END END END END {common point for all operations} ResetCRCNum IF Milling? SeqLabC ZCP2C EOL IF AutoCycle? IF Repeats? IF ZShiftOnly? ZonlyRepAutoCycle ELSE XYZRepAutoCycle END IF NOT FeedConnect? SeqLabC ExitMove2 EOL END ELSE NoRepAutoCycle SeqLabC ExitMove2 EOL END SetPass1 ELSE { NOT AutoCycle } IF Repeats? XYZRep ELSE Milling END SeqLabC CRCOffC ExitMove2 EOL END ELSE IF Drilling? IF Repeats? EachRep IF NOT FirstCycle? IF RetractToCP1? SeqLabC DrillOff EOL SeqLabC Rapid ZCP1 RapidF EOL END END DoCycleComment IF FirstCycle? DrillStuff ELSE IF RetractToCP1? DrillStuff END END ToolPath NextRep ELSE DrillStuff ToolPath END SetDrillEndOpZ SeqLabC DrillOff EOL SeqLabC Rapid ZCP3 RapidF EOL END END RETURN EndPartSub: {End of program ************************************************************} {finish last operation} DoEndOpPS SeqLabC RapidC 'G98' IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier} PRIME FirstHome ELSE 'X0Y120000' END GetOfstOff 'P0' RapidFC CoolOff EOL IF ProgStop? SeqLabC 'M00' EOL ELSE IF MultipleParts? AND AllToolsOnePart? AND NOT LastPart? SeqLabC ProgStop EOL END END RETURN DoNewPart: {Finish off last Part} IF FullUp? SeqLabC RapidC GetOfstOff 'P0' RapidFC CoolOff EOL END {DoEndOpPS} {Start new Part} GetStartOfSameTool SeqLabC SpeedC EOL IF FullUp? SeqLabC Rapid PlaneC StrtPos RapidF SpeedC CoolOn EOL SeqLabC ZCP1 ToolOfst EOL { OfstOn } ELSE SeqLabC Rapid PlaneC StrtPos RapidF SpeedC EOL END RETURN MPLoop: Save# Num#('2') Recall# Num#('1') IF WorkFixtureOffsets? NewWFO EachWFO ELSE EachPart END IF AllToolsOnePart? EachOp MasterSub NextOp EndPartSub ELSE { OneToolAllParts } EachOp IF Equal? Operation# Recall# Num#('2') { Tool First Op } IF FirstOperation? OR NewTool? IF NOT FirstPart? DoNewPart END END MasterSub IF LastOp? IF LastPart? Save# Num#('1') Num#('0') END Save# Num#('2') Recall# Num#('1') ELSE IF NEXT SameTool? Save# Num#('2') NEXT Operation# ELSE IF LastPart? Save# Num#('1') NEXT Operation# Save# Num#('2') Num#('0') ELSE Save# Num#('2') Recall# Num#('1') END END END END NextOp END IF WorkFixtureOffsets? IncWFO NextWFO ELSE NextPart END RETURN {Start of executable Prog **************************************************} {setup and initializations} InitProg SetAbs ReverseXZArcs InitWFONum SetFlood SetMaxRPM('10000') IF Metric? SetMaxFeed('12700') ELSE SetMaxFeed('500') END Save# Num#('1') Num#('0') { MultipleParts Current Tool FirstOp# } Save# Num#('2') Num#('0') { MultipleParts ToolOp# Counter } Save# Num#('3') Num#('0') { LongHand PeckCycle } 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 + B move of the value you specify' EOL ' 4thAxisCCW(22.5), 4ACCW(22.5) -' EOL ' generates a - B move of the value you specify' EOL END EOR EOL ProgID1 EOL IF UseComments? AND ProgramNameComment? '(NAM, ' ProgramName$ ')' EOL END EachOp IF FirstOperation? IF ToolChangeAtHome? SetHome END END NextOp IF UseComments? IF ProgramComment? '(MSG, ' ProgramComment$ ')' EOL END IF FormatNameComment? '(MSG, FORMAT: ' FormatName$ ')' EOL END IF TimeComment? '(MSG, ' Date$ ' AT ' Time$ ')' EOL END IF MovesComment? '(MSG, OUTPUT IN ABSOLUTE INCHES)' EOL END IF PartsComment? '(MSG, PARTS PROGRAMMED: ' Parts# ')' EOL END IF StartToolComment? '(MSG, FIRST TOOL NOT IN SPINDLE)' EOL END END RestoreScale IF MultipleParts? IF WorkFixtureOffsets? 'NOTE: This Post Processor does not support Work Fixture Offsets for Multiple Parts.' EOL 'It is recommended that you change your selection to Equally Spaced Offsets.' EOL END IF AllToolsOnePart? MPLoop ELSE EachOp IF FirstOperation? Save# Num#('1') 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 END ELSE EachOp MasterSub NextOp EndPartSub END SeqLabC EOP EOL Close Retag IF UseComments? SetScale('1') {restore scale for comments} Reopen IF FileBytesComment? '(MSG, FILE LENGTH: ' FileBytes# ' CHARACTERS)' EOL END IF FileFeetComment? '(MSG, FILE LENGTH: ' FileFeet# ' FEET)' EOL END IF FileMetersComment? '(MSG, FILE LENGTH: ' FileMeters# ' METERS)' EOL END Close END

Wyszukiwarka

Podobne podstrony:
Heidenhain CNC 234 M117 89 4m
Maho CNC 432 M194 89
Cin Acr [GH] MW97 89 2
Cin Acr [GH] MW97 89 2
Fanuc 6M Mazak [GH] MW95 89 2
CNC Pro BP [SE] MZ60 89 1
CNC Pro Bridgeport M915 89 1
CNC 8800 Retro Tek M045 89
Emco F1 CNC MZ98 89 5
Bandit IV AB [DM] MV32 89 1
Fadal Format 2 [MM] MW60 89
Fadal Format 2 [PEP] M116 89 1
Fanuc MF M4 MS NS SSI M421 89 2

więcej podobnych podstron