{Change Comments ***********************************************************}
{5/20/91
Copied & modified: AB 7300 J & L [-] L163.80
For: Bacharach, Inc
Machine: Allen Bradley 7365
Control: J&L TNC-A 2 Axis Lathe
Side Turret consists of OD tool stations 1 thru 8.
End Turret consists of ID tool stations 9 thru 14.
Changes made per conversations with Bob Ketchell and sample COMPACT II printouts.
Simplified TurnCoolantOn sub.
Added NewToolOffset to CheckOffset sub.
Added logic to turn SpinOff when NewGear? = TRUE.
Added XTapAtZ to ThreadFeat in ToolPath and to AutoFinish line in CannedCycle.
Simplified IndexTool sub using MATH.
Combined and simplified CheckRapid subs.
Rapid moves are conditionally preceeded by a literal 'G94' to set the control into IPM.
Rapid will output 'G73' which is defined as a Positioning Mode. Rapid Mode is conditionally
canceled by a literal 'G95' to set the control into IPR for LineFeat ('G1') and ArcFeat ('G2/G3').
Feed outputs the normal 'G1'. The only deviation from this concerns Threading. During Threading,
the control remains in 'G94' IPM Mode, and the move to the diameter to be cut is a Feed 'G1', at
the FeedRate in IPM. A MATH formula has been created in the ThreadInFeedRate sub that multiplies
FeedRateIPR# by SpeedRPM#.
Moved TurnCoolantOn back to Approach line.
Customer requested that Approach from home with End Turret be broken up into two moves, first in
'X', and then in 'Z'.
Customer requested that when changing from End Turret to Side Turret, Exit from part be in 'Z'
first, and then in 'X'.
NOTE: Still need following modifications:
Need to change Gears at User discretion, not based on Speed or MaxRPM.
GearRanges are M42, Low 10 RPM to 667 RPM, and M43, High 50 RPM to 2000 RPM.
Need to reduce or increase chuck pressure at User discretion.
ChuckPressure commands are M14, Low, and M15, High.
Need to add in PreToolOver?('8') BOOLEAN and PreTool# commands and logic.
Needed for Simutaneous Function Index End/Side Turret Positions.
Need to delete all occurances of SetAddTools and SetAddToolsF.
DWB}
{8/1/91
Modified: AB 7365 J & L L216.80
For: Bacharach, Inc
Changes made per conversations with Bob Ketchell.
Deleted all occurances of SetAddTools, SetAddToolsF, XsAreRadii and XsAreRadiiF.
Changed 'X' TurretX# 'Z' TurretZ# to Home in FirstOperation and NewTool.
Changed 'X' LAST TurretX# 'Z' LAST TurretZ# to NewHome in NewTool.
Changed 'X' FIRST TurretX# 'Z' FIRST TurretZ# to FirstHome at end of Prog.
Added NextTool# to IndexTool sub.
Deleted special FORMAT for CycleStartX# in CSSOn routine.
Deleted all GearRange output.
User will control his GearRanges through PostScript literals.
User will also control his ChuckPressure through PostScript literals.
DWB}
{9/5/91
Modified: AB 7365 J & L L216.80.1
For: Bacharach, Inc
Updated to Version 4.0 per Fanuc 10T MS [-] L001.82 Format.
Added SetAddTools and SetAddToolsF back in.
SetAddTools is turned on at initialization.
SetAddToolsF and SetAddTools are turned on during CSSStuff sub, respectfully.
SetAddToolsF and SetAddTools are turned on before and after, respectfully, at Home in
FirstOperation and NewTool, NewHome at NewTool, and FirstHome at end of Prog.
DWB}
{10/16/91
Modified: AB 7365 J & L L216.82
For: Bacharach, Inc
Added FORMAT for TurretX# & TurretZ#.
Added SetTurret Sub to change to NegSideLathe and ReverseXZArcs for End Turret work.
Calling this sub from FirstOperation and NewTool.
Moved PosSideLathe to output correct TurretX# and TurretZ# in FirstOperation, NewTool and at
end of Prog.
Added StandardXZArcs for Side Turret work in FirstOperation, NewTool and at end of Prog.
Added back following changes made on 8/1/91:
Changed Home to 'X' TurretX# 'Z' TurretZ# in FirstOperation and NewTool.
Changed NewHome to 'X' LAST TurretX# 'Z' LAST TurretZ# in NewTool.
Changed FirstHome to 'X' FIRST TurretX# 'Z' FIRST TurretZ# at end of Prog.
DWB}
{2/13/92
Modified: AB 7365 J & L L216.82
For: Bacharach, Inc
Changes made per conversations with Bob Ketchell and Faxed copy of manual concerning comments.
Comments in Bacharach's EIA output are to be started with the 'Uppercase, D, LowerCase' codes, and
ended with 'Uppercase, M, LowerCase' codes. The ASCII equivalent to EIA Uppercase is ')' and the
ASCII equivalent to EIA Lowercase is '?'
Changed Start Comment Character from '(' to ')D?'
Changed End Comment Character from ')' to ')M?'
DWB}
{03/18/92
Modified: AB 7365 J & L L216.82.2
For: Bacharach, Inc
Seperated the TurretX# and the TurretZ# into two seperate lines in NewTool?
Added logic for SideToEndTurret, EndToSideTurret and Same Turret in NewTool.
Kim Michelman}
{03/24/92
Modified: AB 7365 J & L L216.82.3
For: Bacharach, Inc
Moved the OpenSub command before the IF UseComment? boolean to prevent
resequencing of ill N - numbers.
Kim Michelman}
{1/12/96, L216.82.4, Updated for Catalyst v2.20 per Fanuc 10T MS [-] L001.85.02 Format, DWB}
{1/16/96
Copied: AB 7365 J & L L216.85
Created: AB 7365 [HP] L413.85
For: Hydromatic Pumps
Machine:
Control:
Versions: ncCad 4.33.01/ncCAM 4.33.01/ncPost 4.33.09/Catalyst v2.28.08/Compost 4.21.34/1.0a
Changes made per Paul McGathey of Hydromatic Pumps.
Changed Rapid Feed value from 100^0 to 300^0 in Compost Numbers Dialog.
Added XOpCD# to FORMAT#2 at Prog Numeric Format Definitions.
Deleted SeqC from all UseComment Blocks.
Changed literal ' )D? ' to ' (MSG,' at all UseComment Blocks.
Deleted literal 'M?' at all UseComment Blocks.
Moved G96 block to before Feed Block at ApproachSP.
Modified to output 'R' Parameter equal to XOpCP# for NOT SameTool NOT ApproachFace Operations.
Deleted condition to break up Approach into two moves at AppMove sub.
Added RapidF to Approach block at AppMove sub.
Added Rapid to Approach block at Approach sub.
Deleted 'M15', Set High Chuck Pressure block at FirstOperation and NewTool.
Added 'M43', High Gear to Speed block at FirstOperation.
DWB}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '###.####;0'
#3 = '#######0'
#4 = '###.##;0'
#5 = '##.#####;0'
#6 = '###0'
#7 = '#0'
#8 = '*###.####;0' { For CycleStartX# at DoCSSStuff }
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ADD#,2)
FORMAT(TurretX#,2)
FORMAT(TurretZ#,2)
FORMAT(XOpCD#,2)
FORMAT(CycleStartX#,2) { Formatted to #8 at DoCSSStuff }
FORMAT(CycleStartZ#,2)
FORMAT(FinishXRadius#,2)
FORMAT(FinishZ#,2)
FORMAT(Program#,3) {.72}
FORMAT(Operation#,3) {.72}
FORMAT(Dwell#,4) {.72}
FORMAT(RapidF#,4)
FORMAT(MUL#,5)
FORMAT(FeedIPR#,5)
FORMAT(CalcEPRPM#,6)
FORMAT(SUB#,7)
FORMAT(Tool#,7) {.72}
FORMAT(NextTool#,7)
{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?
'(MSG,OPERATION ' Operation# ': ' OperationType$ ' )' EOL
END
IF OperationComment?
'(MSG,' OperationComment$ ' )' EOL
END
IF WorkGroupComment?
'(MSG,' WorkGroupComment$ ' )' EOL
END
IF ToolTypeComment?
'(MSG,TOOL ' Tool# ': ' ToolSize$ ' ' ToolType$ ' )' EOL
END
IF ToolComment?
'(MSG,' 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
GetG94:
IF NOT Rapid?
SeqC 'G94' EOL
END
RETURN
GetG95:
IF Rapid?
SeqC 'G95' EOL
END
RETURN
TurnCoolantOn:
IF ToolOver?('8') AND NOT CoolOff? { End Turret }
'M06'
ELSE { Side Turret }
CoolOn
END
RETURN
DoCSSStuff:
IF ConstantSurfaceFeed?
SetAddToolsF
IF ToolOver?('8')
FORMAT(CycleStartX#,8)
END
CSSOn 'G96R'
IF ApproachFace? OR SameTool?
CycleStartX#
ELSE
XOpCD#
END
Speed
FORMAT(CycleStartX#,2)
SetAddTools
END
RETURN
StockOnNoCan:
IF NOT CannedCycle?
StockOn {need stock for SP positioning, if not a canned cycle}
END
RETURN
FeedNoCan:
IF Threading? OR NOT CannedCycle?
GetG95 FeedC
END
RETURN
FeedRateNoCan:
IF Threading? OR NOT CannedCycle?
FeedRateC
END
RETURN
ApproachSP:
IF ApproachFace?
SeqC StockOnNoCan XSPC EOL
SeqC StockOff ZOpCPC EOL
StockOnNoCan
IF NOT SameTool?
SeqC DoCSSStuff EOL
END
IF NotEqual? CycleStartZ# ZOpCP#
SeqC FeedNoCan ZSPC FeedRateNoCan EOL
END
ELSE { ODApproach/IDApproach }
SeqC StockOnNoCan ZSPC EOL
SeqC StockOff XOpCDC EOL
StockOnNoCan
IF NOT SameTool?
SeqC DoCSSStuff EOL
END
IF NotEqual? CycleStartX# XOpCD#
SeqC FeedNoCan XSPC FeedRateNoCan EOL
END
END
RETURN
AppMove:
StockOff ThisOpEntryZCP RapidF TurnCoolantOn
RETURN
Approach: { NOT FOR TAILSTOCK, .82 }
Rapid
IF ApproachOD?
SeqC ThisOpEntryXCP AppMove EOL
ELSE
IF ApproachID?
SeqC XOpCD AppMove EOL
ELSE {ApproachFace}
SeqC StockOnNoCan XSP AppMove EOL
END
END
ApproachSP
RETURN
CheckOffset:
DoEndOpPS
IF LAST ProgStop?
SeqC 'M00' EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
IF ToolOver?('8') { End Turret }
SeqC 'M07' EOL
ELSE { Side Turret }
SeqC CoolOff EOL
END
END
END
IF NewToolOffset?
SeqC ToolOfst EOL
END
CSSOff
IF ConstantSurfaceFeed?
IF LAST ConstantSurfaceFeed?
IF NotEqual? MaxRPM# LAST MaxRPM#
SeqC Preset MaxRPM EOL
END
IF LAST ProgStop?
DoCSSStuff
ELSE
IF NotEqual? SpeedRPM# LAST SpeedRPM#
DoCSSStuff
END
END
ELSE
SeqC Preset MaxRPM EOL
DoCSSStuff
END
ELSE
IF LAST ConstantSurfaceFeed?
'G97' Speed
ELSE
IF LAST ProgStop?
'G97' Speed
ELSE
IF NotEqual? SpeedRPM# LAST SpeedRPM#
'G97' Speed
END
END
END
END
IF LAST ProgStop?
SeqC {SpeedC} SpinOn EOL
SeqC TurnCoolantOn EOL
ELSE
SeqC {SpeedC} EOL
IF NOT CoolOff? AND LAST CoolOff?
SeqC TurnCoolantOn EOL
END
END
DoPostScript
RETURN
FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXC MoveZC ArcIJC
RETURN
CkCRC: { 4.2 }
IF XMove? OR ZMove? { Approach Length Feature and Multiple Pockets }
IF LastFeat?
CRCOffC { Exit Length Feature }
ELSE
CRCOnC { Entry Length Feature }
END
END
RETURN
ThreadInFeedRate:
'F' MUL# SpeedRPM# MUL# FeedIPR# NumSc#('1') { To maintain IPM Mode. }
RETURN
DoDwell:
IF Tap?
SeqC SpinOff EOL
END
IF FirstFeat?
GetG94
ELSE
IF LAST NOT RapidFeat?
GetG94
END
END
IF Tap?
SeqC 'G4F2.' EOL
SeqC Speed InverseSpinOn EOL
ELSE
IF Dwell?
SeqC 'G4F' Dwell# EOL
END
END
IF RapidFeat?
SeqC Rapid MoveXC MoveZC RapidF EOL
ELSE
SeqC 'G95' EOL
SeqC Feed MoveXC MoveZC FeedRate EOL
END
RETURN
ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
IF Drilling?
IF Tap?
DoDwell
ELSE
IF Dwell?
DoDwell
END
END
END
END
IF PointFeat?
SeqC MoveSXYC EOL
ELSE
IF RapidFeat?
IF Threading?
IF FirstFeat? OR NEXT ThreadFeat?
IF FirstFeat?
SeqC 'G94' EOL
END
SeqC Feed MoveXC ThreadInFeedRate EOL
ELSE
IF LAST ThreadFeat?
SeqC Rapid MoveXC RapidF EOL
ELSE
SeqC MoveZC EOL
END
END
ELSE
GetG94
SeqC RapidC MoveXC MoveZC RapidFC EOL
END
ELSE
GetG95
IF LineFeat?
SeqC CkCRC FeedC MoveXC MoveZC FeedRateC EOL
ELSE
IF ArcFeat?
EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop }
SeqC FormatArc FeedRateC EOL
NEXTQuadrant
ELSE
IF ThreadFeat?
SeqC 'G33' MoveXC MoveZC
IF Taper?
XTapAtZ
END
ThrdLead EOL
END
END
END
END
END
NEXTFeat
RETURN
IndexTool:
IF ToolOver?('8') { End Turret }
IF GreaterThan? NextTool# Num#('8') { EndToEnd }
SeqC 'M70' EOL { End Turret CW Indexing Direction }
ELSE { EndToSide }
SeqC 'M60' EOL { Side Turret CW Indexing Direction }
SeqC 'M70' EOL { End Turret CW Indexing Direction }
SeqC 'G25' { Simutaneous Function }
'M6' NextTool# { Index Side Turret Positions #1-8 }
EOL
END
SeqC 'M7' SUB# Tool# Num#('8') EOL { Index End Turret Positions #9-12 }
ELSE { Side Turret }
IF GreaterThan? NextTool# Num#('8') { SideToEnd }
SeqC 'M70' EOL { End Turret CW Indexing Direction }
SeqC 'M60' EOL { Side Turret CW Indexing Direction }
SeqC 'G25' { Simutaneous Function }
'M7' SUB# NextTool# Num#('8') { Index End Turret Positions #9-12 }
EOL
ELSE { SideToSide }
SeqC 'M60' EOL { Side Turret CW Indexing Direction }
END
SeqC 'M6' Tool# EOL { Index Side Turret Positions #1-8 }
END
RETURN
SetTurret:
SeqC AbsOrInc EOL
SeqC 'G94' EOL { IPM Mode }
PosSideLathe
SetAddToolsF
IF FirstOperation?
SeqC Rapid 'X' TurretX# 'Z' TurretZ# RapidF ToolOfst EOL { Move to ToolChange position }
ELSE
IF ToolOver?('8') AND LAST NOT ToolOver?('8') { SideToEndTurret }
SeqC Rapid 'X' TurretX# RapidF ToolOfst EOL { Move to 'X' ToolChange position }
SeqC 'Z' TurretZ# EOL { Move to 'Z' ToolChange position }
ELSE
IF NOT ToolOver?('8') AND LAST ToolOver?('8') { EndToSideTurret }
SeqC Rapid 'Z' TurretZ# RapidF ToolOfst EOL { Move to 'Z' ToolChange position }
SeqC 'X' TurretX# EOL { Move to 'X' ToolChange position }
ELSE { Same Turret }
SeqC Rapid 'X' TurretX# 'Z' TurretZ# RapidF ToolOfst EOL { Move to ToolChange position }
END
END
END
SetAddTools
IF ToolOver?('8') { End Turret }
NegSideLathe
ReverseXZArcs
ELSE { Side Turret }
StandardXZArcs
END
RETURN
TurretRet:
PosSideLathe
SetAddToolsF
SeqC 'X' LAST TurretX# 'Z' LAST TurretZ# 'T0'
SetAddTools
IF ToolOver?('8') AND LAST NOT ToolOver?('8') { SideToEndTurret }
'M81' { Hold Spindle RPM }
ELSE
IF NOT ToolOver?('8') AND LAST ToolOver?('8') { EndToSideTurret }
'M81' { Hold Spindle RPM }
END
END
EOL
RETURN
CheckRapid:
SeqC CRCOffC EOL
IF LAST Drilling? AND LAST Tap?
Rapid
ELSE
IF LAST Threading?
SetStatusRapid
ELSE
GetG94
IF LAST CannedCycle?
Rapid
ELSE
RapidC
END
END
END
RETURN
CheckRapidF:
IF NOT EmptyLine?
IF LAST Drilling? AND LAST Tap?
RapidF
ELSE
IF LAST NOT Threading?
IF LAST CannedCycle?
RapidF
ELSE
RapidFC
END
END
END
END
RETURN
CheckRapid2:
SeqC CRCOffC EOL
IF Drilling? AND Tap?
Rapid
ELSE
IF Threading?
SetStatusRapid
ELSE
GetG94
IF CannedCycle?
Rapid
ELSE
RapidC
END
END
END
RETURN
CheckRapidF2:
IF NOT EmptyLine?
IF Drilling? AND Tap?
RapidF
ELSE
IF NOT Threading?
IF CannedCycle?
RapidF
ELSE
RapidFC
END
END
END
END
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
XsAreRadii
NoIJKSigns
SetMaxRPM('2000')
SetMaxFeed('500')
SetAddTools
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
OpenSub
IF UseComments?
IF ProgramNameComment?
'(MSG,' ProgramName$ ' )' EOL
END
IF ProgramComment?
'(MSG,' ProgramComment$ ' )' EOL
END
IF FormatNameComment?
'(MSG,FORMAT: ' FormatName$ ' )' EOL
END
IF TimeComment?
'(MSG,' Date$ ' AT ' Time$ ' )' EOL
END
IF MovesComment?
'(MSG,OUTPUT IN ' MoveType$ ' INCHES )' EOL
END
END
RestoreScale
StockOff {.71.2}
SetHome
DoOpComments
DoPostScript
Plane
Seq
IndexTool
SeqC 'G70' EOL { Inch System }
SetTurret
SeqC 'M48' EOL { Cancel M49 'Bypass Overrides' }
IF ConstantSurfaceFeed?
SeqC Preset MaxRPM EOL
END
SeqC 'M80' EOL { Cancel M81 'Hold Spindle RPM' }
SeqC CSSOff 'G97'
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
'M43' EOL { High Gear }
SeqC SpinOn EOL
Approach
ELSE
IF NewTool?
{Finish off last Operation}
StockOff {.62}
CheckRapid
IF ToolOver?('8') AND LAST NOT ToolOver?('8') { SideToEndTurret }
SeqC LAST OpExitZCPC CheckRapidF CoolOff EOL
END
IF LAST ApproachOD?
SeqC LAST OpExitXCPC CheckRapidF EOL
ELSE
IF LAST ApproachID?
SeqC LAST XOpECDC CheckRapidF EOL
END
END
SeqC LAST OpExitZCPC CheckRapidF
IF LAST ToolOver?('8') { End Turret }
'M07'
ELSE { Side Turret }
IF NOT ToolOver?('8') { Side Turret }
CoolOff
END
END
EOL
DoEndOpPS
IF LAST ConstantSurfaceFeed?
SeqC CSSOff 'G97' CalcRPM2 EOL
END
TurretRet
IF LAST ProgStop?
SeqC 'M00' EOL
ELSE
SeqC ProgStop EOL
END
{Start new Operation}
DoOpComments
DoPostScript
Seq
IndexTool
SetTurret
IF ConstantSurfaceFeed?
SeqC Preset MaxRPM EOL { Set MaxRPM }
END
SeqC 'M80' EOL { Cancel M81 'Hold Spindle RPM' }
SeqC CSSOff 'G97'
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
EOL
SeqC SpinOn EOL
Approach
ELSE
IF SameTool? {.62}
{Start new Operation}
StockOff
DoOpComments
IF LAST StraightConnect?
CheckOffset
CheckRapid
SeqC StockOnNoCan XSPC ZSPC CheckRapidF EOL
ELSE
CheckRapid
IF ApproachOD?
IF LAST ApproachOD?
SeqC LAST XOpECDC CheckRapidF EOL
ELSE {around}
IF LAST ApproachID?
SeqC LAST XOpECDC CheckRapidF EOL
END
SeqC LAST OpExitZCPC CheckRapidF EOL
SeqC LAST OpExitXCPC EOL
END
ELSE
IF ApproachID?
IF LAST ApproachID?
SeqC LAST XOpECDC CheckRapidF EOL
ELSE
IF LAST ApproachOD? {around}
SeqC LAST OpExitXCPC CheckRapidF EOL
END
SeqC LAST OpExitZCPC CheckRapidF EOL
SeqC XOpCDC EOL
END
ELSE {ApproachFace}
IF LAST ApproachFace?
SeqC LAST ZOpECPC CheckRapidF EOL
ELSE
IF LAST ApproachOD? {around}
SeqC LAST OpExitXCPC CheckRapidF EOL
ELSE {LAST ApproachID}
SeqC LAST XOpECDC CheckRapidF EOL
END
SeqC LAST OpExitZCPC EOL
END
END
END
CheckOffset
ApproachSP
END
END
END
END {common point for all operations}
IF CannedCycle?
StockOff
IF Threading?
StockOn
SetPass1
ToolPath
IF AutoFinish?
SeqC Feed 'X' ADD# FinishXRadius# Taper# ThreadInFeedRate EOL
SeqC LCycle
IF Taper?
'X' FinishXRadius# 'Z' FinishZ# XTapAtZ
ELSE
'Z' FinishZ#
END
ThrdLead EOL
SeqC Rapid 'X' CycleStartX# RapidF EOL
SeqC 'Z' CycleStartZ# EOL
END
ELSE
IF Drilling?
IF Tap?
GetG95
SeqC LCycle 'Z' FinishZ# 'K' FeedIPR# EOL
SeqC SpinOff EOL
SeqC 'G94' EOL
SeqC 'G4F2.' EOL
SeqC Speed InverseSpinOn EOL
SeqC 'G95' EOL
SeqC LCycle ZSP 'K' FeedIPR# EOL
END
END
END
ELSE
StockOn
SetPass1
ToolPath
IF AutoFinish? { .82.1c }
StockOff
IF Turning?
GetG94
IF ApproachFace?
SeqC RapidC ZOpECPC RapidFC EOL
ELSE
SeqC RapidC XOpECDC RapidFC EOL
END
ApproachSP
SeqC StockOff StrtPosC EOL
ToolPath
ELSE
IF Roughing? AND NOT RoughSimple?
GetG94
SetPass2
SeqC RapidC XSPC ZSPC RapidFC EOL
SeqC StockOff StrtPosC EOL
ToolPath
SetPass1
ELSE
IF Threading?
SeqC Feed 'X' ADD# FinishXRadius# Taper# ThreadInFeedRate EOL
SeqC 'G33'
IF Taper?
'X' FinishXRadius# 'Z' FinishZ# XTapAtZ
ELSE
'Z' FinishZ#
END
ThrdLead EOL
SeqC Rapid XSP RapidF EOL
SeqC ZSP EOL
END
END
END
END
END
IF Drilling? AND Tap?
SeqC SpinOff EOL
SeqC 'G94' EOL
SeqC 'G4F2.' EOL
SeqC Speed SpinOn EOL
END
NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{finish last operation}
StockOff
CheckRapid2
IF ToolOver?('8') { End Turret }
SeqC OpExitZCPC CheckRapidF2 'M07' EOL { CoolOff }
END
IF ApproachOD?
SeqC OpExitXCPC CheckRapidF2 EOL
ELSE
IF ApproachID?
SeqC XOpECDC CheckRapidF2 EOL
END
END
IF NOT ToolOver?('8') { Side Turret }
SeqC OpExitZCPC CheckRapidF2 CoolOff EOL
END
DoEndOpPS
IF ConstantSurfaceFeed?
SeqC CSSOff 'G97S' CalcEPRPM# EOL
END
PosSideLathe
SetAddToolsF
SeqC 'X' FIRST TurretX# 'Z' FIRST TurretZ# 'T0' RapidFC EOL
IF ProgStop?
SeqC 'M00' EOL
END
SeqC EOP EOL
Post
Close
IF UseComments?
SetScale('1') {restore scale for comments}
Reopen
IF FileBytesComment?
'(MSG,FILE LENGTH: ' FileBytes# ' CHARACTERS )' EOL
END
IF FileFeetComment?
'(MSG,FILE LENGTH: ' FileFeet# ' FEET )' EOL
END
IF FileMetersComment?
'(MSG,FILE LENGTH: ' FileMeters# ' METERS )' EOL
END
Close
END
Wyszukiwarka
Podobne podstrony:
AB 7365 J & L L216 85Fanuc 0T DP [HP] L497 85 1AB 7360 Hardinge L167 85AB 8600 J&S Grinder L524 85W&S 2SC AB 7360 [BD4] L705 85 3AB 7360 [SH] L609 85AB 7300 J&L 4515B L625 85 1W&S 2SC AB 7360 [SN] L829 85AB 8400 Monarch L610 85GE 1050T W&S 242 [HP] L401 85W & S 1SC AB 7360 KOL L460 85 1AB 8600 W&S 2SCL L627 85AB Series 9 240 L218 85W & S 2SC AB 7360 JD L380 85 1mW & S 2SC AB 7360 JD L380 85 1mMazatrol T2 [HP] L402 85Cin Acr CNC TC [HP] L400 85AB CNC 8400 LP L623 85więcej podobnych podstron