{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}
{7/10/97
Initial: AB 7340 Gray 200 L457.85.2
Created: GE 1054T G&L VTL Lxxx.85
ForUser: HMD Engineering
Control: GE 1054T
Machine: Giddings & Lewis 4 Axis Vertical Turret Lathe
Develop: ComPost2 68K 1.0b11, Virtual Gibbs 3.35 PPC
Comment: New processor per spec sheet, sample program and conversations with Conrad
Jim Radcliffe}
{2/4/98
Initial: GE 1054T G&L VTL L595.85
Created: GE 1054T G&L VTL L595.85.1
Develop: ComPost2 1.1b3, Virtual 4.21.21
Comment: Modified per fax and conversation with Sam Gaib
Added '$' ProgramComment$ to beginning of program.
Creted GetTurretFlags sub to simplify and clean up turret handling.
Reveresed all arc direction output.
Added condition for tools over #20.
Output same as current tools over #10 except:
U axis output in negative side
arc direction output is opposite
Added use of flag#4.
correct reverse arc direction
calculation of tool number
operation comment.
Changed the text that the turrets are refered to as.
changed "Right Ram" to "Side Turret" and "Left Ram" to "Top Turret"
Jim Radcliffe}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '0#^####'
#3 = '#######0'
#4 = '0#^####'
#5 = '^0###'
#6 = '000'
#7 = '0'
#8 = '00'
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(Dwell#,4) {.72}
FORMAT(FeedIPR#,5)
FORMAT(CalcEPRPM#,6)
FORMAT(RapidF#,7)
FORMAT(Tool#,7)
FORMAT(ADD#,7) { Top Turret Tool & Offset numbers }
FORMAT(ToolOffset#,8)
{Special Subroutines *******************************************************}
GetTurretFlags:
IF ToolOver?('20')
SetFlag('1')
SetFlag('4')
NegSideLathe
StandardXZArcs
ELSE
IF ToolOver?('10')
SetFlag('1')
SetFlagF('4')
PosSideLathe
ReverseXZArcs
ELSE
SetFlagF('1')
SetFlagF('4')
PosSideLathe
ReverseXZArcs
END
END
RETURN
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
DoIPM:
IF Flag?('1')
' H94'
ELSE
' G94'
END
RETURN
Index:
IF Flag?('1')
' M92'
ELSE
' M90'
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')
IF Flag?('4')
' D' ADD# Num#('-20') Tool# '00'
ELSE
' D' ADD# Num#('-10') Tool# '00'
END
ELSE
' T' Tool# '00'
END
RETURN
DoOffset:
IF Flag?('1')
IF Flag?('4')
' D' ADD# Num#('-20') Tool# ToolOffset#
ELSE
' D' ADD# Num#('-10') Tool# ToolOffset#
END
ELSE
' T' Tool# ToolOffset#
END
RETURN
DoOffsetOff:
IF Flag?('1')
IF Flag?('4')
' D' ADD# Num#('-20') LAST Tool# '00'
ELSE
' D' ADD# Num#('-10') LAST Tool# '00'
END
ELSE
' T' LAST Tool# '00'
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')
' H01'
SetFlagF('2')
SetFlagF('3')
ELSE
Rapid
END
RETURN
DoRapidC:
IF Flag?('1')
IF Flag?('2')
' H01'
ELSE
IF Flag?('3')
' H01'
END
END
SetFlagF('2')
SetFlagF('3')
ELSE
RapidC
END
RETURN
DoFeed:
IF Flag?('1')
' H21'
SetFlag('2')
SetFlagF('3')
ELSE
Feed
END
RETURN
DoFeedC:
IF Flag?('1')
IF NOT Flag?('2')
' H21'
ELSE
IF Flag?('3')
' H21'
END
END
SetFlag('2')
SetFlagF('3')
ELSE
FeedC
END
RETURN
DoCWArc:
IF Flag?('1')
IF Flag?('4')
' H22'
ELSE
' H23'
END
SetFlag('3')
ELSE
CWArc
END
RETURN
DoCCWArc:
IF Flag?('1')
IF Flag?('4')
' H23'
ELSE
' H22'
END
SetFlag('3')
ELSE
CCWArc
END
RETURN
DoDwell:
IF Flag?('1')
' H04'
ELSE
' G04'
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')
IF Flag?('4')
'Top Turret Neg Side TOOL ' ADD# Num#('-20') Tool#
ELSE
'Top Turret Pos Side TOOL ' ADD# Num#('-10') Tool#
END
ELSE
'Side Turret 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 DoThisOpEntryZCP DoRapidF DoCoolOn
RETURN
Approach: { NOT FOR TAILSTOCK, .82 }
IF ApproachOD?
SeqC DoRapid DoThisOpEntryXCP 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 DoOffset EOL
END
IF NewGear?
SeqC GearRange EOL
END
SeqC
IF NOT ConstantSurfaceFeed?
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
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 DoIPM EOL
SeqC DoDwell ' X2.' EOL
SeqC DoIPR InverseSpinOn EOL
ELSE
IF Dwell?
SeqC DoIPM EOL
SeqC DoDwell ' X' Dwell# EOL
SeqC DoIPR 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
SetAbs
XsAreRadii
NoIJKSigns
SetMaxRPM('250')
SetMaxFeed('120')
SetFlag('1') { Top Turret }
SetFlag('2') { Feed Mode }
SetFlag('3') { Arc Mode }
SetFlag('4') { Top Turret Negative Side }
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
'$' ProgramComment$ 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 ABSOLUTE INCHES )' EOL
END
END
RestoreScale
OpenSub
StockOff {.71.2}
SetHome
Plane
SeqC ' G70 H70' EOL { sets both turrets inch }
SeqC ' G90 H90' EOL { sets both turrets absolute }
GetTurretFlags
DoOpComments
DoPostScript
Seq DoPreset DoHome EOL
SeqC DoIPR DoOffset Index EOL
SeqC GearRange EOL
SeqC DoCSSOff
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
SpinOn EOL
Approach
IF ConstantSurfaceFeed?
SeqC DoPreset MaxRPM ' R' CycleStartX# EOL
SeqC DoCSSOn Speed EOL
END
ELSE
IF NewTool?
{Finish off last Operation}
StockOff {.62}
IF LAST ApproachOD?
SeqC DoRapidC DoOpExitXCPC DoRapidFC EOL
SeqC DoLastOpExitZCPC DoCoolOff EOL
ELSE
IF LAST ApproachID?
SeqC DoRapidC DoLastXOpECDC DoRapidFC EOL
SeqC DoLastOpExitZCPC DoCoolOff EOL
ELSE
IF LAST ApproachFace?
SeqC DoRapidC DoLastOpExitZCPC DoRapidFC DoCoolOff EOL
END
END
END
DoEndOpPS
IF LAST ConstantSurfaceFeed?
SeqC DoCSSOff CalcRPM2 EOL
END
SeqC DoNewHome EOL
IF NewGear?
SeqC SpinOff EOL
END
IF LAST ProgStop?
SeqC ' M00' EOL
ELSE
SeqC ProgStop EOL
END
{Start new Operation}
GetTurretFlags
DoOpComments
DoPostScript
Seq DoPreset DoHome EOL
SeqC DoIPR DoOffset Index EOL
SeqC GearRange EOL
SeqC DoCSSOff
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
SpinOn EOL
Approach
IF ConstantSurfaceFeed?
SeqC DoPreset MaxRPM ' R' CycleStartX# EOL
SeqC DoCSSOn Speed EOL
END
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 DoLastOpExitZCPC EOL
ELSE
IF LAST ApproachFace?
SeqC DoRapidC DoLastOpExitZCPC DoRapidFC EOL
END
END
SeqC DoLastOpExitXCPC EOL
END
ELSE
IF ApproachID?
IF LAST ApproachID?
SeqC DoRapidC DoLastXOpECDC DoRapidFC EOL
ELSE
IF LAST ApproachOD? {around}
SeqC DoRapidC DoLastOpExitXCPC DoRapidFC EOL
SeqC DoLastOpExitZCPC EOL
ELSE
IF LAST ApproachFace?
SeqC DoRapidC DoLastOpExitZCPC 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 DoLastOpExitXCPC DoRapidFC EOL
ELSE {LAST ApproachID}
SeqC DoRapidC DoLastXOpECDC DoRapidFC EOL
END
SeqC DoLastOpExitZCPC EOL
END
END
END
CheckOffset
ApproachSP
END
IF ConstantSurfaceFeed?
IF LAST ConstantSurfaceFeed?
IF NotEqual? MaxRPM# LAST MaxRPM#
SeqC DoPreset MaxRPM ' R' CycleStartX# EOL
END
IF NotEqual? SpeedRPM# LAST SpeedRPM#
SeqC DoCSSOn Speed EOL
END
ELSE
SeqC DoPreset MaxRPM ' R' CycleStartX# EOL
SeqC DoCSSOn Speed EOL
END
END
END
END
END {common point for all operations}
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 DoIPM EOL
SeqC DoDwell ' X2.' EOL
SeqC SpinOn EOL
END
NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{finish last operation}
StockOff
IF ApproachOD?
SeqC DoRapidC DoOpExitXCPC DoRapidFC EOL
SeqC DoOpExitZCPC DoCoolOff EOL
ELSE
IF ApproachID?
SeqC DoRapidC DoXOpECDC DoRapidFC EOL
SeqC DoOpExitZCPC DoCoolOff EOL
ELSE
IF ApproachFace?
SeqC DoRapidC DoOpExitZCPC DoRapidFC DoCoolOff EOL
END
END
END
DoEndOpPS
IF ConstantSurfaceFeed?
SeqC DoCSSOff ' S' CalcEPRPM# EOL
END
SeqC DoFirstHome EOL
IF ProgStop?
SeqC ' M00' EOL
END
SeqC ' G60 H60' EOL { send machine home }
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:
GE 2000 Bullard VTL L502 85W&S 2SC GE 2000 [BD4] L773 85 1GE 1050T W&S 1SC L587 85GE 550 L&S [FC] L407 85GE 1050T LeBlonde L105 85 1GE 7500 L&S [FC] L408 85 1GE 550 HNC L003 85GE 1050 LeBlonde Rgl L033 85GE 1050T [GT] Baron L591 85GE 1050 HLX Hardinge L124 85 1GE 1050 HLB CS L520 85 1GE 7542 Monarch TC75 L395 85 01GN6T Hardinge [GE] L640 85GE 1050T LB Kngt [GH] L691 85 2GE 1050 Burgmaster [TC] M858 85GE 1050T LB Rgl [GH] L690 85 1GE Fanuc 0TB Hardinge L576 85 1więcej podobnych podstron