{9/30/90 Copied & modified: GE550 HNC L003.52 For: Geneva Steel Machine: Lodge & Shippley Control: General Electric Mark Century 550 TX Optimizer II. WFG}
{10/2/90 Modified: GE 550 L&S L184.52 Added polarity to all current X and Z output in the prog and form. Moved 'G94' at all SpeedGE commands to preceeding line. Added 'G97' at all SpeedGE commands. DWB}
{10/19/90 Modified: GE 550 L&S L184.52.1 Modified ThreadLead format to ^#####0 in the form. Modified ArcIJC format to ##^###0 in the form. Modified so that 'G94' and 'G95' are on a line by themselves. DWB}
{10/24/90 Modified: GE 550 L&S L184.52.2 Added ReverseXZArcs - lathe is similar to Allen Bradley 7360 [ Sheldon ]. DWB}
{11/20/90 Modified: GE 550 L&S L184.52.3 Updated to Version 3.2 per Fanuc 10T MS [-] L001.71.4 Format. Modified ArcIJC format to 0^#### in the form. Modified ThreadLead format to 0^#### in the form. Added GearRange. NOTE: Will need GE commands for InverseSpinOn, CalcRPM1, CalcRPM2 and CalcEPRPM#. DWB}
{7/15/91 Modified: GE 550 L&S L184.71.4 For: Geneva Steel Updated to Version 4.0 per Fanuc 10T MS [-] L001.80 Format. Made modifications per Dan Baxter at Geneva Steel. Rapid outputs 'G94' to set control into ipm, Feed outputs 'G95' to set control into ipr. 'G01' is only output on line before Approach sub call in FirstOperation and NewTool, and to cancel 'G02/G03', Thread Cycle and Canned Drill Cycles. Only Canned Cycles supported are Threading and Tapping. Added Logic to output InverseSpinOn to SpinOnGE equivalents. Following modifications made per Dan Baxter at Geneva Steel: Added 'G97S0100' on line following OpToolID LatheOffset at FirstOperation and NewTool. Moved CSSOn output to FirstOperation and NewTool. Changed FeedRate to 'F005' in Approach sub. Changed FORMAT for I & K Arc Center addresses from '0^####;0' to '0##^####;0' in Form. DWB}
{9/25/91 Modified: GE 550 L&S L184.80 For: Gibbs & Associates Updated to Version 4.1 per Fanuc 10T MS [-] L001.82 Format. DWB}
{4/23/92 Modified: GE 550 L&S L184.82 For: Geneva Steel Changes made per Dan Baxter. Changed remaining SeqLabC to SeqC leftover from last UpDate. Changed CWArcC/CCWArcC to CWArc/CCWArc for unconditionality. Added literal Dwell 'G04X002' to OpToolID LatheOffset at FirstOperation and NewTool. Moved SpinOnGE from the OpToolID LatheOffset line to G96 line. Added Speed to G96 line. KLM}
{5/26/92 Modified: GE 550 L&S L184.82.1 For: Geneva Steel Changes made per Dan Baxter. Moved CoolOn from SpinOnGE line. Can't have two M-codes on the same line. Deleted AbsOrInc from OpToolID LatheOffset at FirstOperation and NewTool. KLM}
{10/15/92 Modified: GE 550 L&S L184.82.2 For: Geneva Steel Changes made per Dan Baxter. Moved literal Dwell 'G04X002' in front of OpToolID LatheOffset at FirstOperation. NewTool already had this. DWB}
{2/25/94 Modified: GE 550 L&S L184.82.3 For Geneva Steel per Dan Baxter CSS operations were missing the SpinOnGE command, added it. Deleted the M44 & M43 command usage. Using InverseSpinOn only. Added 40 spaces in front of all comments to place in center of page. Modified GearRange speed values, M11 = 0->500; M12 = 501->850; M13 = 851->1500 Changed SetMaxRPM from 1200 to 1500. Changed literal approach feed from F005 to F019. Misc update stuff. Jim Radcliffe}
{ Format: GE 7500 L&S [FC] L408.82.5 12/18/95 Moved Preset line after tool call at start of output Removed forced signs from format Set formats to match fax from Jeff Casto TH}
{11/12/97 Initial: GE 7500 L&S [FC] L408.82.5 Created: GE 7500 L&S [FC] L408.85 ForUser: FC Machine Control: GE 7500 Machine: Lodge & Shipley Develop: ComPost2 1.1b2, Virtual 4.21.12 Comment: Modified per marked up readout from Jeff Casto. Changed format for F in MachSpec from ###.##;0 to ^0### Changed format for I&K in MachSpec from 0##^####;0 to 0#^####;0 Deleted UnTool from end of program. Deleted M20 from end of program. Updated to .85 format. ** NOTE ** Processor is the same as L407.85 except for axis formats. Jim Radcliffe}
{7/31/98 Initial: GE 7500 L&S [FC] L408.85 Created: GE 7500 L&S [FC] L408.85.1 ForUser: FC Machine Develop: ComPost2 1.1b3, Virtual Gibbs 4.24 Comment: Modified formats per fax from John Hartge Changed default format N from '0000' to '000'. Changed default format T from '00' to '0'. Changed two second dwell on tool call lines from 'G04X002' to 'G04X02'. Jim Radcliffe}
{Prog Numeric Format Definitions *******************************************}
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? ' ( 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 RestoreScale END RETURN
Approach: { NOT FOR TAILSTOCK, .82 } IF ApproachOD? SeqC ThisOpEntryXCP ThisOpEntryZCP EOL ODApproachSP ELSE IF ApproachID? SeqC XOpCD ThisOpEntryZCP EOL IDApproachSP ELSE {ApproachFace} SeqC StockOnNoCan XSP StockOff ThisOpEntryZCP EOL FaceApproachSP END END RETURN
CheckOffset: DoEndOpPS IF LAST ProgStop? SeqC 'M00' EOL ELSE IF NewGear? SeqC SpinOff EOL END IF CoolOff? AND LAST NOT CoolOff? SeqC CoolOff EOL END END IF NewToolOffset? SeqC LOfstOff '00' EOL SeqC OpToolID LatheOffset EOL END IF NewGear? SeqC GearRange EOL END IF ConstantSurfaceFeed? IF LAST ConstantSurfaceFeed? IF NotEqual? MaxRPM# LAST MaxRPM# SeqC 'G98' MaxRPM EOL END SeqC SpeedC ELSE SeqC 'G98' MaxRPM EOL SeqC CSSOn 'G96' 'R' CycleStartX# Speed END ELSE IF LAST ConstantSurfaceFeed? SeqC CSSOff 'G97' Speed END SeqC SpeedC END END IF LAST ProgStop? SpinOnGE EOL SeqC CoolOn EOL ELSE IF NewGear? SpinOnGE EOL ELSE EOL END IF NOT CoolOff? AND LAST CoolOff? SeqC CoolOn EOL END END DoPostScript RETURN
FormatArc: IF ArcCW? CWArc ELSE CCWArc END MoveXC MoveZC ArcIJC RETURN
CkCRC: { 4.2 } IF XMove? OR ZMove? { Approach Length Feature and Multiple Pockets } CRCOnC END IF LastFeat? AND EmptyLine? { Exit Length Feature } CRCOffC END RETURN
ToolPath: EACHFeat GetToolTip IF LastFeat? IF Drilling? IF Tap? SeqC SpinOff EOL SeqC 'G04X2000' EOL SeqC Speed InverseSpinOn EOL ELSE IF Dwell? SeqC 'G04X' Dwell# EOL END END END END IF PointFeat? SeqC MoveSXYC EOL ELSE IF RapidFeat? IF NOT Rapid? SeqC RapidC EOL IF NOT FirstFeat? IF LAST ArcFeat? OR LAST ThreadFeat? 'G01' ELSE IF LastFeat? AND Drilling? IF Dwell? 'G01' END END END END SeqC MoveXC MoveZC RapidF EOL ELSE IF NOT FirstFeat? IF LAST ArcFeat? 'G01' ELSE IF LastFeat? AND Drilling? IF Dwell? 'G01' END END END END SeqC MoveXC MoveZC RapidFC EOL END ELSE IF LineFeat? IF Rapid? SeqC FeedC EOL END SeqC CkCRC EOL IF NOT FirstFeat? IF LAST ArcFeat? 'G01' ELSE IF LastFeat? AND Drilling? IF Tap? OR Dwell? 'G01' END END END END SeqC MoveXC MoveZC FeedRateC EOL ELSE IF ArcFeat? IF Rapid? SeqC FeedC EOL END EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop } SeqC FormatArc FeedRateC EOL NEXTQuadrant ELSE IF ThreadFeat? SeqC FeedC EOL SeqC 'G33' MoveXC MoveZC ThrdLead EOL END END END END END NEXTFeat RETURN
CheckRapid1: SeqC CRCOffC EOL IF LAST NOT CannedCycle? SeqC RapidC EOL END RETURN
CheckRapid2: SeqC CRCOffC EOL IF NOT CannedCycle? SeqC RapidC EOL END RETURN
CheckRapidF1: IF LAST NOT CannedCycle? RapidFC END RETURN
CheckRapidF2: IF NOT CannedCycle? RapidFC END RETURN
{Start of executable Prog **************************************************}
{setup and initializations} InitProg SetAbs PosSideLathe ReverseXZArcs XsAreRadii NoIJKSigns SetMaxRPM('1500') 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 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 ABSOLUTE INCHES )' EOL END END RestoreScale OpenSub StockOff {.71.2} SetHome DoOpComments DoPostScript Plane ':' EOL Seq AbsValue EOL ':' EOL SeqC 'G04X02' OpToolID LatheOffset EOL SeqC Preset Home GearRange EOL SeqC 'G97S0100' EOL SeqC Rapid EOL IF ConstantSurfaceFeed? SeqC 'G98' MaxRPM EOL SeqC CSSOn 'G96' 'R' HomeX# Speed SpinOnGE EOL ELSE SeqC CSSOff 'G97' Speed SpinOnGE EOL END SeqC CoolOn EOL SeqC 'G01' Home RapidF EOL Approach ELSE IF NewTool?
{Finish off last Operation}
StockOff {.62} CheckRapid1 IF LAST ApproachOD? SeqC LAST OpExitXCPC CheckRapidF1 EOL SeqC LAST OpExitZCPC EOL ELSE IF LAST ApproachID? SeqC LAST XOpECDC CheckRapidF1 EOL SeqC LAST OpExitZCPC EOL ELSE {LAST ApproachFace} SeqC LAST OpExitZCPC CheckRapidF1 EOL END END DoEndOpPS SeqC NewHome EOL SeqC OfstOff IF LAST ProgStop? 'M00' ELSE ProgStop END EOL SeqC 'G01' NewHome EOL
DoOpComments StockOff IF LAST StraightConnect? CheckOffset CheckRapid1 SeqC StockOnNoCan XSPC ZSPC CheckRapidF1 EOL ELSE CheckRapid1 IF ApproachOD? IF LAST ApproachOD? SeqC LAST XOpECDC CheckRapidF1 EOL ELSE {around} IF LAST ApproachID? SeqC LAST XOpECDC CheckRapidF1 EOL SeqC LAST OpExitZCPC EOL ELSE {LAST ApproachFace} SeqC LAST OpExitZCPC CheckRapidF1 EOL END SeqC LAST OpExitXCPC EOL END CheckOffset ODApproachSP ELSE IF ApproachID? IF LAST ApproachID? SeqC LAST XOpECDC CheckRapidF1 EOL ELSE IF LAST ApproachOD? {around} SeqC LAST OpExitXCPC CheckRapidF1 EOL SeqC LAST OpExitZCPC EOL ELSE {LAST ApproachFace} SeqC LAST OpExitZCPC CheckRapidF1 EOL END SeqC XOpCDC EOL END CheckOffset IDApproachSP ELSE {ApproachFace} IF LAST ApproachFace? SeqC LAST ZOpECPC CheckRapidF1 EOL ELSE IF LAST ApproachOD? {around} SeqC LAST OpExitXCPC CheckRapidF1 EOL ELSE {LAST ApproachID} SeqC LAST XOpECDC CheckRapidF1 EOL END SeqC LAST OpExitZCPC 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? SeqC 'X' ADD# FinishXRadius# MUL# Taper# NumSc#('1') EOL SeqC Feed EOL SeqC LCycle 'X' FinishXRadius# FinZ ThrdLead EOL ELSE SeqC 'X' FinishXRadius# EOL SeqC Feed EOL SeqC LCycle FinZ ThrdLead EOL END SeqC Rapid EOL SeqC 'G01' XCSP RapidF EOL SeqC ZCSP EOL END ELSE IF Drilling? IF Tap? SeqC LCycle ZDepth 'K' FeedIPR# EOL SeqC SpinOff EOL SeqC 'G04X2000' EOL SeqC Speed InverseSpinOn EOL SeqC 'G01' EOL SeqC LCycle ZSP 'K' FeedIPR# EOL END END END ELSE StockOn SetPass1 ToolPath IF AutoFinish? IF NOT Drilling? AND NOT Grooving? StockOff IF Turning? SetPass1 ELSE SetPass2 END SeqC RapidC EOL SeqC StrtPos RapidFC EOL ToolPath END END END IF Drilling? AND Tap? SeqC SpinOff EOL SeqC 'G04X2000' EOL SeqC Speed SpinOnGE EOL SeqC Rapid EOL SeqC 'G01' ZCPC RapidF EOL END NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{finish last operation} StockOff CheckRapid2 IF ApproachOD? SeqC OpExitXCPC CheckRapidF2 EOL SeqC OpExitZCPC EOL ELSE IF ApproachID? SeqC XOpECDC CheckRapidF2 EOL SeqC OpExitZCPC EOL ELSE {ApproachFace} SeqC OpExitZCPC CheckRapidF2 EOL END END DoEndOpPS SeqC CoolOff EOL SeqC FirstHome SpinOff EOL SeqC OfstOff 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? ' ( FILE LENGTH: ' FileBytes# ' CHARACTERS )' EOL END IF FileFeetComment? ' ( FILE LENGTH: ' FileFeet# ' FEET )' EOL END IF FileMetersComment? ' ( FILE LENGTH: ' FileMeters# ' METERS )' EOL END Close END