{Change Comments ***********************************************************}
{8/24/89
Copied & modified: UCNC 7 L-TEC M145.55
For: Lawrence Berkeley
Changed CRC codes in MachSpec from M67 (L), M68 (R), & M69 (Off) to M2, M3, & M4, respectfully.
Deleted CRCOff from safe startup block at FirstOperation.
Added ProgStop at SameTool.
Changed all occurances of 'M73' to 'M71'.
JR}
{10/17/89
Modified: UCNC 7/8 Linde M239.56
For: Lawrence Berkeley
Added SetHome at FirstOperation.
Added StrtPos for MultipleParts ExitClearancePlane.
Changed Home to FirstHome at end of prog.
JR}
{12/5/90
Updated: UCNC 7/8 Linde M239.62
For: Lawrence Berkeley
Updated to Version 3.2 per Fanuc 6M M001.76.1 Format.
Added FeedEnt to StrtPos Line for all Operations.
Added literal 'P' to all Rapid Moves.
Modified Scribe Cycle (Peck Cycle) to allow for all points in workgroup.
DWB}
{8/18/93
Updated: UCNC 7/8 Linde M239.76.1
For: Lawrence Berkeley
Updated to Version 4.1 per LongHand M001.81.2 Format.
This supports MultipleParts.
Using Var(1), Var(2) and Var(3) for logical control of MultiplePart Operations.
Using Var(4), Var(5), Var(6) and Var(7) for correct Positioning of AutoCycles that Repeat in
X and/or Y, and when AbsoluteMoves = FALSE.
DWB}
{2/9/96, Updated .81 number to .84, no changes necessary, MPK}
{3/22/96, Tested ZOnlyRepAutoCycle, Incremented number to .87, MPK}
{6/12/97
Initial: UCNC 7/8 Linde M239.87
Created: Esab L-Tec 2000 CNC Mxxx.87
ForUser: Algoma
Control: ESAB L-TEC SERIES 2000 CNC
Machine: LINDE CM-56
Develop: ComPost2 68K 1.0b11, CatalystPPC v3.33C
Comment: New processor per sample readout.
Changed movement commands to G0, G1, G2 and G3
Deleted RP from Rapid moves.
Changed to standard support of Absolute and Incremental commands:
Added G90 and G91 to MachSpec for AbsValue and IncValue.
Deleted CheckFeat sub.
Changed CheckFeat calls to RapidC, FeedC, CWArcC & CCWArcC
Changed M71 to M73
Changed CRC codes in MachSpec from M2, M3, & M4 to M67, M68, & M69.
Commented out feedrate commands.
Jim Radcliffe}
{11/17/98,
Initial: Esab L-Tec 2000 CNC MX29.87
Created: Esab GXA Autopath MT46.87
For: Retech
Changes to Form:
1) Tool Offsets - Changed CRC Left to G41.
Changed CRC Right to G42.
2) Program Stops - Added 'M2' to End Program.
Changes to Prog:
1) Milling - Replaced 'M70' with '/M3'.
2) Deleted all 'M73' literals.
3) FormatArc - Added 'M5' and corresponding boolean logic.
CDH}
{11/23/98,
Initial: Esab GXA Autopath MT46.87
Created: Esab GXA Autopath MT46.87.1
For: Retech
Changes to Prog:
1) Added literal 'G40' to first operation.
2) FormatArc - Deleted IF LastOp? boolean so '/M5' is output
for every operation.
CDH}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '###.###;0.'
#3 = '*###.###;0.'
#4 = '####.####;0.'
#5 = '#######0'
#6 = '###.##;0'
#7 = '#'
#8 = '000000000'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ToolDiameter#,4) {.72}
FORMAT(Tag#,5)
FORMAT(Recall#,5)
FORMAT(Operation#,5) {.72}
FORMAT(Tool#,5) {.72}
FORMAT(Parts#,5) {.72}
FORMAT(Dwell#,6) {.72}
FORMAT(RapidF#,7)
FORMAT(Program#,8) {.72}
{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}
{ NOTE: This processor does not support rotary axis. }
RETURN
DoPostScript:
PSInit
EachPS
SeqC PostScript EOL {literals}
PSStuff {commands}
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqC EndOpPS EOL {literals}
PSStuff {commands}
NextPS
RETURN
EntryMove:
{ NOTE: This processor does not support Z moves. }
RETURN
GetConnect:
IF FeedConnect?
Feed
ELSE
Rapid
END
RETURN
ExitMove:
IF NOT FeedConnect?
SeqC CRCOffC EOL
{ NOTE: This processor does not support Z moves. }
END
RETURN
ExitMove2:
{ NOTE: This processor does not support Z moves. }
RETURN
CycleWarning:
{ NOTE: This processor does not support Z moves. }
RETURN
FormatArc:
IF LastFeat?
SeqC '/M5' EOL
END
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXYC ArcIJC
RETURN
StdLine: {enables CRC on first call, .70}
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqC FeedC MoveXYC {FeedRateC} EOL
DecelMove2
END
SeqC FeedC MoveXYC {DecelFeed} EOL
ELSE
IF XMove? OR YMove?
SeqC FeedC MoveXYC {FeedRateC} EOL
END
END
RETURN
ToolPath:
EACHFeat
IF PointFeat? { Drilling Only }
MoveSXYC
IF Peck? { Scribe Cycle }
SeqC { Dont move, it works } EOL
ELSE
IF NOT EmptyLine?
'R'
IF Dwell?
'P'
END
END
SeqC { Dont move, it works } EOL
SeqC 'M60' EOL {Punch Mark}
END
ELSE
IF RapidFeat?
IF XMove? OR YMove?
SeqC RapidC MoveXYC EOL
END
IF LastFeat? AND AutoCycle? {.70}
SeqC CRCOffC EOL
END
ELSE
IF LineFeat?
StdLine
IF LastFeat? AND AutoCycle? {.70}
SeqC CRCOffC EOL
END
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}
SeqC AbsValue EOL
SetSRSubXY {restore SR to 1st position value}
ReSetPass2 {restore for positioning moves}
RETURN
Milling:
SeqC CRCOnC EOL
SeqC '/M3' EOL
ToolPath
SeqC CRCOffC EOL
RETURN
XYRep:
CycleWarning
EachRep
IF NOT FirstCycle?
SeqC GetConnect StrtPosC {FeedEnt} EOL
END
DoCycleComment
Milling
NextRep
RETURN
NoRepAutoCycle:
EACHFeat
IF SPXMove? OR SPYMove?
SeqC Rapid MoveSXYC {FeedEnt} EOL
END
AutoCycCutSub1
DoCycleComment
Milling
AutoCycCutSub2
NEXTFeat
RETURN
XYRepAutoCycle:
EachRep
EACHFeat
IF SPXMove? OR SPYMove?
SeqC GetConnect MoveSXYC {FeedEnt} 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
DrillStuff:
{ Nothing to do here }
RETURN
CheckPass:
IF AutoCycle? {use the correct StrtPos}
SetPass2
ELSE
SetPass1
END
RETURN
GetStartOfSameTool:
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
SeqC AbsValue EOL
SeqC 'G40' EOL
SeqC Rapid StrtPos {FeedEnt} EOL
END
ELSE
IF NewTool?
IF MultipleParts? AND OneToolAllParts? AND NOT FirstPart?
ELSE
{Finish off last Operation}
DoEndOpPS
IF ToolChangeAtHome?
SetAbs
LoadFeat
SUB# HomeX# CurOriginPosX#
SUB# HomeY# CurOriginPosY#
Num#('0') { Dummy Z }
SeqC Rapid MoveXY EOL
END
IF LAST ProgStop?
SeqC 'M0' EOL
ELSE
SeqC ProgStop EOL
END
{Start new Operation}
PlaneC {No Output}
DoPartCycleComment
DoOpComments
DoPostScript
WFOStuff
CheckPass
SeqC Rapid StrtPos {FeedEnt} EOL
END
ELSE
IF SameTool?
DoEndOpPS
IF LAST ProgStop?
SeqC 'M0' EOL
ELSE
SeqC ProgStop EOL
END
{Start new Operation}
GetStartOfSameTool
PlaneC {No Output}
SeqC Rapid StrtPos {FeedEnt} EOL
END
END
END {common point for all operations}
ResetCRCNum {.72}
RapidF# { No Output }
IF Milling?
SeqC ZCP2C EOL
IF AutoCycle?
IF Repeats?
XYRepAutoCycle
ELSE
NoRepAutoCycle
END
ELSE { NOT AutoCycle }
IF Repeats?
XYRep
ELSE
Milling
END
SeqC CRCOffC EOL
END
ELSE
IF Drilling?
SeqC 'M47' EOL {Punch Marker Offset On}
GetCycle
IF Peck?
SeqC 'M74' EOL {Scribing Cycle On}
ELSE
SeqC 'M72' EOL {Torches Down}
END
IF Repeats?
EachRep
DoCycleComment
ToolPath
NextRep
ELSE
ToolPath
END
IF Peck?
SeqC 'M75' EOL {Scribing Cycle Off}
END
SeqC 'M48' EOL {Punch Marker Offset Off}
END
END
RETURN
EndPartSub:
{End of program ************************************************************}
{finish last operation}
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SetAbs
LoadFeat
SUB# FIRST HomeX# CurOriginPosX#
SUB# FIRST HomeY# CurOriginPosY#
Num#('0') { Dummy Z }
SeqC Rapid MoveXY EOL
END
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}
IF FullUp?
SeqC CoolOff EOL
SeqC IncValue OfstOff EOL
END
{DoEndOpPS}
{Start new Operation}
GetStartOfSameTool
SeqC PlaneC AbsOrInc Rapid StrtPos SpeedC EOL
IF FullUp?
SeqC OfstOn EOL
SeqC CoolOn EOL
END
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
SetMaxRPM('10000')
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
EOR Program# EOL
IF UseComments?
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 ABSOLUTE INCHES )' EOL
END
IF PartsComment?
'( PARTS PROGRAMMED: ' Parts# ' )' EOL
END
IF StartToolComment?
'( FIRST TOOL NOT IN SPINDLE )' EOL
END
END
OpenSub
RestoreScale
IF MultipleParts?
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 EOP EOL
CloseSub
Post2 {organize Subs into one program}
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:
Fanuc 10M MVJr[G43r] M192 87Tosnuc 600M BMC 40 M440 87Fanuc 6M [MC] M710 87G&L Numeripath 800M M713 87 1pref 8787 Omow znaczenie czynnika geometrycznego dla przeplywu krwiG & L Numeripath 8000 M499 87Mazatrol M32 [CKC] M709 87Fanuc 11M Okuma M124 87więcej podobnych podstron