plik


{Change Comments ***********************************************************} {6/1/91 Copied & modified: Fanuc 10T MS [-] L001.82 For: Laser Power Optics Machine: Nanoform 600 Diamond Turning Machine Control: IBH-Vickers Micro 80 Post Processor was developed per conversations with Rex Reese at Laser Power Optics, manual and sample program supplied. This machine has only one Tool Post, thus NewTool in not applicable, however it was left in, to avoid any un-foreseen problems. The Tool Post traverses the Z-Axis, while the Spindle Traverses the X-Axis. The Diamond Tool can machine on either side of the Spindle CenterLine. The User will be responsible for setting up the PosSideLathe/NegSideLathe condition. Only CannedCycle support is for simple G33 Threading and Tapping. FeedRates are expressed in MilliMeters per Minute. Customer will just enter the value that they want, no conversion will occur. All lines require line numbers, including comments. Customer has requested support of Parametric Variables, as promised by Premier Manufacturing. If they supply us with complete documentation with explanations, and there is a correlation between the variable values and the ncCad/ncCam document, we will attempt to satisfy them. DWB} {9/23/92 Modified:Vickers Micro 80 L261.82m For: Laser Power Optics Machine: Nanoform 600 Diamond Turning Machine Control: IBH-Vickers Micro 80 Changed this processor to an English post. Changed the Mach Spec to read 6 decimal places (####.######) instead of 3 decimal places for 'X' and 'Z'. Added the command 'XsAreRadii' in the setup and initialization area to allow all X's to be output in radius, per request. Added a space in front of the variable used Ex: (G,M,X,Y,Z,I,J,....) in the Mach Spec, and in the literals in the prog. And removed spaces that occured before the '(' in the comments and after the ')'. KLM} {9/23/92 Modified:Vickers Micro 80 L261.82.1m For: Laser Power Optics Removed all occurances of Home on the Preset lines. Added spaces for all variables in the Mach Spec and literals in the prog except for 'N'. KLM} {10/1/92 Modified:Vickers Micro 80 L261.82.2 For: Laser Power Optics Removed all Preset lines. KLM} {10/1/92 Modified:Vickers Micro 80 L261.82.3 For: Laser Power Optics Removed all Home commands. KLM} {Prog Numeric Format Definitions *******************************************} #1 = '#.00' #2 = '###.####;0.' #3 = '#######0' #4 = '##.###;0.' #5 = '###.##;0.' #6 = '###0' #7 = '#' FORMAT(FileFeet#,1) FORMAT(FileMeters#,1) FORMAT(Program#,3) {.72} FORMAT(Operation#,3) {.72} FORMAT(Tool#,3) {.72} FORMAT(Dwell#,4) {.72} FORMAT(FeedIPR#,5) FORMAT(CalcEPRPM#,6) FORMAT(RapidF#,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 DoOpComments: IF UseComments? SetScale('1') IF OperationIDComment? SeqC ' (OPERATION ' Operation# ': ' OperationType$ ')' EOL END IF OperationComment? SeqC ' (' OperationComment$ ')' EOL END IF WorkGroupComment? SeqC ' (' WorkGroupComment$ ')' EOL END IF ToolTypeComment? SeqC ' (TOOL ' Tool# ': ' ToolSize$ ' ' ToolType$ ')' EOL END IF ToolComment? SeqC ' (' ToolComment$ ')' EOL END RestoreScale END RETURN PSInit: {reset flags from last Op, .70} RETURN PSStuff: RETURN DoPostScript: PSInit EachPS SeqC PostScript EOL {literals} PSStuff {commands} NextPS RETURN DoEndOpPS: PSInit EachEOPS SeqC EndOpPS EOL {literals} PSStuff {commands} NextPS RETURN StockOnNoCan: IF NOT CannedCycle? StockOn {need stock for SP positioning, if not a canned cycle} END RETURN ODApproachSP: SeqC StockOnNoCan ZSPC EOL SeqC StockOff XOpCDC EOL StockOnNoCan IF NotEqual? CycleStartX# XOpCD# SeqC Feed XSPC FeedRate EOL ELSE RapidF# { No Output - Forces FeedRate in ToolPath } END RETURN IDApproachSP: SeqC StockOnNoCan ZSPC EOL SeqC StockOff XOpCDC EOL { for SameTool ApproachID } StockOnNoCan IF NotEqual? CycleStartX# XOpCD# SeqC Feed XSPC FeedRate EOL ELSE RapidF# { No Output - Forces FeedRate in ToolPath } END RETURN FaceApproachSP: SeqC StockOnNoCan XSPC EOL { for SameTool ApproachFace } SeqC StockOff ZOpCPC EOL StockOnNoCan IF NotEqual? CycleStartZ# ZOpCP# SeqC Feed ZSPC FeedRate EOL ELSE RapidF# { No Output - Forces FeedRate in ToolPath } END RETURN AppMove: ZCP OpToolID LatheOffset CoolOn RETURN Approach: { NOT FOR TAILSTOCK, .82 } IF ApproachOD? SeqC Rapid XCP AppMove EOL ODApproachSP ELSE IF ApproachID? SeqC Rapid XOpCD AppMove EOL IDApproachSP ELSE {ApproachFace} SeqC Rapid StockOnNoCan XSP StockOff AppMove EOL FaceApproachSP END END RETURN CheckOffset: DoEndOpPS IF LAST ProgStop? SeqC ' M0' EOL ELSE IF CoolOff? AND LAST NOT CoolOff? SeqC CoolOff EOL END END IF NewToolOffset? SeqC LOfstOff '00' EOL SeqC OpToolID LatheOffset EOL END IF ConstantSurfaceFeed? IF LAST NOT ConstantSurfaceFeed? SeqC CSSOn ' G96' Speed END ELSE IF LAST ConstantSurfaceFeed? SeqC CSSOff ' G97' Speed END END IF LAST ProgStop? SeqC SpeedC SpinOn EOL SeqC CoolOn EOL ELSE SeqC SpeedC EOL IF NOT CoolOff? AND LAST CoolOff? SeqC CoolOn EOL END END DoPostScript RETURN FormatArc: IF ArcCW? CWArcC ELSE CCWArcC END MoveXC MoveZC IF ArcIJFormat? ArcIJC ELSE ArcRC END RETURN ToolPath: EACHFeat GetToolTip IF LastFeat? IF Drilling? IF Tap? SeqC SpinOff EOL SeqC ' G4F2.' EOL SeqC Speed InverseSpinOn EOL ELSE IF Dwell? SeqC ' G4 F' Dwell# EOL END END END END IF PointFeat? SeqC MoveSXYC EOL ELSE IF RapidFeat? SeqC RapidC MoveXC MoveZC EOL ELSE IF LineFeat? SeqC FeedC MoveXC MoveZC FeedRateC EOL ELSE IF ArcFeat? EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop } SeqC FormatArc FeedRateC EOL NEXTQuadrant ELSE IF ThreadFeat? SeqC ' G33' MoveXC MoveZC IF Taper? XTapAtZ END ThrdLead FeedRateC EOL Rapid END END END END END NEXTFeat RETURN CheckRapid: RapidC RETURN {Start of executable Prog **************************************************} {setup and initializations} InitProg SetAbs XsAreRadii PosSideLathe ReverseXZArcs 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: must be all capital letters when typed in.' 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 END EachOp {Start of post processing *********************} GetLCycle IF FirstOperation? EOR EOL ProgID1 OpenSub IF UseComments? AND ProgramNameComment? ' (' ProgramName$ ')' END EOL IF UseComments? IF ProgramComment? SeqC ' (' ProgramComment$ ')' EOL END IF FormatNameComment? SeqC ' (FORMAT: ' FormatName$ ')' EOL END IF TimeComment? SeqC ' (' Date$ ' AT ' Time$ ')' EOL END IF MovesComment? SeqC ' (OUTPUT IN ABSOLUTE METERS )' EOL END END RestoreScale StockOff {.71.2} SetHome DoOpComments DoPostScript Plane SeqC CSSOff ' G97' IF ConstantSurfaceFeed? CalcRPM1 ELSE Speed END OpToolID '00' SpinOn EOL Approach ELSE IF NewTool? {Finish off last Operation} StockOff {.62} CheckRapid IF LAST ApproachOD? SeqC XCPC EOL ELSE IF LAST ApproachID? SeqC LAST XOpECDC EOL END END SeqC ZCPC EOL DoEndOpPS IF LAST ConstantSurfaceFeed? SeqC CSSOff ' G97' CalcRPM2 EOL END SeqC NewHome LOfstOff '00' EOL IF LAST ProgStop? SeqC ' M0' EOL ELSE SeqC ProgStop EOL END {Start new Operation} DoOpComments DoPostScript SeqC CSSOff ' G97' IF ConstantSurfaceFeed? CalcRPM1 ELSE Speed END OpToolID '00' SpinOn EOL Approach ELSE IF SameTool? {.62} {Start new Operation} StockOff DoOpComments IF LAST StraightConnect? CheckOffset CheckRapid SeqC StockOnNoCan XSPC ZSPC EOL ELSE CheckRapid IF ApproachOD? IF LAST ApproachOD? SeqC LAST XOpECDC EOL ELSE {around} IF LAST ApproachID? SeqC LAST XOpECDC EOL END SeqC ZCPC EOL SeqC XCPC EOL END CheckOffset ODApproachSP ELSE IF ApproachID? IF LAST ApproachID? SeqC LAST XOpECDC EOL ELSE IF LAST ApproachOD? {around} SeqC XCPC EOL END SeqC ZCPC EOL SeqC XOpCDC EOL END CheckOffset IDApproachSP ELSE {ApproachFace} IF LAST ApproachFace? SeqC LAST ZOpECPC EOL ELSE IF LAST ApproachOD? {around} SeqC XCPC EOL ELSE {LAST ApproachID} SeqC LAST XOpECDC EOL END SeqC ZCPC EOL END CheckOffset FaceApproachSP END END END END END END {common point for all operations} IF ConstantSurfaceFeed? AND NOT SameTool? SeqC CSSOn ' G96' Speed EOL END IF CannedCycle? AND Drilling? AND Tap? SeqC LCycle ZDepth ' F' FeedIPR# EOL ELSE StockOn SetPass1 ToolPath IF AutoFinish? IF NOT Drilling? AND NOT Grooving? AND NOT RoughSimple? StockOff IF Turning? SetPass1 ELSE SetPass2 END SeqC RapidC StrtPos EOL ToolPath END END IF Drilling? AND Tap? SeqC SpinOff EOL SeqC ' G4 F2.' EOL SeqC Speed SpinOn EOL END END NextOp {loops back to EachOP until last Operation} {End of program ************************************************************} {finish last operation} StockOff RapidC IF ApproachOD? SeqC XCPC EOL ELSE IF ApproachID? SeqC XOpECDC EOL END END SeqC ZCPC EOL DoEndOpPS SeqC CoolOff EOL IF ConstantSurfaceFeed? SeqC CSSOff ' G97 S' CalcEPRPM# EOL END SeqC FirstHome OpToolID '00' SpinOff EOL IF ProgStop? SeqC ' M0' EOL END SeqC EOP EOL Post EOR EOL Close IF UseComments? SetScale('1') {restore scale for comments} Reopen IF FileBytesComment? SeqC ' (FILE LENGTH: ' FileBytes# ' CHARACTERS)' EOL END IF FileFeetComment? SeqC ' (FILE LENGTH: ' FileFeet# ' FEET)' EOL END IF FileMetersComment? SeqC ' (FILE LENGTH: ' FileMeters# ' METERS)' EOL END Close END

Wyszukiwarka