{
MILL=F
LATHE=T
SIMPLE_ROT_POS=F
ROTARY_MILL=F
ADV_MILL=F
SUBS=F
MILLTURN_POLAR-SEG=F
MILLTURN_Y-AXIS=F
METRIC=F
}
{Change Comments ***********************************************************}
{7/18/90
Copied & modified: Fanuc 10T MS [+] L004.69.7
For: Viratec
Machine: Mori Seiki TL40
Control: Fanuc 15TF
Deleted 'Preset Home' at FirstOperation and NewTool.
Moved OpToolID LatheOffset from Approach sub to FirstOperation and NewTool.
Added GearRange.
Cancel Tool Offset on line by itself after move to index position.
JR}
{7/24/90, Added InitProg globally to posts with this remark, DWB}
{9/25/90, Updated to Version 3.2 per Fanuc 10T MS [-] L001.71.1 Format, DWB}
{10/2/90, Added StockOff globally at FirstOperation, DWB}
{10/8/90, Replace CalcRPM2 globally with CalcEPRPM# at end of prog, DWB}
{3/28/91
Modified: Fanuc 15T MS (+) L166.71.3
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 10T MS [-] L001.80 Format.
All normal Fanuc Canned Cycles are supported.
DWB}
{08/05/91
Updated: Fanuc 15T MS (+) L166.80
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 6M M001.82 Format.
Kim Michelman}
{2/27/94
Copied & modified:Fanuc 15T MS (+) L166.82
For: Allenair Corp.
Updated per Fanuc 10T MS [-] L001.82§
Added Rapid to tool call line.
Deleted GearRange.
Added spaces between codes.
Changed G & M codes to show leading zeros.
Changed MachSpec to use R format arcs.
Deleted DrillOff and RLevel in Drilling.
Changed StrtPos to StrtPosC in CannedCycle Roughing.
Changed Home commands for index position to ' G30 P2 U0. W0.', moved to after tool cancel line!
Added CoolOff to tool cancel line.
Changed Dwell commands in the prog to use a U, with decimal point, instead of P.
Changed E to F for thread lead command.
Deleted literal dwell from tapping cycle.
Added Bar feed and Parts catcher option.
Jim Radcliffe}
{8/26/95, Updated Fanuc 15T MS SL25B[AA] L306.82 to .85 format per Fanuc 10T MS [-] L001.85.01.01, JR}
{27Jul98
Original: Fanuc 15T MS SL25B[AA] L306.85
Created: Fanuc 15T Dianichi CGB L754.85
CNC: Dianichi
For: C.G.Bretting Mfg
Changes made per: Gerry Beebe
Added Format#8 at Prog Numeric Format Definitions
Moved ToolComment to FirstOperation and NewTool
Modified Post for Tailstock Approach
Modified CheckOffset, FirstOperation and NewTool for GearRange
Added GearTable Resource in MachSpec
Modified FirstOperation and NewTool per Customer FAX and Conversations with Gerry Beebe
Added Rapid ' X' NewHomeX# CoolOff at Finish off last Operation.
Deleted CSS Boolean at the Common Point
Added a leading space to all codes
Split the StartPos line in RoughContour and RoughPatternShift Cycles into two lines
Modified Threading Canned Cycle per customers FAX
Deleted Literal ' G30 P2 U0. W0.' and replaced with FirstHome at End of Prog.
Charles Winston}
{5Aug98
Original: Fanuc 15T Dianichi CGB L754.85
Created: Fanuc 15T Dianichi CGB L754.85.1
For: C.G.Bretting Mfg
Changes made per: Gerry Beebe
Added Format#9 at Prog Numeric Format Definitions and added Formatting for Tool#
Added Booleans in ApproachSP to suppress ZSPC move when CannedCycle? or OptCyc1 is TRUE
Added Custom Line Numbering for Tools. ( Maximum of 40 Tools )
Added Booleans to output Block Deletes in NewTool, SameTool and End of Prog
Moved CRCOn to Approach and Deleted CkCRC Sub
Added OptCyc1? to CannedCycle Boolean in ToolPath
Added OptCyc1F in DoPostScript
Deleted CkCRC from Toolpath and CheckRapid Subs
Added G70 Finish Turn Cycle in the Common Point,when NOT Canned, Using OptCyc1
Added Utility Data Instructions at InitProg.
Moved CoolOn from AppMove in Approach
Added a Dwell line in Toolpath, when doing Plunge Grooving.
Added NewTool style of Home positioning at SameTool.
NOTE:
The customer would like the capability of returning to Home in a 'Same Tool' situation when LAST ProgStop?=TRUE.
This can occur only IF LAST ToolChangeAtHome?=TRUE
Rewrote CheckOffset to accomodate.
Charles Winston}
{18Sep98
Original: Fanuc 15T Dianichi CGB L754.85.1
Created: Fanuc 15T Dianichi CGB L754.85.2
For: C.G.Bretting Mfg
Changes made per: Gerry Beebe
Added Post Header Comment at the top of Prog.
Deleted old version numbers and comments e.g. {.62}, {commands}, {literals}, etc
Added OptCyc1 Boolean in ApproachSP to suppress XOpCD# in G70 Finish Pass
Deleted BarFeed and PartsCatcher Subs and Calls
Added CutOff Boolean to suppress M99 Progstop when Grooving.
Changed '/1 M99' to "/ M99" in NewTool, SameTool and End of Prog
Moved Progstop after FurstHome move at End of Prog
Charles Winston}
{18Sep98
Original: Fanuc 15T Dianichi CGB L754.85.2
Created: Fanuc16T Mon 220 CGB L775.85
For: C.G.Bretting Mfg
Changes made per: Gerry Beebe
Changed Gear Table to M51 thru M54 in MachSpec
Charged Turning Pass G90 to G77 in MachSpec
Charged Face Pass G94 to G79 in MachSpec
Charged Preset from G50 to G92 in MachSpec
Charles Winston}
{19Feb99
Original: Fanuc16T Mon 220 CGB L775.85
Created: Fanuc16T Mon 220 CGB L775.85.1
For: C.G.Bretting Mfg
Changes made per: Gerry Beebe
Develop: Catalyst 5.03/ComPost2 1.7b15
Updated Post Header Comment at the top of Prog.
Added Formatting for CutDepth# and Pallet# in Prog Numeric Format Definitions
Modified 'G70' Finish-Turn Cycle, at the Common Point. Command now uses PostScript PIN Commands
and outputs a finish cycle using the original P and Q values in the matching Roughing Cycle.
The Finish Pass allows the use of different tool from the Roughing Cycle. See Utility data for further details.
Added PalletInF and SetPalletIn('999') at PSInit.
Changed LOfstOff '00' to ' T0000' in CheckOffset and NewTool.
Modified the Logic in ToolPath to suppress the last move of a Canned Cycle.
Added Code to store Zero in variables 51 thru 59 ( Initialise variables for G70 Finish Pass )
Added a Blank line before all ToolChanges.
and moved the ToolComment up onto the Tool Line in FirstOperation and NewTool.
Added the logic for ProgStop at NewTool, Finish off last Operation, when the previous Op was a CutOFF.
Deleted CSS Boolean at End of Prog.
Added a Blank Line after the ProgStop at End of Prog.
Added Utility Data Instructions at InitProg.
Charles Winston}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '###.####;0.'
#3 = '#######0'
#4 = '###.###;0.'
#5 = '#.######;0.'
#6 = '###0'
#7 = '#'
#8 = '###.##0;0.'
#9= '#00'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(MUL#,2) { Non-Canned Threading AutoFinish }
FORMAT(InFeedAngle#,2)
FORMAT(FirstMoveEPZ#,2)
FORMAT(ADD#,2)
FORMAT(SPX#,2)
FORMAT(SPZ#,2)
FORMAT(NewHomeX#,2)
FORMAT(NewHomeZ#,2)
FORMAT(Program#,3) {.72}
FORMAT(Recall#,3)
FORMAT(Operation#,3) {.72}
FORMAT(Tool#,3) {.72}
FORMAT(Dwell#,4) {.72}
FORMAT(CutDepth#,4)
FORMAT(FeedIPR#,5)
FORMAT(CalcEPRPM#,6)
FORMAT(Pallet#,6)
FORMAT(RapidF#,7)
FORMAT(FeedContour#,8)
FORMAT(Tool#,9)
{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?
IF NOT SameTool?
'( ' OperationComment$ ' )' EOL
END
END
IF WorkGroupComment?
'( ' WorkGroupComment$ ' )' EOL
END
IF ToolTypeComment?
'( TOOL ' Tool# ': ' ToolSize$ ' ' ToolType$ ' )' EOL
END
RestoreScale
END
RETURN
PSInit: {reset flags from last Op, .70}
PalletInF
SetPalletIn('999')
RETURN
PSStuff:
RETURN
DoPostScript:
PSInit
OptCyc1F
EachPS
SeqLabC PostScript EOL
PSStuff
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqLabC EndOpPS EOL
PSStuff
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?
SeqLabC StockOnNoCan XSPC EOL
SeqLabC StockOff ZOpCPC EOL
StockOnNoCan
IF NotEqual? CycleStartZ# ZOpCP#
SeqLabC FeedNoCan ZSPC FeedRateNoCan EOL
END
ELSE { ODApproach/IDApproach }
{ The following move is suppressed if CannedCycle? is TRUE, OR OptCyc1? is TRUE }
{ However the move is NOT suppressed if Threading? is TRUE }
IF CannedCycle? OR OptCyc1?
IF Threading?
SeqLabC StockOnNoCan ZSPC EOL
ELSE
TrackZNO# SPZ#
END
ELSE
SeqLabC StockOnNoCan ZSPC EOL
END
SeqLabC StockOff XOpCDC EOL
StockOnNoCan
IF OptCyc1? { Suppress the move in G70 Cycle }
ELSE
IF NotEqual? CycleStartX# XOpCD#
SeqLabC FeedNoCan XSPC FeedRateNoCan EOL
END
END
END
RETURN
AppMove:
StockOff ThisOpEntryZCP
RETURN
Approach: { MODIFIED FOR TAILSTOCK, 20Jul98 - CW }
Rapid RapidF# { RapidF# Forces FeedRate }
IF ApproachOD?
SeqLabC AppMove EOL
SeqLabC CRCOnC ThisOpEntryXCP CoolOn EOL
ELSE
IF ApproachID?
SeqLabC AppMove EOL
SeqLabC CRCOnC XOpCD CoolOn EOL
ELSE {ApproachFace}
SeqLabC AppMove EOL
SeqLabC StockOnNoCan CRCOnC XSP CoolOn EOL
END
END
ApproachSP
RETURN
CheckOffset: {with gear ranges} { See note at the start of SameTool. CW. }
DoEndOpPS
IF LAST ProgStop?
SeqLabC ' M00' EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqLabC CoolOff EOL
END
END
IF NewToolOffset?
SeqLabC ' T0000' EOL
SeqLabC Rapid OpToolID LatheOffset EOL
END
IF ConstantSurfaceFeed?
IF NotEqual? MaxRPM# LAST MaxRPM#
SeqLabC Preset MaxRPM EOL
END
IF NewGear?
IF LAST ProgStop?
ELSE
SeqLabC SpinOff EOL
END
SeqLabC GearRange EOL
SeqLabC CSSOn ' G96' Speed SpinOn EOL
END
ELSE
IF LAST ConstantSurfaceFeed?
SeqLabC CSSOff ' G97' Speed EOL
SeqLabC SpeedC EOL
END
END
DoPostScript
RETURN
FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXC MoveZC
IF ArcIJFormat?
ArcIJC
ELSE
ArcRC
END
RETURN
CkCRC:
{ Not Supported }
RETURN
ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
IF Drilling?
IF Tap?
SeqLabC SpinOff EOL
SeqLabC Speed InverseSpinOn EOL
ELSE
IF Dwell?
SeqLabC ' G04 U' Dwell# EOL
END
END
END
END
IF PointFeat?
SeqLabC MoveSXYC EOL
ELSE
IF RapidFeat?
SeqLabC RapidC MoveXC MoveZC EOL
ELSE
IF NOT LastFeat? AND NEXT LastFeat? AND CannedCycle?
SeqLab
END
IF LineFeat?
IF LastFeat? AND CannedCycle?
ELSE
SeqLabC FeedC MoveXC MoveZC FeedRateC EOL
END
IF FirstFeat? AND RoughPlunge? AND NOT CannedCycle?
SeqLabC ' G4 U.75' EOL
END
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 ' G32' MoveXC MoveZC ThrdLead EOL
Rapid
END
END
END
END
END
NEXTFeat
RETURN
CheckRapid:
IF LAST CannedCycle?
Rapid
ELSE
RapidC
END
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
SetAbs
PosSideLathe
SetMaxRPM('3000')
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
' ' EOL
' Using the The PIN(x) command.' EOL
' The PIN(x) command must be entered in the Utility Data - At Op Start BOX' EOL
' in two seperate places. Once for a Roughing Operation and once for a finish pass.' EOL
' The value of x must be greater than zero and less than TEN. EXAMPLE: PIN(1)' EOL
' This will cause the Post to output a G72 Finish Cycle using the same P and Q values' EOL
' As the roughing Operation.' EOL
' NOTE[1]: Each pair of Operations ( rough and finish ), must use the same PIN(x) number.' EOL
' The Pin(x) command can be used up to a maximum of nine times in each part.' EOL
' For each pair of rough and finish operations, a different PIN number must be used.' EOL
END
{Setup custom Tool Line Numbering MAX 40 Tools}
Save# Num#('1') Num#('1')
Save# Num#('2') Num#('2')
Save# Num#('3') Num#('3')
Save# Num#('4') Num#('4')
Save# Num#('5') Num#('5')
Save# Num#('6') Num#('6')
Save# Num#('7') Num#('7')
Save# Num#('8') Num#('8')
Save# Num#('9') Num#('9')
Save# Num#('10') Num#('10')
Save# Num#('11') Num#('11')
Save# Num#('12') Num#('12')
Save# Num#('13') Num#('13')
Save# Num#('14') Num#('14')
Save# Num#('15') Num#('15')
Save# Num#('16') Num#('16')
Save# Num#('17') Num#('17')
Save# Num#('18') Num#('18')
Save# Num#('19') Num#('19')
Save# Num#('20') Num#('20')
Save# Num#('21') Num#('21')
Save# Num#('22') Num#('22')
Save# Num#('23') Num#('23')
Save# Num#('24') Num#('24')
Save# Num#('25') Num#('25')
Save# Num#('26') Num#('26')
Save# Num#('27') Num#('27')
Save# Num#('28') Num#('28')
Save# Num#('29') Num#('29')
Save# Num#('30') Num#('30')
Save# Num#('31') Num#('31')
Save# Num#('32') Num#('32')
Save# Num#('33') Num#('33')
Save# Num#('34') Num#('34')
Save# Num#('35') Num#('35')
Save# Num#('36') Num#('36')
Save# Num#('37') Num#('37')
Save# Num#('38') Num#('38')
Save# Num#('39') Num#('39')
Save# Num#('40') Num#('40')
Save# Num#('51') Num#('0') { Initialise variables for G70 Finish Pass }
Save# Num#('52') Num#('0')
Save# Num#('53') Num#('0')
Save# Num#('54') Num#('0')
Save# Num#('55') Num#('0')
Save# Num#('56') Num#('0')
Save# Num#('57') Num#('0')
Save# Num#('58') Num#('0')
Save# Num#('59') Num#('0')
EachOp {Start of post processing *********************}
GetLCycle
IF FirstOperation?
EOR EOL
ProgID1
IF UseComments? AND ProgramNameComment?
'( ' ProgramName$ ' )'
END
EOL
IF UseComments?
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
IF ConstantSurfaceFeed?
SeqLabC Preset MaxRPM EOL
END
' ' EOL
Save# Tool# Add# Recall# Tool# Num#('1000')
'N' Recall# Tool# Rapid ' T' Tool# LatheOffset GearRange
IF ToolComment?
' ( ' ToolComment$ ' )'
END
EOL
Save# Num#('49') Recall# Tool#
' ' EOL
SeqLabC
IF ConstantSurfaceFeed?
CSSOn ' G96'
ELSE
CSSOff ' G97'
END
Speed SpinOn EOL
Approach
ELSE
IF NewTool?
{Finish off last Operation}
StockOff {.62}
CheckRapid
IF LAST ApproachOD?
SeqLabC LAST OpExitXCPC EOL
ELSE
IF LAST ApproachID?
SeqLabC LAST XOpECDC EOL
END
END
SeqLabC LAST OpExitZCPC EOL
DoEndOpPS
SeqLabC Rapid CRCOffC ' X' NewHomeX# CoolOff EOL
SeqLabC ' T0000' EOL
SeqLabC Rapid ' X' NewHomeX# ' Z' NewHomeZ# EOL
IF LAST Turning? OR LAST Threading?
IF LAST CutOff?
IF LAST ProgStop?
SeqLabC ' M00' EOL
' ' EOL
ELSE
SeqLabC ProgStop EOL
END
ELSE
SeqLabC ' M00' EOL
'/ M99 P' Recall# Num#('49') EOL
END
ELSE
IF LAST ProgStop?
SeqLabC ' M00' EOL
ELSE
SeqLabC ProgStop EOL
END
END
{Start new Operation}
DoOpComments
DoPostScript
IF ConstantSurfaceFeed?
SeqLabC Preset MaxRPM EOL
END
' ' EOL
Save# Tool# Add# Recall# Tool# Num#('1000')
'N' Recall# Tool# Rapid ' T' Tool# LatheOffset GearRange
IF ToolComment?
' ( ' ToolComment$ ' )'
END
EOL
Save# Num#('49') Recall# Tool#
' ' EOL
SeqLabC
IF ConstantSurfaceFeed?
CSSOn ' G96'
ELSE
CSSOff ' G97'
END
Speed SpinOn EOL
Approach
ELSE
IF SameTool? {.62}
{ The customer would like the capability of returning to Home
in a 'Same Tool' situation when LAST ProgStop?=TRUE.
This can occur only IF LAST ToolChangeAtHome?=TRUE }
IF LAST ProgStop? AND LAST ToolChangeAtHome?
{Finish off last Operation}
StockOff {.62}
CheckRapid
IF LAST ApproachOD?
SeqLabC LAST OpExitXCPC EOL
ELSE
IF LAST ApproachID?
SeqLabC LAST XOpECDC EOL
END
END
SeqLabC LAST OpExitZCPC EOL
DoEndOpPS
SeqLabC Rapid CRCOffC ' X' NewHomeX# CoolOff EOL
SeqLabC ' T0000' EOL
SeqLabC Rapid ' X' NewHomeX# ' Z' NewHomeZ# EOL
IF LAST Turning? OR LAST Threading?
IF LAST CutOff?
IF LAST ProgStop?
SeqLabC ' M00' EOL
' ' EOL
ELSE
SeqLabC ProgStop EOL
END
ELSE
SeqLabC ' M00' EOL
'/ M99 P' Recall# Num#('49') EOL
END
ELSE
IF LAST ProgStop?
SeqLabC ' M00' EOL
ELSE
SeqLabC ProgStop EOL
END
END
{Start new Operation}
DoOpComments
DoPostScript
IF ConstantSurfaceFeed?
SeqLabC Preset MaxRPM EOL
END
Save# Tool# Add# Recall# Tool# Num#('1000')
'N' Recall# Tool# Rapid ' T' Tool# LatheOffset GearRange EOL
Save# Num#('49') Recall# Tool#
' ' EOL
IF OperationComment?
'( ' OperationComment$ ' )' EOL
END
SeqLabC
IF ConstantSurfaceFeed?
CSSOn ' G96'
ELSE
CSSOff ' G97'
END
Speed SpinOn EOL
Approach
ELSE { LAST ProgStop?=FALSE OR LAST ToolChangeAtHome?=FALSE }
{Start new Operation}
StockOff
DoOpComments
IF LAST StraightConnect?
CheckOffset
CheckRapid
SeqLabC StockOnNoCan XSPC ZSPC EOL
ELSE
CheckRapid CRCOffC
IF ApproachOD?
IF LAST ApproachOD?
SeqLabC LAST XOpECDC EOL
ELSE {around}
IF LAST ApproachID?
SeqLabC LAST XOpECDC EOL
END
SeqLabC LAST OpExitZCPC EOL
SeqLabC LAST OpExitXCPC EOL
END
ELSE
IF ApproachID?
IF LAST ApproachID?
SeqLabC LAST XOpECDC EOL
ELSE
IF LAST ApproachOD? {around}
SeqLabC LAST OpExitXCPC EOL
END
SeqLabC LAST OpExitZCPC EOL
SeqLabC XOpCDC EOL
END
ELSE {ApproachFace}
IF LAST ApproachFace?
SeqLabC LAST ZOpECPC EOL
ELSE
IF LAST ApproachOD? {around}
SeqLabC LAST OpExitXCPC EOL
ELSE {LAST ApproachID}
SeqLabC LAST XOpECDC EOL
END
SeqLabC LAST OpExitZCPC EOL
END
END
END
CheckOffset
ApproachSP
END
END
END
END
END {common point for all operations}
IF CannedCycle?
StockOff
IF Roughing?
IF RoughSimple?
StockOn
SetPass1
SeqLabC LCycle
IF ApproachFace?
' Z' FirstMoveEPZ# XatFinZ
ELSE
XatFinZ FinZ
END
XTapAtZ FeedRate EOL
SimpleRough
ELSE
TagInc
SetPass2
IF NotEqual? Pallet# Num#('999')
IF GTEqual? Pallet# Num#('10')
'( * Warning : PIN(' Pallet# ') is Not valid. The Value must be less than 10 * )' EOL
ELSE
IF LTEqual? Pallet# Num#('0')
'( * Warning : PIN(' Pallet# ') is Not valid. The Value must be greater than zero * )' EOL
ELSE
Save# Add# Num#('50') Pallet# Tag#
END
END
END
IF RoughContour?
SeqLabC LCycle ' P³' Tag# ' Q²' Tag# XStkLeft ZStkLeft ' D' CutDepth# ' F' FeedContour# EOL
'>' Tag# EOL
IF ApproachFace?
SeqLab StepMove ' Z' SPZ# EOL
SeqLabC FeedC ' X' SPX# EOL
ELSE
SeqLab StepMove ' X' SPX# EOL
SeqLabC FeedC ' Z' SPZ# EOL
END
ELSE
IF RoughPatternShift?
SeqLabC LCycle ' P³' Tag# ' Q²' Tag# XStkLeft ZStkLeft NumCuts XminusU ZminusW ' F' FeedContour# EOL
'>' Tag# EOL
IF ApproachFace?
SeqLab StepMove ' Z' SPZ# EOL
SeqLabC FeedC ' X' SPX# EOL
ELSE
SeqLab StepMove ' X' SPX# EOL
SeqLabC FeedC ' Z' SPZ# EOL
END
END
END
ToolPath
'<' Tag# EOL
IF AutoFinish?
SeqLabC ' G70' ' P³' Tag# ' Q²' Tag# EOL
END
SetPass1
TrackXNO# CycleStartX#
TrackZNO# CycleStartZ#
END
ELSE
IF Threading?
IF Chamfer?
SeqLabC ' M23' EOL
END
SeqLabC LCycle XatFinZ FinZ ThrdHeight CutDepth ThrdLead ' A60.' EOL
IF AutoFinish?
SeqLabC ' G92' XatFinZ FinZ XTapAtZ ThrdLead EOL
END
IF Chamfer?
SeqLabC ' M24' EOL
END
ELSE
IF Drilling?
IF Tap?
SeqLabC LCycle ZDepth ' E' FeedIPR# EOL
SeqLabC SpinOff EOL
SeqLabC ' G04 U2.' EOL
SeqLabC Speed InverseSpinOn EOL
SeqLabC ZSP EOL
ELSE
IF PeckChipBreaker?
SeqLabC LCycle ZDepth Dwell Peck Retract FeedRate EOL
IF AutoFinish?
SeqLabC Feed ZDepth EOL
IF Dwell?
SeqLabC ' G04 U' Dwell# EOL
END
SeqLabC Rapid ZSP EOL
END
END
END
ELSE
IF Grooving?
StockOn
SetPass1
SeqLabC StrtPos EOL
ToolPath
END
END
END
END
ELSE
SetFlagF('9')
IF NotEqual? Pallet# Num#('999')
IF GTEqual? Pallet# Num#('10')
'( * Warning : PIN(' Pallet# ') is Not valid. The Value must be less than 10 * )' EOL
ELSE
IF LTEqual? Pallet# Num#('0')
'( * Warning : PIN(' Pallet# ') is Not valid. The Value must be greater than zero * )' EOL
ELSE
IF Equal? Num#('0') Recall# Add# Pallet# Num#('50')
'( * Warning : PIN(' Pallet# ') is Not valid. There appears to be no matching Roughing Cycle * )' EOL
ELSE
SetFlag('9')
END
END
END
END
IF Turning? AND Flag?('9') { Finish Contour Cycle }
SetPass1
SeqLabC ' G70' ' P³' Recall# Add# Num#('50') Pallet# ' Q²' Recall# Add# Num#('50') Pallet# FeedRateC EOL
ELSE
StockOn
SetPass1
ToolPath
END
IF AutoFinish? { .82.1c }
StockOff
IF Turning?
IF ApproachFace?
SeqLabC RapidC ZOpECPC EOL
ELSE
SeqLabC RapidC XOpECDC EOL
END
ApproachSP
SeqLabC StockOff StrtPosC EOL
ToolPath
ELSE
IF Roughing? AND NOT RoughSimple?
SetPass2
SeqLabC RapidC XSPC ZSPC EOL
SeqLabC StockOff StrtPosC EOL
ToolPath
SetPass1
ELSE
IF Threading?
SeqLabC 'X' MUL# Num#('2') ADD# FinishXRadius# Taper# EOL
SeqLabC 'G32'
IF Taper?
XatFinZ
END
FinZ ThrdLead EOL
SeqLabC Rapid XSP EOL
SeqLabC ZSP EOL
END
END
END
END
END
IF Drilling? AND Tap?
SeqLabC SpinOff EOL
SeqLabC Speed SpinOn EOL
END
NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{finish last operation}
StockOff
CRCOffC
IF CannedCycle?
Rapid
ELSE
RapidC
END
IF ApproachOD?
SeqLabC OpExitXCPC EOL
ELSE
IF ApproachID?
SeqLabC XOpECDC EOL
END
END
SeqLabC OpExitZCPC EOL
DoEndOpPS
SeqLabC CoolOff EOL
SeqLabC OpToolID '00' EOL
SeqLabC FirstHome EOL
IF Turning? OR Threading?
IF CutOff?
ELSE
SeqLabC ' M00' EOL
'/ M99 P' Recall# Num#('49') EOL
END
END
SeqLabC ' M00' EOL
' ' EOL
SeqLabC EOP EOL
CloseSub
Post2 {organize Subs into one program}
EOR EOL
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
Retag
Wyszukiwarka
Podobne podstrony:
Fanuc 15T Dianichi CGB L754 85 2Fanuc 16T MS [AM] L615 85 2Fanuc 16T MS [ IN] L443 85Fanuc 16T MS [ MM] L771 85Fanuc 16T MS [ BM] L425 85 1Fanuc 16T MS [JI] L682 85 2Fanuc 16T MS [ ML] L763 85Fanuc 6T MS [ CGB] L747 85 4Fanuc 16T MS [ TI] L633 85Fanuc 16M Mon [CGB] PMQ21 17 6Fanuc 21T Mon [ ] L339 85Fanuc 16T MS [ r] L538 85Fanuc 15T Act 20 CGB L757 85Fanuc 16T Studer L478 85 1więcej podobnych podstron