plik


{Change Comments ***********************************************************} {6/14/95, Updated for Catalyst v2.20 per Fanuc 10T MS [-] L001.85 Format, DWB} {7/18/95, Added IF NOT LastFeat? at CkCRC sub, DWB} {8/26/95, L001.85.01.01, Changed ToolAngle to 'A' InFeedAngle#, JR} {6/18/96, rewrote CheckOffset to clean up and correct Speed bug, JR} {8/20/96, fixed output of Rapid after ThreadFeat, JR} {Date Initial: Fanuc 10T MS [-] L001.85.01.02 Created: GE 1050T W&S 1SC L587.85 ForUser: Braden Engineering / Ramsey Winch Control: GE 1050T Machine: W&S 1SC Develop: ComPost2 68K 1.0b11, Virtual Gibbs 3.35 PPC Comment: New processor per sample program and copy of some manual pages. Jim Radcliffe} {Prog Numeric Format Definitions *******************************************} #1 = '#.00' #2 = '0#^####' #3 = '#######0' #4 = '0' #5 = '0^#####' FORMAT(FileFeet#,1) FORMAT(FileMeters#,1) FORMAT(CycleStartX#,2) FORMAT(Dwell#,2) FORMAT(Operation#,3) {.72} FORMAT(Tool#,3) {.72} FORMAT(RapidF#,4) FORMAT(MUL#,5) {Special Command Subroutines ***********************************************} M80: { Called on Rapid blocks } IF Flag?('1') { We are already in M80 Rapid } ELSE IF NOT EmptyLine? 'M80' { Set for Rapid moves } SetFlag('1') END END RETURN M81: { Called on Feed blocks } IF Flag?('1') IF NOT EmptyLine? 'M81' { Set for Feed moves } SetFlagF('1') END ELSE { We are already in M81 Feed } END RETURN ckRapidF: IF NOT EmptyLine? RapidF M80 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 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 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 FeedNoCan: IF NOT CannedCycle? FeedC END RETURN FeedRateNoCan: IF NOT CannedCycle? FeedRateC END RETURN ApproachSP: IF ApproachFace? SeqC StockOnNoCan XSPC ckRapidF EOL SeqC StockOff ZOpCPC ckRapidF EOL StockOnNoCan IF NotEqual? CycleStartZ# ZOpCP# SeqC FeedNoCan ZSPC FeedRateNoCan EOL END ELSE { ODApproach/IDApproach } SeqC StockOnNoCan ZSPC ckRapidF EOL SeqC StockOff XOpCDC ckRapidF EOL StockOnNoCan IF NotEqual? CycleStartX# XOpCD# SeqC FeedNoCan XSPC FeedRateNoCan EOL END END RETURN AppMove: StockOff ThisOpEntryZCP RETURN Approach: { NOT FOR TAILSTOCK, .82 } IF ApproachOD? SeqC Rapid ThisOpEntryXCP AppMove ckRapidF EOL ELSE IF ApproachID? SeqC Rapid XOpCD AppMove ckRapidF EOL ELSE {ApproachFace} SeqC Rapid StockOnNoCan XSP AppMove ckRapidF EOL END END ApproachSP RETURN CheckOffset: IF NewToolOffset? SeqC 'T0' EOL END DoEndOpPS IF LAST ProgStop? SeqC 'M0' EOL ELSE IF CoolOff? AND LAST NOT CoolOff? SeqC CoolOff EOL END END DoOpComments DoPostScript IF ConstantSurfaceFeed? IF LAST ConstantSurfaceFeed? IF NotEqual? MaxRPM# LAST MaxRPM# SeqC Preset MaxRPM EOL END ELSE SeqC Preset MaxRPM EOL END END SeqC IF ConstantSurfaceFeed? IF LAST ConstantSurfaceFeed? IF NotEqual? SpeedRPM# LAST SpeedRPM# Speed END ELSE CSSOn 'G96R' CycleStartX# Speed END ELSE IF LAST ConstantSurfaceFeed? CSSOff 'G97' Speed ELSE IF NotEqual? SpeedRPM# LAST SpeedRPM# Speed END END END IF LAST ProgStop? SpinOn END EOL SeqC IF NewToolOffset? OpToolID LatheOffset END IF LAST ProgStop? CoolOn ELSE IF NOT CoolOff? AND LAST CoolOff? CoolOn END END EOL RETURN FormatArc: IF ArcCW? CWArcC ELSE CCWArcC END MoveXC MoveZC IF ArcIJFormat? ArcIJC ELSE ArcRC END RETURN CkCRC: { 4.2 } IF XMove? OR ZMove? { Approach Length Feature and Multiple Pockets } IF NOT LastFeat? CRCOnC END END IF LastFeat? AND EmptyLine? { Exit Length Feature } CRCOffC END RETURN ToolPath: EACHFeat GetToolTip IF LastFeat? IF Drilling? IF Tap? SeqC SpinOff EOL SeqC 'G04X02' EOL SeqC Speed InverseSpinOn EOL ELSE IF Dwell? SeqC 'G04X' Dwell# EOL END END ELSE IF CannedCycle? Seq END END END IF PointFeat? SeqC MoveSXYC EOL ELSE IF RapidFeat? SeqC IF LAST ThreadFeat? Rapid ELSE RapidC END MoveXC MoveZC ckRapidF EOL ELSE IF LineFeat? SeqC CkCRC FeedC MoveXC MoveZC FeedRateC M81 EOL ELSE IF ArcFeat? EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop } SeqC FormatArc FeedRateC M81 EOL NEXTQuadrant ELSE IF ThreadFeat? SeqC 'G33' IF XMove? AND ZMove? MoveXC MoveZC 'I' MUL# DIV# ABS# SUB# SPX# EPX# ABS# SUB# SPZ# EPZ# FeedIPR# ELSE MoveXC MoveZC END ThrdLead M81 EOL END END END END END NEXTFeat RETURN CheckRapid: CRCOffC IF LAST CannedCycle? Rapid ELSE IF LAST Threading? Rapid ELSE RapidC END END RETURN {Start of executable Prog **************************************************} {setup and initializations} InitProg SetAbs PosSideLathe XsAreRadii StandardXZArcs NoIJKSigns SetFlagF('1') { M80/M81 true = M80 CSS Inhibit } 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? IF UseComments? IF ProgramNameComment? '( ' 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 Plane SetFlagF('1') DoOpComments DoPostScript Seq Preset Home MaxRPM EOL IF ConstantSurfaceFeed? SeqC CSSOn 'G96' Speed 'R' CycleStartX# SpinOn EOL ELSE SeqC CSSOff 'G97' Speed SpinOn EOL END SeqC AbsValue OpToolID LatheOffset CoolOn EOL SeqC 'G95' M80 EOL Approach ELSE IF NewTool? {Finish off last Operation} StockOff {.62} CheckRapid IF LAST ApproachOD? SeqC LAST OpExitXCPC ckRapidF EOL ELSE IF LAST ApproachID? SeqC LAST XOpECDC ckRapidF EOL END END SeqC LAST OpExitZCPC ckRapidF EOL SeqC NewHome ckRapidF CoolOff EOL SeqC 'T0' EOL DoEndOpPS IF LAST ProgStop? SeqC 'M0' EOL ELSE SeqC ProgStop EOL END {Start new Operation} SetFlagF('1') DoOpComments DoPostScript Seq Preset Home MaxRPM EOL IF ConstantSurfaceFeed? SeqC CSSOn 'G96R' CycleStartX# Speed SpinOn EOL ELSE SeqC CSSOff 'G97' Speed SpinOn EOL END SeqC AbsValue OpToolID LatheOffset CoolOn EOL SeqC 'G95' M80 EOL Approach ELSE IF SameTool? {.62} {Start new Operation} StockOff IF LAST StraightConnect? CheckOffset CheckRapid SeqC StockOnNoCan XSPC ZSPC ckRapidF EOL ELSE CheckRapid IF ApproachOD? IF LAST ApproachOD? SeqC LAST XOpECDC ckRapidF EOL ELSE {around} IF LAST ApproachID? SeqC LAST XOpECDC ckRapidF EOL END SeqC LAST OpExitZCPC ckRapidF EOL SeqC LAST OpExitXCPC ckRapidF EOL END ELSE IF ApproachID? IF LAST ApproachID? SeqC LAST XOpECDC ckRapidF EOL ELSE IF LAST ApproachOD? {around} SeqC LAST OpExitXCPC ckRapidF EOL END SeqC LAST OpExitZCPC ckRapidF EOL SeqC XOpCDC ckRapidF EOL END ELSE {ApproachFace} IF LAST ApproachFace? SeqC LAST ZOpECPC ckRapidF EOL ELSE IF LAST ApproachOD? {around} SeqC LAST OpExitXCPC ckRapidF EOL ELSE {LAST ApproachID} SeqC LAST XOpECDC ckRapidF EOL END SeqC LAST OpExitZCPC ckRapidF EOL END END END CheckOffset ApproachSP END END END END {common point for all operations} IF ConstantSurfaceFeed? IF SameTool? IF LAST ConstantSurfaceFeed? IF NotEqual? SpeedRPM# LAST SpeedRPM# SeqC 'R' CycleStartX# M81 EOL END ELSE SeqC 'R' CycleStartX# M81 EOL END ELSE SeqC 'R' CycleStartX# M81 EOL END END IF CannedCycle? { There are no canned cycles in the MachSpec! } ELSE StockOn SetPass1 ToolPath IF AutoFinish? { .82.1c } StockOff IF Turning? IF ApproachFace? SeqC RapidC ZOpECPC ckRapidF EOL ELSE SeqC RapidC XOpECDC ckRapidF EOL END ApproachSP SeqC StockOff StrtPosC EOL ToolPath ELSE IF Roughing? AND NOT RoughSimple? SetPass2 SeqC RapidC XSPC ZSPC ckRapidF EOL SeqC StockOff StrtPosC EOL ToolPath SetPass1 ELSE IF Threading? SeqC Rapid 'X' ADD# FinishXRadius# Taper# ckRapidF EOL SeqC 'G33' IF Taper? XatFinZ END FinZ ThrdLead M81 EOL SeqC Rapid XSP ckRapidF EOL SeqC ZSP ckRapidF EOL END END END END END IF Drilling? AND Tap? SeqC SpinOff EOL SeqC 'G04X02' EOL SeqC Speed SpinOn EOL END NextOp {loops back to EachOP until last Operation} {End of program ************************************************************} {finish last operation} StockOff CRCOffC IF CannedCycle? Rapid ELSE IF Threading? Rapid ELSE RapidC END END IF ApproachOD? SeqC OpExitXCPC ckRapidF EOL ELSE IF ApproachID? SeqC XOpECDC ckRapidF EOL END END SeqC OpExitZCPC ckRapidF EOL SeqC FirstHome ckRapidF CoolOff EOL SeqC 'T0' SpinOff EOL DoEndOpPS SeqC EOP EOL Post IF UseComments? SetScale('1') {restore scale for comments} IF FileBytesComment? '( FILE LENGTH: ' FileBytes# ' CHARACTERS )' EOL END IF FileFeetComment? '( FILE LENGTH: ' FileFeet# ' FEET )' EOL END IF FileMetersComment? '( FILE LENGTH: ' FileMeters# ' METERS )' EOL END END Close

Wyszukiwarka

Podobne podstrony:
GE 1050T LeBlonde L105 85 1
GE 1050T [GT] Baron L591 85
GE 1050T LB Kngt [GH] L691 85 2
GE 1050T LB Rgl [GH] L690 85 1
GE 1050T W&S 242 [HP] L401 85
GE 1050T W&S 242 VFR L284 85 1
W&S 2SC GE 2000 [BD4] L773 85 1
GE 1050T LeBlonde [CM] L249 82
GE 1050T (R&M) L151 82
GE 1050T Monarch L074 82
GE 550 L&S [FC] L407 85
GE 1050T Farrel L311 82 3
GE 1050T Farrel L311 82 3
GE 1050T (T&CSD) L136 82
GE 7500 L&S [FC] L408 85 1
GE 550 HNC L003 85
GE 1054T G&L VTL L595 85 1

więcej podobnych podstron