plik


{ MILL=T LATHE=F SIMPLE_ROT_POS=F ROTARY_MILL=F ADV_MILL=F SUBS=T MILLTURN_Y-AXIS=F MILLTURN_POLAR-SEG=F METRIC=F } {Change Comments ***********************************************************} {6/17/88, Created: Bendix Mon VMC75 M125.54 For: Lordon Added NegateZ and Table. 'Z-' is up, 'Z+' is down DWB} {10/10/88, Modified: Bendix Mon VMC75 M125.55 For: Lordon Deleted extra ToolChng and WFO call at FirstOperation and NewTool. Added Tool Comment to First line of FirstOperation and NewTool. Added EOR to end of Prog Added 'D' ToolLength Offset to Drilling. Deleted all literal 'G80'. JR} {7/24/90, Added InitProg globally to posts with this remark, DWB} {4/29/91, Modified: Bendix 5C Mon VMC75 M125.57 For: Gibbs & Associates Updated to new 4.0 Version per Fanuc 6M M001.80 DWB} {3/4/92 Modified: Bendix 5C Mon VMC75 M125.79 For: Hughes T&SSG Changes made by request. Updated to Version 4.0 per Fanuc 6M M001.81 Format. Deleted EntryMove sub and all occurances thereof. Changed Coolant On to M07, [Mist Coolant] on Compost Commands 3 dialog. Customer agrees to use M08 in Operation PostScript Dialog when needed. Changed SpeedC to SpeedCode at SameTool. Added IF FirstFeat? and ZMove? condition for Ramp-In Pocketing at ToolPath LineFeat. Outputs SeqC FeedC MoveXYZC FeedEntC EOL instead of call to StdLine Sub. Kim Michelman} {2/28/95 Updated: Bendix 5C Mon VMC75 M125.81.1 For: Gibbs & Associates/Lordon Engineering Versions: ncCad 4.33.01/ncCAM 4.33/ncPost 4.33.05/Compost 4.21.27 Deleted changes made on 3/4/92. Those changes were requested by Hughes T&SSG, but post belongs to Lordon Engineering. Renamed Hughes post to Bendix 5C Mon VMC75 M575.81.1 Tested .79 update code, made corrections. Updated to Version 4.2 per Fanuc 6M M001.81.2f Format. DWB} {2/9/96, Updated .81 version to .84, MPK} {3/22/96, Tested ZOnlyRepAutCycle, Incremented number to .87, MPK} {17Jun97 Original: Bendix 5C Mon VMC75 M125.87 Created: Bendix 5C [PI] VMC75 Mxxx.87 For: Pride Industries Changes made per: Carl Mackey Changed Default Formats in MachSpec for: X,Y,I,J,K,R from ###.####;0 to 0##^####;0 Z from ###.####;0 to *0##^####;0 to make Z +ve into the part F from ###.#;0 to 0###.#;0 Charles Winston} {1/27/99 Initial: Bendix 5C Mon [PI] MX33.87 Created: Bendix 5C Mon [PI] MX33.87.1 ForUser: Pride Industries Develop: Compost2 PPC 1.7b15, Virtual 5.04.06 Comment: Modified per fax from Carl Mackey and conversation with Brad David 612-576-5427 Moved OpToolID ToolChng to beginning of tool. Moved CoolOff to Milling and Drilling. Changed to Arcs Stop On Quadrants in MachSpec. Changed Rapid ZCP3 at end of Milling to G87 line. Added ResetCRCNum to toolPath. Corrected formatter for ClearancePlane2# Unnegated default Z format in MachSpec, we are using the NegateZ initializer. Full retract with DrillOff ToolChng. I guess ToolChng only changes tools when called with a T word. Jim Radcliffe} {Prog Numeric Format Definitions *******************************************} #1 = '#.00' #2 = '###.###;0.' #3 = '*###.###;0.' #4 = '####.####;0' #5 = '#######0' #6 = '####^##0' #7 = '0##^####;0' FORMAT(FileFeet#,1) FORMAT(FileMeters#,1) FORMAT(ToolDiameter#,4) {.72} FORMAT(Program#,5) {.72} FORMAT(Operation#,5) {.72} FORMAT(Tool#,5) {.72} FORMAT(NewWFO#,5) {.72} FORMAT(Parts#,5) {.72} FORMAT(Dwell#,6) {.72} FORMAT(ClearancePlane2#,7) FORMAT(ClearancePlane3#,7) {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 DoSubComment: IF UseComments? AND SubComment? '( SUB NUMBER: ' Program# ' )' 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 ToolComment? '( ' ToolComment$ ' )' EOL END RestoreScale END RETURN PSInit: {reset flags} RotateF RETURN PSStuff: {revised.72} IF FourthCW? FORMAT(FourthDegree#,2) SeqC 'A' FourthDegree# EOL FourthCWF {reset flag} END IF FourthCCW? FORMAT(FourthDegree#,3) SeqC 'A' FourthDegree# EOL FourthCCWF {reset flag} END IF FifthCW? FORMAT(FifthDegree#,2) SeqC 'B' FifthDegree# EOL FifthCWF {reset flag} END IF FifthCCW? FORMAT(FifthDegree#,3) SeqC 'B' FifthDegree# EOL FifthCCWF {reset flag} END RETURN DoPostScript: PSInit EachPS SeqC PostScript EOL {literals} PSStuff {commands} NextPS RETURN DoEndOpPS: PSInit EachEOPS SeqC EndOpPS EOL {literals} PSStuff {commands} NextPS RETURN EntryMove: 'G86R' ClearancePlane2# ZIn IF Flag?('1') { Set at IF Milling } IF FeedEntry? IF SameTool? OR Repeats? FeedEntC ELSE FeedEnt END ELSE 'F02' END END RETURN StartSub: OpenSub ' ' EOL EOR EOL SubID EOL DoSubComment RETURN SubWarning: IF NOT FeedConnect? IF AnyZshift? ' ' EOL '( WARNING Z CLEARANCE WILL CHANGE WITH EACH CYCLE OF SUB REPEAT )' EOL ' ' EOL END END RETURN StdSub: SeqC '(CLS,' Program# ',' Repeats# ')' EOL StartSub RETURN FinishSub1: {part 1} SeqC IF NOT FeedConnect? IF AutoCycle? ZCP3C ELSE IF FIFO? {.81} FeedC ZCP3C FeedEntC ELSE RapidC ZCP3C END END END EOL RETURN FinishSubG92: {part 2} SeqC Preset ShiftRC EOL SeqC EndSub EOL CloseSub SeqC Preset UnshftRC EOL RETURN OpenMP: NewProg IF WorkFixtureOffsets? NewWFO EachWFO SeqC SetWFO EOL SeqC '(CLS,' Program# ',1)' EOL IncWFO NextWFO ELSE SeqC '(CLS,' Program# ',' Parts# ')' EOL END StartSub RETURN CloseMP: IF WorkFixtureOffsets? SeqC EndSub EOL CloseSub SeqC WFO1 EOL ELSE SeqC Preset ShiftPC EOL SeqC EndSub EOL CloseSub SeqC Preset UnshftPC EOL END RETURN FormatArc: IF ArcCW? CWArc ELSE CCWArc END MoveXYZC IF ArcIJFormat? ArcIJC ELSE ArcRC END RETURN CkCRC: { Called from IF Milling } IF CutterRadiusCompensation? SeqC CRCOnC CRCOffsetC EOL END RETURN StdLine: {enables CRC on first call, .70} IF Decelerate? IF RoomToDecel? DecelMove1 SeqC FeedC MoveXYZC FeedRateC EOL DecelMove2 END SeqC FeedC MoveXYZC DecelFeed EOL ELSE IF XMove? OR YMove? OR ZMove? SeqC FeedC MoveXYZC FeedRateC EOL END END RETURN ToolPath: ResetCRCNum EACHFeat IF PointFeat? IF AutoCycle? SeqC MoveSXYC EOL SeqC '(CLS,' Program# ')' EOL CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY} ELSE SeqC MoveSXYZC EOL {.80.01} END ELSE IF RapidFeat? IF AutoCycle? SeqC RapidC MoveXYZC EOL ELSE IF XMove? OR YMove? OR ZMove? SeqC RapidC MoveXYZC EOL END END ELSE IF LineFeat? IF AutoCycle? {.70} IF LastFeat? SeqC FeedC MoveXYZC FeedRateC EOL ELSE IF ZMove? {skip CRCOn until first non-Z move line, skipping ramps} SeqC FeedC MoveXYZC FeedRateC EOL ELSE StdLine {enables CRC on first call} END END ELSE StdLine 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 END NEXTFeat RETURN WFOStuff: { NOTE: This Post Processor does not support WorkFixtureOffsets. } RETURN AutoCycCutSub1: {part 1} SaveSubStatus {save tool position} SetPass1 {element cut moves} StartSub SetSRXYtoSP Seq IncValue EOL RETURN AutoCycCutSub2: {part 2} ToolPath SeqC AbsOrInc IF Repeats? AND FeedConnect? AND ZshiftOnly? {.69 removed RapidC} {.71.2 removed , gets turned off in ToolPath} ELSE IF FIFO? {.81} FeedC ZCP2 FeedEntC ELSE RapidC ZCP2 END END EOL SeqC EndSub EOL 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 AutoCycCutSub1 AutoCycCutSub2 AutoCycPat ELSE ToolPath END RETURN G92Sub: SubWarning StdSub SeqC AbsOrInc EOL SeqC Connect StrtPos EOL SeqC EntryMove EOL Milling FinishSub1 FinishSubG92 RETURN ZonlyRepAutoCycle: AutoCycPat {write pattern moves and main calls} StartSub NewProg EachCycle SetSRXYtoEP IF FeedConnect? IF NOT FirstCycle? IF SPXMove? OR SPYMove? SeqC Feed IncValue StrtPosC EOL SeqC AbsOrInc ELSE SeqC Feed END ELSE SeqC Feed END ZInPlusInc FeedEnt EOL ELSE IF NOT FirstCycle? IF SPXMove? OR SPYMove? SeqC Rapid IncValue StrtPosC EOL IF FeedEntry? SeqC AbsOrInc ZCP2PlusInc EOL SeqC Feed ZInPlusInc FeedEnt EOL ELSE SeqC AbsOrInc ZInPlusInc EOL END ELSE IF FeedEntry? SeqC Rapid ZCP2PlusInc EOL SeqC Feed ZInPlusInc FeedEnt EOL ELSE SeqC Rapid ZInPlusInc EOL END END ELSE IF FeedEntry? SeqC Feed ZInPlusInc FeedEnt EOL ELSE SeqC Rapid ZInPlusInc EOL END END END IF FirstCycle? SetStatusOff {protect Z position for incremental sub} END SeqC '(CLS,' Program# ')' EOL NextCycle SetStatusOn AutoCycCutSub1 {build element sub} AutoCycCutSub2 {.69, removed FinishSub1} IF FeedConnect? {there is no Z up in the sub, .69} IF FIFO? {.81} SeqC Feed ZCP2 FeedEnt EOL {.69} ELSE SeqC Rapid ZCP2 EOL {.69} END END {.69} SeqC EndSub EOL CloseSub {Element shift, not pattern} RETURN ZonlyRep: EachCycle IF NOT FirstCycle? SeqC Connect StrtPos EOL {.71.2, added Connect} END IF FeedConnect? SeqC FeedC ZInPlusInc FeedEnt EOL {.71.2, changed to FeedC} ELSE {Entry/Exit Connect} IF FeedEntry? IF NOT FirstCycle? SeqC RapidC ZCP2PlusIncC EOL {can't call for cycle =1} {.69 added Rapid, reads better} {.71.2, changed to RapidC, reads better} END SeqC Feed ZInPlusInc FeedEnt EOL ELSE SeqC RapidC ZInPlusInc EOL {.69 added Rapid, reads better} {.71.2, changed to RapidC, reads better} END END SeqC '(CLS,' Program# ')' EOL NextCycle StartSub SkipZ ToolPath UnSkipZ { Moved from FinishSub1 } FinishSub1 SeqC EndSub EOL CloseSub RETURN CheckPass: IF AutoCycle? {use the correct StrtPos} SetPass2 ELSE SetPass1 END RETURN GetStartOfSameTool: DoOpComments DoPostScript Plane {no output} CheckPass RETURN SpeedCode: IF Tap? TABLE(2,SpeedRPM#,1) ELSE TABLE(1,SpeedRPM#,1) END RETURN {Start of executable Prog **************************************************} {setup and initializations} InitProg ReverseXZArcs NegateZ SetFlood UseSeparateSubCalls SetMaxSeparateSubCalls('50') SetMaxRPM('10000') SetMaxFeed('500') 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 EachOp {Start of post processing *********************} IF FirstOperation? 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 IF MultipleParts? AND AllToolsOnePart? OpenMP END Plane {no output} Seq AbsOrInc SpinOn EOL SeqC OpToolID ToolChng EOL DoOpComments DoPostScript IF MultipleParts? AND OneToolAllParts? AND FullUp? OpenMP END CheckPass SeqC Rapid StrtPos SpeedCode EOL IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane? OpenMP SeqC StrtPos EOL END ELSE IF NewTool? {Finish off last Operation} IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane? CloseMP END SeqC CoolOff EOL SeqC DrillOff ToolChng EOL IF MultipleParts? AND OneToolAllParts? AND FullUp? CloseMP END DoEndOpPS IF LAST ProgStop? SeqC 'M00' EOL ELSE SeqC ProgStop EOL END {Start new Operation} Plane {no output} Seq AbsOrInc SpinOn EOL SeqC OpToolID ToolChng EOL DoOpComments DoPostScript IF MultipleParts? AND OneToolAllParts? AND FullUp? OpenMP END CheckPass SeqC Rapid StrtPos SpeedCode EOL IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane? OpenMP SeqC StrtPos EOL END ELSE IF SameTool? DoEndOpPS IF LAST ProgStop? SeqC 'M00' EOL {Start new Operation} GetStartOfSameTool SeqC Rapid StrtPos SpeedCode SpinOn EOL SeqC ToolOfst CoolOn EOL ELSE IF CoolOff? AND LAST NOT CoolOff? SeqC CoolOff EOL END IF NewToolOffset? {Start new Operation} GetStartOfSameTool SeqC Rapid StrtPos SpeedCode EOL SeqC IncValue OfstOff OfstOn EOL SeqC AbsOrInc EOL ELSE {Start new Operation} GetStartOfSameTool SeqC Rapid StrtPos SpeedCode EOL END IF NOT CoolOff? AND LAST CoolOff? SeqC CoolOn EOL END END END END END {common point for all operations} IF Milling? SetFlag('1') SeqC EntryMove SetFlagF('1') IF NOT SameTool? ToolOfst CoolOn EOL SeqC 'G75' { 360¡ Arcs } END EOL CkCRC IF Repeats? IF MultipleParts? EachPart ToolPath NextPart ELSE NewProg IF ZshiftOnly? IF AutoCycle? {incremental Autocycle sub can have Z moves} ZonlyRepAutoCycle ELSE {Z shift only, NOT Auto Cycle} IF UseSeparateSubCalls? AND CyclesLessThanMaxSubCalls? FindAnyZMoves {for normal abs subroutine} IF NoZMoves? ZonlyRep ELSE G92Sub {pattern shift, not element} END ELSE {no sep subs desired} G92Sub END END {end Auto Cycle IF} ELSE {not Z only} G92Sub END {end Z only IF} END ELSE {no repeat OPs} Milling END SeqC CRCOffC EOL SeqC 'G87R' ClearancePlane3# ZCP3 EOL ELSE IF Drilling? IF Repeats? IF MultipleParts? EachPart ELSE NewProg StdSub SeqC AbsOrInc EOL SeqC Rapid StrtPos EOL END END GetCycle SeqC Cycle RLevel ZDepth FeedEnt IF NOT SameTool? ToolOfst CoolOn END EOL TrackZNO# FIRST SPZ# {.81.2} ToolPath IF RetractToCP1? {.81} TrackZNO# ClearancePlane1# ELSE TrackZNO# ClearancePlane2# END IF Repeats? IF MultipleParts? NextPart ELSE FinishSubG92 END END SeqC 'G87R' ClearancePlane3# ZCP3 EOL 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 DrillOff ToolChng EOL IF MultipleParts? AND OneToolAllParts? AND FullUp? CloseMP END DoEndOpPS IF ProgStop? SeqC 'M00' EOL END IF MultipleParts? AND AllToolsOnePart? CloseMP END SeqC Home EOL SeqC EOP EOL CloseSub Post2 {organize Subs into one program} 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

Wyszukiwarka

Podobne podstrony:
Bendix 5C Mon [TSM] MU22 87 2
Bendix 5C Mon VMC75 M125 87
Bendix 5C Mon 150 [PAN] M969 86
Bendix 5C Mon [HTSSG] M755 81 1
Dyna 5C Mon LH [HM] MX20 12
Fanuc 11M Mon VMC75 M343 87
GE 1050 MCL Mon [GI] MY25 87 2
Bendix 5C VMC150 HUG M502 81 4
Bendix 5CM Mon VMC75 DY47 15 3
GE 1050 Mon VMC75 M071 87 1m
Bendix 5 Mon VMC150 M133 80
Fanuc 10M MVJr[G43r] M192 87
Tosnuc 600M BMC 40 M440 87
PI
Wyklad PI 5

więcej podobnych podstron