{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 6 CNC 300 L154.71m
For: Gibbs & Associates
Machine: Swedturn 6
Control: CNC 300
Updated to Version 3.2 per Fanuc 10T MS [-] L001.71.4m Format.
Turret #1 consists of Tools 1-20, and uses literal 'M22' to turn on the Coolant.
Turret #2 consists of Tools greater than 20, and uses normal CoolOn 'M8' command.
This Post Processor outputs Absolute values only.
DWB}
{4/4/91
Modified: Swedturn 6 CNC 300 L154.74.1m
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 10T MS [-] L001.80 Format.
Only Canned Cycles supported are RoughContour, Threading and Tapping.
DWB}
{8/7/91
Updated: Swedturn 6 CNC 300 L154.80m
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 6M M001.82 Format.
Kim Michelman}
{3/8/96
Copied: Swedturn 6 CNC 300 L154.82m
Created: Swedturn 10 CNC 220 L433.82m
For: Fructus/KHK Mekaniska
Machine: Swedturn SMT 10
Control: CNC 220
Versions: ncCad 4.33.02/ncCAM 4.33.01/ncPost 4.33.09/Catalyst v3.02.02/Compost 4.21.34.1/1.0a
Changes made per Mikael Bagge of Fructus, POST_SMT.VNC and SMT220.NCF files
Updated for Catalyst v2.20 per Fanuc 10T MS [-] L001.85 Format.
Deleted literal G81 block at FirstOperation.
Moved literal G95 block to be StartCode at FirstOperation.
Added GearRange support.
GearRange which is either 1 or 2 is output with SpinOn where needed.
M31 Low = CWSpindle 0-1000 RPM
M32 High = CWSpindle 1001+ RPM
M41 Low = CCWSpindle 0-1000 RPM
M42 High = CCWSpindle 1001+ RPM
Deleted literal M24 block at CheckFeedRate sub.
Changed Canned Thread Cycle from G36 to G34 in Mach Spec Threading dialog.
Deleted SpinOff at end of Prog.
Added condtion to output EOP or M0 to ReturnToTurretXZ block at end of prog.
Deleted CutMethod at CannedCycle Threading block.
Deleted ThrdHeight at CannedCycle Threading block.
Deleted CutDepth at CannedCycle Threading block.
Deleted Speed at CannedCycle Threading block.
Deleted ToolAngle at CannedCycle Threading block.
Added TrackXNO# to FORMAT#2 at Prog Numeric Format Definitions.
Added FirstMoveEPX# to FORMAT#2 at Prog Numeric Format Definitions.
Changed XatFinZ to 'X' FirstMoveEPX# at CannedCycle Threading block.
Modified to support unconditional Rapid, Feed, CWArc, and CCWArc.
Added G5, Look Ahead Code, at all transitions from Rapid block to Non-Rapid block.
DWB}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '####^#0'
#3 = '#######0'
#4 = '###0'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(MUL#,2) { Non-Canned Threading AutoFinish }
FORMAT(TrackXNO#,2)
FORMAT(ToolOffsetXRadius#,2)
FORMAT(ToolOffsetZ#,2)
FORMAT(TurretX#,2)
FORMAT(TurretZ#,2)
FORMAT(FirstMoveEPX#,2)
FORMAT(FirstMoveEPZ#,2)
FORMAT(FeedIPR#,2)
FORMAT(Dwell#,2) {.72}
FORMAT(Program#,3) {.72}
FORMAT(Operation#,3) {.72}
FORMAT(Tool#,3) {.72}
FORMAT(CalcEPRPM#,4)
{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
DoSubComment:
NewProg
IF UseComments? AND SubComment?
'( SUB NUMBER: ' Program# ' )' EOL
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
SeqLabC PostScript EOL {literals}
PSStuff {commands}
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqLabC EndOpPS EOL {literals}
PSStuff {commands}
NextPS
RETURN
TurretCoolant:
IF NOT CoolOff?
IF ToolOver?('20') { Turret 2 }
'M22'
ELSE { Turret 1 }
CoolOn
END
END
RETURN
StockOnNoCan:
IF NOT CannedCycle?
StockOn {need stock for SP positioning, if not a canned cycle}
END
RETURN
FeedNoCan:
IF CannedCycle?
Rapid
ELSE
'G5' EOL { LookAhead Code }
SeqLabC Feed
END
RETURN
FeedRateNoCan:
IF NOT CannedCycle?
FeedRateC
END
RETURN
ApproachSP:
IF ApproachFace?
SeqLabC Rapid StockOnNoCan XSPC EOL
SeqLabC Rapid StockOff ZOpCPC EOL
StockOnNoCan
IF NotEqual? CycleStartZ# ZOpCP#
SeqLabC FeedNoCan ZSPC FeedRateNoCan EOL
END
ELSE { ODApproach/IDApproach }
SeqLabC Rapid StockOnNoCan ZSPC EOL
SeqLabC Rapid StockOff XOpCDC EOL
StockOnNoCan
IF NotEqual? CycleStartX# XOpCD#
SeqLabC FeedNoCan XSPC FeedRateNoCan EOL
END
END
RETURN
AppMove:
StockOff ThisOpEntryZCP TurretCoolant
RETURN
Approach: { NOT FOR TAILSTOCK, .82 }
Rapid
IF ApproachOD?
SeqLabC ThisOpEntryXCP AppMove EOL
ELSE
IF ApproachID?
SeqLabC XOpCD AppMove EOL
ELSE {ApproachFace}
SeqLabC StockOnNoCan XSP AppMove EOL
END
END
ApproachSP
RETURN
CheckOffset:
DoEndOpPS
IF LAST ProgStop?
SeqLabC 'M0' EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqLabC CoolOff EOL
END
IF NewGear?
SeqLabC SpinOff EOL
END
END
CSSOff
IF ConstantSurfaceFeed?
IF LAST ConstantSurfaceFeed?
IF LAST ProgStop? OR NewGear?
CSSOn 'G96' Speed
ELSE
IF NotEqual? SpeedRPM# LAST SpeedRPM#
CSSOn 'G96' Speed
END
END
ELSE
SeqLabC CSSOn 'G96' MaxRPM EOL
Speed
END
ELSE
IF LAST ConstantSurfaceFeed?
'G97' Speed
ELSE
IF LAST ProgStop? OR NewGear?
'G97' Speed
ELSE
IF NotEqual? SpeedRPM# LAST SpeedRPM#
'G97' Speed
END
END
END
END
IF NewToolOffset?
OpToolID LatheOffset
END
IF LAST ProgStop?
SeqLabC {SpeedC} SpinOn GearRange EOL
SeqLabC TurretCoolant EOL
ELSE
IF NewGear?
SeqLabC {SpeedC} SpinOn GearRange EOL
END
IF NOT CoolOff? AND LAST CoolOff?
SeqLabC TurretCoolant EOL
END
END
DoPostScript
RETURN
FormatArc:
IF ArcCW?
CWArc
ELSE
CCWArc
END
MoveX MoveZ
IF ArcIJFormat?
ArcIJ
ELSE
ArcR
END
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
ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
IF Drilling?
IF Tap?
SeqLabC SpinOff EOL
SeqLabC TurretCoolant EOL
SeqLabC 'G4I2.' EOL
SeqLabC Speed InverseSpinOn GearRange EOL
ELSE
IF Dwell?
SeqLabC 'G4I' Dwell# EOL
END
END
ELSE
IF CannedCycle?
SeqLab
END
END
END
IF PointFeat?
SeqLabC MoveSXYC EOL
ELSE
IF RapidFeat?
SeqLabC Rapid MoveXC MoveZC EOL
ELSE
IF LineFeat?
IF Rapid?
SeqLabC 'G5' EOL { LookAhead Code }
END
SeqLabC CkCRC Feed MoveXC MoveZC FeedRateC EOL
ELSE
IF ArcFeat?
IF Rapid?
SeqLabC 'G5' EOL { LookAhead Code }
END
EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop }
SeqLabC FormatArc FeedRateC EOL
NEXTQuadrant
ELSE
IF ThreadFeat?
SeqLabC 'G33' MoveXC MoveZC XTapAtZ ThrdLead EOL
END
END
END
END
END
NEXTFeat
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
SetAbs
XsAreRadii
PosSideLathe
StandardXZArcs
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 INCHES )' EOL
END
END
RestoreScale
OpenSub
StockOff {.71.2}
SetHome
DoOpComments
DoPostScript
Plane
SeqLab 'G95' EOL { StartCode }
IF ConstantSurfaceFeed?
SeqLabC CSSOn 'G96' MaxRPM EOL
ELSE
SeqLabC CSSOff 'G97' EOL
END
SeqLabC
Preset 'X' ToolOffsetXRadius# 'Z' ToolOffsetZ# 'I0K0'
FeedRate Speed OpToolID LatheOffset SpinOn GearRange
EOL
Approach
ELSE
IF NewTool?
{Finish off last Operation}
StockOff {.62}
CRCOffC
IF LAST ApproachOD?
SeqLabC Rapid LAST OpExitXCPC EOL
ELSE
IF LAST ApproachID?
SeqLabC Rapid LAST XOpECDC EOL
END
END
SeqLabC Rapid LAST OpExitZCPC EOL
IF ToolOver?('20') AND LAST NOT ToolOver?('20') { Changing from Turret 1 to Turret 2 }
SeqLabC CoolOff EOL
ELSE
IF NOT ToolOver?('20') AND LAST ToolOver?('20') { Changing from Turret 2 to Turret 1 }
SeqLabC CoolOff EOL
END
END
SeqLabC Rapid 'X' TurretX# 'Z' TurretZ#
IF LAST ProgStop?
'M0'
ELSE
ProgStop
END
EOL
{Start new Operation}
DoOpComments
DoPostScript
SeqLab
IF ConstantSurfaceFeed?
IF LAST NOT ConstantSurfaceFeed?
SeqLabC CSSOn 'G96' MaxRPM EOL
END
ELSE
IF LAST ConstantSurfaceFeed?
SeqLabC CSSOff 'G97' EOL
END
END
SeqLabC
Preset 'X' ToolOffsetXRadius# 'Z' ToolOffsetZ# 'I0K0'
FeedRate Speed OpToolID LatheOffset SpinOn GearRange
EOL
Approach
ELSE
IF SameTool? {.62}
{Start new Operation}
StockOff
DoOpComments
IF LAST StraightConnect?
CheckOffset
CRCOffC
SeqLabC Rapid StockOnNoCan XSPC ZSPC EOL
ELSE
CRCOffC
IF ApproachOD?
IF LAST ApproachOD?
SeqLabC Rapid LAST XOpECDC EOL
ELSE {around}
IF LAST ApproachID?
SeqLabC Rapid LAST XOpECDC EOL
END
SeqLabC Rapid LAST OpExitZCPC EOL
SeqLabC Rapid LAST OpExitXCPC EOL
END
ELSE
IF ApproachID?
IF LAST ApproachID?
SeqLabC Rapid LAST XOpECDC EOL
ELSE
IF LAST ApproachOD? {around}
SeqLabC Rapid LAST OpExitXCPC EOL
END
SeqLabC Rapid LAST OpExitZCPC EOL
SeqLabC Rapid XOpCDC EOL
END
ELSE {ApproachFace}
IF LAST ApproachFace?
SeqLabC Rapid LAST ZOpECPC EOL
ELSE
IF LAST ApproachOD? {around}
SeqLabC Rapid LAST OpExitXCPC EOL
ELSE {LAST ApproachID}
SeqLabC Rapid LAST XOpECDC EOL
END
SeqLabC Rapid LAST OpExitZCPC EOL
END
END
END
CheckOffset
ApproachSP
END
END
END
END {common point for all operations}
IF CannedCycle?
StockOff
IF Roughing?
IF RoughContour?
TagInc
SetPass2
SeqLabC LCycle
IF ApproachFace?
'Xł' Tag# CutDepth
ELSE
CutDepth 'Zł' Tag#
END
XStkLeft ZStkLeft EOL
OpenSub
DoSubComment
'>' Tag# EOL
SeqLab 'G50' EOL
SeqLabC StepMove StrtPos EOL
ToolPath
SeqLabC 'G51' EOL
CloseSub
IF AutoFinish?
IF ApproachFace?
SeqLabC LCycle 'Xł' Tag# EOL
ELSE
SeqLabC LCycle 'Zł' Tag# EOL
END
END
END
ELSE
IF Threading?
SetPass1
SeqLabC LCycle 'X' FirstMoveEPX# FinZ XTapAtZ ThrdLead EOL
EachFeat
IF ThreadFeat?
TrackXNO# FirstMoveEPX#
SeqLabC MoveSXC EOL
END
NextFeat
ELSE
IF Drilling?
IF Tap?
SeqLabC LCycle ZDepth 'I0K' FeedIPR# EOL
SeqLabC SpinOff EOL
SeqLabC TurretCoolant EOL
SeqLabC 'G4I2.' EOL {Dwell is G4 with letter 'I' address, not G41}
SeqLabC Speed InverseSpinOn GearRange EOL
SeqLabC LCycle ZSP 'I0K' FeedIPR# EOL
END
END
END
END
ELSE
StockOn
SetPass1
ToolPath
IF AutoFinish? { .82.1c }
StockOff
IF Turning?
IF ApproachFace?
SeqLabC Rapid ZOpECPC EOL
ELSE
SeqLabC Rapid XOpECDC EOL
END
ApproachSP
SeqLabC Rapid StockOff StrtPosC EOL
ToolPath
ELSE
IF Roughing? AND NOT RoughSimple?
SetPass2
SeqLabC Rapid XSPC ZSPC EOL
SeqLabC Rapid StockOff StrtPosC EOL
ToolPath
SetPass1
ELSE
IF Threading?
IF Metric?
SeqLabC 'X' MUL# Num#('1') ADD# FinishXRadius# Taper# EOL
ELSE
SetScale('1')
SeqLabC 'X' MUL# Num#('25.4') ADD# FinishXRadius# Taper# EOL
RestoreScale
END
SeqLabC 'G33'
IF Taper?
XatFinZ
END
FinZ XTapAtZ ThrdLead EOL
SeqLabC Rapid XSP EOL
SeqLabC Rapid ZSP EOL
END
END
END
END
END
IF Drilling? AND Tap?
SeqLabC SpinOff EOL
SeqLabC TurretCoolant EOL
SeqLabC 'G4I2.' EOL {Dwell is G4 with letter 'I' address, not G41}
SeqLabC Speed SpinOn GearRange EOL
END
NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{finish last operation}
StockOff
CRCOffC
IF ApproachOD?
SeqLabC Rapid OpExitXCPC EOL
ELSE
IF ApproachID?
SeqLabC Rapid XOpECDC EOL
END
END
SeqLabC Rapid OpExitZCPC EOL
DoEndOpPS
SeqLabC CoolOff EOL
SeqLabC Rapid 'X' FIRST TurretX# 'Z' FIRST TurretZ#
IF ProgStop?
'M0' EOL
SeqLabC
END
EOP EOL
CloseSub
Post2 {organize Subs into one program}
Close
Retag
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 85 2mSwedturn 10 CNC 220 L153 82 1mSwedturn 10 CNC 220 [SM] L727 85Swed 10 CNC 220 [LE] L337 82 1Swedturn 6 CNC 300 L154 82mSwedturn 6 CNC 300[LE] L222 82WSM 10 52 pl(1)VA US Top 40 Singles Chart 2015 10 10 Debuts Top 10010 35więcej podobnych podstron