{Change Comments ***********************************************************}
{4/17/90, New from Fanuc 10T MS [-] L001.69.3, WFG}
{7/24/90, Added InitProg globally to posts with this remark, DWB}
{12/19/90
Modified: Swedturn 10 CNC 220 L153.71m
For: Gibbs & Associates
Machine: Swedturn 10
Control: CNC 220
Updated to Version 3.2 per Fanuc 10T MS [-] L001.71.4m Format.
Turret #1 consists of Tools 1-8, and uses normal CoolOn 'M8' command.
Turret #2 consists of Tools greater than 8, and uses literal 'M7' to turn on the Coolant.
When switching between Turrets, ToolChng 'M6' must be output.
'M6' also needs to be output in FirstOperation.
This Post Processor outputs Absolute values only.
DWB}
{4/4/91
Modified: Swedturn 10 CNC 220 L153.71.4m
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 10T MS [-] L001.80 Format.
Only Canned Cycles supported are Threading and Tapping.
DWB}
{08/07/91
Updated: Swedturn 10 CNC 220 L153.80m
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 6M M001.82 Format.
Kim Michelman}
{5/10/95, .82.1m, Updated per Fanuc 10T MS [-] L001.82ż, JR}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '##^###0'
#3 = '#######0'
#4 = '#^##0'
#5 = '###0'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ToolOffsetXRadius#,2)
FORMAT(ToolOffsetZ#,2)
FORMAT(TurretX#,2)
FORMAT(TurretZ#,2)
FORMAT(Program#,3) {.72}
FORMAT(Operation#,3) {.72}
FORMAT(Tool#,3) {.72}
FORMAT(Dwell#,4) {.72}
FORMAT(FeedIPR#,4)
FORMAT(CalcEPRPM#,5)
{Prog Subroutines **********************************************************}
RestoreScale:
IF NOT Metric? {CAM file is in English, tools and tool path}
SetScale('25.4') { change to Metric, this is a Metric 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?
'( TOOL ' Tool# ': ' 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
TurretCoolant:
IF NOT CoolOff?
IF ToolOver?('8') { Turret 2 }
CoolOn
ELSE { Turret 1 }
'M7'
END
END
RETURN
TurretChange:
IF FirstOperation?
ToolChng
ELSE
IF NewTool?
IF ToolOver?('8') AND LAST NOT ToolOver?('8') { Changing from Turret 1 to Turret 2 }
ToolChng
ELSE
IF NOT ToolOver?('8') AND LAST ToolOver?('8') { Changing from Turret 2 to Turret 1 }
ToolChng
END
END
END
END
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
ODApproachSP:
SeqC StockOnNoCan ZSPC TurretChange EOL
SeqC StockOff XOpCDC EOL
StockOnNoCan
IF NotEqual? CycleStartX# XOpCD#
SeqC FeedNoCan XSPC FeedRateNoCan EOL
END
RETURN
IDApproachSP:
SeqC StockOnNoCan ZSPC TurretChange EOL
SeqC StockOff XOpCDC EOL { for SameTool ApproachID }
StockOnNoCan
IF NotEqual? CycleStartX# XOpCD#
SeqC FeedNoCan XSPC FeedRateNoCan EOL
END
RETURN
FaceApproachSP:
SeqC StockOnNoCan XSPC EOL { for SameTool ApproachFace }
SeqC StockOff ZOpCPC TurretChange EOL
StockOnNoCan
IF NotEqual? CycleStartZ# ZOpCP#
SeqC FeedNoCan ZSPC FeedRateNoCan EOL
END
RETURN
AppMove:
StockOff ZCP TurretCoolant
RETURN
Approach: { NOT FOR TAILSTOCK, .82 }
IF ApproachOD?
SeqC Rapid StockOff XCP AppMove EOL
ODApproachSP
ELSE
IF ApproachID?
SeqC Rapid StockOff XOpCD AppMove EOL
IDApproachSP
ELSE {ApproachFace}
SeqC Rapid StockOnNoCan XSP AppMove EOL
FaceApproachSP
END
END
RETURN
CheckOffset:
DoEndOpPS
IF LAST ProgStop?
SeqC 'M0' EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
END
IF ConstantSurfaceFeed?
IF LAST NOT ConstantSurfaceFeed?
IF NotEqual? MaxRPM# LAST MaxRPM#
SeqC CSSOn 'G96' MaxRPM EOL
END
END
ELSE
IF LAST ConstantSurfaceFeed?
SeqC CSSOff 'G97' EOL
END
END
SeqC SpeedC
IF NewToolOffset?
OpToolID LatheOffset
END
IF LAST ProgStop?
SpinOn GearRange EOL {1 or 2 for speed range}
SeqC TurretCoolant EOL
ELSE
EOL
IF NOT CoolOff? AND LAST CoolOff?
SeqC TurretCoolant EOL
END
END
DoPostScript
RETURN
FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXC MoveZC
IF ArcIJFormat?
ArcIJC
ELSE
ArcRC
END
RETURN
ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
IF Drilling?
IF Tap?
SeqC SpinOff EOL
SeqC 'G4I2000' EOL
SeqC Speed InverseSpinOn GearRange EOL
ELSE
IF Dwell?
SeqC 'G4I' Dwell# EOL
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 XTapAtZ ThrdLead EOL
Rapid
END
END
END
END
END
NEXTFeat
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
END
EachOp {Start of post processing *********************}
GetLCycle
IF FirstOperation?
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 MILLIMETERS )' EOL
END
END
RestoreScale
OpenSub
StockOff {.71.2}
SetHome
DoOpComments
DoPostScript
Plane
Seq
IF ConstantSurfaceFeed?
SeqC CSSOn 'G96' MaxRPM EOL
ELSE
SeqC CSSOff 'G97' EOL
END
SeqC 'G95' EOL
SeqC Preset 'X' ToolOffsetXRadius# 'Z' ToolOffsetZ# 'I0K0' Feedrate Speed OpToolID LatheOffset SpinOn GearRange EOL {1 or 2 for speed range}
Approach
ELSE
IF NewTool?
{Finish off last Operation}
StockOff {.62}
RapidC
IF LAST ApproachOD?
SeqC XCPC EOL
ELSE
IF LAST ApproachID?
SeqC LAST XOpECDC EOL
END
END
SeqC ZCPC EOL
DoEndOpPS
{IF NewTurret? THEN CoolOff}
IF ToolOver?('8') AND LAST NOT ToolOver?('8') { Changing from Turret 1 to Turret 2 }
SeqC CoolOff EOL
ELSE
IF NOT ToolOver?('8') AND LAST ToolOver?('8') { Changing from Turret 2 to Turret 1 }
SeqC CoolOff EOL
END
END
SeqC 'X' TurretX# 'Z' TurretZ#
IF LAST ProgStop?
'M0'
ELSE
ProgStop
END
EOL
{Start new Operation}
DoOpComments
DoPostScript
Seq
IF ConstantSurfaceFeed?
IF LAST NOT ConstantSurfaceFeed?
SeqC CSSOn 'G96' MaxRPM EOL
END
ELSE
IF LAST ConstantSurfaceFeed?
SeqC CSSOff 'G97' EOL
END
END
SeqC Preset 'X' ToolOffsetXRadius# 'Z' ToolOffsetZ# 'I0K0' Feedrate Speed OpToolID LatheOffset SpinOn GearRange EOL {1 or 2 for speed range}
Approach
ELSE
IF SameTool? {.62}
{Start new Operation}
DoOpComments
StockOff
IF LAST StraightConnect?
CheckOffset
SeqC RapidC StockOnNoCan XSPC ZSPC EOL
ELSE
RapidC
IF ApproachOD?
IF LAST ApproachOD?
SeqC LAST XOpECDC EOL
ELSE {around}
IF LAST ApproachID?
SeqC LAST XOpECDC EOL
END
SeqC ZCPC EOL
SeqC XCPC EOL
END
CheckOffset
ODApproachSP
ELSE
IF ApproachID?
IF LAST ApproachID?
SeqC LAST XOpECDC EOL
ELSE
IF LAST ApproachOD? {around}
SeqC XCPC EOL
END
SeqC ZCPC EOL
SeqC XOpCDC EOL
END
CheckOffset
IDApproachSP
ELSE {ApproachFace}
IF LAST ApproachFace?
SeqC LAST ZOpECPC EOL
ELSE
IF LAST ApproachOD? {around}
SeqC XCPC EOL
ELSE {LAST ApproachID}
SeqC LAST XOpECDC EOL
END
SeqC ZCPC EOL
END
CheckOffset
FaceApproachSP
END
END
END
END
END
END {common point for all operations}
IF CannedCycle?
StockOff
IF Threading?
StockOn
SetPass1
ToolPath
IF AutoFinish?
SeqC XatFinZ EOL
SeqC 'G33' FinZ XTapAtZ ThrdLead EOL
SeqC Rapid XCSP EOL
SeqC ZCSP EOL
END
ELSE
IF Drilling?
IF Tap?
SeqC LCycle ZDepth 'I0K' FeedIPR# EOL
SeqC SpinOff EOL
SeqC 'G4I2000' EOL {Dwell is G4 with letter 'I' address, not G41}
SeqC Speed InverseSpinOn GearRange EOL
SeqC LCycle ZSP 'I0K' FeedIPR# EOL
END
END
END
ELSE
StockOn
SetPass1
ToolPath
IF AutoFinish?
IF NOT Drilling? AND NOT Grooving? AND NOT RoughSimple?
StockOff
IF Turning?
SetPass1
RapidC
IF ApproachFace?
SeqC ZOpECPC EOL
FaceApproachSP
ELSE
SeqC XOpECDC EOL
IF ApproachOD?
ODApproachSP
ELSE {ApproachID}
IDApproachSP
END
END
ELSE
SetPass2
SeqC RapidC StrtPos EOL
END
ToolPath
END
END
END
IF Drilling? AND Tap?
SeqC SpinOff EOL
SeqC 'G4I2000' EOL {Dwell is G4 with letter 'I' address, not G41}
SeqC Speed SpinOn GearRange EOL
END
NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{finish last operation}
StockOff
RapidC
IF ApproachOD?
SeqC XCPC EOL
ELSE
IF ApproachID?
SeqC XOpECDC EOL
END
END
SeqC ZCPC EOL
DoEndOpPS
SeqC CoolOff EOL
SeqC 'X' FIRST TurretX# 'Z' FIRST TurretZ# SpinOff 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:
Swedturn 10 CNC 220 L433 82mSwedturn 10 CNC 220 L433 85 2mSwedturn 10 CNC 220 [SM] L727 85Swed 10 CNC 220 [LE] L337 82 1Fanuc 0T (Anzon1) L077 82 1mFanuc 6M Mazak [FN] M522 82 1mCincinnati Acr CNC TC L113 82 1Fanuc 3T J&L L287 82 1mFanuc 6T Mazak [BEL] L288 82 1mSwedturn 6 CNC 300[LE] L222 82Swedturn 6 CNC 300 L154 82mwięcej podobnych podstron