{
MILL=F
LATHE=T
SIMPLE_ROT_POS=F
ROTARY_MILL=F
ADV_MILL=F
SUBS=F
MILLTURN_Y-AXIS=F
METRIC=F
}
{Change Comments ***********************************************************}
{3/7/89
Copied & modified; Fanuc 10T-MS [-] L001.57, for Angelus Can.
Machine is a Warner & Swasey 2SC with Alan Bradley 7360 control
Jim Radcliffe}
{3/10/89
Deleted 'StockOnNoCan:' subroutine which sets post to 'StockOn' if
'CannedCycle?' is false. Changed 'StockOnNoCan' subcall to 'StockOn'
Altough this machine has no canned cycles, and ncPOST should always
be directed to 'StockOn', I left the canned cycle
info in the Mach Spec and am using the 'CannedCycle?' boolean
to control the rapid feed around the part if
'Prefered Canned Cycles' was selected in ncCAM.
Jim Radcliffe}
{9/27/89, updated & added PostScript to W & S 2SC AB 7360 L096.55, JR}
{7/24/90, Added InitProg globally to posts with this remark, DWB}
{8/9/90, Updated: W & S 2SC AB 7360 L096.62 to .71 format, JR}
{8/13/92
Updated: W & S 2SC AB 7360 L096.71
For: Gibbs & Associates
Updated to Version 4.0 per Fanuc 6M M001.82 Format.
Kim Michelman}
{3/9/95
Updated: W & S 2SC AB 7360 L096.82
For: Gibbs & Associates/Lincoln Automotive
Versions: ncCad 4.33.01/ncCAM 4.33/ncPost 4.33.05/Catalyst v2.14.30/Compost 4.21.27
Updated to Version 4.2 per Fanuc 6M M001.81.2f Format.
DWB}
{11Feb98
Original: W & S 2SC AB 7360 L096.82.1
Created: W & S 2SC AB 7360 [BD4] L705.85
For: Boeing
Changes made per: Ron Ford
Updated to .85 format per Fanuc 10T MS [-] L001.85.01
Deleted old version numbers and comments e.g. {.62}, {commands}, {literals}, etc
Changed Default Formats for X,Z and R to ##^#000;0 in MachSpec
Added Formats #6 and #7 and Formatting for SpeedSFPM and StartPosX#
Changed Add#, FirstMoveEPX# and FirstMoveEPZ# to Format #6
Added Subs M80 and M81 to inhibit spindle speed changes with M80, when X-axis moves
are made and CSS is TRUE
Added calls for M80 and M81 throughout the Prog
Added Booleans IF NOT CannedCycle? in StockOnNoCan, FeedNoCan and FeedRateNoCan
Deleted G97 output in CheckOffset and FirstOperation and End of Prog
Re-wrote the RapidFeat section in Toolpath to support M80 style of output
Changed SetMaxRPM to 1500 at Start of executable Prog
Added SetFlagF('1') and SetFlagF('2') at Start of executable Prog
Changed EOR to Literal 'START' in FirstOperation
Inserted Literal 'T0M1' before ProgramComment at FirstOperation
Deleted Literals 'G70' and 'G90' in FirstOperation
Added Boolean for ConstantSurfaceFeed in FirstOperation and NewTool
Changed MaxRPM to SpeedSFPM# in FirstOperation and NewTool
Added SetFlag('2') at the Start new Operation in NewTool
Rewrote the logic to Finish off last Operation at NewTool and added options for CoolOff
Added 'T0' to IF LAST ProgStop? Boolean before the Start new Operatio in NewTool
Moved 'G95' line after CSS in NewTool
Deleted Speed from CSS line at the start of the Common Point
Deleted ConstantSurfaceFeed boolean at End of Prog
Added 'F500' CoolOff to Approach Booleans at end of Prog
Added RapidC to FirstHome line at End of Prog
Charles Winston}
{12Mar98
Original: W & S 2SC AB 7360 [BD4] L705.85
Created: W&S 2SC AB 7360 [BD4] L705.85.1
For: Boeing
Changes made per: Ron Ford
Added Boolean for CutOff? AND LastFeat? in Toolpath at Linefeat
Rewrote the logic in ThreadPath to handle Threading FeedRates per customers instructions.
Added 2 Booleans for LAST Threading? in NewTool at Finish off last Operation.
Added SpinOn to CSS line in NewTool at Start New Operation.
Added a Boolean at End of program to exclude the move to OpExitXCPC if the last Operation is a CutOff.
Deleted EOR at the End of Program
Charles Winston}
{4/27/98,
Initial : W&S 2SC AB 7360 [BD4] L705.85.1
Created: W&S 2SC AB 7360 [BD4] L705.85.2
Customer: The Boeing Co.
Changes made per: Ed Glen, Phone 253 931 3258
Changes to "Form":
1. Under Default Formats, changed S format to 0000:2 (output only even numbers).
Changes to "Prog":
1. Under FirstOperation & NewTool, output G94 (IPM mode) for Threading.
2. Under ThreadPath sub, added G1 to the X motion before the G33 block,
changed the X motion after the G33 block to be a feed motion (same as
before the G33), and force the output of Rapid (G21) with the Z motion.
Also changed F300 (.030 IPR) to F3000 (30 IPM).
3. Added G97 and CalcRPM1 at the start of FirstOperation and NewTool when CSS is on.
For SameTool, when last operation is ApproachOD or ID, added the same block before
the motion. When last operation is ApproachFace, output G97 after the first Z motion.
4. Force the output of SpeedSFPM# with every G96 block.
JHE}
{9Nov98
Original: W&S 2SC AB 7360 [BD4] L705.85.2
Created: W&S 2SC AB 7360 [BD4] L705.85.3
For: Boeing
Changes made per: Ron Ford
Added Post Header Comment at the top of Prog.
Moved ToolComment$ from DoOpComments. Created ToolComment Sub,output in FirstOperation and NewTool.
Added a Boolean in DoOpComments to supress ToolTypeComment$ when SameTool is TRUE
Added Last_M80 Sub. Called in NewTool at Finish Off Last Operation.
Added Logic in ToolPath and End of Prog to support Correct CutOff handling when AutoClearance is TRUE
NOTE: CutOff logic only works if CutOff is the Last Operation output
Charles Winston}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '0#^####'
#3 = '#######0'
#4 = '###0'
#5 = '0'
#6 = '##^0000'
#7 = '###0^0'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(Dwell#,2)
FORMAT(Program#,3)
FORMAT(Operation#,3)
FORMAT(Tool#,3)
FORMAT(CalcEPRPM#,4)
FORMAT(RapidF#,5)
FORMAT(ADD#,6) { Non-Canned Threading AutoFinish }
FORMAT(StartPosX#,6)
FORMAT(FirstMoveEPX#,6)
FORMAT(FirstMoveEPZ#,6)
FORMAT(SpeedSFPM#,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
ToolComment:
IF UseComments? AND ToolComment?
' ( ' ToolComment$ ' )'
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 NOT SameTool?
IF ToolTypeComment?
'( TOOL ' Tool# ': ' ToolSize$ ' ' ToolType$ ' )' EOL
END
END
RestoreScale
END
RETURN
PSInit: {reset flags from last Op, .70}
RETURN
PSStuff:
RETURN
DoPostScript:
PSInit
EachPS
SeqC PostScript EOL
PSStuff
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqC EndOpPS EOL
PSStuff
NextPS
RETURN
Last_M80: { NewTool Finish Off Last Operation }
IF Flag?('2')
ELSE
IF NOT EmptyLine?
IF LAST NOT DRILLING?
'M80' { Set for Rapid moves }
SetFlag('2')
END
END
END
RETURN
M80: { Called on Rapid blocks }
IF Flag?('2')
{ We are already in M80 Rapid }
ELSE
IF NOT EmptyLine?
IF NOT DRILLING?
'M80' { Set for Rapid moves }
SetFlag('2')
END
END
END
RETURN
M81: { Called on Feed blocks }
IF Flag?('2')
IF NOT EmptyLine?
IF NOT DRILLING?
'M81' { Set for Feed moves }
SetFlagF('2')
END
END
ELSE
{ We are already in M81 Feed }
END
RETURN
CheckRapidFC:
IF NOT EmptyLine?
IF Flag?('1')
RapidF
SetFlagF('1')
ELSE
RapidFC
END
END
RETURN
StockOnNoCan:
IF NOT CannedCycle?
StockOn { CannedCycle not supported }
END
RETURN
FeedNoCan:
IF NOT CannedCycle?
FeedC { CannedCycle not supported }
END
RETURN
FeedRateNoCan:
IF NOT CannedCycle?
FeedRateC { CannedCycle not supported }
END
RETURN
ApproachSP:
IF ApproachFace?
SeqC StockOnNoCan XSPC CheckRapidFC M80 EOL
SeqC StockOff ZOpCPC CheckRapidFC M80 EOL
StockOnNoCan
IF NotEqual? CycleStartZ# ZOpCP#
SeqC FeedNoCan ZSPC FeedRateNoCan M81 EOL
END
ELSE { ODApproach/IDApproach }
SeqC StockOnNoCan ZSPC CheckRapidFC M80 EOL
SeqC StockOff XOpCDC CheckRapidFC M80 EOL { for SameTool ApproachID }
StockOnNoCan
IF NotEqual? CycleStartX# XOpCD#
SeqC FeedNoCan XSPC FeedRateNoCan M81 EOL
END
END
RETURN
AppMove:
StockOff ThisOpEntryZCP RapidF M80
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?
SeqC CoolOff EOL
END
END
IF NewToolOffset?
SeqC LOfstOff '00' EOL
SeqC OpToolID LatheOffset EOL
END
IF ConstantSurfaceFeed?
IF LAST ConstantSurfaceFeed?
IF NotEqual? MaxRPM# LAST MaxRPM#
SeqC Preset MaxRPM EOL
END
ELSE
SeqC Preset MaxRPM EOL
END
ELSE
IF LAST ConstantSurfaceFeed?
SeqC CSSOff 'G97' Speed
ELSE
SeqC SpeedC
END
END
IF LAST ProgStop?
SpinOn EOL
SeqC CoolOn EOL
ELSE
EOL
IF NOT CoolOff? AND LAST CoolOff?
SeqC CoolOn EOL
END
END
DoPostScript
RETURN
FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXC MoveZC
IF ArcIJFormat?
ArcIJC
ELSE
ArcRC
END
RETURN
GetRapidFC:
IF FirstFeat?
CheckRapidFC
ELSE
IF Drilling?
CheckRapidFC
ELSE
IF NOT CannedCycle?
CheckRapidFC
ELSE
IF LAST RapidFeat?
CheckRapidFC
ELSE
'F' RapidF# '1' { Optional Slower CannedCycle RapidFeed }
SetFlag('1')
END
END
END
END
RETURN
ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
IF Drilling?
IF Tap?
SeqC SpinOff EOL
SeqC 'G4X02' EOL
SeqC Speed InverseSpinOn EOL
ELSE
IF Dwell?
SeqC 'G04X' Dwell# EOL
END
END
END
END
IF PointFeat?
SeqC MoveSXYC EOL
ELSE
IF RapidFeat?
IF XMove? AND ZMove?
SeqC Feed MoveXC FeedRateC EOL
SeqC RapidC MoveZC GetRapidFC EOL
ELSE
IF XMove?
SeqC FeedC MoveXC FeedRateC EOL
ELSE { Implied Rapid ZMove only}
SeqC RapidC MoveZC GetRapidFC EOL
END
END
ELSE
IF LineFeat?
IF LastFeat? AND CutOff?
SeqC FeedC MoveXC MoveZC
IF AutoClearance?
'F500'
END
CoolOff EOL
ELSE
SeqC FeedC MoveXC MoveZC FeedRateC M81 EOL
END
ELSE
IF ArcFeat?
EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop }
SeqC FormatArc FeedRateC M81 EOL
NEXTQuadrant
ELSE
IF ThreadFeat?
SeqC LCycle MoveXC MoveZC XTapAtZ ThrdLead M81 EOL
Rapid
END
END
END
END
END
NEXTFeat
RETURN
ThreadPath: {straight thread along Z axis no single edge or chamfer}
EACHFeat
IF ThreadFeat?
SeqC LCycle MoveZC XTapAtZ ThrdLead EOL
ELSE
IF RapidFeat?
IF NOT FirstFeat? AND LAST ThreadFeat?
SeqC 'G1' MoveXC 'F3000' EOL
{Removed Rapid RapidF M80, added G1 & F3000 - JHE}
ELSE
IF XMove?
SeqC 'G1' MoveXC 'F3000' EOL {Added G1, changed to F3000 - JHE}
ELSE { Implied Rapid ZMove only}
SeqC Rapid MoveZC RapidF EOL {Removed C from Rapid - JHE}
END
END
END
END
NEXTFeat
RETURN
CheckRapid:
IF LAST CannedCycle?
IF LAST RoughPatternShift?
RapidC
ELSE
SetStatusRapid
END
ELSE
RapidC
END
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
SetAbs
PosSideLathe
StandardXZArcs
XsAreRadii
NoIJKSigns
SetMaxRPM('1500')
SetMaxFeed('500')
SetFlagF('1') { GetRapidFC }
SetFlagF('2') { used for M80/M81, Flag? true is we are in M80 Rapid }
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?
'START' EOL
IF UseComments?
IF ProgramNameComment?
'( ' ProgramName$ ' )' EOL
END
IF TimeComment?
'( ' Date$ ' AT ' Time$ ' )' EOL
END
END
SeqC 'T0M1' ToolComment EOL
IF UseComments?
IF ProgramComment?
'( ' ProgramComment$ ' )' EOL
END
IF FormatNameComment?
'( FORMAT: ' FormatName$ ' )' EOL
END
IF MovesComment?
'( OUTPUT IN ABSOLUTE INCHES )' EOL
END
END
RestoreScale
OpenSub
StockOff
SetHome
Plane
DoOpComments
DoPostScript
Seq Preset Home MaxRPM EOL
SeqC CSSOff 'G97' {Added this line - JHE}
IF ConstantSurfaceFeed?
CalcRPM1 SpinOn EOL {Added this line - JHE}
{SeqC CSSOn 'G96R' StartPosX# 'S' SpeedSFPM#} {Removed - JHE}
ELSE
Speed SpinOn EOL {Moved CSSOff 'G97' up - JHE}
END
IF Threading? {Added this check - JHE}
SeqC 'G94M81' EOL {Added this line, IPM mode - JHE}
ELSE
SeqC 'G95M81' EOL {IPR mode - JHE}
END
SeqC AbsOrInc OpToolID LatheOffset CoolOn EOL
Approach
ELSE
IF NewTool?
{Finish off last Operation}
StockOff
IF LAST ApproachOD?
SeqC
IF LAST Threading?
Rapid
END
LAST OpExitXCPC CoolOff EOL
ELSE
IF LAST ApproachID?
SeqC LAST XOpECDC CoolOff EOL
END
END
SeqC CheckRapid LAST OpExitZCPC
IF LAST Threading?
RapidF
ELSE
CheckRapidFC
END
IF LAST ApproachFace?
CoolOff
END
EOL
DoEndOpPS
SeqC NewHome CheckRapidFC Last_M80 EOL
IF LAST ProgStop?
SeqC 'M00'
ELSE
SeqC 'T0' ProgStop
END
ToolComment EOL
{Start new Operation}
DoOpComments
DoPostScript
SetFlag('2')
Seq Preset Home MaxRPM EOL
SeqC CSSOff 'G97' {Added this line - JHE}
IF ConstantSurfaceFeed?
CalcRPM1 SpinOn EOL {Added this line - JHE}
{SeqC CSSOn 'G96R' StartPosX# 'S' SpeedSFPM# SpinOn EOL} {Removed - JHE}
ELSE
Speed SpinOn EOL {Moved CSSOff 'G97' up - JHE}
END
IF Threading? {Added this check - JHE}
SeqC 'G94' M81 EOL {Added this line, IPM mode - JHE}
ELSE
SeqC 'G95' {IPR mode - JHE}
END
IF NOT Drilling?
M81
END
EOL
SeqC AbsOrInc OpToolID LatheOffset CoolOn EOL
Approach
ELSE
IF SameTool?
{Start new Operation}
StockOff
DoOpComments
IF ConstantSurfaceFeed? {Added these 2 checks - JHE}
IF LAST ApproachOD? OR LAST ApproachID?
SeqC CSSOff 'G97' CalcRPM1 M80 EOL {Added this line - JHE}
END
END
IF LAST StraightConnect?
CheckOffset
CheckRapid
SeqC StockOnNoCan XSPC ZSPC CheckRapidFC M80 EOL
ELSE
CheckRapid
IF ApproachOD?
IF LAST ApproachOD?
SeqC LAST XOpECDC CheckRapidFC M80 EOL
ELSE {around}
IF LAST ApproachID?
SeqC LAST XOpECDC CheckRapidFC M80 EOL
END {implies LAST ApproachFace}
SeqC LAST OpExitZCPC CheckRapidFC M80 EOL
IF ConstantSurfaceFeed? {Added this check - JHE}
SeqC CSSOff 'G97' CalcRPM1 M80 EOL {Added this line - JHE}
END
SeqC LAST OpExitXCPC CheckRapidFC M80 EOL
END
CheckOffset
ApproachSP
ELSE
IF ApproachID?
IF LAST ApproachID?
SeqC LAST XOpECDC CheckRapidFC M80 EOL
ELSE
IF LAST ApproachOD? {around}
SeqC LAST OpExitXCPC CheckRapidFC M80 EOL
END {implies LAST ApproachFace}
SeqC LAST OpExitZCPC CheckRapidFC M80 EOL
IF ConstantSurfaceFeed? {Added this check - JHE}
SeqC CSSOff 'G97' CalcRPM1 M80 EOL {Added this line - JHE}
END
SeqC XOpCDC CheckRapidFC M80 EOL
END
CheckOffset
ApproachSP
ELSE {ApproachFace}
IF LAST ApproachFace?
SeqC LAST ZOpECPC CheckRapidFC M80 EOL
IF ConstantSurfaceFeed? {Added this check - JHE}
SeqC CSSOff 'G97' CalcRPM1 M80 EOL {Added this line - JHE}
END
ELSE
IF LAST ApproachOD? {around}
SeqC LAST OpExitXCPC CheckRapidFC M80 EOL
ELSE {LAST ApproachID}
SeqC LAST XOpECDC CheckRapidFC M80 EOL
END
SeqC LAST OpExitZCPC CheckRapidFC M80 EOL
END
CheckOffset
ApproachSP
END
END
END
END
END
END {common point for all operations}
IF ConstantSurfaceFeed?
SeqC CSSOn 'G96R' StartPosX# 'S' SpeedSFPM# M81 EOL {Added 'S' SpeedSFPM# - JHE}
END
StockOn
SetPass1
IF Threading?
ThreadPath
IF AutoFinish? { .82.1c }
SetPass1
SeqC 'X' ADD# FinishXRadius# Taper# EOL
SeqC LCycle FinZ ThrdLead EOL
{straight thread along Z axis no single edge or chamfer}
SeqC Rapid XSP RapidF EOL
SeqC ZSP EOL
END
ELSE
ToolPath
IF AutoFinish? { .82.1c }
StockOff
IF Turning?
SetPass1
RapidC
IF ApproachFace?
SeqC ZOpECPC CheckRapidFC M80 EOL
ApproachSP
ELSE
SeqC XOpECDC CheckRapidFC M80 EOL
ApproachSP
END
SeqC StockOff StrtPosC CheckRapidFC M81 EOL
ToolPath
ELSE
IF Roughing? AND NOT RoughSimple?
SetPass2
SeqC RapidC XSPC ZSPC CheckRapidFC M80 EOL
SeqC StockOff StrtPosC CheckRapidFC M81 EOL
ToolPath
END
END
END
END
IF Drilling? AND Tap?
SeqC SpinOff EOL
SeqC 'G04X02' EOL
SeqC Speed SpinOn EOL
END
NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{finish last operation}
StockOff
IF ApproachOD?
IF CutOff?
IF AutoClearance?
ELSE
SeqC FeedC OpExitXCPC 'F500' EOL
END
ELSE
SeqC FeedC OpExitXCPC 'F500' CoolOff EOL
END
ELSE
IF ApproachID?
SeqC FeedC XOpECDC 'F500' CoolOff EOL
END
END
SeqC RapidC OpExitZCPC CheckRapidFC
IF LAST ApproachFace?
CoolOff
END
EOL
DoEndOpPS
SeqC FirstHome CheckRapidFC
IF NOT LAST DRILLING?
M80
END
EOL
SeqC OpToolID '00' EOL
IF ProgStop?
SeqC 'M00' 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:
W&S 2SC AB 7360 [SN] L829 85W & S 2SC AB 7360 JD L380 85 1mW & S 2SC AB 7360 JD L380 85 1mW&S 2SC GE 2000 [BD4] L773 85 1AB 7360 Hardinge L167 85W & S 2SC AB 7360 L096 82 1AB 7360 [SH] L609 85W & S 1SC AB 7360 KOL L460 85 1W & S 2SC AB 7360 L096 82mAB 7360 Hardinge [SP] L822 85W & S 1SC AB 7360 L581 85 3AB 7360 Hardinge [IN] L444 85W & S 1SC AB 7360 L327 85 1W & S 2SC AB [CE] L186 82 1AB 8600 J&S Grinder L524 85AB 7365 [HP] L413 85AB 7300 J&L 4515B L625 85 1Fanuc 0T Miyano [BD4] L681 85 6więcej podobnych podstron