{Change Comments ***********************************************************}
{6/1/90
Copied & modified: AB Sheldon [BRL+] L142.69.4
For: Rollason
Machine: Allen Bradley 7300
Control: J&L TNC-A 2 Axis Lathe
Updated to Version 3.2 per Fanuc 10T MS [-] L001.69.3 format.
End turret consists of tool stations 1 thru 8.
Rear turret consists of tool stations 11 thru 16.
DWB}
{7/9/90
Modified: AB 7300 J & L [-] L163.69.4
For: Rollason
Added logic to determine ReverseXYArcs/StandardXYArcs depending on Turret selection.
Added MaxRPM to Preset line of each operation.
DWB}
{9/20/90
Modified: AB 7300 J & L [-] L163.70
For: Rollason
Removed logic for switching G02/G03 per turret, G02 is same for both.
Added 'K' to thread lead address is form.
Updated to Version 3.2 per Fanuc 10T MS [-] L001.71.2 format.
DWB}
{10/25/90
Modified: AB 7300 J & L [-] L163.71.2
For: Rollason
Added FORMAT for CalcEPRPM#.
Force Feed and FeedRate on last line of Approach.
Deleted FirstFeed sub.
Deleted NewToolOffset output.
Deleted extra END in CheckOffset sub.
Added PSComments.
Added ReverseXZArcs IF ToolOver?('8').
Added StandardXZArcs IF NOT ToolOver?('8').
Added MoveType$.
Added StockOff in FirstOperation.
Added CalcEPRPM# at end of prog.
DWB}
{4/9/91
Modified: AB 7300 J & L [-] L163.71.3
For: Rollason
Updated to Version 4.0 per Fanuc 10T MS [-] L001.80 Format.
Only Canned Cycles supported are Threading and Tapping.
Added Formula to calculate start of Tapered Thread for AutoFinish Pass.
DWB}
{5/13/91
Modified: AB 7300 J & L [-] L163.80
For: Rollason
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.
DWB}
{7/24/91
Modified: AB 7300 J & L [-] L163.80
For: Rollason
Modifications made per memo dated 7/12/91 from Tom Walls at Rollason.
Modified ArcIJC to ArcIJ in FormatArc sub.
I and K values must appear on all Arc moves.
Added SETLASTOP to XCPC and ZCPC at NewTool, to output correct moves to clearance.
Because we are using SetAddTools, NewTool modifies XCPC and ZCPC using the CadCam document's
Stock values and the CURRENT Tool's offsets. We actually want to use the PREVIOUS Tool's offsets.
DWB}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '###.####;0'
#3 = '########;0'
#4 = '###.##;0'
#5 = '##.#####;0'
#6 = '###0'
#7 = '#0'
#8 = '*###.####;0' { Used for CycleStartX# in DoCSSStuff sub }
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ADD#,2)
FORMAT(TurretX#,2)
FORMAT(TurretZ#,2)
FORMAT(CycleStartX#,2)
FORMAT(CycleStartZ#,2)
FORMAT(FinishXRadius#,2)
FORMAT(FinishZ#,2)
FORMAT(Program#,3) {.72}
FORMAT(Operation#,3) {.72}
FORMAT(Dwell#,4) {.72}
FORMAT(FeedIPR#,5)
FORMAT(CalcEPRPM#,6)
FORMAT(Tool#,7) {.72}
{Prog Subroutines **********************************************************}
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
IF Metric? {CAM file is in metric, tools and tool path}
SetScale('.03937007874') { change to English, this is an English post}
END
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
TurnCoolantOn:
IF NOT CoolOff?
IF SameTool?
IF LAST CoolOff?
IF ToolOver?('8')
'M6' { End Turret CoolOn }
ELSE
CoolOn { Side Turret CoolOn }
END
END
ELSE
IF ToolOver?('8')
'M6' { End Turret CoolOn }
ELSE
CoolOn { Side Turret CoolOn }
END
END
END
RETURN
DoCSSStuff:
SetAddToolsF
IF ToolOver?('8')
FORMAT(CycleStartX#,8)
ELSE
FORMAT(CycleStartX#,2)
END
SeqC CSSOn 'G96R' CycleStartX# Speed EOL
SetAddTools
RETURN
StockOnNoCan:
IF NOT CannedCycle?
StockOn {need stock for SP positioning, if not a canned cycle}
END
RETURN
Approach: { NOT FOR TAILSTOCK, .69.8 }
StockOff
IF NOT SameTool?
SeqC Rapid
IF ApproachOD?
XCP
ELSE
IF ApproachID?
XOpCD
ELSE {ApproachFace}
StockOnNoCan XSP StockOff
END
END
ZCP EOL
END
IF ApproachOD?
SeqC StockOnNoCan ZSPC TurnCoolantOn EOL
SeqC StockOff XOpCDC EOL
SeqC Feed StockOnNoCan XSPC FeedRate EOL
ELSE
IF ApproachID?
SeqC StockOnNoCan ZSPC TurnCoolantOn EOL
SeqC StockOff XOpCDC EOL { for SameTool ApproachID }
SeqC Feed StockOnNoCan XSPC FeedRate EOL
ELSE {ApproachFace}
SeqC StockOnNoCan XSPC EOL { for SameTool ApproachFace }
SeqC StockOff ZOpCPC TurnCoolantOn EOL
SeqC Feed StockOnNoCan ZSPC FeedRate EOL
END
END
RETURN
CheckGear:
IF NewGear?
GearRange
END
RETURN
CheckOffset:
DoEndOpPS
IF LAST ProgStop?
SeqC 'M0' EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
END
IF NewToolOffset?
IF NewGear?
SeqC ToolOfst SpinOff EOL
ELSE
SeqC ToolOfst EOL
END
ELSE
IF NewGear?
SeqC SpinOff EOL
END
END
IF ConstantSurfaceFeed?
IF LAST ConstantSurfaceFeed?
SeqC SpeedC CheckGear EOL
ELSE
SeqC Preset MaxRPM EOL
SeqC CSSOff 'G97' SpeedC CheckGear EOL
DoCSSStuff
END
ELSE
IF LAST ConstantSurfaceFeed?
SeqC CSSOff 'G97' SpeedC CheckGear EOL
ELSE
SeqC SpeedC CheckGear EOL
END
END
IF LAST ProgStop? OR NewGear?
SeqC SpinOn EOL
END
DoPostScript
RETURN
FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXC MoveZC ArcIJ
RETURN
ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
IF Drilling?
IF Tap?
SeqC SpinOff EOL
SeqC 'G94G4F2.' EOL
SeqC 'G95' Speed InverseSpinOn EOL
Feed
ELSE
IF Dwell?
SeqC 'G94G4F' Dwell# EOL
SeqC 'G95' EOL
IF RapidFeat?
Rapid
ELSE
Feed
END
END
END
END
END
IF PointFeat?
SeqC MoveSXYC EOL
ELSE
IF RapidFeat?
SeqC RapidC MoveXC MoveZC EOL
ELSE
IF LineFeat?
SeqC 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
Rapid
END
END
END
END
END
NEXTFeat
RETURN
IndexTool:
SeqC 'G95'
IF ToolOver?('10')
'M7' SUB# Tool# Num#('10') { Index Position End Turret Tool #11-16 Position }
ELSE
IF ToolOver?('8')
'M71' { NOTE: Tools #9 and #10 do not exist, defaults to Tool #11. }
ELSE
'M6' Tool# { Side Turret #1-8 Position }
END
END
EOL
RETURN
CheckRapid:
IF NOT Rapid?
IF ApproachID? OR LastOp?
IF NOT Threading?
Rapid
END
ELSE
IF LAST NOT Threading?
Rapid
END
END
END
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
PosSideLathe
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 *********************}
IF ToolOver?('8')
ReverseXZArcs
ELSE
StandardXZArcs
END
GetLCycle
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
IF Metric? {CAM file is in metric, tools and tool path}
SetScale('.03937007874') { change to English, this is an English post}
END
OpenSub
StockOff {.71.2}
SetHome
'N' Tool# 'G70M15' EOL { Set Inch System and High Chuck Pressure }
DoOpComments
DoPostScript
Plane
SeqC AbsOrInc 'M60' EOL { Side Turret Indexing Direction }
SeqC 'G94M70' EOL { End Turret Indexing Direction }
SetAddToolsF XsAreRadiiF
SeqC Feed 'X' TurretX# 'Z' TurretZ# 'T0F350' EOL { Move to tool change position }
SetAddTools XsAreRadii
SeqC Preset MaxRPM GearRange EOL { Set maxRPM and gear range }
IndexTool
SeqC CSSOff 'G97'
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
SpinOn OpToolID EOL
Approach
ELSE
IF NewTool?
{Finish off last Operation}
StockOff {.62}
CheckRapid
IF LAST ApproachOD?
SeqC SETLASTOP XCPC EOL
END
SeqC SETLASTOP ZCPC
IF LAST ToolOver?('8')
'M7' { End Turret CoolOff }
ELSE
CoolOff { Side Turret CoolOff }
END
EOL
DoEndOpPS
IF LAST ConstantSurfaceFeed?
SeqC CSSOff 'G97' CalcRPM2 EOL
END
SetAddToolsF XsAreRadiiF
SeqC 'X' LAST TurretX# 'Z' LAST TurretZ# 'T0' EOL
SetAddTools XsAreRadii
IF NewGear?
SeqC SpinOff EOL
END
IF LAST ProgStop?
SeqC 'M0' EOL
ELSE
SeqC ProgStop EOL
END
{Start new Operation}
'N' Tool# 'G70M15' EOL { High Chuck Pressure }
DoOpComments
DoPostScript
SeqC AbsOrInc 'M60' EOL { Side Turret Indexing Direction }
SeqC 'G94M70' EOL { End Turret Indexing Direction }
SetAddToolsF XsAreRadiiF
SeqC Feed 'X' TurretX# 'Z' TurretZ# 'T0F350' EOL { Move to tool change position }
SetAddTools XsAreRadii
SeqC Preset MaxRPM GearRange EOL { Set maxRPM and gear range }
IndexTool
SeqC CSSOff 'G97'
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
SpinOn OpToolID EOL
Approach
ELSE
IF SameTool? {.62}
{Start new Operation}
DoOpComments
StockOff
IF LAST StraightConnect?
CheckOffset
CheckRapid
SeqC StockOnNoCan XSPC ZSPC TurnCoolantOn EOL
ELSE
CheckRapid
IF ApproachOD?
IF LAST ApproachOD?
SeqC XOpECDC EOL
ELSE {around}
SeqC ZCPC EOL
SeqC XCPC EOL
END
ELSE
IF LAST ApproachOD?
SeqC XCPC EOL {around}
END
IF ApproachID?
IF LAST NOT ApproachID?
SeqC ZCPC EOL
SeqC XOpCDC EOL
END
ELSE {ApproachFace}
IF LAST ApproachFace?
SeqC ZOpECPC EOL
ELSE
SeqC ZCPC EOL
END
END
END
CheckOffset
Approach
END
END
END
END {common point for all operations}
IF ConstantSurfaceFeed? AND NOT SameTool?
DoCSSStuff
END
IF CannedCycle?
StockOff
IF Threading?
StockOn
SetPass1
ToolPath
IF AutoFinish?
IF Taper?
SeqC 'X' ADD# FinishXRadius# MUL# Taper# NumSc#('1') EOL
SeqC LCycle 'X' FinishXRadius# 'Z' FinishZ# XTapAtZ ThrdLead EOL
ELSE
SeqC 'X' FinishXRadius# EOL
SeqC LCycle 'Z' FinishZ# ThrdLead EOL
END
SeqC Rapid 'X' CycleStartX# EOL
SeqC 'Z' CycleStartZ# EOL
END
ELSE
IF Drilling?
IF Tap?
SeqC LCycle 'Z' FinishZ# 'K' FeedIPR# EOL
SeqC SpinOff EOL
SeqC 'G94G4F2.' EOL
SeqC 'G95' Speed InverseSpinOn EOL
SeqC LCycle ZSP 'K' FeedIPR# EOL
END
END
END
ELSE
StockOn
SetPass1
ToolPath
IF AutoFinish?
IF NOT Drilling? AND NOT Grooving?
StockOff
IF Turning?
SetPass1
ELSE
SetPass2
END
SeqC RapidC StrtPos EOL
ToolPath
END
END
END
IF Drilling? AND Tap?
SeqC SpinOff EOL
SeqC 'G94G4F2.' EOL
SeqC 'G95' Speed SpinOn EOL
END
IF ApproachID? {.71.2}
CheckRapid
SeqC XOpECDC EOL
END
NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{finish last operation}
StockOff
CheckRapid
IF ApproachOD?
SeqC XCPC EOL
END
SeqC ZCPC
IF ToolOver?('8')
'M7' { End Turret CoolOff }
ELSE
CoolOff { Side Turret CoolOff }
END
EOL
DoEndOpPS
IF ConstantSurfaceFeed?
SeqC CSSOff 'G97S' CalcEPRPM# EOL
END
SetAddToolsF XsAreRadiiF
SeqC 'X' FIRST TurretX# 'Z' FIRST TurretZ# 'T0' EOL
IF ProgStop?
SeqC 'M0' EOL
END
SeqC EOP EOL
Post
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 7300 J&L 4515B L625 85 1AB 8400 Moore JG M422 80 4Stromlaufplan Passat 80 Zusatzheizung ab 01 2001żuraw 80Bandit IV AB [DM] MV32 89 1Stromlaufplan Passat 6 Motor 1,9l 66kW AHU, 1,9l 81kW AFN mit Schaltgetriebe ab 10 1996Stromlaufplan Passat 52 Automatisches 4 Gang Getriebe (AG4) ab 10 2000Dynapath 20M M074 80 1OLYMPUS µ [mju] III 80 instrukcja obsługi cmd=kom jedno,80&serwis=1więcej podobnych podstron