{Change Comments ***********************************************************}
{ This Post was written for Bigham Bros }
{11/27/90
Copied & modified: Fanuc 6M M001.76.1
For: Bigham Bros
Machine: Burny 5
Control: Burny 5
NOTE: This processor was written according to the instructions of a Burny 3 manual.
OpToolID and Booleans that test for Spindle direction and Peck cycles are a result of
modified Flavor File.
DWB}
{6/26/91
Modified: Burny 5 M367.76.1
For: Bigham Bros
Updated to Version 4.0 per No Subs M001.80.01 Format.
DWB}
{7/25/91
Modified: Burny 5 M367.80.1
For: Bigham Bros
Modified to output CRCOnC ( G41/G42 ) on same line as 'M4' in CycleOn sub.
Modified to output CRCOffC ( G40 ) on same line as 'M3' in CycleOff sub.
Moved OpenSub command in FirstOperation.
This was causing SeqC to reset itself after the OpenSub command was issued.
Modified output flow for Program Comments and added Operator SetUp Information.
DWB}
{8/15/91
Modified: Burny 5 M367.80.2
For: Bigham Bros
Changes made per conversations with George Aguerre at Bigham Bros and sample programs provided.
Set "Arcs Stop on Quadrants" to True in the Form.
Changed to non-conditional Arc Centers in Prog.
Added literal 'G97' at FirstOperation, and 'G98' at end of Prog.
G98 causes the control to return to the G97 and start running the program all over again.
This is in effect is an Unconditional Endless Loop, but it is what George requested.
Added a move back to StrtPosC after each Milling Operation.
This is to keep the Torch from 'Burning' the part.
DWB}
{2/10/92
Modified: Burny 5 M367.80.3
For: Bigham Bros
Deleted support for MultipleParts AllPartsOneTool.
Modified ToolPath to automatically return to contour StrtPos when ToolChangeAtHome = TRUE.
Use ncPost 4.11.13 or higher.
Tread lightly, we completely changed all of the multiple part logic.
JC/KM}
{3/9/92
Modified: Burny 5 M367.80.4
For: Keystone
Deleted 'G46' OpToolID line in the FirstOp.
Changed literal 'M3' to 'M5' at CycleOn sub.
Changed literal 'M4' to 'M3' at CycleOff sub.
Moved call to CycleOn sub to before IF ToolChangeAtHome? at Milling sub.
This is to output StrtPos prior to literal 'M5' ( CWSpinOff ) per customer request.
KM}
{3/2/93
Updated: Burny 5 M367.80.5
For: Gibbs & Associates
Updated to Version 4.1 per LongHand M001.81.1 Format.
DWB}
{3/2/93
Modified: Burny 5 M367.81.2
For: Gibbs & Associates
Changes made per Tom Hubina's conversation with Burny Serviceman.
Changed to 3 place decimals.
Set "Arcs Stop on Quadrants" to False in the Form.
Changed MoveXYC to MoveXY at FormatArc, just to avoid any problems, it couldn't hurt.
DWB}
{5/21/93
Updated: Burny 5 M367.81.2
For: Gibbs & Associates
Updated to Version 4.1 per LongHand M001.81.3 Format.
DWB}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '###.###;0.'
#3 = '*###.###;0.'
#4 = '####.###;0.'
#5 = '#######0'
#6 = '###.##;0'
#7 = '#;'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(PartShiftX#,4)
FORMAT(PartShiftY#,4)
FORMAT(PartShiftZ#,4)
FORMAT(ToolDiameter#,4) {.72}
FORMAT(Program#,5) {.72}
FORMAT(Operation#,5) {.72}
FORMAT(Tool#,5) {.72}
FORMAT(Parts#,5) {.72}
FORMAT(Tag#,5)
FORMAT(Dwell#,6) {.72}
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
DoPartCycleComment:
IF MultipleParts? AND UseComments? AND SubComment?
'( PART NO. ' 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 ToolTypeComment?
'( TOOL ' Tool# ': ' ToolDiameter# ' ' ToolType$ ' )' EOL
END
IF ToolComment?
'( ' ToolComment$ ' )' EOL
END
RestoreScale
END
RETURN
PSInit: {reset flags}
RETURN
PSStuff: {revised.72}
RETURN
DoPostScript:
PSInit
EachPS
SeqC PostScript EOL {literals}
PSStuff {commands}
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqC EndOpPS EOL {literals}
PSStuff {commands}
NextPS
RETURN
CycleOn: { Cutting Process On }
SeqC
IF CWSpindle?
'M3'
ELSE
'M21'
END
CRCOnC EOL
IF Milling? AND CutterRadiusCompensation?
'G45' { Lead in to Kerf Compensated part, do not output on line by itself }
END
RETURN
CycleOff: { Cutting Process Off }
SeqC
IF CWSpindle?
'M5'
ELSE
'M20'
END
CRCOffC EOL
RETURN
EntryMove:
{ NOTE: This processor does not support Z moves. }
RETURN
CycleWarning:
{ NOTE: This Post Processor takes care of Z Clearance. }
RETURN
FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXY ArcIJ
RETURN
StdLine: {enables CRC on first call, .70}
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqC MoveXYC FeedRateC EOL
DecelMove2
END
SeqC MoveXYC DecelFeed EOL
ELSE
IF XMove? OR YMove?
SeqC MoveXYC FeedRateC EOL
END
END
RETURN
ToolPath:
Rapid { No Output - Forces G2/G3 }
RapidF# { Forces FeedRate }
EACHFeat
IF PointFeat? { Drilling Only }
SeqC MoveSXYC EOL
CycleOn
IF Dwell?
SeqC 'G4F' Dwell# EOL
END
CycleOff
ELSE
IF RapidFeat?
Rapid { No Output }
IF XMove? OR YMove?
SeqC MoveXYC FeedRateC EOL
END
ELSE
IF LineFeat?
Feed { No Output }
StdLine
ELSE
IF ArcFeat?
EACHQuadrant { Do not use NOT, FIRST, LAST or NEXT modifiers in this loop }
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
SeqC FormatArc ArcFeedC EOL
DecelMove2
END
SeqC FormatArc DecelFeed EOL
ELSE
SeqC FormatArc ArcFeedC EOL
END
NEXTQuadrant
END
END
END
IF AutoCycle?
SetAbs
Save# Num#('6') SUB# EPX# CurOriginPosX#
Save# Num#('7') SUB# EPY# CurOriginPosY#
SetInc
END
END
NEXTFeat
RETURN
WFOStuff:
{ NOTE: This processor does not support work fixture offsets. }
RETURN
AutoCycCutSub1: {part 1}
CalcACSRXY {calc tool position, CalcAutoCycleStatusRecordXY}
SaveSubStatus {save tool position}
SetPass1 {element cut moves}
SetSRXYtoSP
SeqC IncValue EOL
RETURN
AutoCycCutSub2: {part 2}
SetSRSubXY {restore SR to 1st position value}
ReSetPass2 {restore for positioning moves}
RETURN
Milling:
CycleOn
ToolPath
CycleOff
IF ToolChangeAtHome? { See comments 8/15/91 }
SeqC StrtPosC EOL
END
RETURN
XYRep:
CycleWarning
EachRep
SeqC StrtPosC EOL
DoCycleComment
Milling
NextRep
RETURN
NoRepAutoCycle:
EACHFeat
IF SPXMove? OR SPYMove?
SeqC AbsOrInc MoveSXYC EOL
END
AutoCycCutSub1
DoCycleComment
Milling
AutoCycCutSub2
NEXTFeat
RETURN
XYRepAutoCycle:
CycleWarning
EachRep
EACHFeat
IF SPXMove? OR SPYMove?
SeqC AbsOrInc MoveSXYC EOL
END
SetAbs
Save# Num#('4') SPX#
Save# Num#('5') SPY#
SetInc
AutoCycCutSub1
DoCycleComment
Milling
AutoCycCutSub2
SetAbs
TrackXNO# ADD# Recall# Num#('4') Recall# Num#('6')
TrackYNO# ADD# Recall# Num#('5') Recall# Num#('7')
SetAbsOrInc
NEXTFeat
NextRep
RETURN
CheckPass:
IF AutoCycle? {use the correct StrtPos}
SetPass2
ELSE
SetPass1
END
RETURN
GetStartOfSameTool:
Plane { No Output }
DoPartCycleComment
DoOpComments
DoPostScript
CheckPass
RETURN
MasterSub:
IF FirstOperation?
IF MultipleParts? AND OneToolAllParts? AND NOT FirstPart?
ELSE
IF ToolChangeAtHome?
SetHome
END
Plane { No Output }
DoPartCycleComment
DoOpComments
DoPostScript
CheckPass
Seq AbsOrInc StrtPos EOL
SeqC 'G97' EOL { Start of Unconditional Loop }
END
ELSE
IF NewTool?
IF MultipleParts? AND OneToolAllParts? AND NOT FirstPart?
ELSE
{Finish off last Operation}
DoEndOpPS
{ Burny has no need for ToolChangeAtHome }
IF LAST ProgStop?
SeqC 'M0' EOL
ELSE
SeqC ProgStop EOL
END
{Start new Operation}
Plane { No Output }
DoPartCycleComment
DoOpComments
DoPostScript
CheckPass
Seq AbsOrInc StrtPos EOL
END
ELSE
IF SameTool?
DoEndOpPS
IF LAST ProgStop?
SeqC 'M0' EOL
END
{Start new Operation}
GetStartOfSameTool
SeqC AbsOrInc StrtPos EOL
END
END
END {common point for all operations}
ResetCRCNum {.72}
IF Milling?
IF AutoCycle?
IF Repeats?
XYRepAutoCycle
ELSE
NoRepAutoCycle
END
ELSE { NOT AutoCycle }
IF Repeats?
XYRep
ELSE
Milling
END
END
ELSE
IF Drilling?
IF Peck? { Using Plate Marker }
IF PeckFullRetract? { Plate Marker #1 }
SeqC 'M8' EOL { Plate Marker #1 On }
SeqC 'M71' EOL { Marker Offset #1 On }
ELSE
IF PeckChipBreaker? { Plate Marker #2 }
SeqC 'M10' EOL { Plate Marker #2 On }
SeqC 'M73' EOL { Marker Offset #2 On }
END
END
END
IF Repeats?
EachRep
DoCycleComment
ToolPath
NextRep
ELSE
ToolPath
END
IF Peck? { Using Plate Marker }
IF PeckFullRetract? { Plate Marker #1 }
SeqC 'M70' EOL { Marker Offset #1 Off }
SeqC 'M7' EOL { Plate Marker #1 Off }
ELSE
IF PeckChipBreaker? { Plate Marker #2 }
SeqC 'M72' EOL { Marker Offset #2 Off }
SeqC 'M9' EOL { Plate Marker #2 Off }
END
END
END
END
END
RETURN
EndPartSub:
{End of program ************************************************************}
{finish last operation}
SeqC CoolOff EOL
DoEndOpPS
{ Burny has no need for FIRST ToolChangeAtHome }
IF ProgStop?
SeqC 'M0' EOL
ELSE
IF MultipleParts? AND AllToolsOnePart? AND NOT LastPart?
SeqC ProgStop EOL
END
END
RETURN
MPLoop:
TagInit
IF AllToolsOnePart?
EachPart
TagInc
EachOp
MasterSub
NextOp
EndPartSub
NextPart
ELSE { OneToolAllParts }
Save# Num#('2') Recall# Num#('1')
IF LTEqual? Recall# Num#('1') Recall# Num#('3')
EachOp
IF Equal? Operation# Recall# Num#('2')
Save# Num#('2') ADD# Operation# Num#('1')
IF NewTool?
IF Equal? Recall# Num#('1') Recall# Num#('3')
Save# Num#('2') Operation#
ELSE
IF NotEqual? Recall# Num#('1') SUB# Recall# Num#('2') Num#('1')
Save# Num#('2') SUB# Operation# Num#('1')
END
END
END
END
NextOp
EachPart
TagInc
EachOp
IF GTEqual? Operation# Recall# Num#('1')
IF LTEqual? Operation# Recall# Num#('2')
IF Equal? Operation# Recall# Num#('1')
IF NOT FirstPart?
{Finish off last Operation}
DoEndOpPS
{Start new Operation}
Plane { No Output }
DoPartCycleComment
DoOpComments
DoPostScript
CheckPass
SeqC AbsOrInc StrtPos EOL
END
END
MasterSub
END
END
NextOp
NextPart
Save# Num#('1') ADD# Recall# Num#('2') Num#('1')
END
END
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
ReverseXZArcs
SkipZ
SetMaxFeed('500')
Save# Num#('1') Num#('0')
Save# Num#('2') Num#('0')
Save# Num#('3') Num#('0')
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
END
OpenSub
EOR EOL
ProgID1
IF UseComments? AND ProgramNameComment?
'( ' ProgramName$ ' )'
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 ' MoveType$ ' INCHES )' EOL
END
IF PartsComment?
'( PARTS PROGRAMMED: ' Parts# ' )' EOL
END
IF StartToolComment?
'( FIRST TOOL NOT IN SPINDLE )' EOL
END
' ( LEAD IN LEAD OUT = .375 )' EOL
' ( KERF COMPENSATION = .06 )' EOL
' ( TORQUE SPEED = 0 )' EOL
RestoreScale
EACHOp {Start of initial comments ********************}
' ( OPERATION ' Operation# ': '
IF Milling?
OperationType$ ' ROTATION = '
IF CutterRadiusCompensation?
IF CRCLeft?
'CW G41'
ELSE
'CCW G42'
END
END
ELSE
IF Drilling?
'Punch'
END
END
' )' EOL
IF LastOp?
' ( TORCH SPACING = 0 )' EOL
' ( SCRAP DIMENSIONS = 0 )' EOL
' ( TIP SIZE = .06 )' EOL
END
NEXTOp {End of initial comments **********************}
IF SubComment?
'( START NEW PART )' EOL
END
END
RestoreScale
IF MultipleParts?
IF WorkFixtureOffsets?
'NOTE: This Post Processor does not support Work Fixture Offsets for Multiple Parts.' EOL
'Therefore, the output will be controlled by the following values that are' EOL
'already entered in Equally Spaced Offsets Edit Fields:' EOL
'X' PartShiftX# ' Y' PartShiftY# ' Z' PartShiftZ# EOL
'It is recommended that you change your selection to Equally Spaced Offsets.' EOL
END
Save# Num#('1') Num#('1')
EachOp
IF LastOp?
Save# Num#('3') Operation#
END
NextOp
MPLoop
IF OneToolAllParts?
MPLoop MPLoop MPLoop MPLoop MPLoop
MPLoop MPLoop MPLoop MPLoop MPLoop
MPLoop MPLoop MPLoop MPLoop MPLoop
MPLoop MPLoop MPLoop MPLoop MPLoop
MPLoop MPLoop MPLoop MPLoop MPLoop
EndPartSub
END
ELSE
EachOp
MasterSub
NextOp
EndPartSub
END
SeqC 'G98' EOL { End of Unconditional Loop }
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:
Burny 5 M367 81 3Burny 5 LH [SN] MU24 81 1Fanuc 10M (AGA) M147 81 2Tosnuc 600M VMC 45 M442 81 3DM 81 Diper KenwoodaBP IIA (HAC) M200 8130 (81)Artran Contour MV83 81Yas MX3 Mat [AbsZAC] M591 81 2T81 2node S0281G & L 15V Bickford M314 81 3Fanuc 0M Wasino WM3 M525 81 2więcej podobnych podstron