{
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}
{9/8/98
Initial: W&S 2SC AB 7360 [BD4] L705.85.2
Created: W&S 2SC GE 2000 [BD4] Lxxx.85
ForUser: Boeing
Develop: ComPost2 1.1b3, Virtual Gibbs 4.24
Comment: New processor per file "POST FOR 19A9.xls" and conversations with Ed Glen.
Modified formats:
Changed XYZIJKF to decimal point format with 5 decimal places.
Changed literal 'F's to decimal point format.
Removed space after sequence number.
Modified Comments:
Added 'MSG,' to DoOpComments
Moved ToolComment to 'T0' line.
Suppressed output of ToolTypeComment for SameTool operations.
Added '(END,PROG)' and EOR lines to end of program.
Added exclamation point to Header Comments.
Moved ProgramComment to be first header comment without exclamation point.
Modified spindle commands:
Added SpinOn to all G97 blocks.
Added M44 after SpinOn in G97 blocks
Changed 'S' SpeedSFPM# to Speed on G96 line.
Changed M80 to M59 and M81 to M58.
Removed redundant feed rates from thread operation.
Change custom positioning feeds (F500 moves) back to Rapid (G21F0)
Rewrote RapidFeat in ToolPath back to standard.
Deleted CoolOff from between tools, NewTool section. Left it in at end of program.
Moved 'T0M1' line at beginning of program.
Fixed 'T0' line at NewTool.
Cleaned up and removed unneeded and unsupported stuff.
Updated per Fanuc 10T MS [-] L001.85.01.02
Jim Radcliffe}
{9Nov98
Original: W&S 2SC GE 2000 [BD4] L773.85
Created:W&S 2SC GE 2000 [BD4] L773.85.1
For: Boeing
Control: GE 2000
Machine: Warner & Swasey 2SC-15
Added Post Header Comment at the top of Prog.
Added Last_M59 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.'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ADD#,2) { Non-Canned Threading AutoFinish }
FORMAT(StartPosX#,2)
FORMAT(Program#,3)
FORMAT(Operation#,3)
FORMAT(Tool#,3)
FORMAT(Dwell#,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
ToolComment:
IF UseComments? AND ToolComment?
'(MSG, ' ToolComment$ ' )'
END
RETURN
DoOpComments:
IF UseComments?
SetScale('1')
IF OperationIDComment?
'(MSG, OPERATION ' Operation# ': ' OperationType$ ' )' EOL
END
IF OperationComment?
'(MSG, ' OperationComment$ ' )' EOL
END
IF WorkGroupComment?
'(MSG, ' WorkGroupComment$ ' )' EOL
END
IF NOT SameTool?
IF ToolTypeComment?
'(MSG, 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_M59: { NewTool Finish Off Last Operation }
IF Flag?('1')
ELSE
IF NOT EmptyLine?
IF LAST NOT DRILLING?
'M59' { Set for Rapid moves }
SetFlag('1')
END
END
END
RETURN
M59: { Called on Rapid blocks }
IF Flag?('1')
{ We are already in M59 Rapid }
ELSE
IF NOT EmptyLine?
IF NOT Drilling?
'M59' { Set for Rapid moves }
SetFlag('1')
END
END
END
RETURN
M58: { Called on Feed blocks }
IF Flag?('1')
IF NOT EmptyLine?
IF NOT Drilling?
'M58' { Set for Feed moves }
SetFlagF('1')
END
END
ELSE
{ We are already in M58 Feed }
END
RETURN
M44:
'M44'
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?
SeqC StockOnNoCan XSPC EOL
SeqC StockOff ZOpCPC EOL
StockOnNoCan
IF NotEqual? CycleStartZ# ZOpCP#
SeqC FeedNoCan ZSPC FeedRateNoCan M58 EOL
END
ELSE { ODApproach/IDApproach }
SeqC StockOnNoCan ZSPC EOL
SeqC StockOff XOpCDC EOL
StockOnNoCan
IF NotEqual? CycleStartX# XOpCD#
SeqC FeedNoCan XSPC FeedRateNoCan M58 EOL
END
END
RETURN
AppMove:
StockOff ThisOpEntryZCP RapidF M59
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 'M0' EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
END
IF NewToolOffset?
SeqC LOfstOff '00' EOL
SeqC OpToolID LatheOffset EOL
END
DoOpComments
DoPostScript
IF ConstantSurfaceFeed?
SeqC
IF LAST ConstantSurfaceFeed?
IF NotEqual? MaxRPM# LAST MaxRPM#
Preset MaxRPM
END
ELSE
Preset MaxRPM
END
IF LAST ProgStop?
SpinOn
END
EOL
ELSE
SeqC
IF LAST ConstantSurfaceFeed?
CSSOff 'G97' Speed SpinOn M44
ELSE
IF NotEqual? SpeedRPM# LAST SpeedRPM#
Speed
END
IF LAST ProgStop?
SpinOn
END
END
EOL
END
IF LAST ProgStop?
SeqC CoolOn EOL
ELSE
IF NOT CoolOff? AND LAST CoolOff?
SeqC CoolOn EOL
END
END
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 'G4X2.' EOL
SeqC Speed InverseSpinOn EOL
ELSE
IF Dwell?
SeqC 'G4X' Dwell# EOL
END
END
END
END
IF PointFeat?
SeqC MoveSXYC EOL
ELSE
IF RapidFeat?
IF Threading? {threading set up to move aroung part in X at feedrate of 30 inches per minute}
IF LAST ThreadFeat?
SeqC Feed MoveXC MoveZC EOL {retract move from thread, F30 is still in effect from the feed in move}
ELSE
IF XMove?
SeqC FeedC MoveXC MoveZC 'F30.' EOL {this will be the first feed in move}
ELSE
SeqC Rapid MoveZC RapidF EOL {Move in Z back to the start of the thread, OK to rapid if we are not moving on X}
END
END
ELSE
SeqC RapidC MoveXC MoveZC RapidFC EOL
END
ELSE
IF LineFeat?
IF LastFeat? AND CutOff? AND AutoClearance?
SeqC FeedC MoveXC MoveZC 'F.050' EOL
ELSE
SeqC FeedC MoveXC MoveZC FeedRateC M58 EOL
END
ELSE
IF ArcFeat?
EACHQuadrant { Do not use NOT, LAST, FIRST or NEXT modifiers in this loop }
SeqC FormatArc FeedRateC M58 EOL
NEXTQuadrant
ELSE
IF ThreadFeat?
SeqC 'G33' MoveXC MoveZC ThrdLead EOL
END
END
END
END
END
NEXTFeat
RETURN
CheckRapid:
IF LAST CannedCycle?
Rapid
ELSE
IF LAST Threading?
Rapid
ELSE
RapidC
END
END
RETURN
CheckRapidF:
IF LAST CannedCycle?
RapidF
ELSE
IF LAST Threading?
RapidF
ELSE
RapidFC
END
END
RETURN
CheckRapid2:
IF CannedCycle?
Rapid
ELSE
IF Threading?
Rapid
ELSE
RapidC
END
END
RETURN
CheckRapidF2:
IF CannedCycle?
RapidF
ELSE
IF Threading?
RapidF
ELSE
RapidFC
END
END
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
SetAbs
PosSideLathe
StandardXZArcs
XsAreRadii
NoIJKSigns
SetMaxRPM('1500')
SetMaxFeed('500')
SetFlagF('1') { used for M59/M58, Flag? true is we are in M59 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 ProgramComment?
'( ' ProgramComment$ ' )' EOL
END
IF ProgramNameComment?
'!( ' ProgramName$ ' )' 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
SeqC 'T0M1' ToolComment EOL
DoOpComments
DoPostScript
Seq Preset Home MaxRPM EOL
SeqC CSSOff 'G97' {Added this line - JHE}
IF ConstantSurfaceFeed?
CalcRPM1 SpinOn M44 EOL {Added this line - JHE}
ELSE
Speed SpinOn M44 EOL {Moved CSSOff 'G97' up - JHE}
END
IF Threading? {Added this check - JHE}
SeqC 'G94M58' EOL {Added this line, IPM mode - JHE}
ELSE
SeqC 'G95M58' EOL {IPR mode - JHE}
END
SeqC AbsOrInc OpToolID LatheOffset CoolOn EOL
Approach
ELSE
IF NewTool?
{Finish off last Operation}
StockOff
IF LAST ApproachOD?
SeqC CheckRapid LAST OpExitXCPC CheckRapidF EOL
SeqC LAST OpExitZCPC EOL
ELSE
IF LAST ApproachID?
SeqC CheckRapid LAST XOpECDC CheckRapidF EOL
SeqC LAST OpExitZCPC EOL
ELSE
SeqC CheckRapid LAST OpExitZCPC CheckRapidF EOL
END
END
DoEndOpPS
SeqC NewHome Last_M59 EOL
SeqC 'T0'
IF LAST ProgStop?
'M00'
ELSE
ProgStop
END
ToolComment EOL
{Start new Operation}
DoOpComments
DoPostScript
SetFlag('1')
Seq Preset Home MaxRPM EOL
SeqC CSSOff 'G97' {Added this line - JHE}
IF ConstantSurfaceFeed?
CalcRPM1 SpinOn M44 EOL {Added this line - JHE}
ELSE
Speed SpinOn M44 EOL {Moved CSSOff 'G97' up - JHE}
END
IF Threading? {Added this check - JHE}
SeqC 'G94' M58 EOL {Added this line, IPM mode - JHE}
ELSE
SeqC 'G95' {IPR mode - JHE}
END
IF NOT Drilling?
M58
END
EOL
SeqC AbsOrInc OpToolID LatheOffset CoolOn EOL
Approach
ELSE
IF SameTool?
{Start new Operation}
StockOff
IF ConstantSurfaceFeed? {Added these 2 checks - JHE}
IF LAST ApproachOD? OR LAST ApproachID?
SeqC CSSOff 'G97' CalcRPM1 SpinOn M44 M59 EOL {Added this line - JHE}
END
END
IF LAST StraightConnect?
CheckOffset
CheckRapid
SeqC StockOnNoCan XSPC ZSPC RapidFC M59 EOL
ELSE
CheckRapid
IF ApproachOD?
IF LAST ApproachOD?
SeqC LAST XOpECDC RapidFC M59 EOL
ELSE {around}
IF LAST ApproachID?
SeqC LAST XOpECDC RapidFC M59 EOL
END {implies LAST ApproachFace}
SeqC LAST OpExitZCPC RapidFC M59 EOL
IF ConstantSurfaceFeed? {Added this check - JHE}
SeqC CSSOff 'G97' CalcRPM1 SpinOn M44 M59 EOL {Added this line - JHE}
END
SeqC LAST OpExitXCPC RapidFC M59 EOL
END
ELSE
IF ApproachID?
IF LAST ApproachID?
SeqC LAST XOpECDC RapidFC M59 EOL
ELSE
IF LAST ApproachOD? {around}
SeqC LAST OpExitXCPC RapidFC M59 EOL
END {implies LAST ApproachFace}
SeqC LAST OpExitZCPC RapidFC M59 EOL
IF ConstantSurfaceFeed? {Added this check - JHE}
SeqC CSSOff 'G97' CalcRPM1 SpinOn M44 M59 EOL {Added this line - JHE}
END
SeqC XOpCDC RapidFC M59 EOL
END
ELSE {ApproachFace}
IF LAST ApproachFace?
SeqC LAST ZOpECPC RapidFC M59 EOL
IF ConstantSurfaceFeed? {Added this check - JHE}
SeqC CSSOff 'G97' CalcRPM1 SpinOn M44 M59 EOL {Added this line - JHE}
END
ELSE
IF LAST ApproachOD? {around}
SeqC LAST OpExitXCPC RapidFC M59 EOL
ELSE {LAST ApproachID}
SeqC LAST XOpECDC RapidFC M59 EOL
END
SeqC LAST OpExitZCPC RapidFC M59 EOL
END
END
END
CheckOffset
ApproachSP
END
END
END
END {common point for all operations}
IF ConstantSurfaceFeed?
SeqC CSSOn 'G96R' StartPosX# Speed M58 EOL
END
StockOn
SetPass1
ToolPath
IF AutoFinish? { .82.1c }
StockOff
IF Turning?
IF ApproachFace?
SeqC RapidC ZOpECPC RapidFC M59 EOL
ELSE
SeqC RapidC XOpECDC RapidFC M59 EOL
END
ApproachSP
SeqC StockOff StrtPosC RapidFC M58 EOL
ToolPath
ELSE
IF Roughing? AND NOT RoughSimple?
SetPass2
SeqC RapidC XSPC ZSPC RapidFC M59 EOL
SeqC StockOff StrtPosC RapidFC M58 EOL
ToolPath
SetPass1
ELSE
IF Threading?
SeqC Feed 'X' ADD# FinishXRadius# Taper# 'F30.' EOL
SeqC 'G33'
IF Taper?
XatFinZ
END
FinZ ThrdLead EOL
SeqC Feed XSP EOL
SeqC Rapid ZSP RapidF EOL
END
END
END
END
IF Drilling? AND Tap?
SeqC SpinOff EOL
SeqC 'G4X2.' 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?
SeqC CheckRapid2 OpExitXCPC CheckRapidF2 CoolOff EOL
ELSE
SeqC OpExitXCPC 'F.050' CoolOff EOL
END
SeqC CheckRapid2 OpExitZCPC CheckRapidF2 EOL
ELSE
SeqC CheckRapid2 OpExitXCPC CheckRapidF2 CoolOff EOL
SeqC OpExitZCPC EOL
END
ELSE
IF ApproachID?
SeqC CheckRapid2 XOpECDC CheckRapidF2 CoolOff EOL
SeqC OpExitZCPC EOL
ELSE
SeqC CheckRapid2 OpExitZCPC CheckRapidF2 CoolOff EOL
END
END
DoEndOpPS
SeqC FirstHome
IF NOT LAST Drilling?
M59
END
EOL
SeqC OpToolID '00' '(MSG, PART FINISHED)' EOL
IF ProgStop?
SeqC 'M00' EOL
END
SeqC EOP EOL
'(END,PROG)' EOL
EOR 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 [BD4] L705 85 3GE 2000 Bullard VTL L502 85GE 2000 WhiteGray GT L660 85 3GE 2000 Burg [SI] MY73 89GE 1050T W&S 1SC L587 85GE 550 L&S [FC] L407 85GE 1050T LeBlonde L105 85 1GE 2000 Monarch M796 87GE 2000 Monarch L116 82Fanuc 0T Miyano [BD4] L681 85 6W&S 2SC AB 7360 [SN] L829 85GE 2000 Monarch [BK] M928 87 2GE 7500 L&S [FC] L408 85 1GE 550 HNC L003 85GE 2000 Monarch [LBS] MU10 87W & S 2SC AB 7360 JD L380 85 1mW & S 2SC AB 7360 JD L380 85 1mGE 1054T G&L VTL L595 85 1więcej podobnych podstron