Anomatic II Anorad M406 81 3m


{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 3
Anomatic II Ano [QI] M578 87m
Anilam Crusader II SM M987 81 4
BP Boss 6 Ser II [NM] M549 81 3
Heidenhain TNC 155 M281 81 3m
Maho VCNC 432 [IC] M505 81 3m
Anilam Crus II [SU] M562 81 2
Anomatic II Ano [QI] M578 87
Yasnac MX2 Transema M797 81 3m
Yasnac MX2 Transema M797 81 3m
BP Boss 5 Series II M527 81 3
Fanuc 3M Enshu M070 81 2m
BP Boss 6 Series II M289 81 3
Fanuc 10M (AGA) M147 81 2
Alchemia II Rozdział 8
Do W cyrkulacja oceaniczna II rok
Test II III etap VIII OWoUE

więcej podobnych podstron