plik


{Change Comments ***********************************************************} {added separate sub call code and warning for not separate, 7/5/88 WFG} {separate sub calls turned off in this post- 'UseSeparateSubCalls' commented out} {ncPost3§24 or better} {added IF ToolChangeAtHome?, & SetHome 9/26/88 WFG} {added PostScript commands 3/11/89 WFG} {added PostScript command comments 5/9/89, WFG, use ncPost 3.10Ś9 or better} {removed run time comments, 5/9/89, WFG} {added "must be all capital letters when typed in" to Postscript Command comment, 5/17/89, JR} {added metric, 6/5/89, WFG} {suppressed first cycle StrtPos for sep subs,7/17/89 WFG} {last tool now goes to FirstHome when finished, 7/26/89, WFG} {changed to Sep Sub standard} {.65, corrected Sep sub problem if 1st cut <> Z step, 9/14/89 WFG, requires ncPost 3.19Ś5} {.66, added name comment to Prog ID # line, 10/30/89, WFG} {.67, new prog commands, 11/20/89, WFG} {*.68, AutoCycles and 3.2 support, 12/4/89, WFG (Good luck on the upgrades to other posts)} {.69, corrected 2 repeat op/autocycle problems, 12/21/89, WFG} {1/8/90-2/7/90 Changes to M001.69 Moved DoPostScript command to very beginning of NewTool & SameTool op's, same as FirstOp. Deleted last line of NewWFO PostScript comment, it no longer applies. Move DoEndOpPS command in NewTool & end of prog to end of operation outside of Full-up MP. Restucture to have M01 or M00 in New Tool. Deleted ProgStop? from end of prog, not neccesary. Check for ProgStop at beginning AND end of operation does not work, it comes out both places, only using for end of operation. Reflected in PSComments. Deleted StopProg sub. Re-wrote SameTool section for many reasons. Deleted ClearancePlane3# prog format it is no longer needed. New sub CheckPass to replace statement in main for SetPass. Modified WFOStuff sub to include SameTool. Deleted StrtPos from OpenMP sub and added to main where needed. Updated to .70 format. Jim Radcliffe} {3/15/90 Copied & modified: Fanuc 6M M001.70.3 For: Rollason Machine: Moore Speacial Jig Grinder Control: GE 1050 No Z Moves Added SkipZ to Initializations Negate Y & J in MachSpec. No Feedrates Basically stripped it down minimaly as needed. Some things still unsure of as I am writing this with no manual and only a sample read-out. Jim Radcliffe} {4/9/90 Deleted StdLine subroutine and replaced where it was called. Removed ArcFeed command. DWB} {7/24/90, Added InitProg globally to posts with this remark, DWB} {7/24/90, Replaced all occurances of SetSRXYZero with SetSRXYtoSP, DWB} {6/3/91, Updated GE 1050 Moore JG M295.71 to .80 format, JR} {6/3/91 Copied & modified: GE 1050 Moore JG M295.80 For: Unitech Engineered Products, Inc. Control: Allen Bradley 8400 Machine: Moore Jig Grinder model G-18 Changed G02's to G03's & G03's to G02's in MachSpec. Modified comments to use semi-colons instead of parentheses. Jim Radcliffe} {6/12/91, UnNegated Y & J in MachSpech, also switched back G02 & G03, JR} {6/14/91 Modified: AB 8400 Moore JG M422.80.1 Changed to not stop on arcs quadrants Jim Radcliffe} {6/14/91 Modified: AB 8400 Moore JG M422.80.2 Changed FormatArc sub to unconditional arc information Jim Radcliffe} {6/20/91 Modified: AB 8400 Moore JG M422.80.3 For: Unitech Engineered Products, Inc. Control: Allen-Bradley 8400 Machine: Moore Jig Grinder model G-18 Modified per manual: Absolute arc centers. The 3rd axis is a C axis mainly used to keep the U axis perpendicular to the work piece; added "2-DAN" codes (G50 - G52), similar to CRC, automaticly takes care of the C axis. **Do not choose cutter center in ncCAM for "2-DAN" to function properly.** The 4th axis (indexing axis) is an A axis; 3.4 format, modified FORMAT #2 & #3; added spacing to codes. The 5th axis is a U axis which is an offset departure of the main spindle centerline and the grinding wheel centerline; changed B to U for 5thaxis PostScript; 3.5 format, added FORMAT #8 & #9. Planetary Spindle modes are not supported. The Plane command has no output as G17 is activated at power-up and no other planes are possible. Deleted literal F4.0 and added FeedRateC, format 2.2, to ToolPath. Added Decel info to ToolPath. Can only have 1 G code per line, fixed all possibilities. CRC uses T word offset No Drilling operations, added literal comment to be output to indicate this. Fixture offsets E01 to E99. Added ProID1, format 00. Deleted SubCall command, subs called by calling the subs program number only. Return From Sub command is M02. Added Coolant, M07 on M09 off. Jim Radcliffe} {6/6/97 Initial: AB 8400 Moore JG M422.80.4 Created: Fanuc 18MB Moore JG M000.89 ForUser: Braden Engineering / US Can Control: Fanuc 18MB Machine: Moore 450CP Jig Grinder Develop: ComPost2 68K 1.0b11, CatalystPPC v3.33C Comment: Changed processor to be more Fanuc like and Updated! Jim Radcliffe} {6/30/97 Initial: Fanuc 18MB Moore JG M000.89 Created: Fanuc 18MB Moore JG M000.89.1 Develop: ComPost2 68K 1.0b11, Virtual Gibbs 3.35 PPC Comment: Modified per fax and conversation with Bill Riha. Added block delete before M15. Changed G50 to G40.1 Changed G51 to G41.1 Changed G52 to G42.1 Added G40.1 to beginning of tools for saftey start. Changed boolean WireLeft to CRCLeft, WireLeft was not working no matter how Virtual file is set! CRC must be on in Virtual for CRCLeft boolean to output correctly. Added missing label F for feed rates. Added C axis output to StrtPos line at beginning of operations. Added Preset C axis output at end of operations. Jim Radcliffe} {Prog Numeric Format Definitions *******************************************} #1 = '#.00' #2 = '####.####;0.' #3 = '*####.####;0.' #4 = '####.####;0.' #5 = '#######0' #6 = '####^##0' #8 = '###.#####;0.' #9 = '*###.#####;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) {uses D word} {Special Command Subroutines ***********************************************} CAxis: IF CRCLeft? ' C90.' ELSE ' C270.' END RETURN LastCAxis: IF LAST CRCLeft? ' C90.' ELSE ' C270.' END RETURN {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} NewWFOF RotateF OptCyc1F 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#,8) SeqC ' U' FifthDegree# EOL FifthCWF {reset flag} END IF FifthCCW? FORMAT(FifthDegree#,9) SeqC ' U' 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 StartSub: OpenSub SubID EOL DoSubComment RETURN StdSub: SeqC SubCall CallLab RepLab RepCycs EOL StartSub RETURN FinishSub1: {part 1} SeqC CRCOffC 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 SubCall CallLab RepLab OnePart EOL IncWFO NextWFO ELSE SeqC SubCall CallLab RepLab 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? ArcIJ ELSE ArcR END RETURN ToolPath: ResetCRCNum EACHFeat IF PointFeat? IF AutoCycle? SeqC MoveSXYC EOL SeqC SubCall CallLab EOL CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY} ELSE SeqC MoveSXYZC EOL {.80.01} END ELSE IF RapidFeat? IF LastFeat? SeqC CRCOffC RapidC MoveXYZC EOL ELSE IF ZMove? {skip CRCOn until first non-Z move line, skipping ramps} SeqC RapidC MoveXYZC EOL ELSE IF XMove? OR YMove? OR ZMove? SeqC CRCOnC RapidC MoveXYZC CRCOffsetC EOL END END END ELSE IF LineFeat? IF LastFeat? SeqC CRCOffC FeedC MoveXYZC FeedRateC EOL ELSE IF ZMove? {skip CRCOn until first non-Z move line, skipping ramps} SeqC FeedC MoveXYZC FeedRateC EOL ELSE IF Decelerate? IF RoomToDecel? DecelMove1 SeqC CRCOnC FeedC MoveXYZC FeedRateC CRCOffsetC EOL DecelMove2 END SeqC CRCOnC FeedC MoveXYZC DecelFeed CRCOffsetC EOL ELSE IF XMove? OR YMove? OR ZMove? SeqC CRCOnC FeedC MoveXYZC FeedRateC CRCOffsetC EOL END END END END ELSE IF ArcFeat? EACHQuadrant 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: IF NewWFO? IF MultipleParts? '*** WARNING *** DO NOT USE NEWWFO() WITH NCPOST MULTIPLE PARTS' EOL ELSE SeqC ' G' NewWFO# EOL END ELSE IF NOT SameTool? IF NeedWFO1? SeqC ' G' NewWFO# EOL END END END RETURN AutoCycCutSub1: {part 1} SaveSubStatus {save tool position} SetPass1 {element cut moves} StartSub SetSRXYtoSP SeqC IncValue EOL RETURN AutoCycCutSub2: {part 2} IF CRCLeft? SeqC ' G41.1' EOL ELSE SeqC ' G42.1' EOL END ToolPath SeqC ' G40.1' EOL SeqC AbsOrInc 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 IF CRCLeft? SeqC ' G41.1' EOL ELSE SeqC ' G42.1' EOL END ToolPath SeqC ' G40.1' EOL END RETURN G92Sub: StdSub SeqC AbsOrInc Connect StrtPos EOL Milling FinishSub1 FinishSubG92 RETURN CheckPass: IF AutoCycle? {use the correct StrtPos} SetPass2 ELSE SetPass1 END RETURN {Start of executable Prog **************************************************} {setup and initializations} InitProg SkipZ ReverseXZArcs InitWFONum 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 ' NewWFO(56), NWFO(56) -' EOL ' The Work Fixture Offset # you specify will be used for all following operations.' EOL ' Do not use with the ncPost multiple part option.' EOL ' 4thAxisCW(12.5), 4ACW(12.5) -' EOL ' generates a + C move of the value you specify' EOL ' 4thAxisCCW(22.5), 4ACCW(22.5) -' EOL ' generates a - C move of the value you specify' EOL ' 5thAxisCW(30), 5ACW(30) -' EOL ' generates a + U move of the value you specify' EOL ' 5thAxisCCW(22.5), 5ACCW(22.5) -' EOL ' generates a - U move of the value you specify' EOL END EachOp {Start of post processing *********************} IF FirstOperation? EOR EOL ProgID1 EOL IF ToolChangeAtHome? SetHome END IF UseComments? IF ProgramNameComment? '( PROGRAM: ' ProgramName$ ' )' 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 Plane {no output} IF MultipleParts? AND AllToolsOnePart? OpenMP END Seq AbsOrInc EOL DoOpComments DoPostScript WFOStuff SeqC ' G40.1' EOL IF MultipleParts? AND OneToolAllParts? AND FullUp? OpenMP END CheckPass SeqC Rapid StrtPos CAxis EOL SeqC ' /M15' EOL {grinding head down} SeqC CoolOn 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 Preset LastCAxis EOL SeqC CoolOff EOL SeqC ' M16' EOL {grinding head up} IF MultipleParts? AND OneToolAllParts? AND FullUp? CloseMP END DoEndOpPS IF ToolChangeAtHome? SeqC Rapid Home EOL END IF LAST ProgStop? SeqC ' M00' EOL ELSE SeqC ProgStop EOL END {Start new Operation} Seq AbsOrInc EOL DoOpComments DoPostScript WFOStuff SeqC ' G40.1' EOL IF MultipleParts? AND OneToolAllParts? AND FullUp? OpenMP END CheckPass SeqC Rapid StrtPos CAxis EOL SeqC ' /M15' EOL {grinding head down} SeqC CoolOn EOL IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane? OpenMP SeqC StrtPos EOL END ELSE IF SameTool? SeqC Preset LastCAxis EOL DoEndOpPS SeqC CoolOff EOL SeqC ' M16' EOL {grinding head up} IF LAST ProgStop? SeqC ' M00' EOL END {Start new Operation} SeqC AbsOrInc EOL DoOpComments DoPostScript WFOStuff CheckPass SeqC Rapid StrtPos CAxis EOL SeqC ' /M15' EOL {grinding head down} SeqC CoolOn EOL END END END {common point for all operations} IF Milling? IF Repeats? NewProg G92Sub ELSE {no repeat OPs} Milling END SeqC CRCOffC EOL ELSE IF Drilling? {I dont think we are going to be using drilling on this machine} '; Drilling operations are not support in this Processor' 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 Preset CAxis EOL SeqC CoolOff EOL SeqC ' M16' EOL {grinding head up} IF MultipleParts? AND OneToolAllParts? AND FullUp? CloseMP END DoEndOpPS IF FIRST ToolChangeAtHome? SeqC Rapid FirstHome EOL END IF ProgStop? SeqC ' M00' EOL END IF MultipleParts? AND AllToolsOnePart? CloseMP END 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