{Change Comments ***********************************************************}
{1/24/89
Update BP Boss 1-6 M041.54
Deleted: IF cutterRadiusCompensation? AND FirstFeat? AND NEXT LineFeat?
{ avoid 2 co-linear lines by skipping extra ncCAM line}
from ToolPath.
Jim Radcliffe}
{10/11/89
Copied & modified: BP Boss 1-6 M041.55
For: Hughes T&CSD
Suppress tool comments for same tool unless new offset.
Tool list at beginning of prog.
Updated except for SepSubs.
Jim Radcliffe}
{7/24/90, Added InitProg globally to posts with this remark, DWB}
{12/19/90
Modified: BP Boss 1-6 (T&CSD) M256.63
For: Hughes T&CSD
Modified comments.
Jim Radcliffe}
{1/31/91,
Updated "BP Boss 1-6 (T&CSD) M256.64" to ".76.1"
Cleaned up AbsOrInc redundancy
This processors uses program loops:
Cannot have sperate sub calls
AutoCycle spelled out at each location as in Fanuc 5M M015.76.1 which does not use subs
AutoCycle with a Z rep only, gets the Z rep in a loop
Deleted SubComment & NewProg
Spoke to Terry Lowe:
CRC deleted from this processor, control does not support it.
Control: Boss 4
Mahine: Bridgeport Series 1
Jim Radcliffe}
{6/26/91, Updated BP Boss 4 Series I M256.76.1 to .80 format, JR}
{7/6/95
Updated: BP Boss 4 Series I M256.80
For: Gibbs & Associates/Tru-Cut Machine Company
Versions: ncCad 4.33.01/ncCAM 4.33.01/ncPost 4.33.06/Catalyst v2.14.40/Compost 4.21.30/1.0a
Changes made per Pete Jackson.
Moved ToolList at beginning of output to inside IF UseComments? condition.
Updated to Version 4.2 per Fanuc 6M M001.81.2f Format.
Added support for variable Drill Depths.
Added FIFO? at ExitMove, FinishSub1, AutoCycCutSub2 subs and end of IF Milling.
Combined AutoCycle support with code from LongHand M001.81.3h Format.
DWB}
{7/13/95
Copied: BP Boss 4 Series I M256.81.2
Created: BP Boss 4 Series I M817.81.2
For: Tru-Cut Machine Company
Versions: ncCad 4.33.01/ncCAM 4.33.01/ncPost 4.33.06/Catalyst v2.14.40/Compost 4.21.30/1.0a
Changes made per Bryan Widholm of Tru-Cut Machine Company.
Deleted '( )' EOL at Program Comments and FirstOperation.
Deleted EOR EOL at FirstOperation.
Deleted 'E' EOL at end of Prog.
DWB}
{2/9/96, Updated .81 number to .84, no changes necessary, MPK}
{3/22/96, Updated .84 version to .87, TH}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '###.###;0.'
#3 = '*###.###;0.'
#4 = '####.####;0.'
#5 = '#######0'
#6 = '###^#0'
#7 = '00'
#8 = '####0'
#9 = '*####.####;0.'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ToolDiameter#,4) {.72}
FORMAT(Tag#,5)
FORMAT(Program#,5) {.72}
FORMAT(Operation#,5) {.72}
FORMAT(Tool#,5) {.72}
FORMAT(Parts#,5) {.72}
FORMAT(Dwell#,6) {.72}
FORMAT(ToolOffset#,7)
FORMAT(SpeedRPM#,8)
FORMAT(SPZ#,9)
{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
DoSubComment:
IF UseComments? AND SubComment?
'( SUB NUMBER: ' Tag# ' )' EOL
END
RETURN
DoCycleComment:
IF UseComments? AND SubComment?
'( CYCLE START )' 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 SameTool? AND NOT NewToolOffset?
ELSE
IF ToolTypeComment?
'( TOOL ' Tool# ': (' ToolDiameter# ') ' ToolType$ ' )' EOL
END
IF ToolComment?
'( ' ToolComment$ ' )' EOL
END
END
'( Spindle ' SpeedRPM# ' RPM )' EOL
RestoreScale
END
RETURN
PSInit: {reset flags}
RotateF
RETURN
PSStuff: {revised.72}
IF FourthCW?
FORMAT(FourthDegree#,2)
SeqLab 'A' FourthDegree# EOL
FourthCWF {reset flag}
END
IF FourthCCW?
FORMAT(FourthDegree#,3)
SeqLab 'A' FourthDegree# EOL
FourthCCWF {reset flag}
END
IF FifthCW?
FORMAT(FifthDegree#,2)
SeqLab 'B' FifthDegree# EOL
FifthCWF {reset flag}
END
IF FifthCCW?
FORMAT(FifthDegree#,3)
SeqLab 'B' FifthDegree# EOL
FifthCCWF {reset flag}
END
RETURN
DoPostScript:
PSInit
EachPS
SeqLab PostScript EOL {literals}
PSStuff {commands}
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqLab EndOpPS EOL {literals}
PSStuff {commands}
NextPS
RETURN
EntryMove:
IF FeedEntry?
SeqLab Feed ZIn FeedEnt EOL
ELSE
SeqLab RapidC ZIn EOL
END
RETURN
ExitMove:
SeqLab
IF NOT FeedConnect?
IF FIFO? { .81 }
FeedC
ELSE
RapidC
END
PRIME ZCP2C
IF FIFO? { .81 }
FeedEntC
END
END
EOL
RETURN
StartSub:
DoSubComment
RETURN
SubWarning:
IF NOT FeedConnect?
IF AnyZshift?
' ' EOL
'( WARNING Z CLEARANCE WILL CHANGE WITH EACH CYCLE OF SUB REPEAT )' EOL
' ' EOL
END
END
RETURN
StdSub:
TagUp TagInc
SeqLab CallLabB '²' Tag# RepLab RepCycs EOL
StartSub
RETURN
FinishSub1: {part 1}
SeqLab
IF NOT FeedConnect?
IF AutoCycle?
ZCP3C
ELSE
IF FIFO? {.81}
FeedC ZCP3C FeedEntC
ELSE
RapidC ZCP3C
END
END
END
EOL
RETURN
FinishSubG92: {part 2}
SeqLab Preset ShiftRC EOL
'<' Tag# EOL
TagDown
SeqLab Preset UnshftRC EOL
RETURN
OpenMP:
IF EquallySpacedOffsets?
TagUp TagInc
SeqLab CallLabB '²' Tag# RepLab Parts EOL
END
RETURN
CloseMP:
IF EquallySpacedOffsets?
SeqLab Preset ShiftPC EOL
'<' Tag# EOL
TagDown
SeqLab Preset UnshftPC EOL
END
RETURN
FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXYZC
IF ArcIJFormat?
ArcIJC
ELSE
ArcRC
END
RETURN
CkCRC: { 4.2 }
{ NOTE: This processor does not support CutterRadiusCompensation }
RETURN
StdLine:
IF Decelerate? AND NOT cutterRadiusCompensation?
IF RoomToDecel?
DecelMove1
SeqLab FeedC MoveXYZC FeedRateC EOL
DecelMove2
END
SeqLab FeedC MoveXYZC DecelFeed EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqLab FeedC MoveXYZC FeedRateC EOL
END
END
RETURN
ToolPath:
EACHFeat
IF PointFeat? { Drilling Only }
IF SPZMove? {.80.01}
TrackZNO# ClearancePlane2# {.81}
SeqLab 'G80' EOL
SeqLab Cycle MoveSXYC SetInc 'Z' SPZ# SetAbsOrInc EOL
ELSE
SeqLab MoveSXYC EOL
END
ELSE
IF RapidFeat?
IF XMove? OR YMove? OR ZMove?
SeqLab RapidC MoveXYZC EOL
END
ELSE
IF LineFeat?
StdLine
ELSE
IF ArcFeat?
IF NOT XYPlane?
SeqLab Plane EOL
END
EACHQuadrant { Do not use NOT, FIRST, LAST or NEXT modifiers in this loop }
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
SeqLab FormatArc ArcFeedC EOL
DecelMove2
END
SeqLab FormatArc DecelFeed EOL
ELSE
SeqLab FormatArc ArcFeedC EOL
END
NEXTQuadrant
END
END
END
END
NEXTFeat
RETURN
WFOStuff:
{ NOTE: This processor does not support WorkFixtureOffsets }
RETURN
AutoCycCutSub1: {part 1}
CalcACSRXY {calc tool position, CalcAutoCycleStatusRecordXY}
SaveSubStatus {save tool position}
SetPass1 {element cut moves}
SetSRXYtoSP
SeqLab IncValue EOL
RETURN
AutoCycCutSub2: {part 2}
SeqLab AbsOrInc
IF FIFO? {.81}
FeedC ZCP2 FeedEntC
ELSE
RapidC ZCP2
END
EOL
SetSRSubXY {restore SR to 1st position value}
ReSetPass2 {restore for positioning moves}
RETURN
Milling:
EntryMove
ToolPath
RETURN
G92Sub:
SubWarning
StdSub
SeqLab Connect StrtPos EOL
Milling
FinishSub1
FinishSubG92
RETURN
NoRepAutoCycle:
EACHFeat
DoCycleComment
IF SPXMove? OR SPYMove?
SeqLab RapidC MoveSXYC EOL
END
AutoCycCutSub1
Milling
AutoCycCutSub2
NEXTFeat
RETURN
XYZRepAutoCycle:
StdSub
SeqLab Connect StrtPos EOL
EACHFeat
DoCycleComment
IF SPXMove? OR SPYMove?
SeqLab RapidC MoveSXYC EOL
END
AutoCycCutSub1
Milling
AutoCycCutSub2
NEXTFeat
FinishSub1
FinishSubG92
RETURN
ZonlyRepAutoCycle:
EACHFeat
DoCycleComment
IF SPXMove? OR SPYMove?
SeqLab RapidC MoveSXYC EOL
END
AutoCycCutSub1
SubWarning
StdSub
Milling
IF NOT FeedConnect?
ExitMove
END
'<' Tag# EOL
TagDown
AutoCycCutSub2
NEXTFeat
RETURN
ZonlyRep:
EachCycle
IF NOT FirstCycle?
SeqLab Connect StrtPos EOL {.71.2, added Connect}
END
IF FeedConnect?
SeqLab FeedC ZInPlusInc FeedEnt EOL {.71.2, changed to FeedC}
ELSE {Entry/Exit Connect}
IF FeedEntry?
IF NOT FirstCycle?
SeqLab RapidC ZCP2PlusIncC EOL {can't call for cycle =1} {.69 added Rapid, reads better} {.71.2, changed to RapidC, reads better}
END
SeqLab Feed ZInPlusInc FeedEnt EOL
ELSE
SeqLab RapidC ZInPlusInc EOL {.69 added Rapid, reads better} {.71.2, changed to RapidC, reads better}
END
END
StdSub
NextCycle
StartSub
SkipZ
ToolPath
UnSkipZ { Moved from FinishSub1 }
FinishSub1
'<' Tag# EOL
TagDown
RETURN
CheckPass:
IF AutoCycle? {use the correct StrtPos}
SetPass2
ELSE
SetPass1
END
RETURN
GetStartOfSameTool:
DoOpComments
DoPostScript
CheckPass
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
TagInit
NoIJKSigns
ReverseYZArcs
SetMaxSeparateSubCalls('0')
SetMaxRPM('10000')
SetMaxFeed('500')
Save# Num#('4') Num#('0') { XPos Status Register Updated Position for Repeated AutoCycles }
Save# Num#('5') Num#('0') { YPos Status Register Updated Position for Repeated AutoCycles }
Save# Num#('6') Num#('0') { LastFeat EPX# AbsPosValue for Repeated AutoCycles }
Save# Num#('7') Num#('0') { LastFeat EPY# AbsPosValue for Repeated AutoCycles }
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: may be capital and/or lower case letters. Separate commands with a space.' 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
' 4thAxisCW(12.5), 4ACW(12.5) -' EOL
' generates a + A move of the value you specify' EOL
' 4thAxisCCW(22.5), 4ACCW(22.5) -' EOL
' generates a - A move of the value you specify' EOL
' 5thAxisCW(30), 5ACW(30) -' EOL
' generates a + B move of the value you specify' EOL
' 5thAxisCCW(22.5), 5ACCW(22.5) -' EOL
' generates a - B move of the value you specify' EOL
END
EachOp
IF UseComments?
IF FirstOperation?
'PARTNO ' ProgramName$ ' BY: T. LOWE PROG:' ProgramComment$ ' ' EOL
'( MACHINE: BP1 )' EOL
IF ProgramNameComment?
'( PROGRAM: ' 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
IF PartsComment?
'( PARTS PROGRAMMED: ' Parts# ' )' EOL
END
IF StartToolComment?
'( FIRST TOOL NOT IN SPINDLE )' EOL
END
END
IF SameTool? AND NOT NewToolOffset?
ELSE
'( TOOL ' Tool# ' (' ToolDiameter# ') ' ToolType$ ' D' ToolOffset# ' )' EOL
END
END
NextOp
EachOp {Start of post processing *********************}
IF FirstOperation?
IF ToolChangeAtHome?
SetHome
END
RestoreScale
SeqLab Plane AbsOrInc EOL
IF MultipleParts? AND AllToolsOnePart?
OpenMP
END
SeqLab Rapid Home OpToolID ToolChng EOL
DoOpComments
DoPostScript
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
END
CheckPass
SeqLab RapidC StrtPos ZCP1 EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
SeqLab StrtPos EOL
END
ELSE
IF NewTool?
{Finish off last Operation}
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP
END
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
IF LAST ProgStop?
SeqLab 'M00' EOL
ELSE
SeqLab ProgStop EOL
END
{Start new Operation}
SeqLab Plane AbsOrInc EOL
SeqLab Rapid Home OpToolID ToolChng EOL
DoOpComments
DoPostScript
IF MultipleParts? AND OneToolAllParts? AND FullUp?
OpenMP
END
CheckPass
SeqLab RapidC StrtPos ZCP1 EOL
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
OpenMP
SeqLab StrtPos EOL
END
ELSE
IF SameTool?
DoEndOpPS
IF LAST ProgStop?
SeqLab 'M00' EOL
END
{Start new Operation}
GetStartOfSameTool
SeqLab PlaneC RapidC StrtPos ZCP1 EOL
END
END
END {common point for all operations}
IF Milling?
SeqLab ZCP2C EOL
IF Repeats?
IF ZshiftOnly?
IF AutoCycle? {incremental Autocycle sub can have Z moves}
ZonlyRepAutoCycle
ELSE {Z shift only, NOT Auto Cycle}
IF UseSeparateSubCalls? AND CyclesLessThanMaxSubCalls?
FindAnyZMoves {for normal abs subroutine}
IF NoZMoves?
ZonlyRep
ELSE
G92Sub {pattern shift, not element}
END
ELSE {no sep subs desired}
G92Sub
END
END {end Auto Cycle IF}
ELSE {not Z only}
IF AutoCycle?
XYZRepAutoCycle
ELSE
G92Sub
END
END {end Z only IF}
ELSE {no repeat OPs}
IF AutoCycle?
NoRepAutoCycle
ELSE
Milling
END
END
IF AutoCycle?
SeqLab ZCP3C EOL
ELSE
IF FIFO? {.81}
SeqLab FeedC ZCP3C FeedEntC EOL
ELSE
SeqLab RapidC ZCP3C EOL
END
END
ELSE
IF Drilling?
IF Repeats?
StdSub
SeqLab AbsOrInc Rapid StrtPos EOL
END
SeqLab ZCP2C EOL
GetCycle
IF Dwell?
SeqLab 'G04/' Dwell# EOL
END
SeqLab Cycle StrtPos ZDepthAbs Peck Retract FeedEnt EOL
FORMAT(SPZ#,4)
TrackZNO# FIRST SPZ# {.81.2}
FORMAT(SPZ#,9)
ToolPath
TrackZNO# ClearancePlane2# {.81}
SeqLab 'G80' EOL
IF Repeats?
FinishSubG92
END
SeqLab ZCP3C EOL
END
END
NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{finish last operation}
IF MultipleParts? AND OneToolAllParts? AND ExitClearancePlane?
CloseMP
END
IF MultipleParts? AND OneToolAllParts? AND FullUp?
CloseMP
END
DoEndOpPS
SeqLab
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
Rapid FirstHome
END
IF ProgStop?
'M00' EOL
SeqLab
END
IF MultipleParts? AND AllToolsOnePart?
EOL
CloseMP
SeqLab
END
EOP 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:
BP Boss 5 Series I GI M822 89BP Boss 5 Series II M527 81 3BP Boss 6 Series II M289 89 1BP Boss 6 Series II M289 81 3BP Boss 1 6 M041 89 1BP Boss 9 M174 89 2BP Boss 6 M284 89 1BP Boss 7 2 M102 89mBP Boss 9 [WP] MY38 89 1BP Boss 8 M233 89 2BP Boss 8 [IC] MX12 89BP Boss 6 [G75] M497 79 1BP Boss 7i M279 89 1BP Boss 7 2 (TT) M319 81Fanuc Series O Elox M234 87BP Boss 5 [McI] M616 81 5mBP Boss 8 M233 89mwięcej podobnych podstron