plik


{Change Comments ***********************************************************} {10/24/94 Copied: Bendix 5C MON VMC750 M125.81.1 Created: Bendix VMC75 copy For: Machine: Control: Updated to new Fanuc 6M M001.81 Format. Supports ZonlyRep. Russ Lemoine} {10/7/95, Mxxx.81.1, Updated for Catalyst v2.20 per Fanuc 6M M001.85 Format, DWB} {1/17/96 - Updated .85 to .86 format, MPK} {3/22/96, Tested ZOnlyRepAutoCycle, Changed version # to .89, MPK} {24/4/97 Initial: Bendix VMC75 [NRC] M867.89 Created: Bendix VMC75 [NRC] Mxxx.89 For: Hoffman Mach Changed the following Default Formats in the FORM to suppress Leading Zeros R,Z,Y,X 000^####;0 to ###^###0 I,J,K +000^####; to +###^###0 F 000^#;0 to ###^0 Changed the following FORMATS in the PROG to suppress Leading Zeros #7= '000^####' to #7= '###^###0' #8= '000^#;0' to #8= '###^0' Charles Winston} {Prog Numeric Format Definitions *******************************************} #1 = '#.00' #2 = '###.###;0.' #3 = '*###.###;0.' #4 = '####.####;0' #5 = '#######0' #6 = '####^##0' #7= '###^###0' #8= '###^0' #9 = '±#bbbb.bbbb#' FORMAT(FileFeet#,1) FORMAT(FileMeters#,1) FORMAT(ADD#,4) FORMAT(TrackZNO#,4) FORMAT(ToolDiameter#,4) FORMAT(Recall#,5) FORMAT(Tag#,5) FORMAT(Program#,5) FORMAT(Operation#,5) FORMAT(Tool#,5) FORMAT(Parts#,5) FORMAT(Dwell#,6) FORMAT(ClearancePlane2#,7) FORMAT(ZCP2PlusInc#,7) FORMAT(RapidF#,8) FORMAT(PartShiftX#,9) FORMAT(PartShiftY#,9) FORMAT(PartShiftZ#,9) {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 DoPartCycleComment: IF MultipleParts? AND UseComments? AND SubComment? '( PART NO. ' Tag# ' )' EOL END RETURN DoCycleComment: IF UseComments? AND SubComment? '( CYCLE START )' EOL END RETURN DoOpComments: IF UseComments? SetScale('1') IF OperationIDComment? '( OPERATION ' Operation# ': ' OperationType$ ' )' EOL END IF OperationComment? '( ' OperationComment$ ' )' EOL END IF WorkGroupComment? '( ' WorkGroupComment$ ' )' EOL END IF ToolTypeComment? '( TOOL ' Tool# ': ' ToolDiameter# ' ' ToolType$ ' )' EOL END IF SameTool? IF ToolComment? '( ' ToolComment$ ' )' EOL END END RestoreScale END RETURN BadMPWFOReport: SetStatusOff ' ' EOL '¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥' EOL '¥ NOTE: Even though you have elected to ¥' EOL '¥ process this file using Multiple ¥' EOL '¥ Parts with Work Fixtures, there exist ¥' EOL '¥ non-zero values in the invisible, ¥' EOL '¥ Equally SpacedÉ fields, as follows: ¥' EOL '¥ ¥' EOL '*****************************************' EOL IF NotEqual? PartShiftX# Num#('0') ' X axis shift = ' PartShiftX# EOL END IF NotEqual? PartShiftY# Num#('0') ' Y axis shift = ' PartShiftY# EOL END IF NotEqual? PartShiftZ# Num#('0') ' Z axis shift = ' PartShiftZ# EOL END '*****************************************' EOL '¥ ¥' EOL '¥ Please reset these values to zero as ¥' EOL '¥ they affect the coordinate values ¥' EOL '¥ output, starting with Part# 2. ¥' EOL '¥ Thank You. ¥' EOL '¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥' EOL ' ' EOL SetStatusOn RETURN PSInit: RotateF OptCyc1F MasterOpF CallMasterOpF RETURN PSStuff: IF FourthCW? FORMAT(FourthDegree#,7) SeqC 'A' FourthDegree# EOL FourthCWF END IF FourthCCW? FORMAT(FourthDegree#,7) SeqC 'A' FourthDegree# EOL FourthCCWF END IF FifthCW? FORMAT(FifthDegree#,7) SeqC 'B' FifthDegree# EOL FifthCWF END IF FifthCCW? FORMAT(FifthDegree#,7) 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: SeqC 'G86R' ClearancePlane2# ZIn ToolOfst IF FeedEntry? FeedEnt ELSE RapidF END IF NOT SameTool? FeedEntC CoolOn END EOL IF CutterRadiusCompensation? SeqC CRCOnC CRCOffsetC EOL END RETURN ExitMove: SeqC IF FeedConnect? ELSE SeqC Rapid 'M06' EOL TrackZNO# ClearancePlane2# SeqC CRCOffC EOL END EOL RETURN ExitMove2: SeqC Rapid 'M06' EOL TrackZNO# ClearancePlane3# SeqC CRCOffC EOL RETURN CycleWarning: { NOTE: This Post Processor takes care of Z Clearance. } RETURN FormatArc: IF ArcCW? CWArcC ELSE CCWArcC END MoveXYZC IF ArcIJFormat? ArcIJC ELSE ArcR END RETURN ckCRC: { Supported at ZCP2 } RETURN FormatLine: ckCRC FeedC MoveXYZC RETURN ckCRCNum: { Supported at ZCP2 } RETURN ToolPath: EACHFeat IF PointFeat? { Drilling Only } SeqC MoveSXYZC EOL ELSE IF RapidFeat? IF XMove? OR YMove? OR ZMove? SeqC RapidC MoveXYZC EOL END ELSE IF LineFeat? IF XMove? OR YMove? OR ZMove? IF Decelerate? IF RoomToDecel? DecelMove1 SeqC FormatLine FeedRateC EOL DecelMove2 END SeqC FormatLine DecelFeed EOL ELSE SeqC FormatLine FeedRateC 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 SeqC FormatArc ArcFeedC EOL DecelMove2 END SeqC FormatArc DecelFeed EOL ELSE SeqC FormatArc ArcFeedC EOL END NEXTQuadrant END END END IF AutoCycle? SetAbs Save# Num#('6') SUB# EPX# CurOriginPosX# Save# Num#('7') SUB# EPY# CurOriginPosY# SetInc 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 SeqC IncValue EOL RETURN AutoCycCutSub2: {part 2} SeqC AbsOrInc EOL SeqC Rapid 'M06' EOL TrackZNO# ClearancePlane2# 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? SeqC FeedC MoveSXYC FeedEntC EOL END IF ZShiftOnly? EntryMove END ELSE IF SPXMove? OR SPYMove? SeqC RapidC MoveSXYC EOL END EntryMove END END ToolPath ExitMove NextRep RETURN NoRepAutoCycle: EACHFeat DoCycleComment IF SPXMove? OR SPYMove? SeqC RapidC MoveSXYC EOL END AutoCycCutSub1 Milling AutoCycCutSub2 NEXTFeat RETURN XYZRepAutoCycle: CycleWarning EachRep EACHFeat DoCycleComment IF SPXMove? OR SPYMove? SeqC RapidC MoveSXYC EOL 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 DoCycleComment IF SPXMove? OR SPYMove? SeqC RapidC MoveSXYC EOL END AutoCycCutSub1 EachRep IF NOT FirstCycle? IF FeedConnect? SeqC AbsOrInc EOL DoCycleComment IF SPXMove? OR SPYMove? SeqC IncValue MoveSXYC EOL AbsOrInc END ELSE AbsOrInc ExitMove DoCycleComment IF SPXMove? OR SPYMove? SeqC IncValue MoveSXYC EOL AbsOrInc END IF FeedEntry? AND NOT FIFO? SeqC Rapid 'M06' EOL TrackZNO# ClearancePlane2# END END EntryMove SeqC IncValue EOL END EntryMove ToolPath NextRep AutoCycCutSub2 NEXTFeat RETURN DrillStuff: GetCycle SeqC Cycle RLevel ZDepth ToolOfst IF NOT Tap? FeedEnt END CoolOn EOL TrackZNO# FIRST SPZ# {.81.2} RETURN SpeedCode: IF FirstOperation? OR NewTool? OR LAST ProgStop? IF Tap? TABLE(2,SpeedRPM#,1) ELSE TABLE(1,SpeedRPM#,1) END ELSE IF NotEqual? SpeedRPM# LAST SpeedRPM# IF Tap? TABLE(2,SpeedRPM#,1) ELSE TABLE(1,SpeedRPM#,1) END END END RETURN CheckPass: IF AutoCycle? {use the correct StrtPos} SetPass2 ELSE SetPass1 END RETURN ProgStart: InitProg TagInit ReverseXZArcs NegateZ SetFlood SetMaxRPM('10000') SetMaxFeed('500') Save# Num#('1') Num#('0') { This Tool FirstOp# } Save# Num#('2') Num#('0') { This Tool LastOp# } Save# Num#('3') Num#('0') { LastOp# } 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 } 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 RETURN SetDrillEndOpZ: IF RetractToCP1? TrackZNO# ClearancePlane1# ELSE TrackZNO# ClearancePlane2# END RETURN OpGuts: IF Milling? IF AutoCycle? IF Repeats? IF ZShiftOnly? ZonlyRepAutoCycle ELSE XYZRepAutoCycle END IF NOT FeedConnect? SeqC ExitMove2 EOL END ELSE NoRepAutoCycle SeqC ExitMove2 EOL END ELSE { NOT AutoCycle } IF Repeats? XYZRep ELSE Milling SeqC ExitMove2 EOL END END ELSE IF Drilling? IF Repeats? EachRep DoCycleComment IF FirstCycle? DrillStuff END ToolPath NextRep ELSE DrillStuff ToolPath END SetDrillEndOpZ SeqC Rapid {ZCP3} 'M06' EOL TrackZNO# ClearancePlane3# END END RETURN WFOStuff: IF MultipleParts? AND WorkFixtureOffsets? '***** WARNING - THIS DOES NOT SUPPORT WORK FIXTURE OFFSETS ****' EOL '***** PLEASE CHANGE TO EQUALLY SPACED OFFSETS AND REPOST ******' EOL END RETURN ResetWFO: RETURN InitOp: EOR EOL IF ToolChangeAtHome? SetHome END IF UseComments? IF ProgramNameComment? '( PROGRAM: ' ProgramName$ ' )' EOL END IF ProgramComment? '( ' ProgramComment$ ' )' EOL END IF FormatNameComment? '( FORMAT: ' FormatName$ ' )' EOL END IF TimeComment? '( ' Date$ ' AT ' Time$ ' )' EOL END IF MovesComment? '( OUTPUT IN ' MoveType$ ' INCHES )' EOL END IF PartsComment? '( PARTS PROGRAMMED: ' Parts# ' )' EOL END IF StartToolComment? '( FIRST TOOL NOT IN SPINDLE )' EOL END END OpenSub RestoreScale RETURN FirstOp1: Plane {no output} SeqC AbsOrInc SpinOn EOL {1st Line Output In Prog} DoPartCycleComment DoOpComments DoPostScript RETURN FirstOp2: RETURN FirstOp3: CheckPass IF ToolChangeAtHome? {Works with Home checkbox in Virtual setup sheet} SeqC Rapid Home OpToolID SpeedCode ToolChng EOL SeqC Rapid StrtPos EOL ELSE SeqC Rapid StrtPos OpToolID SpeedCode ToolChng EOL END RETURN NewToolOp1: SeqC CoolOff EOL RETURN NewToolOp2: DoEndOpPS IF LAST ProgStop? SeqC 'M00' EOL ELSE SeqC ProgStop EOL END RETURN NewToolOp3: {Start new Operation} Plane {no output} SeqC AbsOrInc SpinOn EOL DoPartCycleComment DoOpComments DoPostScript RETURN NewToolOp4: RETURN NewToolOp5: CheckPass IF ToolChangeAtHome? {Works with Home checkbox in Virtual setup sheet} SeqC Rapid Home OpToolID SpeedCode ToolChng EOL SeqC Rapid StrtPos EOL ELSE SeqC Rapid StrtPos OpToolID SpeedCode ToolChng EOL END RETURN SameToolOp1: DoEndOpPS IF LAST ProgStop? SeqC CoolOff EOL SeqC SpinOff EOL SeqC 'M00' EOL ELSE IF CoolOff? AND LAST NOT CoolOff? SeqC CoolOff EOL END END RETURN SameToolOp2: {Start new Operation} DoPartCycleComment DoOpComments DoPostScript CheckPass RETURN SameToolOp3: {Start new Operation} IF LAST ProgStop? SeqC PlaneC Rapid StrtPos SpeedCode SpinOn EOL SeqC CoolOn EOL ELSE SeqC PlaneC Rapid StrtPos SpeedCode EOL IF NOT CoolOff? AND LAST CoolOff? SeqC CoolOn EOL END END RETURN End1: SeqC Rapid Home CoolOff EOL RETURN End2: DoEndOpPS IF ProgStop? SeqC 'M00' EOL END RETURN End3: SeqC EOP EOL Post EOR EOL Close IF UseComments? SetScale('1') {restore scale for comments} Reopen IF FileBytesComment? '( FILE LENGTH: ' FileBytes# ' CHARACTERS )' EOL END IF FileFeetComment? '( FILE LENGTH: ' FileFeet# ' FEET )' EOL END IF FileMetersComment? '( FILE LENGTH: ' FileMeters# ' METERS )' EOL END Close END RETURN MPallTools1P: {Multiple Parts, All Tools 1 Part} IF FirstOperation? IF FirstPart? InitOp END OpenMP FirstOp1 WFOStuff FirstOp2 FirstOp3 ELSE IF NewTool? NewToolOp1 NewToolOp2 NewToolOp3 NewToolOp4 NewToolOp5 ELSE {implied SameTool?} SameToolOp1 SameToolOp2 SameToolOp3 END END OpGuts RETURN MP1ToollAllPfu: {Multiple Parts, 1 Tool all Parts, full up} IF FirstOperation? IF FirstPart? InitOp FirstOp1 WFOStuff FirstOp2 OpenMP FirstOp3 END ELSE IF NewTool? IF FirstPart? NewToolOp1 CloseMP ResetWFO NewToolOp2 NewToolOp3 WFOStuff NewToolOp4 OpenMP NewToolOp5 END ELSE {implied SameTool?} SameToolOp1 SameToolOp2 SameToolOp3 END END OpGuts RETURN MP1ToollAllPXcp: {Multiple Parts, 1 Tool all Parts, exit Clearance plane} IF FirstOperation? IF FirstPart? InitOp FirstOp1 WFOStuff FirstOp2 FirstOp3 OpenMP END ELSE IF NewTool? IF FirstPart? CloseMP NewToolOp1 ResetWFO NewToolOp2 NewToolOp3 WFOStuff NewToolOp4 NewToolOp5 OpenMP END ELSE {implied SameTool?} SameToolOp1 SameToolOp2 SameToolOp3 END END OpGuts RETURN NoMPs: {no multiple parts} IF FirstOperation? InitOp FirstOp1 WFOStuff FirstOp2 FirstOp3 ELSE IF NewTool? NewToolOp1 NewToolOp2 NewToolOp3 WFOStuff NewToolOp4 NewToolOp5 ELSE {implied SameTool?} SameToolOp1 SameToolOp2 WFOStuff SameToolOp3 END END OpGuts RETURN MasterSub: IF MultipleParts? IF AllToolsOnePart? MPallTools1P ELSE {implied OneToolAllParts?} IF FullUp? MP1ToollAllPfu ELSE {implied ExitClearancePlane?} MP1ToollAllPXcp END END ELSE NoMPs END RETURN EndPartSub: {End of program ************************************************************} {finish last operation} IF MultipleParts? IF AllToolsOnePart? End1 End2 CloseMP ELSE {implied OneToolAllParts?} IF FullUp? End1 CloseMP ResetWFO End2 ELSE {implied ExitClearancePlane?} CloseMP End1 ResetWFO End2 END END ELSE {NoMPs} End1 End2 END RETURN DoNewPart: IF NOT FirstPart? {Finish off last Part} IF FullUp? SeqC CoolOff EOL END {DoEndOpPS} {Start new Part} DoPartCycleComment DoOpComments DoPostScript WFOStuff CheckPass SeqC PlaneC AbsOrInc Rapid StrtPos SpeedC EOL IF FullUp? SeqC CoolOn EOL END END RETURN DoParts: TagInit EachPart TagInc 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#('2') Recall# Num#('1') RETURN GetToolLastOP: EachOp IF Equal? Operation# Recall# Num#('2') Save# Num#('2') ADD# Operation# Num#('1') IF NewTool? IF Equal? Recall# Num#('1') Recall# Num#('3') Save# Num#('2') Operation# ELSE IF NotEqual? Recall# Num#('1') SUB# Recall# Num#('2') Num#('1') Save# Num#('2') SUB# Operation# Num#('1') END END END END NextOp RETURN MPLoop: IF AllToolsOnePart? DoParts ELSE { OneToolAllParts } GetToolFirstOp IF LTEqual? Recall# Num#('1') Recall# Num#('3') GetToolLastOP DoParts Save# Num#('1') ADD# Recall# Num#('2') Num#('1') { Next Tool First Op } END END RETURN {Start of executable Prog, Top Level ****} ProgStart {setup and initializations} 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} IF NotEqual? PartShiftX# Num#('0') BadMPWFOReport ELSE IF NotEqual? PartShiftY# Num#('0') BadMPWFOReport ELSE IF NotEqual? PartShiftZ# Num#('0') BadMPWFOReport END END END END EachOp IF FirstOperation? Save# Num#('1') Operation# ELSE IF LastOp? Save# Num#('3') Operation# END END NextOp MPLoop IF OneToolAllParts? 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 ResetWFO END ELSE EachOp MasterSub NextOp EndPartSub END End3

Wyszukiwarka

Podobne podstrony:
Bendix 5C Mon 150 [PAN] M969 86
Heid 355 LH [SSI] MX16 12
Okuma OSP 700M LH [AT] MV57 12 3
Mazatrol M32 LH [DHL] CW78 12
Bendix 5C Mon [TSM] MU22 87 2
Bendix 5C Mon [PI] MX33 87 1
Bendix 5C Mon VMC75 M125 87
Okuma OSP700 LH [HIR] BW84 12 2
Okuma 5020M LH [WMC] MW69 12
Haas LH [CS] MW68 12
Bendix 5C Mon [HTSSG] M755 81 1
Fanuc 15M Mon LH [RI] MU56 89 1
Fanuc 10M LH [BI] MZ41 12
Okuma OSP 5020M LH WMC CW69 12
Okuma OSP 5020M LH WMC DW69 12

więcej podobnych podstron