{Change Comments ***********************************************************}
{3/15/95
Copied & modified: Fanuc 6M M001.81.2
For: Hi-Tech
Machine: Mitsubishi DWC 90C
This is a 2 axis wire EDM Processor to be used with Virtual Gibbs.
There are no special EDM items supported.
There is no NewTool Section, a wire EDM does not have one!.
Z Reps are not suppoerted.
CoolOn outputs M80 Dielectric Fluid On.
CoolOff outputs M81 Dielectric Fluid Off.
SpinOn outputs M82 Wire Feed On.
SpinOff outputs M83 Wire Feed Off.
Cutter Radius Compensation turned on on 1st linear feat and off on last one.
????? MultipleParts FullUp cuts the wire, MultipleParts ExitClearancePlane does not. ???????
** call to see if they have the auto wire feed option **
Jim Radcliffe}
{6/21/96
Initial: Mitsubishi DWC 90C EDM M765.82
Created: Mit 5000W DWC100 EDM M000.89
ForUser: CIM Solutions / Metal Stampings
Control: Mitsubishi Model 5000W
Machine: Mitsubishi DWC100 Wire EDM
Develop: ComPost 4.21.37, Catalyst68K v3.04.10.C
Comment: New Processor per marked up readout and conversation with Chuck Klinect
Deleted program numbers.
Changed to NoSubs format per Fanuc 6M NoSubs M877.89.1
No Work Fisture Offsets.
Machine does not have Rapid G0 cammand, using Feed and RapidF.
Changed to trailing zeros.
CRC on line by itself.
Jim Radcliffe}
{Prog Numeric Format Definitions *******************************************}
#1 = '#.00'
#2 = '###^##0'
#3 = '*###^##0'
#4 = '####.####;0'
#5 = '#######0'
#6 = '####^##0'
#7 = '#;'
FORMAT(FileFeet#,1)
FORMAT(FileMeters#,1)
FORMAT(ToolDiameter#,4)
FORMAT(Program#,5)
FORMAT(Operation#,5)
FORMAT(Tool#,5)
FORMAT(NewWFO#,5)
FORMAT(Parts#,5)
FORMAT(Dwell#,6)
FORMAT(RapidF#,7)
{Special EDM Use Subroutines ***********************************************}
FeedWire:
'M0'
IF UseComments?
'( Feed Wire )'
END
RETURN
CutWire:
'M0'
IF UseComments?
'( Cut Wire )'
END
RETURN
PowerOn: { turns power supply on to begin machining }
'M84'
RETURN
PowerOff: { turns power supply off for end of machining }
'M85'
RETURN
{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?
'( CYCLE START )' EOL
END
RETURN
DoOpComments:
IF UseComments?
SetScale('1')
IF MultipleParts? AND SubComment?
'( PART ' Tag# ' )' EOL
END
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}
NewWFOF
RotateF
RETURN
PSStuff: {revised.72}
IF FourthCW?
FORMAT(FourthDegree#,2)
SeqC 'A' FourthDegree# EOL
FourthCWF {reset flag}
END
IF FourthCCW?
FORMAT(FourthDegree#,3)
SeqC 'A' FourthDegree# EOL
FourthCCWF {reset flag}
END
IF FifthCW?
FORMAT(FifthDegree#,2)
SeqC 'B' FifthDegree# EOL
FifthCWF {reset flag}
END
IF FifthCCW?
FORMAT(FifthDegree#,3)
SeqC 'B' FifthDegree# EOL
FifthCCWF {reset flag}
END
RETURN
DoPostScript:
PSInit
EachPS
SeqC PostScript EOL
PSStuff
NextPS
RETURN
DoEndOpPS:
PSInit
EachEOPS
SeqC EndOpPS EOL
PSStuff
NextPS
RETURN
FormatArc:
IF ArcCW?
CWArcC
ELSE
CCWArcC
END
MoveXYZC
IF ArcIJFormat?
ArcIJC
ELSE
ArcRC
END
RETURN
StdRapid:
IF LastFeat?
SeqC FeedC MoveXYZC RapidFC EOL
SeqC CRCOffC EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqC CRCOnC CRCOffsetC EOL
SeqC FeedC MoveXYZC RapidFC EOL
END
END
RETURN
StdLine: {enables CRC on first call, .70}
IF LastFeat?
SeqC FeedC MoveXYZC FeedRateC EOL
SeqC CRCOffC EOL
ELSE
SeqC CRCOnC CRCOffsetC EOL
IF Decelerate?
IF RoomToDecel?
DecelMove1
SeqC FeedC MoveXYZC FeedRateC EOL
DecelMove2
END
SeqC FeedC MoveXYZC DecelFeed EOL
ELSE
IF XMove? OR YMove? OR ZMove?
SeqC FeedC MoveXYZC FeedRateC EOL
END
END
END
RETURN
StdArc:
EACHQuadrant
IF LastQuadrant? AND Decelerate?
IF RoomToDecel?
DecelMove1
SeqC FormatArc ArcFeedC EOL
DecelMove2
END
SeqC FormatArc DecelFeed EOL
ELSE
SeqC FormatArc ArcFeedC EOL
END
NEXTQuadrant
RETURN
ToolPath2: {for AutoCycle element moves}
EACHFeat
IF RapidFeat?
StdRapid
ELSE
IF LineFeat?
StdLine
ELSE
IF ArcFeat?
StdArc
END
END
END
NEXTFeat
RETURN
CutAutoCycle:
SaveSubStatus {save tool position}
SetPass1 {element cut moves}
SetSRXYtoSP
SeqC IncValue EOL
ToolPath2
SeqC AbsOrInc EOL
SetSRSubXY {restore tool position}
SetSRSubMove
ReSetPass2 {restore for positioning moves}
RETURN
ToolPath:
EACHFeat
IF PointFeat?
IF AutoCycle?
IF NOT FirstFeat?
SeqC
IF FIFO?
Rapid
END
MoveSXYC EOL
END
CalcACSRXY {calc tool position after sub call, CalcAutoCycleStatusRecordXY}
CutAutoCycle
ELSE
SeqC MoveSXYZC EOL {.80.01}
END
ELSE
IF RapidFeat?
StdRapid
ELSE
IF LineFeat?
StdLine
ELSE
IF ArcFeat?
StdArc
END
END
END
END
NEXTFeat
RETURN
WFOStuff:
{ WFOs not supported in this processor }
RETURN
CheckPass:
IF AutoCycle? {use the correct StrtPos}
SetPass2
ELSE
SetPass1
END
RETURN
DoOp:
IF FirstOperation?
IF MultipleParts? AND OneToolAllParts? AND NOT FirstPart?
IF FullUp?
SeqC CoolOff SpinOff PowerOff EOL
SeqC CutWire EOL
END
DoOpComments
CheckPass
SeqC FeedC StrtPos RapidFC EOL
IF FullUp?
SeqC FeedWire EOL
SeqC CoolOn SpinOn PowerOn EOL
END
ELSE
DoOpComments
DoPostScript
CheckPass
SeqC Feed StrtPos RapidF EOL
SeqC FeedWire EOL
SeqC CoolOn SpinOn PowerOn EOL
END
ELSE
{Finish off last Operation}
IF LAST ProgStop?
SeqC CoolOff SpinOff PowerOff EOL
SeqC CutWire EOL
ELSE
IF CoolOff? AND LAST NOT CoolOff?
SeqC CoolOff EOL
END
END
{Start new Operation}
DoOpComments
DoPostScript
CheckPass
SeqC FeedC StrtPos RapidFC EOL
IF LAST ProgStop?
SeqC FeedWire EOL
SeqC CoolOn SpinOn PowerOn EOL
ELSE
IF NOT CoolOff? AND LAST CoolOff?
SeqC CoolOn EOL
END
END
END
{ Common Point for All Operations }
ResetCRCNum {call here to reset for each new operation only, call in tool path to reset for each repeat in an operation}
IF Milling?
SeqC ZCP2C EOL
IF Repeats?
EACHRep
DoSubComment
IF NOT FirstCycle?
IF FeedConnect?
SeqC FeedC StrtPos FeedRateC EOL
ELSE
SeqC FeedC StrtPos RapidFC EOL
SeqC FeedWire EOL
END
END
ToolPath
SeqC CRCOffC EOL
IF NOT FeedConnect?
SeqC CutWire EOL
END
NEXTRep
END
ToolPath
SeqC CRCOffC EOL
ELSE
IF Drilling?
'*** Drilling operations are not supported in this Post Processor ***' EOL
END
END
RETURN
FinishLastOp:
SeqC CoolOff SpinOff PowerOff EOL
SeqC CutWire EOL
DoEndOpPS
IF FIRST ToolChangeAtHome? {.71.2 added FIRST modifier}
SeqC Rapid FirstHome EOL
END
RETURN
DoToolsOps:
EachOp
IF GTEqual? Operation# Recall# Num#('1') AND LTEqual? Operation# Recall# Num#('2')
{Tools1stOp ² op ² ToolsLastOp}
DoOp
END
NextOp
RETURN
NextTools1stOp:
SetNextToolOp Operation#
RETURN
GetToolsOps:
EachOp
IF Equal? Operation# Recall# Num#('1') {if op = Tools1stOp}
IF GreaterThan? NextTools1stOp Recall# Num#('1') {if NextTools1stOp is greater Tools1stOp}
Save# Num#('2') SUB# NextTools1stOp Num#('1') {ToolsLastOp becomes NextTools1stOp less 1}
ELSE {else}
Save# Num#('2') Recall# Num#('3') {ToolsLastOp becomes ncCAMsLastOp}
END
END
NextOp
RETURN
DoTool:
IF NOT Flag?('1')
GetToolsOps
IF WorkFixtureOffsets?
NewWFO
EachWFO
TagInc
DoToolsOps
IncWFO
NextWFO
ELSE
EachPart
TagInc
DoToolsOps
NextPart
END
IF LessThan? Recall# Num#('2') Recall# Num#('3') {if ToolsLastOp < ncCAMsLastOp}
Save# Num#('1') ADD# Recall# Num#('2') Num#('1') {Tools1stOp becomes NextTools1stOp}
ELSE {else}
SetFlag('1') {set DoneFlag}
END
TagInit
END
RETURN
MPallTools1P:
IF WorkFixtureOffsets?
NewWFO
EachWFO
TagInc
EachOp
DoOp
NextOp
FinishLastOp
IncWFO
NextWFO
ELSE
EachPart
TagInc
EachOp
DoOp
NextOp
FinishLastOp
NextPart
END
RETURN
MP1ToollAllPs:
EachOp
IF FirstOperation?
Save# Num#('1') Operation# {ncCAMs1stOp becomes Tools1stOp}
END
IF LastOp?
Save# Num#('3') Operation# {save ncCAMsLastOp}
END
NextOp
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool DoTool
FinishLastOp
RETURN
NoMPs:
EachOp
DoOp
NextOp
FinishLastOp
RETURN
ProgStart:
InitProg
TagInit
SetFlagF('1') {done flag}
ReverseXZArcs
InitWFONum
SetFlood
SetMaxRPM('10000')
SetMaxFeed('500')
SkipZ
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 + 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
RETURN
BeginProgram:
EachOp {Start of post processing *********************}
Plane { no output }
IF FirstOperation?
EOR EOL
IF ToolChangeAtHome?
SetHome
END
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 ' MoveType$ ' INCHES )' EOL
END
IF PartsComment?
'( PARTS PROGRAMMED: ' Parts# ' )' EOL
END
IF StartToolComment?
'( FIRST TOOL NOT IN SPINDLE )' EOL
END
END
OpenSub
RestoreScale
SeqC AbsOrInc EOL
SeqC Preset Home EOL
END
NextOp
RETURN
EndProgram:
SeqC EOP EOL
EOR EOL
CloseSub
Post2
IF UseComments?
SetScale('1') {restore scale for comments}
IF FileBytesComment?
'( FILE LENGTH: ' FileBytes# ' CHARACTERS )' EOL
END
IF FileFeetComment?
'( FILE LENGTH: ' FileFeet# ' FEET )' EOL
END
IF FileMetersComment?
'( FILE LENGTH: ' FileMeters# ' METERS )' EOL
END
END
Close
RETURN
{Start of executable Prog, top level ****}
IF MultipleParts? AND WorkFixtureOffsets?
'This processor does not support' EOL
'multiple parts with work fixtures!' EOL
' ' EOL
'Change your setting to use the' EOL
'Equally Spaced Offsets selection!' EOL
' ' EOL
' ' EOL
' ' EOL
ELSE
ProgStart {setup and initializations}
BeginProgram
IF MultipleParts?
IF AllToolsOnePart?
MPallTools1P
ELSE {implied OneToolAllParts?}
MP1ToollAllPs
END
ELSE
NoMPs
END
EndProgram
END
Wyszukiwarka
Podobne podstrony:
Mit Meldas 320M [SAV] MY34 89 1Mit Meldas 50M [DC] MU33 89 2Mit M3 Dynamyte 4500 M998 89 2Mit 520AM Comet [RM] MZ18 89Mit 530H Takumi [EM] MT55 89Mit Meldas 50M LW M134 89 2Mit 520A Comet [IPS] MU09 89Mit 330M Comet [SRW] M620 89Mit Meldas 300 [PE] M548 89 1Mit 520A AS [RH] MT34 89Mit 500M Comet [DM] MU46 89Mit Meldas 330M MV70C MY46 89 1więcej podobnych podstron