{9/23/88} {from the Okuma OSP 3000-LC20 L049.51, for Shultz} {machine only has one turret, no need to call for or see tool# for 2nd turret} {deleted ToolOver20? stuff added conventional OpToolID stuff} {deleted G95's} {changed form to trailing zero's, always 4 places} {added spaces between codes} {Jim Radcliffe}
{Jim & Bill worked on Canned cycles 9/29}
{5/9/89 Copied & modified; Okuma OSP 3000-LB20 L067.56, for Petes Workshop. Machine is an Okuma with OSP5000 LB15 control. New 1st line of program with End of Record code. Change format to use decimal points. Modified canned cycles. Jim Radcliffe}
{9/27/89, updated & added PostScript to Okuma OSP 5000 LB15 L103.55, JR}
{3/15/90, Updated: Okuma OSP 5000 LB15 L103.61 to .69.3 format, JR}
{7/2/90 Copied & modified: Okuma OSP 5000 LB15 L103.69 For: Colt Ind. Changed 1st line of program to show program number instead of program name. Changed colons to spaces in comments. Added Rapid Home to start each tool. Added T0 to end of each tool. Use "G1G94F190." for Rapid Moves except for Rapid Home Stuff, use G95 (IPR) for Feed Moves. Updated to .69.7 format. Jim Radcliffe}
{7/24/90, Added InitProg globally to posts with this remark, DWB}
{9/5/91, Updated Okuma OSP 5000 LB15 L103.70 to .82 format, JR}
{12/12/91 Updated: Okuma 5000 LB15 (CE) L171.79 For: Gibbs & Associates/Chandler Evans Updated to Version 4.0 per Fanuc 6M M001.82 Format. Will only work with NcPost 4.10.02 Added RapidF to Retract to Clearance Plane in SameTool, per request. Removed safety FeedRateC in FaceApproach in the Approach Subroutine, per request. Kim Michelman}
{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 XCP AppMove EOL ODApproachSP ELSE IF ApproachID? SeqLabC XOpCD AppMove EOL IDApproachSP ELSE {ApproachFace} SeqLabC StockOnNoCan XSP StockOff AppMove EOL FaceApproachSP END END RETURN
CheckOffset: DoEndOpPS IF LAST ProgStop? SeqLabC ' M0' 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 ConstantSurfaceFeed? IF LAST ConstantSurfaceFeed? SeqLabC SpeedC EOL ELSE SeqLabC Preset MaxRPM EOL SeqLabC CSSOn ' G96' Speed EOL END ELSE IF LAST ConstantSurfaceFeed? SeqLabC CSSOff ' G97' Speed EOL ELSE SeqLabC SpeedC EOL END END IF LAST ProgStop? SeqLabC SpinOn EOL SeqLabC CoolOn EOL ELSE IF NOT CoolOff? AND LAST CoolOff? SeqLabC CoolOn EOL END END DoPostScript RETURN
GetG95: IF FirstFeat? ' G95' ELSE IF LAST RapidFeat? ' G95' END END RETURN
GetG94: IF FirstFeat? ' G94' ELSE IF LAST RapidFeat? ELSE ' G94' END END RETURN
FormatArc: IF ArcCW? CWArcC ELSE CCWArcC END GetG95 MoveXC MoveZC IF ArcIJFormat? ArcIJC ELSE ArcRC END RETURN
ToolPath: EACHFeat GetToolTip IF LastFeat? IF Drilling? IF Tap? SeqLabC SpinOff EOL SeqLabC ' G4 P2000' EOL SeqLabC Speed InverseSpinOn EOL ELSE IF Dwell? SeqLabC ' G4 P' Dwell# EOL END END END END IF PointFeat? SeqLabC MoveSXYC EOL ELSE IF RapidFeat? SeqLabC FeedC GetG94 MoveXC MoveZC RapidFC EOL ELSE IF LineFeat? SeqLabC FeedC GetG95 MoveXC MoveZC FeedRateC EOL ELSE IF ArcFeat? SeqLabC FormatArc FeedRateC EOL ELSE IF ThreadFeat? SeqLabC ' G33' MoveXC MoveZC ThrdLead EOL Rapid END END END END END NEXTFeat RETURN
GetSequence: IF MinimizeSequencing? 'N' ToolOffset# ELSE SeqLabC END RETURN
{Start of executable Prog **************************************************}
{setup and initializations} InitProg PosSideLathe 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? '$' Program# '.MIN' EOR 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 GetSequence Rapid Home ' T0' EOL IF ConstantSurfaceFeed? SeqLabC Preset MaxRPM EOL SeqLabC Feed ' G94' CSSOff ' G97' CalcRPM1 ELSE SeqLabC Feed ' G94' CSSOff ' G97' Speed END OpToolID LatheOffset SpinOn CoolOn ' M42' RapidF EOL Approach ELSE IF NewTool? StockOff {.62} FeedC ' G94' IF LAST ApproachOD? SeqLabC XCPC RapidF EOL ELSE IF LAST ApproachID? SeqLabC LAST XOpECDC RapidF EOL END END SeqLabC ZCPC RapidF EOL DoEndOpPS IF LAST ConstantSurfaceFeed? SeqLabC CSSOff ' G97' CalcRPM2 EOL END SeqLabC Rapid NewHome ' T0' EOL IF LAST ProgStop? ' M0' EOL ELSE ProgStop EOL END
DoOpComments StockOff IF LAST StraightConnect? CheckOffset FeedC ' G94' SeqLabC StockOnNoCan XSPC ZSPC RapidF EOL ELSE FeedC ' G94' IF ApproachOD? IF LAST ApproachOD? SeqLabC LAST XOpECDC EOL ELSE {around} IF LAST ApproachID? SeqLabC LAST XOpECDC EOL END SeqLabC ZCPC RapidF EOL SeqLabC XCPC EOL END CheckOffset ODApproachSP ELSE IF ApproachID? IF LAST ApproachID? SeqLabC LAST XOpECDC EOL ELSE IF LAST ApproachOD? {around} SeqLabC XCPC EOL END SeqLabC ZCPC RapidF EOL SeqLabC XOpCDC EOL END CheckOffset IDApproachSP ELSE {ApproachFace} IF LAST ApproachFace? SeqLabC LAST ZOpECPC EOL ELSE IF LAST ApproachOD? {around} SeqLabC XCPC EOL ELSE {LAST ApproachID} SeqLabC LAST XOpECDC EOL END SeqLabC ZCPC RapidF EOL END CheckOffset FaceApproachSP END END END END END END {common point for all operations} IF ConstantSurfaceFeed? AND NOT SameTool? SeqLabC CSSOn ' G96' Speed EOL END IF CannedCycle? StockOff IF Roughing? TagInc IF RoughContour? SetPass2 SeqLabC ' G85 Nł' Tag# CutDepth FeedRate XStkLeft ZStkLeft EOL '>' Tag# EOL SeqLab IF ApproachOD? ' G81' EOL ELSE ' G82' EOL END SeqLabC StepMove StrtPos EOL ToolPath SeqLabC ' G80' EOL ELSE IF RoughPatternShift? SetPass2 SeqLabC ' G86 Nł' Tag# IF ApproachFace? ' D' ZCutDepth# ELSE ' D' XCutDepth# END FeedRate XStkLeft ZStkLeft EOL '>' Tag# EOL IF ApproachFace? SeqLab ' G82' EOL ELSE SeqLab ' G81' EOL END SeqLabC StepMove StrtPos EOL ToolPath SeqLabC ' G80' EOL END END IF AutoFinish? SeqLabC ' G87 Nł' Tag# EOL END ELSE IF Threading? IF ApproachFace? SeqLabC ' G72' {cam does'nt support face threads, if did would also need new command ZTapAtX format with a W to replace XTapAtZ} ELSE SeqLabC ' G71' END IF ConstantVolumeCut? AND SingleEdgeCut? XatFinZ FinZ XTapAtZ ToolAngle CutDepth ThrdHeight ThrdLead ' M32 M75' ELSE IF ConstantVolumeCut? AND NOT SingleEdgeCut? XatFinZ FinZ XTapAtZ ' B0' CutDepth ThrdHeight ThrdLead ' M32 M75' ELSE IF NOT ConstantVolumeCut? AND SingleEdgeCut? XatFinZ FinZ XTapAtZ ToolAngle CutDepth ThrdHeight ThrdLead ' M32 M74' ELSE IF NOT ConstantVolumeCut? AND NOT SingleEdgeCut? XatFinZ FinZ XTapAtZ ' B0' CutDepth ThrdHeight ThrdLead ' M32 M74' END END END END IF Chamfer? ' M23' ELSE ' M22' END EOL IF AutoFinish? SeqLabC ' G33' XatFinZ FinZ XTapAtZ ThrdLead EOL SeqLabC RapidC XCSP EOL SeqLabC ZCSP EOL END ELSE IF Drilling? SeqLabC IF Tap? AND NOT CWSpindle? ' G78' ELSE LCycle END XCSP ZDepth Peck Retract IF PeckFullRetract? ' L' Peck# END FeedRate Dwell EOL ELSE IF Grooving? StockOn SetPass1 SeqLabC StrtPos EOL ToolPath END END END END ELSE StockOn SetPass1 ToolPath IF AutoFinish? IF NOT Drilling? AND NOT Grooving? StockOff IF Turning? SetPass1 ELSE SetPass2 END SeqLabC FeedC ' G94' StrtPos RapidF EOL ToolPath END END IF Drilling? AND Tap? SeqLabC SpinOff EOL SeqLabC ' G4 P2000' EOL SeqLabC Speed SpinOn EOL END END NEXTOp StockOff FeedC ' G94' IF ApproachOD? SeqLabC XCPC RapidF EOL ELSE IF ApproachID? SeqLabC XOpECDC RapidF EOL END END SeqLabC ZCPC RapidF EOL DoEndOpPS SeqLabC CoolOff EOL IF ConstantSurfaceFeed? SeqLabC CSSOff ' G97 S' CalcEPRPM# EOL END SeqLabC FirstHome ' T0' ProgStop EOL SeqLabC EOP EOL EOR EOL Post Close ReTag IF UseComments? SetScale('1') 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