plik


{Change Comments ***********************************************************} {1/12/89 Update BP Boss 7.2 M102.54 Deleted: IF cutterRadiusCompensation? AND FirstFeat? AND NEXT LineFeat? { avoid 2 co-linear lines by skipping extra ncCAM line} from ToolPath. Jim Radcliffe} {1/8/90 Updated: BP Boss 7.2 M102.55 to .69 format, Jim Radcliffe} {3/29/90, Updated to .69.1 Format, DWB} {6/7/90 Copied & modified: BP Boss 7.2 M102.69.1 For: Tech-Tools, Inc. Added missing CRCOn line in Milling. Moved CRCOn in ZOnlyRep to be inside of sub, currently outside of sub with connect to start position. Skip the first move in tool path if CRC is true, its the .050 CAM move we dont use on this machine, we are using the BPCRCStartPos command for a perpendicular CRC pick-up move. Basicly put back what was taken out in the 1st comment. Added G75 to tool change line. Added Program Tool List. Put T20 in spindle at end of the program. Minim G codes was requested, done so by using RapidC & better use of AbsOrInc commands. Updated to .72.1 Jim Radcliffe} {7/24/90, Replaced all occurances of SetSRXYZero with SetSRXYtoSP, DWB} {8/17/90 Modified: BP Boss 7.2 (TT) M319.73 For: Tech-Tools Change to absolute arc centers Change Tool List at beginning of prog to output the tool comment. Updated to .76.1 format. Jim Radcliffe} {8/24/90 Modified: BP Boss 7.2 (TT) M319.76.1 For: Tech-Tools Deleted the NoIJKSigns initializer. Jim Radcliffe} {6/2/92 Modified: BP Boss 7.2 (TT) M319.76.2 For: Gibbs & Associates Updated to Version 4.0 per Fanuc 6M M001.81 Format. KLM} {Prog Numeric Format Definitions *******************************************} #1 = '###.###;0.' #2 = '*###.###;0.' #3 = '#.00' #4 = '####.####;0.' #5 = '########;0' #6 = '###^#0' FORMAT(FileFeet#,3) FORMAT(FileMeters#,3) 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} {Prog Subroutines **********************************************************} 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 IF Metric? {CAM file is in Metric, tools and tool path} SetScale('.03937007874') { change to English, this is an English post} END END RETURN PSInit: {reset flags} RotateF RETURN PSStuff: {revised.72} IF FourthCW? FORMAT(FourthDegree#,1) SeqLab 'A' FourthDegree# EOL FourthCWF {reset flag} END IF FourthCCW? FORMAT(FourthDegree#,2) SeqLab 'A' FourthDegree# EOL FourthCCWF {reset flag} END IF FifthCW? FORMAT(FifthDegree#,1) SeqLab 'B' FifthDegree# EOL FifthCWF {reset flag} END IF FifthCCW? FORMAT(FifthDegree#,2) SeqLab 'B' FifthDegree# EOL FifthCCWF {reset flag} END RETURN DoPostScript: PSInit EachPS SeqLab PostScript EOL {literals} PSStuff {commands} NextPS RETURN DoEndOpPS: PSInit EachEOPS SeqLab EndOpPS EOL PSStuff NextPS RETURN EntryMove: IF FeedEntry? SeqLab Feed ZIn FeedEntC EOL ELSE SeqLab RapidC ZIn EOL END RETURN StartSub: OpenSub '#' Program# 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: SubWarning TagUp TagInc SeqLab CallLabB '²' Tag# RepLab RepCycs EOL IF CutterRadiusCompensation? AND NOT AutoCycle? SeqLab CRCOn AbsOrInc Connect BPCRCStartPos FeedRate EOL SeqLab Feed StrtPos EOL ELSE SeqLab AbsOrInc Connect StrtPos FeedRate EOL END RETURN FinishSub1: {part 1} UnSkipZ IF NOT FeedConnect? IF CutterRadiusCompensation? AND NOT AutoCycle? SeqLab RapidC CRCOff BPCRCEndPos ZCP3C EOL ELSE IF AutoCycle? SeqLab ZCP3C EOL ELSE IF FIFO? {.81} SeqLab FeedC ZCP3C FeedRateC EOL ELSE SeqLab RapidC ZCP3C EOL END END END ELSE IF CutterRadiusCompensation? AND NOT AutoCycle? SeqLab FeedC CRCOff BPCRCEndPos EOL END END RETURN FinishSubG92: {part 2} SeqLab Preset ShiftRC EOL '<' Tag# EOL TagDown SeqLab Preset UnshftRC EOL RETURN OpenMP: NewProg TagUp TagInc SeqLab CallLabB '²' Tag# RepLab Parts EOL SeqLab StrtPos EOL RETURN CloseMP: SeqLab Preset ShiftPC EOL '<' Tag# EOL TagDown SeqLab Preset UnshftPC EOL RETURN FormatArc: IF ArcCW? CWArcC ELSE CCWArcC END MoveXYZC IF ArcIJFormat? ArcIJC ELSE ArcRC END RETURN StdLine: {enables CRC on first call, .70} IF CutterRadiusCompensation? AND FirstFeat? AND NEXT LineFeat? AND NOT AutoCycle? { avoid 2 co-linear lines by skipping extra .050 line ncCAM added for CRC} ELSE IF Decelerate? AND NOT CutterRadiusCompensation? IF RoomToDecel? DecelMove1 SeqLab FeedC MoveXYZC EOL DecelMove2 END SeqLab FeedC MoveXYZC DecelFeed EOL ELSE IF XMove? OR YMove? OR ZMove? SeqLab FeedC MoveXYZC FeedRateC EOL END END END RETURN ToolPath: EACHFeat IF PointFeat? IF AutoCycle? SeqLab MoveSXYC EOL '=#' Program# EOL CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY} ELSE SeqLab MoveSXYC EOL {.80.01} END ELSE IF RapidFeat? IF XMove? OR YMove? OR ZMove? SeqLab RapidC MoveXYZC EOL END IF LastFeat? AND AutoCycle? AND CutterRadiusCompensation? {.70} SeqLab CRCOff MoveXY EOL {turn off CRC with no move} END ELSE IF LineFeat? IF AutoCycle? {.70} IF LastFeat? StdLine IF CutterRadiusCompensation? {.70} SeqLab CRCOff MoveXY EOL {turn off CRC with no move} END ELSE IF ZMove? {skip CRCOn until first non-Z move line, skipping ramps} StdLine IF CutterRadiusCompensation? AND NEXT NOT ZMove? SeqLab CRCOn MoveXY EOL {turn on CRC with no move} END ELSE IF FirstFeat? IF CutterRadiusCompensation? SeqLab CRCOn StrtPos EOL {turn on CRC with no move} END StdLine ELSE StdLine END END END ELSE StdLine END ELSE IF ArcFeat? EACHQuadrant IF LastQuadrant? AND Decelerate? IF RoomToDecel? DecelMove1 SeqLab FormatArc ArcFeed EOL DecelMove2 END SeqLab FormatArc DecelFeed EOL ELSE SeqLab FormatArc ArcFeedC EOL END NEXTQuadrant END END END END NEXTFeat RETURN AutoCycCutSub1: {part 1} SaveSubStatus {save tool position} SetPass1 {element cut moves} StartSub SetSRXYtoSP SeqLab IncValue EOL RETURN AutoCycCutSub2: {part 2} ToolPath IF Repeats? AND FeedConnect? AND ZshiftOnly? SeqLab AbsOrInc EOL {.69 removed RapidC} IF FIFO? {.81} SeqC AbsOrInc FeedC ZCP2 FeedRateC EOL ELSE SeqC AbsOrInc RapidC ZCP2 EOL {.71.2 removed CRCOffC, gets turned off in ToolPath} END END '$' EOL CloseSub SetSRSubXY {restore tool position} SetSRSubMove RETURN AutoCycPat: SetPass2 {position pattern} ToolPath {call after NewProg for correct sub calls} SetPass1 {reset} RETURN Milling: IF AutoCycle? NewProg AutoCycCutSub1 EntryMove AutoCycCutSub2 AutoCycPat ELSE IF NOT Repeats? IF CutterRadiusCompensation? SeqLab CRCOn BPCRCStartPos FeedRate EOL SeqLab Feed StrtPos EOL END END EntryMove ToolPath END RETURN G92Sub: StdSub Milling FinishSub1 FinishSubG92 RETURN ZonlyRepAutoCycle: AutoCycPat {write pattern moves and main calls} StartSub NewProg EachCycle IF FeedConnect? SeqLab Feed ZInPlusInc FeedEnt EOL ELSE IF FeedEntry? IF NOT FirstCycle? SeqLab Rapid ZCP2PlusInc EOL {.69 added Rapid, reads better} {can't call for cycle = 1, .69 changed to ZCP2PlusInc} END SeqLab Feed ZInPlusInc FeedEnt EOL ELSE SeqLab Rapid ZInPlusInc EOL {.69 added Rapid, reads better} END END IF FirstCycle? SetStatusOff {protect Z position for incremental sub} END '=#' 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} SeqLab Feed ZCP2 FeedRate EOL {.69} ELSE SeqLab Rapid ZCP2 EOL {.69} END END {.69} '$' EOL CloseSub {Element shift, not pattern} RETURN ZonlyRep: EachCycle IF NOT FirstCycle? IF CutterRadiusCompensation? SeqLab Connect BPCRCStartPos EOL ELSE SeqLab Connect StrtPos EOL END END IF FeedConnect? SeqLab FeedC ZInPlusInc FeedEnt EOL ELSE IF FeedEntry? IF NOT FirstCycle? SeqLab RapidC ZCP2PlusIncC EOL {can't call for cycle =1} {.69 added Rapid, reads better} END SeqLab Feed ZInPlusInc FeedEnt EOL ELSE SeqLab RapidC ZInPlusInc EOL {.69 added Rapid, reads better} END END '=#' Program# EOL NextCycle StartSub SkipZ IF CutterRadiusCompensation? SeqLab CRCOn BPCRCStartPos FeedRate EOL SeqLab Feed StrtPos EOL END ToolPath FinishSub1 '$' EOL CloseSub RETURN CheckPass: IF AutoCycle? {use the correct StrtPos} SetPass2 ELSE SetPass1 END RETURN GetStartOfSameTool: DoOpComments DoPostScript CheckPass RETURN {Start of executable Prog **************************************************} {setup and initializations} InitProg ReverseYZArcs SetFlood UseSeparateSubCalls SetMaxSeparateSubCalls ('19999') 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? EachTool ToolComment$ EOL NextTool '%N1' Plane AbsOrInc 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 IF Metric? {CAM file is in Metric, tools and tool path} SetScale('.03937007874') { change to English, this is an English post} END IF MultipleParts? AND AllToolsOnePart? OpenMP END DoOpComments DoPostScript SeqLab 'G75' Rapid Home OpToolID ToolChng EOL SeqLab CoolOn EOL SeqLab Speed SpinOn EOL IF MultipleParts? AND OneToolAllParts? AND FullUp? OpenMP END CheckPass IF CutterRadiusCompensation? AND NOT AutoCycle? SeqLab RapidC BPCRCStartPos ZCP1 EOL ELSE SeqLab RapidC StrtPos ZCP1 EOL END IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane? OpenMP END ELSE IF NewTool? {Finish off last Operation} IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane? CloseMP END IF MultipleParts? AND OneToolAllParts? AND FullUp? CloseMP END DoEndOpPS IF LAST ProgStop? SeqLab RapidC Home 'M25' EOL {M25 is quill retract} SeqLab 'M00' EOL ELSE SeqLab ProgStop EOL END {Start new Operation} DoOpComments DoPostScript SeqLab Plane AbsOrInc EOL SeqLab 'G75' Rapid Home OpToolID ToolChng EOL SeqLab CoolOn EOL SeqLab Speed SpinOn EOL IF MultipleParts? AND OneToolAllParts? AND FullUp? OpenMP END CheckPass IF CutterRadiusCompensation? AND NOT AutoCycle? SeqLab RapidC BPCRCStartPos ZCP1 EOL ELSE SeqLab RapidC StrtPos ZCP1 EOL END IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane? OpenMP END ELSE IF SameTool? DoEndOpPS IF LAST ProgStop? SeqLab RapidC Home 'M25' EOL {M25 is quill retract} SeqLab 'M00' EOL {Start new Operation} GetStartOfSameTool SeqLab CoolOn EOL SeqLab Speed SpinOn EOL CheckPass IF CutterRadiusCompensation? AND NOT AutoCycle? SeqLab PlaneC RapidC BPCRCStartPos ZCP1 EOL ELSE SeqLab PlaneC RapidC StrtPos ZCP1 EOL END ELSE {Start new Operation} GetStartOfSameTool IF CutterRadiusCompensation? AND NOT AutoCycle? SeqLab PlaneC RapidC BPCRCStartPos ZCP1 EOL ELSE SeqLab PlaneC RapidC StrtPos ZCP1 EOL END IF NOT CoolOff? AND LAST CoolOff? SeqC CoolOn EOL END END END END END {common point for all operations} IF Milling? SeqLab ZCP2C EOL IF Repeats? 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} ELSE {no repeat OPs} Milling IF CutterRadiusCompensation? AND NOT AutoCycle? SeqLab RapidC CRCOff BPCRCEndPos ZCP3C EOL END END SeqLab RapidC ZCP3C EOL ELSE IF Drilling? IF Repeats? NewProg TagUp TagInc SeqLab CallLabB '²' Tag# RepLab RepCycs EOL DoSubComment SeqLab AbsOrInc Rapid StrtPos EOL END SeqLab ZCP2C EOL GetCycle IF Dwell? SeqLab 'G04/' Dwell# EOL END SeqLab Cycle StrtPos ZDepthAbs Peck Retract FeedEnt EOL ToolPath SeqLab 'G80' EOL IF Repeats? SeqLab Preset ShiftRC EOL '<' Tag# EOL TagDown SeqLab Preset UnshftRC EOL END SeqLab ZCP3C 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 IF MultipleParts? AND OneToolAllParts? AND FullUp? CloseMP END DoEndOpPS IF MultipleParts? AND AllToolsOnePart? CloseMP END SeqLab AbsOrInc Rapid IF FIRST ToolChangeAtHome? FirstHome END 'T20' ToolChng EOL SeqLab EOP EOL CloseSub Post2 {organize Subs into one program} 'E' EOL Close Retag 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:
BP Boss 5 [McI] M616 81 5m
BP Boss 5 Series II M527 81 3
BP Boss 6 Ser II [NM] M549 81 3
BP Boss 6 Series II M289 81 3
BP IIA (HAC) M200 81
BP Boss 1 6 M041 89 1
BP Boss 9 M174 89 2
BP Boss 6 M284 89 1
BP Boss 7 2 M102 89m
BP Boss 9 [WP] MY38 89 1
BP Boss 5 Series I GI M822 89
BP Boss 8 M233 89 2
BP Boss 8 [IC] MX12 89
BP Boss 6 [G75] M497 79 1
BP Boss 7i M279 89 1
Heid TNC 151 BP S1 [MM] M853 81
BP Boss 8 M233 89m

więcej podobnych podstron