{Change Comments ***********************************************************}
{2/26/91
Copied & modified: Fanuc 6M M001.76.1
For: LaserFab
Machine: Anorad 6 CO2 Laser
Control: Anomatic II Level III
2 Axis with Z Rotary Table.
Turn Laser on to cut, off to position.
All Comments start with literal 'G69'.
WFO's by request only, activated by MP or PS.
FeedRates are inches per second, taken directly from CAM.
FullUp & ExitClearancePlane in ncPost will have the same effect.
No CRC.
Feeds called on line prior to axis move.
2 G codes per line maximum?
G0 & F200 for Rapid moves.
M Codes Prog Command Effect
106 SpinOn Laser On
107 SpinOff Laser Off
108 ------ Shutter Open (allows laser thru)
109 ------ Shutter Closed
110 ------ Optional Gas On
111 ------ Optional Gas Off
114 CoolOn Gas On
115 CoolOff Gas Off
JR}
{3/23/93
Updated: Anomatic II Anorad M406.76.1
For: Gibbs & Associates/Quasar Industries
Updated to Version 4.1 per Fanuc 6M M001.81.2 Format.
Added NewProg at DoSubComment to Update Program#.
DWB}
{3/25/93
Modified: Anomatic II Anorad M406.81.2
For: Gibbs & Associates/Quasar Industries
Created Metric version.
DWB}
{6/16/93
Updated: Anomatic II Anorad M406.81.2m
For: Gibbs & Associates/Quasar Industries
Made minor cleanup changes.
Changed INCHES to METERS at MovesComment.
Changed literal 'G70' to 'G71' for Metric mode at FirstOperation.
DWB}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '###.####;0'
#3 = '*###.####;0'
#4 = '#####.###;0'
#5 = '#######0'
#6 = '####^##0'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ToolDiameter#,4) {.72}
FORMAT(Program#,5) {.72}
FORMAT(Operation#,5) {.72}
FORMAT(Tool#,5) {.72}
FORMAT(NewWFO#,5) {.72}
FORMAT(Parts#,5) {.72}
FORMAT(Dwell#,6) {.72}
{Prog Subroutines **********************************************************}
RestoreScale:
IF NOT Metric? {CAM file is in English, tools and tool path}
SetScale('25.4') { change to Metric, this is an Metric post}
END
RETURN
DoSubComment:
IF UseComments? AND SubComment?
NewProg { Update Program# }
'G69 SUB NUMBER: ' Program# EOL
END
RETURN
DoOpComments:
IF UseComments?
SetScale('1')
IF OperationIDComment?
'G69 OPERATION ' Operation# ': ' OperationType$ EOL
END
IF OperationComment?
'G69 ' OperationComment$ EOL
END
IF WorkGroupComment?
'G69 ' WorkGroupComment$ EOL
END
IF ToolTypeComment?
'G69 TOOL ' Tool# ': ' ToolDiameter# ' ' ToolType$ EOL
END
IF ToolComment?
'G69 ' ToolComment$ EOL
END
RestoreScale
END
RETURN
PSInit: {reset flags}
NewWFOF
RotateF
RETURN
PSStuff: {revised.72}
IF FourthCW?
FORMAT(FourthDegree#,2)
SeqLabC 'Z' FourthDegree# EOL
FourthCWF {reset flag}
END
IF FourthCCW?
FORMAT(FourthDegree#,3)
SeqLabC 'Z' FourthDegree# EOL
FourthCCWF {reset flag}
END
RETURN
DoPostScript:
PSInit
EachPS
SeqLabC PostScript EOL {literals}
PSStuff {commands}
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqLabC EndOpPS EOL {literals}
PSStuff {commands}
NextPS
RETURN
LaserOn:
'M106'
RETURN
LaserOff:
'M107'
RETURN
OpenShutter: { Allows Laser thru }
'M108'
RETURN
CloseShutter:
'M109'
RETURN
OptGasOn:
'M110'
RETURN
OptGasOn:
'M111'
RETURN
GasOn:
CoolOn { M114 }
RETURN
GasOff:
CoolOff { M115 }
RETURN
EntryMove:
SeqLabC LaserOn 'G4X.2' EOL
RETURN
ExitMove:
IF FIFO? {.81}
FeedC FeedEntC
ELSE
RapidC RapidFC
END
SeqLabC LaserOff 'G4X.3' EOL
RETURN
StartSub:
OpenSub
DoSubComment
'>' Tag# EOL
SeqLab { unconditional for Proper Tagging }
RETURN
SubWarning:
{ NOT Needed }
RETURN
StdSub:
SeqLabC CallLabB 'ł' Tag# RepLab RepCycs EOL
StartSub
RETURN
FinishSub1: {part 1}
IF NOT FeedConnect?
IF NOT AutoCycle?
ExitMove
END
END
RETURN
FinishSubG92: {part 2}
SeqLabC Preset ShiftRC EOL
SeqLabC EndSub EOL
CloseSub
SeqLabC Preset UnshftRC EOL
RETURN
OpenMP:
TagInc
IF WorkFixtureOffsets?
NewWFO
EachWFO
SeqLabC SetWFO EOL
SeqLabC CallLabB 'ł' Tag# RepLab OnePart EOL
IncWFO
NextWFO
ELSE
SeqLabC CallLabB 'ł' Tag# RepLab Parts EOL
END
StartSub
RETURN
CloseMP:
IF WorkFixtureOffsets?
SeqLabC EndSub EOL
CloseSub
SeqLabC WFO1 EOL
ELSE
SeqLabC Preset ShiftPC EOL
SeqLabC EndSub EOL
CloseSub
SeqLabC Preset UnshftPC EOL
END
RETURN
FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
RETURN
FormatArc2:
MoveXYC ArcIJ
RETURN
StdLine: {enables CRC on first call, .70}
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqLabC FeedC FeedRateC MoveXYC EOL
DecelMove2
END
SeqLabC FeedC DecelFeed MoveXYC EOL
ELSE
IF XMove? OR YMove?
SeqLabC FeedC FeedRateC MoveXYC EOL
END
END
RETURN
ToolPath:
EACHFeat
IF PointFeat?
IF AutoCycle?
SeqLabC MoveSXYC EOL
SeqLabC CallLabB 'ł' Tag# EOL
CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
ELSE
SeqLabC MoveSXYC EOL
SeqLabC LaserOn 'G4X.2' EOL
SeqLabC LaserOff 'G4X.3' EOL
END
ELSE
IF RapidFeat?
IF XMove? OR YMove?
SeqLabC RapidC RapidFC MoveXYC EOL
END
ELSE
IF LineFeat?
StdLine
ELSE
IF ArcFeat?
EACHQuadrant { Do not use NOT, FIRST, LAST or NEXT modifiers in this loop }
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
SeqLabC FormatArc ArcFeedC FormatArc2 EOL
DecelMove2
END
SeqLabC FormatArc DecelFeed FormatArc2 EOL
ELSE
SeqLabC FormatArc ArcFeedC FormatArc2 EOL
END
NEXTQuadrant
END
END
END
END
NEXTFeat
RETURN
WFOStuff:
IF NewWFO?
IF MultipleParts? AND WorkFixtureOffsets?
'*** WARNING *** DO NOT USE NEWWFO() WITH NCPOST MULTIPLE PARTS' EOL
ELSE
SeqLabC 'G' NewWFO# EOL
END
END
RETURN
AutoCycCutSub1: {part 1}
SaveSubStatus {save tool position}
SetPass1 {element cut moves}
StartSub
SetSRXYtoSP
SeqLabC IncValue EOL
RETURN
AutoCycCutSub2: {part 2}
ToolPath
AbsOrInc ExitMove
SeqLabC EndSub EOL
CloseSub
SetSRSubXY {restore SR to 1st position value}
SetSRSubMove
RETURN
AutoCycPat:
SetPass2 {position pattern}
ToolPath {call after TagInc for correct sub calls}
SetPass1 {reset}
RETURN
Milling:
IF AutoCycle?
TagInc
AutoCycCutSub1
EntryMove
AutoCycCutSub2
AutoCycPat
ELSE
EntryMove
ToolPath
END
RETURN
G92Sub:
StdSub
SeqLabC Connect StrtPos EOL
Milling
FinishSub1
FinishSubG92
RETURN
ZonlyRepAutoCycle:
{ NOT Needed }
RETURN
ZonlyRep:
{ NOT Needed }
RETURN
CheckPass:
IF AutoCycle? {use the correct StrtPos}
SetPass2
ELSE
SetPass1
END
RETURN
GetStartOfSameTool:
DoOpComments
DoPostScript
WFOStuff
CheckPass
RETURN
{Start of executable Prog **************************************************}
{setup and initializations}
InitProg
SkipZ
InitWFONum
SetFlood
UseSeparateSubCalls
SetMaxSeparateSubCalls('50')
SetMaxRPM('10000')
SetMaxFeed('500')
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
' NewWFO(56), NWFO(56) -' EOL
' The Work Fixture Offset # you specify will be used for all following operations.' EOL
' Do not use with the ncPost multiple part option.' EOL
' 4thAxisCW(12.5), 4ACW(12.5) -' EOL
' generates a + Z move of the value you specify' EOL
' 4thAxisCCW(22.5), 4ACCW(22.5) -' EOL
' generates a - Z move of the value you specify' EOL
END
EachOp {Start of post processing *********************}
IF FirstOperation?
IF ToolChangeAtHome?
SetHome
END
IF UseComments?
IF ProgramNameComment?
'G69 ' ProgramName$ EOL
END
IF ProgramComment?
'G69 ' ProgramComment$ EOL
END
IF FormatNameComment?
'G69 FORMAT: ' FormatName$ EOL
END
IF TimeComment?
'G69 ' Date$ ' AT ' Time$ EOL
END
IF MovesComment?
'G69 OUTPUT IN ' MoveType$ ' METERS' EOL
END
IF PartsComment?
'G69 PARTS PROGRAMMED: ' Parts# EOL
END
IF StartToolComment?
'G69 FIRST TOOL NOT IN SPINDLE' EOL
END
END
OpenSub
RestoreScale
IF MultipleParts? AND AllToolsOnePart?
OpenMP
END
Plane { no output }
SeqLab AbsOrInc 'G71' EOL
SeqLabC LaserOff CloseShutter GasOff 'G4X.3' EOL
DoOpComments
DoPostScript
WFOStuff
CheckPass
SeqLabC Rapid RapidF StrtPos EOL
SeqLabC OpenShutter GasOn 'G4X.5' EOL
IF MultipleParts? AND OneToolAllParts?
OpenMP
SeqLabC StrtPos EOL
END
ELSE
IF NewTool?
{Finish off last Operation}
IF MultipleParts? AND OneToolAllParts?
CloseMP
END
SeqLabC CloseShutter GasOff EOL
DoEndOpPS
IF ToolChangeAtHome?
SeqLabC RapidC RapidFC Home EOL
END
SeqLabC 'M0' EOL { Forced ProgStop }
{Start new Operation}
Plane { no output }
DoOpComments
DoPostScript
WFOStuff
CheckPass
SeqLab Rapid RapidF StrtPos EOL
SeqLabC OpenShutter GasOn 'G4X.5' EOL
IF MultipleParts? AND OneToolAllParts?
OpenMP
SeqLabC StrtPos EOL
END
ELSE
IF SameTool?
DoEndOpPS
IF LAST ProgStop?
SeqLabC CloseShutter GasOff EOL
SeqLabC 'M0' EOL
{Start new Operation}
GetStartOfSameTool
SeqLabC PlaneC Rapid RapidF StrtPos EOL
SeqLabC OpenShutter GasOn 'G4X.5' EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqLabC CloseShutter GasOff EOL
END
{Start new Operation}
GetStartOfSameTool
SeqLabC PlaneC RapidC RapidFC StrtPos EOL
IF NOT CoolOff? AND LAST CoolOff?
SeqLabC OpenShutter GasOn 'G4X.5' EOL
END
END
END
END
END {common point for all operations}
IF Milling?
IF Repeats?
TagInc
G92Sub
IF FeedConnect?
ExitMove
END
ELSE {no repeat OPs}
Milling
IF NOT AutoCycle?
ExitMove
END
END
ELSE
IF Drilling?
IF Repeats?
TagInc
StdSub
SeqLabC Rapid RapidF StrtPos EOL
END
ToolPath
IF Repeats?
FinishSubG92
END
END
END
NextOp {loops back to EachOP until last Operation}
{End of program ************************************************************}
{finish last operation}
IF MultipleParts? AND OneToolAllParts?
CloseMP
END
SeqLabC CloseShutter GasOff EOL
DoEndOpPS
IF FIRST ToolChangeAtHome?
SeqLabC RapidC RapidFC FirstHome EOL
END
SeqLabC 'M0' EOL { Forced ProgStop }
IF MultipleParts? AND AllToolsOnePart?
CloseMP
END
SeqLabC EOP EOL
CloseSub
Post2 {organize Subs into one program}
Close
ReTag
IF UseComments?
SetScale('1') {restore scale for comments}
Reopen
IF FileBytesComment?
'G69 FILE LENGTH: ' FileBytes# ' CHARACTERS' EOL
END
IF FileFeetComment?
'G69 FILE LENGTH: ' FileFeet# ' FEET' EOL
END
IF FileMetersComment?
'G69 FILE LENGTH: ' FileMeters# ' METERS' EOL
END
Close
END
Wyszukiwarka
Podobne podstrony:
Anomatic II Anorad M406 81 3Anomatic II Ano [QI] M578 87mAnilam Crusader II SM M987 81 4BP Boss 6 Ser II [NM] M549 81 3Heidenhain TNC 155 M281 81 3mMaho VCNC 432 [IC] M505 81 3mAnilam Crus II [SU] M562 81 2Anomatic II Ano [QI] M578 87Yasnac MX2 Transema M797 81 3mYasnac MX2 Transema M797 81 3mBP Boss 5 Series II M527 81 3Fanuc 3M Enshu M070 81 2mBP Boss 6 Series II M289 81 3Fanuc 10M (AGA) M147 81 2Alchemia II Rozdział 8Do W cyrkulacja oceaniczna II rokTest II III etap VIII OWoUEwięcej podobnych podstron