{Change Comments ***********************************************************}
{6/14/95, Updated for Catalyst v2.20 per Fanuc 10T MS [-] L001.85 Format, DWB}
{7/18/95, Added IF NOT LastFeat? at CkCRC sub, DWB}
{
Format: Fanuc 18T [-¨] L394.85.02
11/21/95
For: Tamshell
Arcs now output R's instead of IJK
Changed prog label ID from O to :
TH}
{12/11/95
Modified: Fanuc 18T [-¨] L394.85.02
For: Tamshell
Versions: ncCad 4.33.01/ncCAM 4.33.01/ncPost 4.33.08/Catalyst v2.28.08/Compost 4.21.34/1.0a
Changes made per Ron Knesal of Tamshell.
Deleted OpToolID LatheOffset at AppMove sub.
Deleted LOfstOff '00' at CheckOffset sub.
Deleted all support of ConstantSurfaceFeed at CheckOffset sub, FirstOperation, NewTool, common point
and end of Prog.
Deleted Preset Home MaxRPM at FirstOperation and NewTool.
Added Rapid CRCOff CSSOff 'G97' OpToolID LatheOffset Speed SpinOn block at FirstOperation and
NewTool.
Changed NewHome LOfstOff '00' to 'G28U0W0' at NewTool.
Changed FirstHome OpToolID '00' SpinOff to 'G28U0W0' at end of Prog.
DWB}
{9/24/96,
Modifyed: Fanuc 18T Nakamura L507.85
Created: L521.85
Removed ReverseYZARCS
Added S after G50 line
Removed Bar Puller stuff
Moved Program Name Comment to top of prog.
JM}
{8/15/96
Initial: Fanuc 18T [+¨] L473.85
Created: Fanuc 18T Nakamura Lxxx.85
ForUser: Concord Elevator
Control: Fanuc 18T
Machine: Nakamura-Tome TMC 20-II
Develop: ComPost2 68k, Catalyst68K v3.04.10.C
Comment: New processor per sample readout and conversation with Geoff Foster
Added routine to set a Flag if CutOff and get CSS MaxRPM.
Added Support for CSS.
Added Tool offset cancel at end of tool.
Added saftey start info to beginning of program.
Added Support Bar Feeder Stop.
CutOff must have been read and flag#2 set.
Must be a FIFO or FIRO drilling operation.
Must be using tool#10.
Jim Radcliffe}
{7/8/96,
Initial: Fanuc 18T Nakamura Lxxx.85
Created: Lxxx.85
changed to postive X values, MPK}
{05/14/98,
Initial: Fanuc MSC 5-21 MS [TC] L521.85
Created: Fanuc MSC 5-21 MS SL35 [] L729.85
For: Svedala
Changes to Prog:
1) FirstOp - Added literal M46 to safety block.
2) DoRangeCode - added sub-routine to output gear changes.
CDH}
{05/18/98,
Initial: Fanuc MSC 5-21 MS SL35 [] L729.85
Created: Fanuc MSC 5-21 MS SL35 [] L729.85.1
For: Svedala
Changes to Prog:
1) End of Prog - When only doing one operation, the command LOfstOff causes Virtual
to crash. The command OpToolID should be used instead at the End of the Prog.
CDH}
{05/19/98,
Initial: Fanuc MSC 5-21 MS SL35 [] L729.85.1
Created: Fanuc MSC 5-21 MS SL35 [] L729.85.2
For: Svedala
Changes to Prog:
1) DoRangeCode - This sub-routine will now output Preset and a literal for the
MaxRPM depending on which Gear Range we're using.
2) DoRangeCodeSameTool - Added this sub-routine so that the Gear Range will only
be output if the Gear changed from last operation.
CDH}
{05/20/98,
Initial: Fanuc MSC 5-21 MS SL35 [] L729.85.2
Created: Fanuc MSC 5-21 MS SL35 [] L729.85.3
For: Svedala
Changes to Prog:
1) NewTool - Added Approach command.
CDH}
{29Jun98
Original: Fanuc MSC5-21 SL35 SP L729.85.3
Created: Fanuc MSC5-21 SL35 SP L729.85.4
For: Svedala
Changes made per: Bill Pruitt
Deleted old version numbers and comments e.g. {.62}, {commands}, {literals}, etc
Added CoolOff and SpinOff in NewTool in Finish off last Operation and End of Prog
Changed Literal 'G28U0W0' to 'G28U0W0T0' and deleted LOfstOff '00 in NewTool
Deleted OpToolID '00' at End of Prog
Charles Winston}
{7/21/98,
Initial : Fanuc MSC5-21 SL35 SP L729.85.4
Created: Fanuc MSC5-21 SL35 SP L729.85.5
Customer: Svedala Pumps, Bill Pruitt - 719/386-0443
Changes to "Form":
1. Under Threading, changed Lead of Thread Label to F & Frmat to .####;0.
JHE}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '###.####;0.'
#3 = '#######0'
#4 = '###^##0'
#5 = '#.######;0.'
#6 = '###0'
#7 = '#'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(MUL#,2) { Non-Canned Threading AutoFinish }
FORMAT(FirstMoveEPZ#,2)
FORMAT(Program#,3)
FORMAT(Operation#,3)
FORMAT(Tool#,3)
FORMAT(Dwell#,4)
FORMAT(FeedIPR#,5)
FORMAT(CalcEPRPM#,6)
FORMAT(Recall#,6)
FORMAT(RapidF#,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?
'( 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
PSStuff
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqLabC EndOpPS EOL
PSStuff
NextPS
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
ApproachSP:
IF ApproachFace?
SeqLabC StockOnNoCan XSPC EOL
SeqLabC StockOff ZOpCPC EOL
StockOnNoCan
IF NotEqual? CycleStartZ# ZOpCP#
SeqLabC FeedNoCan ZSPC FeedRateNoCan EOL
END
ELSE { ODApproach/IDApproach }
SeqLabC StockOnNoCan ZSPC EOL
SeqLabC StockOff XOpCDC EOL
StockOnNoCan
IF NotEqual? CycleStartX# XOpCD#
SeqLabC FeedNoCan XSPC FeedRateNoCan EOL
END
END
RETURN
AppMove:
StockOff ThisOpEntryZCP CoolOn
RETURN
Approach: { NOT FOR TAILSTOCK, .82 }
Rapid RapidF# { RapidF# Forces FeedRate }
IF ApproachOD?
SeqLabC ThisOpEntryXCP AppMove EOL
ELSE
IF ApproachID?
SeqLabC XOpCD AppMove EOL
ELSE {ApproachFace}
SeqLabC StockOnNoCan XSP AppMove EOL
END
END
ApproachSP
RETURN
DoRangeCode:
IF ConstantSurfaceFeed?
IF GreaterThan? CalcRPM1# NUM#('651')
SeqLabC 'M42' EOL {High Range}
SeqLabC Preset 'S2500' EOL
Save# NUM#('1') NUM#('2')
ELSE
'M41' EOL
SeqLabC Preset 'S650' EOL
Save# NUM#('1') NUM#('1')
END
ELSE
IF GreaterThan? SpeedRPM# NUM#('651')
'M42' EOL {High Range}
Save# NUM#('1') NUM#('2')
ELSE
'M41' EOL
Save# NUM#('1') NUM#('1')
END
END
RETURN
DoRangeCodeSameTool:
IF ConstantSurfaceFeed?
IF GreaterThan? CalcRPM1# NUM#('651')
IF Equal? Recall# NUM#('1') NUM#('1')
DoRangeCode
END
ELSE
IF Equal? Recall# NUM#('1') NUM#('2')
DoRangeCode
END
END
ELSE
IF GreaterThan? SpeedRPM# NUM#('651')
IF Equal? Recall# NUM#('1') NUM#('1')
DoRangeCode
END
ELSE
IF Equal? Recall# NUM#('1') NUM#('2')
DoRangeCode
END
END
END
RETURN
CheckOffset:
DoEndOpPS
IF LAST ProgStop?
SeqLabC 'M0' EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqLabC CoolOff EOL
END
END
DoOpComments
DoPostScript
SeqLabC
IF ConstantSurfaceFeed?
IF LAST ConstantSurfaceFeed?
IF NotEqual? SpeedRPM# LAST SpeedRPM#
DoRangeCodeSameTool Speed
END
ELSE
CSSOn 'G96' Speed
END
ELSE
IF LAST ConstantSurfaceFeed?
CSSOff 'G97' Speed
ELSE
IF NotEqual? SpeedRPM# LAST SpeedRPM#
DoRangeCodeSameTool Speed
END
END
END
IF NewToolOffset?
LOfstOff '00'
END
IF LAST ProgStop?
SpinOn
END
EOL
SeqLabC
IF NewToolOffset?
OpToolID LatheOffset
END
IF LAST ProgStop?
CoolOn
ELSE
IF NOT CoolOff? AND LAST CoolOff?
CoolOn
END
END
EOL
RETURN
FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXC MoveZC
IF ArcIJFormat?
ArcIJC
ELSE
ArcRC
END
RETURN
CkCRC:
IF XMove? OR ZMove? { Approach Length Feature and Multiple Pockets }
IF NOT LastFeat?
CRCOnC
END
END
IF LastFeat? AND EmptyLine? { Exit Length Feature }
CRCOffC
END
RETURN
ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
IF Drilling?
IF Tap?
SeqLabC SpinOff EOL
SeqLabC 'G4P2000' EOL
SeqLabC Speed InverseSpinOn EOL
ELSE
IF Flag?('2') AND Equal? Tool# Num#('10')
SeqLabC 'M10' EOL {open chuck}
END
IF Dwell?
SeqLabC 'G4P' Dwell# EOL
END
END
ELSE
IF CannedCycle?
SeqLab
END
END
END
IF PointFeat?
SeqLabC MoveSXYC EOL
ELSE
IF RapidFeat?
SeqLabC RapidC MoveXC MoveZC EOL
ELSE
IF LineFeat?
SeqLabC CkCRC FeedC MoveXC MoveZC FeedRateC EOL
ELSE
IF ArcFeat?
EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop }
SeqLabC FormatArc FeedRateC EOL
NEXTQuadrant
ELSE
IF ThreadFeat?
SeqLabC 'G32' MoveXC MoveZC ThrdLead EOL
Rapid
END
END
END
END
END
IF LastFeat?
IF Drilling?
IF Flag?('2') AND Equal? Tool# Num#('10')
IF Dwell?
SeqLabC 'G4P' Dwell# EOL
END
SeqLabC 'M11' EOL {close chuck}
IF Dwell?
SeqLabC 'G4P' Dwell# EOL
END
END
END
END
NEXTFeat
RETURN
CheckRapid:
CRCOffC
IF LAST CannedCycle?
Rapid
ELSE
RapidC
END
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
SetAbs
PosSideLathe
SetMaxRPM('10000')
SetMaxFeed('500')
SetFlagF('1') {read CSS in program}
SetFlagF('2') {read CutOff operation in program}
Save# Num#('1') Num#('3500') {default MaxRPM value}
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
{Loop thru operations and check CSS MaxRPM and check for CutOff for BarFeed Program}
EachOp
IF NOT Flag?('1')
IF ConstantSurfaceFeed?
Save# Num#('1') MaxRPM#
SetFlag('1')
END
END
IF CutOff? AND NOT SameTool?
SetFlag('2')
END
NextOp
EachOp {Start of post processing *********************}
GetLCycle
IF FirstOperation?
EOR EOL
ProgID1
IF UseComments?
IF ProgramNameComment?
'( ' ProgramName$ ' )'
END
END
EOL
IF UseComments?
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
SetHome
Plane
SeqLabC Rapid 'G20M46' CRCOff DrillOff 'G99' EOL
SeqLabC 'G28U0' EOL
SeqLabC 'G28W0' EOL
DoRangeCode
SeqLabC ProgStop EOL
DoOpComments
DoPostScript
SeqLab Rapid CRCOff CSSOff 'G97' OpToolID LatheOffset
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
SpinOn EOL
Approach
ELSE
IF NewTool?
{Finish off last Operation}
StockOff
CheckRapid
IF LAST ApproachOD?
SeqLabC LAST OpExitXCPC EOL
ELSE
IF LAST ApproachID?
SeqLabC LAST XOpECDC EOL
END
END
SeqLabC LAST OpExitZCPC EOL
DoEndOpPS
SeqLabC CoolOff EOL
SeqLabC SpinOff EOL
SeqLabC 'G28U0W0T0' EOL
IF LAST ProgStop?
SeqLabC 'M0' EOL
ELSE
SeqLabC ProgStop EOL
END
{Start new Operation}
DoOpComments
DoPostScript
IF CutOff?
'>0' EOL
END
DoRangeCode
SeqLab Rapid CRCOff CSSOff 'G97' OpToolID LatheOffset
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
SpinOn EOL
Approach
ELSE
IF SameTool?
{Start new Operation}
StockOff
IF LAST StraightConnect?
CheckOffset
CheckRapid
SeqLabC StockOnNoCan XSPC ZSPC EOL
ELSE
CheckRapid
IF ApproachOD?
IF LAST ApproachOD?
SeqLabC LAST XOpECDC EOL
ELSE {around}
IF LAST ApproachID?
SeqLabC LAST XOpECDC EOL
END
SeqLabC LAST OpExitZCPC EOL
SeqLabC LAST OpExitXCPC EOL
END
ELSE
IF ApproachID?
IF LAST ApproachID?
SeqLabC LAST XOpECDC EOL
ELSE
IF LAST ApproachOD? {around}
SeqLabC LAST OpExitXCPC EOL
END
SeqLabC LAST OpExitZCPC EOL
SeqLabC XOpCDC EOL
END
ELSE {ApproachFace}
IF LAST ApproachFace?
SeqLabC LAST ZOpECPC EOL
ELSE
IF LAST ApproachOD? {around}
SeqLabC LAST OpExitXCPC EOL
ELSE {LAST ApproachID}
SeqLabC LAST XOpECDC EOL
END
SeqLabC LAST OpExitZCPC EOL
END
END
END
CheckOffset
ApproachSP
END
END
END
END {common point for all operations}
IF ConstantSurfaceFeed? AND NOT SameTool?
SeqLabC CSSOn 'G96' Speed EOL
END
IF CannedCycle?
StockOff
IF Roughing?
IF RoughSimple?
StockOn
SetPass1
SeqLabC LCycle
IF ApproachFace?
'Z' FirstMoveEPZ# XatFinZ
ELSE
XatFinZ FinZ
END
XTapAtZ FeedRate EOL
SimpleRough
ELSE
TagInc
SetPass2
IF RoughContour?
SeqLabC LCycle 'PÅ‚' Tag# 'Q²' Tag# XStkLeft ZStkLeft CutDepth FeedRate EOL
'>' Tag# EOL
SeqLab StepMove StrtPos EOL
ELSE
IF RoughPatternShift?
SeqLabC LCycle 'PÅ‚' Tag# 'Q²' Tag# XStkLeft ZStkLeft XminusU ZminusW NumCuts FeedRate EOL
'>' Tag# EOL
SeqLab Rapid StrtPos EOL
END
END
ToolPath
'<' Tag# EOL
IF AutoFinish?
SeqLabC 'G70' 'PÅ‚' Tag# 'Q²' Tag# EOL
END
SetPass1
TrackXNO# CycleStartX#
TrackZNO# CycleStartZ#
END
ELSE
IF Threading?
IF Chamfer?
SeqLabC 'M23' EOL
END
SeqLabC LCycle XatFinZ FinZ XTapAtZ CutMethod ThrdHeight CutDepth ThrdLead ToolAngle EOL
IF AutoFinish?
SeqLabC 'G92' XatFinZ FinZ XTapAtZ ThrdLead EOL
END
IF Chamfer?
SeqLabC 'M24' EOL
END
ELSE
IF Drilling?
IF Tap?
SeqLabC LCycle ZDepth 'E' FeedIPR# EOL
SeqLabC SpinOff EOL
SeqLabC 'G4P2000' EOL
SeqLabC Speed InverseSpinOn EOL
SeqLabC ZSP EOL
ELSE
IF PeckChipBreaker?
SeqLabC LCycle ZDepth RLevel Dwell Peck Retract FeedRate EOL
SeqLabC DrillOff EOL
IF AutoFinish?
SeqLabC Feed ZDepth EOL
IF Dwell?
SeqLabC 'G4P' Dwell# EOL
END
SeqLabC Rapid ZSP EOL
END
END
END
ELSE
IF Grooving?
StockOn
SetPass1
SeqLabC StrtPos EOL
ToolPath
END
END
END
END
ELSE
StockOn
SetPass1
ToolPath
IF AutoFinish? { .82.1c }
StockOff
IF Turning?
IF ApproachFace?
SeqLabC RapidC ZOpECPC EOL
ELSE
SeqLabC RapidC XOpECDC EOL
END
ApproachSP
SeqLabC StockOff StrtPosC EOL
ToolPath
ELSE
IF Roughing? AND NOT RoughSimple?
SetPass2
SeqLabC RapidC XSPC ZSPC EOL
SeqLabC StockOff StrtPosC EOL
ToolPath
SetPass1
ELSE
IF Threading?
SeqLabC 'X' MUL# Num#('2') ADD# FinishXRadius# Taper# EOL
SeqLabC 'G32'
IF Taper?
XatFinZ
END
FinZ ThrdLead EOL
SeqLabC Rapid XSP EOL
SeqLabC ZSP EOL
END
END
END
END
END
IF Drilling? AND Tap?
SeqLabC SpinOff EOL
SeqLabC 'G4P2000' EOL
SeqLabC Speed SpinOn EOL
END
NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{finish last operation}
StockOff
CRCOffC
IF CannedCycle?
Rapid
ELSE
RapidC
END
IF ApproachOD?
SeqLabC OpExitXCPC EOL
ELSE
IF ApproachID?
SeqLabC XOpECDC EOL
END
END
SeqLabC OpExitZCPC EOL
DoEndOpPS
SeqLabC CoolOff EOL
SeqLabC SpinOff EOL
SeqLabC 'G28U0W0T0' EOL
SeqLabC EOP EOL
Post
EOR EOL
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:
Fanuc MSC5 21 SL75 SP L730 85 5Fanuc MSC 5 21 MS [TC] L521 85Fanuc 0T MS [SP] L840 85Fanuc 6T HS [SP] L756 85 1Fanuc 0T Okuma [SP] L728 85 3Fanuc 0T Puma 8S [WT] L637 85Fanuc 10T HS 2X [HM] L431 85 4Fanuc 2T Star JNC 16 L174 85AB 7360 Hardinge [SP] L822 85Fanuc 10T MS AL2 [HS] L484 85 7Fanuc 10T Miyano JNC 60 L228 85Fanuc MF T6 MS [BLS] L731 85 3Fanuc 6T MS TL5 [GHH] L693 85 2Fanuc 0T 3T Miy [GNR] L344 85Fanuc 0T 3T Miy [SP] L242 82 2więcej podobnych podstron