{Change Comments ***********************************************************}
{6/11/91
Modified: AB 7360 Hardinge L167.71.3
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 10T MS [-] L001.80 Format.
Only Canned Cycles supported are SimpleRough, Threading and PeckFullRetract.
DWB}
{9/7/95, Updated AB 7360 Hardinge L167.80 to .85 format per v2.20 Update Instructions .01, JR}
{3/5/96
Initial: AB 7360 Hardinge L167.85
Created: AB 7340 Gray 200 L000.85
ForUser: CNCCS / Tool Sales & Service
Control: Allen Bradley 7340
Machine: Gray 200 VTL
Develop: ComPost 4.21.34, ncCAD 4.33.01, ncCAM 4.33, ncPost 4.33.09
Comment: New Processor per instructions from Steve Seibert
Jim Radcliffe}
{11/7/96
Initial: AB 7340 Gray 200 L457.85
Created: AB 7340 Gray 200 L457.85.1
Develop: ComPost2 68k v1.0b4, ncCAD 4.33.02, ncCAM 4.33, ncPost 4.33.09
Comment: Modified to fully support Left Ram. Had to go back to .82 format for numeric commnds.
Leading zero suppression on sequence numbers.
New checkOffset sub.
Arcs stop on quads without sign.
Jim Radcliffe}
{11/25/96
Initial: AB 7340 Gray 200 L457.85.1
Created: AB 7340 Gray 200 L457.85.2
Develop: ComPost2 68k v1.0b4, ncCAD 4.33.02, ncCAM 4.33, ncPost 4.33.09
Comment: Modified to flag Left Ram as tool#s greater than 10, outputting tool# & offset# less 10.
Jim Radcliffe}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '###.####;0'
#3 = '#######0'
#4 = '#####.##;0'
#5 = '##.#####;0'
#6 = '###0'
#7 = '0'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(EPX#,2)
FORMAT(EPZ#,2)
FORMAT(ArcJ#,2)
FORMAT(ArcI#,2)
FORMAT(HomeX#,2)
FORMAT(HomeZ#,2)
FORMAT(NewHomeX#,2)
FORMAT(NewHomeZ#,2)
FORMAT(FirstHomeX#,2)
FORMAT(FirstHomeZ#,2)
FORMAT(XStockMax#,2)
FORMAT(ZStockMax#,2)
FORMAT(ThisOpEntryXCP#,2)
FORMAT(ThisOpEntryZCP#,2)
FORMAT(XOpCD#,2)
FORMAT(ZOpCP#,2)
FORMAT(OpExitXCP#,2)
FORMAT(OpExitZCP#,2)
FORMAT(ClearancePlane3#,2)
FORMAT(CycleStartX#,2)
FORMAT(CycleStartZ#,2)
FORMAT(EPX#,2)
FORMAT(EPZ#,2)
FORMAT(SUB#,2)
FORMAT(ArcI#,2)
FORMAT(ArcJ#,2)
FORMAT(Program#,3) {.72}
FORMAT(Operation#,3) {.72}
FORMAT(Tool#,3) {.72}
FORMAT(ADD#,3) { Left Ram Tool & Offset numbers }
FORMAT(ToolOffset#,3)
FORMAT(Dwell#,4) {.72}
FORMAT(FeedIPR#,5)
FORMAT(CalcEPRPM#,6)
FORMAT(RapidF#,7)
{Special Subroutines *******************************************************}
DoAbsOrInc:
IF Flag?('1')
IF AbsoluteMoves?
SetAbs 'H90'
ELSE
SetInc 'H91'
END
ELSE
AbsOrInc
END
RETURN
DoIPR:
IF Flag?('1')
'H95'
ELSE
'G95'
END
RETURN
Index:
IF Flag?('1')
'M15'
ELSE
'M17'
END
RETURN
CancelPreset:
IF Flag?('1')
'H99'
ELSE
'G99'
END
RETURN
DoPreset:
IF Flag?('1')
'H92'
ELSE
Preset
END
RETURN
DoCSSOff:
IF Flag?('1')
CSSOff 'H97'
ELSE
CSSOff 'G97'
END
RETURN
DoCSSOn:
IF Flag?('1')
CSSOn 'H96'
ELSE
CSSOn 'G96'
END
RETURN
DoTool:
IF Flag?('1')
'T000' ADD# Num#('-10') Tool# '0'
ELSE
'T' Tool# '0000'
END
RETURN
DoOffset:
IF Flag?('1')
'T000' ADD# Num#('-10') Tool# ADD# Num#('-10') ToolOffset#
ELSE
'T' Tool# ToolOffset# '000'
END
RETURN
DoOffsetOff:
IF Flag?('1')
'T000' ADD# Num#('-10') LAST Tool# '0'
ELSE
'T' LAST Tool# '0000'
END
RETURN
DoCoolOn:
IF Flag?('1')
IF NOT CoolOff?
'M11'
END
ELSE
CoolOn
END
RETURN
DoCoolOff:
IF Flag?('1')
'M12'
ELSE
CoolOff
END
RETURN
DoRapid:
IF Flag?('1')
'H00'
SetFlagF('2')
SetFlagF('3')
ELSE
Rapid
END
RETURN
DoRapidC:
IF Flag?('1')
IF Flag?('2')
'H00'
ELSE
IF Flag?('3')
'H00'
END
END
SetFlagF('2')
SetFlagF('3')
ELSE
RapidC
END
RETURN
DoFeed:
IF Flag?('1')
'H01'
SetFlag('2')
SetFlagF('3')
ELSE
Feed
END
RETURN
DoFeedC:
IF Flag?('1')
IF NOT Flag?('2')
'H01'
ELSE
IF Flag?('3')
'H01'
END
END
SetFlag('2')
SetFlagF('3')
ELSE
FeedC
END
RETURN
DoCWArc:
IF Flag?('1')
'H02'
SetFlag('3')
ELSE
CWArc
END
RETURN
DoCCWArc:
IF Flag?('1')
'H03'
SetFlag('3')
ELSE
CCWArc
END
RETURN
DoThread:
IF Flag?('1')
'H33'
ELSE
'G33'
END
RETURN
DoRapidF:
IF Flag?('1')
'E' RapidF#
Save# Num#('5') RapidF#
ELSE
RapidF
END
RETURN
DoRapidFC:
IF Flag?('1')
IF NotEqual? Recall# Num#('5') RapidF#
'E' RapidF#
Save# Num#('5') RapidF#
END
ELSE
RapidFC
END
RETURN
DoFeedRateC:
IF Flag?('1')
IF NotEqual? Recall# Num#('5') FeedIPR#
'E' FeedIPR#
Save# Num#('5') FeedIPR#
END
ELSE
FeedRateC
END
RETURN
DoHome:
IF Flag?('1')
Save# Num#('1') HomeX#
Save# Num#('2') HomeZ#
'U' HomeX# 'W' HomeZ#
ELSE
Home
END
RETURN
DoNewHome:
IF Flag?('1')
Save# Num#('1') NewHomeX#
Save# Num#('2') NewHomeZ#
'U' NewHomeX# 'W' NewHomeZ#
ELSE
NewHome
END
RETURN
DoFirstHome:
IF Flag?('1')
Save# Num#('1') FirstHomeX#
Save# Num#('2') FirstHomeZ#
'U' FirstHomeX# 'W' FirstHomeZ#
ELSE
FirstHome
END
RETURN
DoThisOpEntryXCP:
IF Flag?('1')
Save# Num#('1') ThisOpEntryXCP#
'U' ThisOpEntryXCP#
ELSE
ThisOpEntryXCP
END
RETURN
DoXCP:
IF Flag?('1')
Save# Num#('1') XStockMax#
'U' XStockMax#
ELSE
XCP
END
RETURN
DoXCPC:
IF Flag?('1')
IF NotEqual? Recall# Num#('1') XStockMax#
Save# Num#('1') XStockMax#
'U' XStockMax#
END
ELSE
XCPC
END
RETURN
DoThisOpEntryZCP:
IF Flag?('1')
Save# Num#('2') ThisOpEntryZCP#
'W' ThisOpEntryZCP#
ELSE
ThisOpEntryZCP
END
RETURN
DoZCP:
IF Flag?('1')
Save# Num#('2') ZStockMax#
'W' ZStockMax#
ELSE
ZCP
END
RETURN
DoZCPC:
IF Flag?('1')
IF NotEqual? Recall# Num#('2') ZStockMax#
Save# Num#('2') ZStockMax#
'W' ZStockMax#
END
ELSE
ZCPC
END
RETURN
DoXOpCD:
IF Flag?('1')
Save# Num#('1') XOpCD#
'U' XOpCD#
ELSE
XOpCD
END
RETURN
DoXOpCDC:
IF Flag?('1')
IF NotEqual? Recall# Num#('1') XOpCD#
Save# Num#('1') XOpCD#
'U' XOpCD#
END
ELSE
XOpCDC
END
RETURN
DoXOpECDC:
IF Flag?('1')
IF NotEqual? Recall# Num#('1') SUB# ClearancePlane3# Recall# Num#('3')
Save# Num#('1') SUB# ClearancePlane3# Recall# Num#('3')
'U' SUB# ClearancePlane3# Recall# Num#('3')
END
ELSE
XOpECDC
END
RETURN
DoLastXOpECDC:
IF Flag?('1')
IF NotEqual? Recall# Num#('1') SUB# LAST ClearancePlane3# Recall# Num#('3')
Save# Num#('1') SUB# LAST ClearancePlane3# Recall# Num#('3')
'U' SUB# LAST ClearancePlane3# Recall# Num#('3')
END
ELSE
LAST XOpECDC
END
RETURN
DoOpExitXCPC:
IF Flag?('1')
IF NotEqual? Recall# Num#('1') OpExitXCP#
Save# Num#('1') OpExitXCP#
'U' OpExitXCP#
END
ELSE
OpExitXCPC
END
RETURN
DoLastOpExitXCPC:
IF Flag?('1')
IF NotEqual? Recall# Num#('1') LAST OpExitXCP#
Save# Num#('1') LAST OpExitXCP#
'U' LAST OpExitXCP#
END
ELSE
LAST OpExitXCPC
END
RETURN
DoZOpCPC:
IF Flag?('1')
IF NotEqual? Recall# Num#('2') ZOpCP#
Save# Num#('2') ZOpCP#
'W' ZOpCP#
END
ELSE
ZOpCPC
END
RETURN
DoZOpECPC:
IF Flag?('1')
IF NotEqual? Recall# Num#('2') SUB# ClearancePlane3# Recall# Num#('4')
Save# Num#('2') SUB# ClearancePlane3# Recall# Num#('4')
'W' SUB# ClearancePlane3# Recall# Num#('4')
END
ELSE
ZOpECPC
END
RETURN
DoLastZOpECPC:
IF Flag?('1')
IF NotEqual? Recall# Num#('2') SUB# LAST ClearancePlane3# Recall# Num#('4')
Save# Num#('2') SUB# LAST ClearancePlane3# Recall# Num#('4')
'W' SUB# LAST ClearancePlane3# Recall# Num#('4')
END
ELSE
LAST ZOpECPC
END
RETURN
DoOpExitZCPC:
IF Flag?('1')
IF NotEqual? Recall# Num#('2') OpExitZCP#
Save# Num#('2') OpExitZCP#
'W' OpExitZCP#
END
ELSE
OpExitZCPC
END
RETURN
DoLastOpExitZCPC:
IF Flag?('1')
IF NotEqual? Recall# Num#('2') LAST OpExitZCP#
Save# Num#('2') LAST OpExitZCP#
'W' LAST OpExitZCP#
END
ELSE
LAST OpExitZCPC
END
RETURN
DoXSP:
IF Flag?('1')
Save# Num#('1') CycleStartX#
'U' CycleStartX#
ELSE
XSP
END
RETURN
DoXSPC:
IF Flag?('1')
IF NotEqual? Recall# Num#('1') CycleStartX#
Save# Num#('1') CycleStartX#
'U' CycleStartX#
END
ELSE
XSPC
END
RETURN
DoZSP:
IF Flag?('1')
Save# Num#('2') CycleStartZ#
'W' CycleStartZ#
ELSE
ZSP
END
RETURN
DoZSPC:
IF Flag?('1')
IF NotEqual? Recall# Num#('2') CycleStartZ#
Save# Num#('2') CycleStartZ#
'W' CycleStartZ#
END
ELSE
ZSPC
END
RETURN
DoMoveXC:
IF Flag?('1')
IF NotEqual? Recall# Num#('1') EPX#
Save# Num#('1') EPX#
'U' EPX#
END
ELSE
MoveXC
END
RETURN
DoMoveZC:
IF Flag?('1')
IF NotEqual? Recall# Num#('2') EPZ#
Save# Num#('2') EPZ#
'W' EPZ#
END
ELSE
MoveZC
END
RETURN
DoArcIJ:
IF Flag?('1')
'P' ArcJ# 'R' ArcI#
ELSE
ArcIJ
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?
'( '
IF Flag?('1')
'Left Ram TOOL ' ADD# Num#('-10') Tool#
ELSE
'Right Ram TOOL ' Tool#
END
': ' 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:
StockOn {need stock for SP positioning, if not a canned cycle}
RETURN
FeedNoCan:
DoFeedC
RETURN
FeedRateNoCan:
DoFeedRateC
RETURN
ApproachSP:
IF ApproachFace?
SeqC StockOnNoCan DoXSPC EOL
SeqC StockOff DoZOpCPC EOL
StockOnNoCan
IF NotEqual? CycleStartZ# ZOpCP#
SeqC FeedNoCan DoZSPC FeedRateNoCan EOL
END
ELSE { ODApproach/IDApproach }
SeqC StockOnNoCan DoZSPC EOL
SeqC StockOff DoXOpCDC EOL
StockOnNoCan
IF NotEqual? CycleStartX# XOpCD#
SeqC FeedNoCan DoXSPC FeedRateNoCan EOL
END
END
RETURN
AppMove:
StockOff DoZCP DoRapidF DoCoolOn
RETURN
Approach: { NOT FOR TAILSTOCK, .82 }
IF ApproachOD?
SeqC DoRapid DoXCP AppMove EOL
ELSE
IF ApproachID?
SeqC DoRapid DoXOpCD AppMove EOL
ELSE {ApproachFace}
SeqC DoRapid StockOnNoCan DoXSP AppMove EOL
END
END
ApproachSP
RETURN
CheckOffset:
DoEndOpPS
IF CoolOff? AND LAST NOT CoolOff?
SeqC DoCoolOff EOL
END
IF NewGear?
SeqC SpinOff EOL
END
IF LAST ProgStop?
SeqC 'M00' EOL
END
DoOpComments
DoPostScript
IF NewToolOffset?
SeqC DoTool EOL
END
IF NewGear?
SeqC GearRange EOL
END
SeqC
IF ConstantSurfaceFeed?
IF LAST ConstantSurfaceFeed?
IF NotEqual? MaxRPM# LAST MaxRPM#
DoPreset MaxRPM
END
ELSE
DoPreset MaxRPM
END
END
EOL
SeqC
IF ConstantSurfaceFeed?
IF LAST ConstantSurfaceFeed?
IF NotEqual? SpeedRPM# LAST SpeedRPM#
Speed
END
ELSE
DoCSSOn Speed
END
ELSE
IF LAST ConstantSurfaceFeed?
DoCSSOff Speed
ELSE
IF NotEqual? SpeedRPM# LAST SpeedRPM#
Speed
END
END
END
IF LAST ProgStop?
SpinOn
ELSE
IF NewGear?
SpinOn
END
END
EOL
IF NewToolOffset?
SeqC DoOffset EOL
END
SeqC
IF LAST ProgStop?
DoCoolOn
ELSE
IF NOT CoolOff? AND LAST CoolOff?
DoCoolOn
END
END
EOL
RETURN
FormatArc:
IF ArcCW?
DoCWArc
ELSE
DoCCWArc
END
DoMoveXC DoMoveZC DoArcIJ
RETURN
ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
IF Drilling?
IF Tap?
SeqC SpinOff EOL
SeqC 'H94' EOL
SeqC 'H04E2.' EOL
SeqC 'H95' InverseSpinOn EOL
ELSE
IF Dwell?
SeqC 'H94' EOL
SeqC 'H04E' Dwell# EOL
SeqC 'H95' EOL
END
END
END
END
IF PointFeat?
SeqC MoveSXYC EOL
ELSE
IF RapidFeat?
SeqC
IF LAST ThreadFeat?
DoRapid
ELSE
DoRapidC
END
DoMoveXC DoMoveZC
IF LAST ThreadFeat?
DoRapidF
ELSE
DoRapidFC
END
EOL
ELSE
IF LineFeat?
SeqC DoFeedC DoMoveXC DoMoveZC DoFeedRateC EOL
ELSE
IF ArcFeat?
EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop }
SeqC FormatArc DoFeedRateC EOL
NEXTQuadrant
ELSE
IF ThreadFeat?
SeqC DoThread DoMoveXC DoMoveZC ThrdLead EOL
END
END
END
END
END
NEXTFeat
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
PosSideLathe
XsAreRadii
NoIJKSigns
SetMaxRPM('150')
SetMaxFeed('120')
SetFlag('1') { Left Ram }
SetFlag('2') { Feed Mode }
SetFlag('3') { Arc Mode }
Save# Num#('1') Num#('0') { current X position }
Save# Num#('2') Num#('0') { current Z position }
Save# Num#('3') Num#('0') { current X tool tip offset }
Save# Num#('4') Num#('0') { current Z tool tip offset }
Save# Num#('5') Num#('0') { current feed rate }
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
{ the following get the tools tip }
{ this is needed to remove this value from ClearancePlane3# }
SetStatusOff
StockOff
Save# Num#('3') SUB# SetTTOff CycleStartX# SetTTOk CycleStartX#
Save# Num#('4') SUB# SetTTOff CycleStartZ# SetTTOk CycleStartZ#
SetStatusOn
IF FirstOperation?
EOR EOL
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 ' MoveType$ ' INCHES )' EOL
END
END
RestoreScale
OpenSub
StockOff {.71.2}
SetHome
Plane
IF ToolOver?('10')
SetFlag('1')
ReverseXZArcs
ELSE
SetFlagF('1')
StandardXZArcs
END
DoOpComments
DoPostScript
Seq DoAbsOrInc EOL
SeqC DoIPR DoTool Index EOL
SeqC CancelPreset EOL
SeqC GearRange EOL
SeqC DoPreset DoHome MaxRPM EOL
SeqC DoCSSOff
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
SpinOn EOL
SeqC DoOffset EOL
Approach
ELSE
IF NewTool?
{Finish off last Operation}
StockOff {.62}
IF LAST ApproachOD?
SeqC DoRapidC DoXCPC DoRapidFC EOL
SeqC DoZCPC DoCoolOff EOL
ELSE
IF LAST ApproachID?
SeqC DoRapidC DoLastXOpECDC DoRapidFC EOL
SeqC DoZCPC DoCoolOff EOL
ELSE
IF LAST ApproachFace?
SeqC DoRapidC DoZCPC DoRapidFC DoCoolOff EOL
END
END
END
DoEndOpPS
IF LAST ConstantSurfaceFeed?
SeqC DoCSSOff CalcRPM2 EOL
END
SeqC DoOffsetOff
IF NewGear?
SpinOff
END
EOL
SeqC DoNewHome EOL
IF LAST ProgStop?
SeqC 'M00' EOL
ELSE
SeqC ProgStop EOL
END
{Start new Operation}
IF ToolOver?('10')
SetFlag('1')
ReverseXZArcs
ELSE
SetFlagF('1')
StandardXZArcs
END
DoOpComments
DoPostScript
Seq DoAbsOrInc EOL
SeqC DoIPR DoTool Index EOL
SeqC CancelPreset EOL
SeqC GearRange EOL
SeqC DoPreset DoHome MaxRPM EOL
SeqC DoCSSOff
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
SpinOn EOL
SeqC DoOffset EOL
Approach
ELSE
IF SameTool? {.62}
{Start new Operation}
StockOff
IF LAST StraightConnect?
CheckOffset
SeqC DoRapidC StockOnNoCan DoXSPC DoZSPC DoRapidFC EOL
ELSE
IF ApproachOD?
IF LAST ApproachOD?
SeqC DoRapidC DoLastXOpECDC DoRapidFC EOL
ELSE {around}
IF LAST ApproachID?
SeqC DoRapidC DoLastXOpECDC DoRapidFC EOL
SeqC DoZCPC EOL
ELSE
IF LAST ApproachFace?
SeqC DoRapidC DoZCPC DoRapidFC EOL
END
END
SeqC DoXCPC EOL
END
ELSE
IF ApproachID?
IF LAST ApproachID?
SeqC DoRapidC DoLastXOpECDC DoRapidFC EOL
ELSE
IF LAST ApproachOD? {around}
SeqC DoRapidC DoXCPC DoRapidFC EOL
SeqC DoZCPC EOL
ELSE
IF LAST ApproachFace?
SeqC DoRapidC DoZCPC DoRapidFC EOL
END
END
SeqC DoXOpCDC EOL
END
ELSE {ApproachFace}
IF LAST ApproachFace?
SeqC DoRapidC DoLastZOpECPC DoRapidFC EOL
ELSE
IF LAST ApproachOD? {around}
SeqC DoRapidC DoXCPC DoRapidFC EOL
ELSE {LAST ApproachID}
SeqC DoRapidC DoLastXOpECDC DoRapidFC EOL
END
SeqC DoZCPC EOL
END
END
END
CheckOffset
ApproachSP
END
END
END
END {common point for all operations}
IF ConstantSurfaceFeed? AND NOT SameTool?
SeqC DoCSSOn Speed EOL
END
StockOn
SetPass1
ToolPath
IF AutoFinish? { .82.1c }
StockOff
IF Turning?
IF ApproachFace?
SeqC DoRapidC DoZOpECPC DoRapidFC EOL
ELSE
SeqC DoRapidC DoXOpECDC DoRapidFC EOL
END
ApproachSP
StockOff
SeqC DoXSPC DoZSPC EOL
ToolPath
ELSE
IF Roughing? AND NOT RoughSimple?
SetPass2
StockOff
SeqC DoRapidC DoXSPC DoZSPC DoRapidFC EOL
ToolPath
SetPass1
ELSE
IF Threading?
SeqC 'X' MUL# Num#('2') ADD# FinishXRadius# Taper# EOL
SeqC DoThread
IF Taper?
XatFinZ
END
FinZ ThrdLead EOL
SeqC DoRapid DoXSP DoRapidF EOL
SeqC DoZSP EOL
END
END
END
END
IF Drilling? AND Tap?
SeqC SpinOff EOL
SeqC 'H94' EOL
SeqC 'H04E2.' EOL
SeqC SpinOn EOL
END
NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{finish last operation}
StockOff
IF ApproachOD?
SeqC DoRapidC DoXCPC DoRapidFC EOL
SeqC DoZCPC DoCoolOff EOL
ELSE
IF ApproachID?
SeqC DoRapidC DoXOpECDC DoRapidFC EOL
SeqC DoZCPC DoCoolOff EOL
ELSE
IF ApproachFace?
SeqC DoRapidC DoZCPC DoRapidFC DoCoolOff EOL
END
END
END
DoEndOpPS
IF ConstantSurfaceFeed?
SeqC DoCSSOff 'S' CalcEPRPM# EOL
END
SeqC DoTool EOL
SeqC DoFirstHome EOL
IF ProgStop?
SeqC 'M00' 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
Wyszukiwarka
Podobne podstrony:
AB CNC 8400 LP L623 85AB 9 240 Bullard UW L701 85AB 7370 Hard [PP] L782 85 2AB 7360 Hardinge [SP] L822 85AB 9 240 Bullard [SSI] L811 85AB 8200 Pneumo [USS] L834 85AB 7360 Hardinge [IN] L444 85Fanuc 6TB Gray [TM] L335 85AB Series 9 240 [AS] L578 85 1AB 7360 Hardinge L167 85AB 8600 J&S Grinder L524 85AB 7365 [HP] L413 85W&S 2SC AB 7360 [BD4] L705 85 3AB 7360 [SH] L609 85AB 7365 J & L L216 85W & S 1SC AB 7360 L581 85 3więcej podobnych podstron