{1/16/89 Copied & modified: Fanuc 5T-Mazak M4 L022.52 For: Electromotive Need new command for I & K sign output at FormatArc sub. DWB}
{5/4/89 Modified: GE 550 Okuma LS-N L059.54 For: Electromotive Changed literal 'F80000' to RapidFC and set Format accordingly. This eliminated extra lines in ToolPath. Added LOfstOff '00' to NewTool to cancel offset after NewHome. Changed Format of axis moves from '##^####' to '##^###0'. Changed Format of 'F' address from '0000' to '#^00000'. JR}
{7/3/90 Modified: GE 550 Okuma LS-N L059.55 For: Gibbs and Associates Updated to Version 3.2 per Fanuc 10T MS [-] L001.70 Format DWB}
{7/15/91 Modified: GE 550 Okuma LS-N L059.70 For: Electromotive Updated to Version 4.0 per Fanuc 10T MS [-] L001.81 Format Made modifications per Steve Lien at Electromotive. Moved CoolOff to move to ZCP at NewTool and at the end of the Prog. Moved SpinOff to move to NewHome at NewTool and FirstHome at the end of the Prog. Only Canned Cycles supported are Threading and Tapping. DWB}
{8/20/91 Modified: GE 550 Okuma LS-N L059.80 For: Electromotive Updated to Version 4.0 per Fanuc 10T MS [-] L001.82 Format Made modifications per Steve Lien at Electromotive. Put back in logic that output 'M04' IF ToolOver?('4'). DWB}
{8/22/91 Modified: GE 550 Okuma LS-N L059.82 For: Electromotive Changed label for ThrdLead from 'F' to 'K' in Form per request by Steve Lien of Electromotive. DWB}
{Prog Numeric Format Definitions *******************************************}
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# ': ' ToolSize$ ' ' 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
Approach: { NOT FOR TAILSTOCK, .82 } IF ApproachOD? SeqLabC Feed XCP AppMove EOL ODApproachSP ELSE IF ApproachID? SeqLabC Feed XOpCD AppMove EOL IDApproachSP ELSE {ApproachFace} SeqLabC Feed StockOnNoCan XSP StockOff AppMove EOL FaceApproachSP END END RETURN
GetSpinOn1: IF ToolOver?('4') InverseSpinOn ELSE SpinOn END RETURN
GetSpinOn2: IF ToolOver?('4') SpinOn ELSE InverseSpinOn END RETURN
CheckOffset: DoEndOpPS IF LAST ProgStop? SeqLabC 'M00' EOL ELSE IF CoolOff? AND LAST NOT CoolOff? SeqLabC CoolOff EOL END END IF NewToolOffset? SeqLabC LOfstOff '00' EOL SeqLabC OpToolID LatheOffset EOL END IF LAST ProgStop? SeqLabC GetSpinOn1 EOL SeqLabC CoolOn EOL ELSE IF NOT CoolOff? AND LAST CoolOff? SeqLabC CoolOn EOL END END DoPostScript RETURN
FormatArc: IF ArcCW? CWArcC ELSE CCWArcC END MoveXC MoveZC ArcIJC RETURN
ToolPath: EACHFeat GetToolTip IF LastFeat? IF Drilling? IF Tap? SeqLabC SpinOff EOL SeqLabC 'G04X20000' EOL SeqLabC GearRange GetSpinOn2 EOL ELSE IF Dwell? SeqLabC 'G04X' Dwell# EOL END END END END IF PointFeat? SeqLabC MoveSXYC EOL ELSE IF RapidFeat? SeqLabC FeedC MoveXC MoveZC IF LAST ThreadFeat? RapidF END RapidFC EOL ELSE IF LineFeat? SeqLabC FeedC MoveXC MoveZC FeedRateC EOL ELSE IF ArcFeat? EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop } SeqLabC FormatArc FeedRateC EOL NEXTQuadrant ELSE IF ThreadFeat? SeqLabC 'G33' MoveXC MoveZC ThrdLead EOL Feed END END END END END NEXTFeat RETURN
CheckRapid1: IF LAST CannedCycle? AND LAST Threading? ELSE FeedC END RETURN
CheckRapid2: IF CannedCycle? AND Threading? ELSE FeedC END RETURN
CheckRapidF1: IF LAST CannedCycle? AND LAST Threading? ELSE RapidFC END RETURN
CheckRapidF2: IF CannedCycle? AND Threading? ELSE RapidFC END RETURN
{Start of executable Prog **************************************************}
{setup and initializations} InitProg PosSideLathe StandardXZArcs 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? '=' EOL 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 END IF Metric? {CAM file is in metric, tools and tool path} SetScale('.03937007874') { change to English, this is an English post} END OpenSub StockOff {.71.2} SetHome DoOpComments DoPostScript Plane Seq AbsOrInc EOL SeqLabC GearRange GetSpinOn1 EOL SeqLabC CoolOn EOL SeqLabC OpToolID LatheOffset EOL SeqLabC Preset Home EOL IF ToolOver?('4') NegSideLathe ReverseXZArcs ELSE PosSideLathe StandardXZArcs END Approach ELSE IF NewTool?
{Finish off last Operation}
StockOff {.62} CheckRapid1 IF LAST ApproachOD? SeqLabC XCPC CheckRapidF1 EOL SeqLabC ZCPC CoolOff EOL ELSE IF LAST ApproachID? SeqLabC LAST XOpECDC CheckRapidF1 EOL SeqLabC ZCPC CoolOff EOL ELSE {LAST ApproachFace} SeqLabC ZCPC CheckRapidF1 CoolOff EOL END END DoEndOpPS PosSideLathe SeqLabC NewHome SpinOff EOL SeqLabC LOfstOff '00' EOL IF LAST ProgStop? SeqLabC 'M00' EOL ELSE SeqLabC ProgStop EOL END
{Start new Operation}
' ' EOL DoOpComments DoPostScript Seq GearRange GetSpinOn1 EOL SeqLabC CoolOn EOL SeqLabC OpToolID LatheOffset EOL SeqLabC Preset Home EOL IF ToolOver?('4') NegSideLathe ReverseXZArcs ELSE PosSideLathe StandardXZArcs END Approach ELSE IF SameTool? {.62}
{Start new Operation}
DoOpComments StockOff IF LAST StraightConnect? CheckOffset CheckRapid1 SeqLabC StockOnNoCan XSPC ZSPC CheckRapidF1 EOL ELSE CheckRapid1 IF ApproachOD? IF LAST ApproachOD? SeqLabC LAST XOpECDC CheckRapidF1 EOL ELSE {around} IF LAST ApproachID? SeqLabC LAST XOpECDC CheckRapidF1 EOL END SeqLabC ZCPC CheckRapidF1 EOL SeqLabC XCPC EOL END CheckOffset ODApproachSP ELSE IF ApproachID? IF LAST ApproachID? SeqLabC LAST XOpECDC CheckRapidF1 EOL ELSE IF LAST ApproachOD? {around} SeqLabC XCPC CheckRapidF1 EOL END SeqLabC ZCPC CheckRapidF1 EOL SeqLabC XOpCDC EOL END CheckOffset IDApproachSP ELSE {ApproachFace} IF LAST ApproachFace? SeqLabC LAST ZOpECPC CheckRapidF1 EOL ELSE IF LAST ApproachOD? {around} SeqLabC XCPC CheckRapidF1 EOL ELSE {LAST ApproachID} SeqLabC LAST XOpECDC CheckRapidF1 EOL END SeqLabC ZCPC EOL END CheckOffset FaceApproachSP END END END END END END {common point for all operations} IF CannedCycle? IF Threading? StockOn SetPass1 ToolPath IF AutoFinish? IF Taper? SeqLabC 'X' ADD# FinishXDia# MUL# Taper# NumSc#('2') EOL SeqLabC 'G33X' FinishXDia# FinZ ThrdLead EOL ELSE SeqLabC 'X' FinishXDia# EOL SeqLabC 'G33' FinZ ThrdLead EOL END SeqLabC Feed XCSP RapidF EOL SeqLabC ZCSP EOL END ELSE IF Drilling? IF Tap? SeqLabC LCycle ZDepth FeedRate EOL SeqLabC SpinOff EOL SeqLabC 'G04X20000' EOL SeqLabC GearRange GetSpinOn2 EOL SeqLabC ZSP EOL END END END ELSE StockOn SetPass1 ToolPath IF AutoFinish? IF NOT Drilling? AND NOT Grooving? StockOff IF Turning? SetPass1 ELSE SetPass2 END SeqLabC FeedC StrtPos RapidFC EOL ToolPath END END END IF Drilling? AND Tap? SeqLabC SpinOff EOL SeqLabC 'G04X20000' EOL SeqLabC GearRange GetSpinOn1 EOL END NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{finish last operation} StockOff CheckRapid2 IF ApproachOD? SeqLabC CheckRapid2 XCPC CheckRapidF2 EOL SeqLabC ZCPC CoolOff EOL ELSE IF ApproachID? SeqLabC XOpECDC CheckRapidF2 EOL SeqLabC ZCPC CoolOff EOL ELSE {ApproachFace} SeqLabC ZCPC CheckRapidF2 CoolOff EOL END END DoEndOpPS PosSideLathe SeqLabC FirstHome SpinOff EOL SeqLabC OpToolID '00' EOL SeqLabC 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