{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/8/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}
{4/13/95
Copied: W & S 2SC AB 7360 L096.82.1
Created: W & S 1SC AB 7360 L327.82.1.82.1
For: Lincoln Automotive
Machine: Warner & Swasey 1SC
Control: Allen Bradley 7360
Versions: ncCad 4.33.01/ncCAM 4.33/ncPost 4.33.05/Catalyst v2.14.30/Compost 4.21.27
Changes made per Bill White of Lincoln Automotive.
Using G21, G22 and G23, which serve the same purpose as G01, G02 and G03 except that these commands
ensure that the machine has completed the last programmed move before it acts on the next block.
DWB}
{4/13/95
Copied: W & S 1SC AB 7360 L327.82.1
Created: W & S 1/2SC GE1050 L328.82.1
For: Lincoln Automotive
Machine: Warner & Swasey 1SC/2SC
Control: General Electric 1050
Versions: ncCad 4.33.01/ncCAM 4.33/ncPost 4.33.05/Catalyst v2.14.30/Compost 4.21.27
Changes made per Bill White of Lincoln Automotive.
Using G21, G22 and G23, which serve the same purpose as G01, G02 and G03 except that these commands
ensure that the machine has completed the last programmed move before it acts on the next block.
Deleted condition to output 'F20' RapidF# at AppMove sub.
Changed 'F20' RapidF# to 'F2' at ThreadPath sub and non-Canned Threading AutoFinish.
Changed EOR EOL to '$' Program# EOL at FirstOperation.
DWB}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '0#^####'
#3 = '#######0'
#4 = '###0'
#5 = '0'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ADD#,2) { Non-Canned Threading AutoFinish }
FORMAT(StartPosX#,2)
FORMAT(FirstMoveEPX#,2)
FORMAT(FirstMoveEPZ#,2)
FORMAT(Dwell#,2) {.72}
FORMAT(Program#,3) {.72}
FORMAT(Operation#,3) {.72}
FORMAT(Tool#,3) {.72}
FORMAT(CalcEPRPM#,4)
FORMAT(RapidF#,5)
{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
SeqC PostScript EOL {literals}
PSStuff {commands}
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqC EndOpPS EOL {literals}
PSStuff {commands}
NextPS
RETURN
StockOnNoCan:
StockOn { CannedCycle not supported }
RETURN
FeedNoCan:
FeedC { CannedCycle not supported }
RETURN
FeedRateNoCan:
FeedRateC { CannedCycle not supported }
RETURN
CheckRapidFC:
IF NOT EmptyLine?
RapidFC
END
RETURN
ODApproachSP:
SeqC StockOnNoCan ZSPC CheckRapidFC EOL
SeqC StockOff XOpCDC CheckRapidFC EOL
StockOnNoCan
IF NotEqual? CycleStartX# XOpCD#
SeqC FeedNoCan XSPC FeedRateNoCan EOL
END
RETURN
IDApproachSP:
SeqC StockOnNoCan ZSPC CheckRapidFC EOL
SeqC StockOff XOpCDC CheckRapidFC EOL { for SameTool ApproachID }
StockOnNoCan
IF NotEqual? CycleStartX# XOpCD#
SeqC FeedNoCan XSPC FeedRateNoCan EOL
END
RETURN
FaceApproachSP:
SeqC StockOnNoCan XSPC CheckRapidFC EOL { for SameTool ApproachFace }
SeqC StockOff ZOpCPC CheckRapidFC EOL
StockOnNoCan
IF NotEqual? CycleStartZ# ZOpCP#
SeqC FeedNoCan ZSPC FeedRateNoCan EOL
END
RETURN
AppMove:
StockOff ZCP RapidF
RETURN
Approach: { NOT FOR TAILSTOCK, .82 }
Feed
IF ApproachOD?
SeqC StockOff XCP AppMove EOL
ODApproachSP
ELSE
IF ApproachID?
SeqC StockOff XOpCD AppMove EOL
IDApproachSP
ELSE {ApproachFace}
SeqC StockOnNoCan XSP AppMove EOL
FaceApproachSP
END
END
RETURN
CheckOffset:
DoEndOpPS
IF LAST ProgStop?
SeqC 'M00' EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
END
IF NewToolOffset?
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
SeqC CSSOff 'G97' CalcRPM1
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
ToolPath:
EACHFeat
GetToolTip
IF LastFeat?
IF Drilling?
IF Tap?
SeqC SpinOff EOL
SeqC 'G04X02' EOL
SeqC Speed InverseSpinOn EOL
ELSE
IF Dwell?
SeqC 'G04X' Dwell# EOL
END
END
END
END
IF PointFeat?
SeqC MoveSXYC EOL
ELSE
IF RapidFeat?
SeqC FeedC MoveXC MoveZC CheckRapidFC 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 LCycle MoveXC MoveZC XTapAtZ ThrdLead EOL
Feed
END
END
END
END
END
NEXTFeat
RETURN
ThreadPath: {straight thread along Z axis no single edge or chamfer}
EACHFeat
IF ThreadFeat?
SeqC LCycle MoveZC ThrdLead EOL
ELSE
IF RapidFeat?
IF NOT FirstFeat? AND LAST ThreadFeat?
SeqC Rapid MoveXC 'F2' EOL
ELSE
SeqC MoveXC MoveZC EOL
END
END
END
NEXTFeat
RETURN
CheckRapid:
IF LAST CannedCycle?
IF LAST RoughPatternShift?
FeedC
END
ELSE
FeedC
END
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
PosSideLathe
StandardXZArcs
XsAreRadii
NoIJKSigns
SetMaxRPM('2014')
SetMaxFeed('300')
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?
'$' Program# 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
RestoreScale
OpenSub
StockOff {.71.2}
SetHome
Plane
Seq Preset Home MaxRPM EOL
DoOpComments
DoPostScript
SeqC AbsOrInc EOL
IF Threading?
SeqC 'G94' EOL { Inches per Minute }
ELSE
SeqC 'G95' EOL { Inches per Revolution }
END
SeqC CSSOff 'G97'
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
SpinOn EOL
SeqC 'G04X02' OpToolID LatheOffset CoolOn EOL { Dwell }
Approach
ELSE
IF NewTool?
{Finish off last Operation}
StockOff {.62}
CheckRapid
IF LAST ApproachOD?
SeqC XCPC CheckRapidFC EOL
ELSE
IF LAST ApproachID?
SeqC LAST XOpECDC CheckRapidFC EOL
END
END
SeqC ZCPC CheckRapidFC EOL
DoEndOpPS
SeqC CoolOff EOL
IF LAST ConstantSurfaceFeed?
SeqC CSSOff 'G97' CalcRPM2 EOL
END
SeqC LAST Home CheckRapidFC EOL
SeqC 'T0' EOL
IF LAST ProgStop?
SeqC 'M00' EOL
ELSE
SeqC ProgStop EOL
END
{Start new Operation}
DoOpComments
DoPostScript
Seq Preset Home MaxRPM EOL
SeqC AbsOrInc EOL
IF Threading?
SeqC 'G94' EOL { Inches per Minute }
ELSE
SeqC 'G95' EOL { Inches per Revolution }
END
SeqC CSSOff 'G97'
IF ConstantSurfaceFeed?
CalcRPM1
ELSE
Speed
END
SpinOn EOL
SeqC 'G04X02' OpToolID LatheOffset CoolOn EOL { Dwell }
Approach
ELSE
IF SameTool? {.62}
{Start new Operation}
StockOff
DoOpComments
IF LAST StraightConnect?
CheckOffset
CheckRapid
SeqC StockOnNoCan XSPC ZSPC CheckRapidFC EOL
ELSE
CheckRapid
IF ApproachOD?
IF LAST ApproachOD?
SeqC LAST XOpECDC CheckRapidFC EOL
ELSE {around}
IF LAST ApproachID?
SeqC LAST XOpECDC CheckRapidFC EOL
END
SeqC ZCPC CheckRapidFC EOL
SeqC XCPC CheckRapidFC EOL
END
CheckOffset
ODApproachSP
ELSE
IF ApproachID?
IF LAST ApproachID?
SeqC LAST XOpECDC CheckRapidFC EOL
ELSE
IF LAST ApproachOD? {around}
SeqC XCPC CheckRapidFC EOL
END
SeqC ZCPC CheckRapidFC EOL
SeqC XOpCDC CheckRapidFC EOL
END
CheckOffset
IDApproachSP
ELSE {ApproachFace}
IF LAST ApproachFace?
SeqC LAST ZOpECPC CheckRapidFC EOL
ELSE
IF LAST ApproachOD? {around}
SeqC XCPC CheckRapidFC EOL
ELSE {LAST ApproachID}
SeqC LAST XOpECDC CheckRapidFC EOL
END
SeqC ZCPC CheckRapidFC EOL
END
CheckOffset
FaceApproachSP
END
END
END
END
END
END {common point for all operations}
IF ConstantSurfaceFeed?
SeqC CSSOn 'G96R' StartPosX# Speed EOL
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 'F2' EOL
SeqC ZSP EOL
END
ELSE
ToolPath
IF AutoFinish? { .82.1c }
StockOff
IF Turning?
SetPass1
RapidC
IF ApproachFace?
SeqC ZOpECPC CheckRapidFC EOL
FaceApproachSP
ELSE
SeqC XOpECDC CheckRapidFC EOL
IF ApproachOD?
ODApproachSP
ELSE {ApproachID}
IDApproachSP
END
END
SeqC StockOff StrtPosC CheckRapidFC EOL
ToolPath
ELSE
IF Roughing? AND NOT RoughSimple?
SetPass2
SeqC RapidC XSPC ZSPC CheckRapidFC EOL
SeqC StockOff StrtPosC CheckRapidFC 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 NOT CannedCycle?
IF RoughPatternShift?
FeedC
END
ELSE
FeedC
END
IF ApproachOD?
SeqC XCPC CheckRapidFC EOL
ELSE
IF ApproachID?
SeqC XOpECDC CheckRapidFC EOL
END
END
SeqC ZCPC CheckRapidFC EOL
DoEndOpPS
SeqC CoolOff EOL
IF ConstantSurfaceFeed?
SeqC CSSOff 'G97S' CalcEPRPM# EOL
END
SeqC Home CheckRapidFC EOL
SeqC 'T0' EOL
IF ProgStop?
SeqC 'M00' EOL
END
SeqC EOP EOL
Post
EOR EOL
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:
Fanuc 0TC [Rands] L328 82 4W & S 2SC AB [CE] L186 82 1W & S 2SC AB 7360 L096 82 1Fanuc 2000C Mazak L168 82Fanuc 10T MS [2 G54] L066 82GE 550T LeBlonde L082 82Fanuc 0T (Anzon1) L077 82 1m36 (82)Fanuc 3TF Tak TS LTM L263 82 282 Przeszłość 2Okuma OSP 500L GTR L290 82 2Fanuc 0T SL 25 [CS] L323 82 1więcej podobnych podstron