Kinda late perhaps, but i'll post this anyway, like to keep fresh mind myself =D. Dunno how old/new your machine is, so this might, or might not work.
Might be some serious typos here and there, or other problems aswell, wrote this after 14hour shift, bit tired.
For your 3 programs problem i'd like to suggest something similar that gildemeister type machines has (Program condition) . Something that can be easily done with some basic variables. Though i dont know if
your machine has this option avail, most have though. Think we have 2 older lathes that doesnt support macros at all, but anyway ->
You have your default "main" program which calls the 3phase program you'd like to use. Theres plenty of ways to do this, i'll just try to keep this simple and basic.
O1000 (Main) ;
(P = Program used)
(A = Which phase to start out with)
(A0 = nopart / beginning)
G65 P5000 A#501
And you could use this as the default program tree where you copy+paste your 3 different programs. just renumber it for different parts 5001, 1001 whatever.
O5000 (Part name);
IF [#1 EQ 0] GOTO1
IF [#501 EQ 0] GOTO5
IF [#501 GT 0] GOTO9
(INSERT NEW PART)
IF [#501 EQ 1] GOTO10
IF [#501 EQ 2] GOTO20
IF [#501 EQ 3] GOTO30
GOTO1001 (ERROR 1)
Insert program 1 here
Insert program 2 here
Insert program 3 here
N1001 #3000=(Variable 1 must be 0-3)
Im not sure if variable #501 is option or not, but i have used it on different fanuc mills/lathes/mx's and it has worked sofar, it should be a variable that saves over reset/machine turnoff so your current
phase doesnt clear from those actions. There are other ways to do this, and different ways to write macros but havent used too many macros yet, this should do the job though. You could add some variables to
do only certain phase, or start from phase 2 example if you have old half finished piece etc, the story is endless, just tried to make this simple.
Too tired to think of that G50(Is max rpm limiter on our machines), id use G10 to enter the right value on workshift.
On that program number from edgecam, should be doable, have to check from work though, cant postprocess anything from home yet.