It's been prototyped:
Why This Is Hard
This page is set up for collecting information about the wanted behavior for such an option.
I think that simplest and best way to solve that problem is to leave choice to users. It's needs just few lines in machine INI file. If none applied then standard behaviour (all dissabled) should be assumed.
M0_ENABLE = jog, mdi, subs, SpindleCtl?, CollantCtl?, TouchOff? .. .. .. #or if that's hard then use sum of numbers 1=jog 2=mdi 4=subs 8=SpindleCtl? M1_ENABLE = parameters same as M0 M6_ENABLE = ..same as M0/M1 parameters ON_PAUSE_MODE_ENABLE =...same
This shouldn't be hard to realize. Of course if you do something out of program then be careful to not break/crash your tools. Do not complicate here. I think that just remembering position/plane/fixture where was is enougth. so for example.
1. I think :D that tool as dull so I press pause 2. Machine saves position/plane/fixture... modes... 3. I jog out of work and resharpen/change tool (collet using) 4. I made new TouchOf? of Z axis as tool height can be different 5. I pres continue machine restores plane/fixtures (in that examples nothing changed here) - nothing moves yet machine restore initial position as saved in step 2. But using priority of axes (can be same as homing sequence or some else specified in ini) so for mill for example assume that user leave tool high enought (Z) axis to be safe or let machine to move on top position after that XY can move simultaneous to saved position from step 2 after that Z axis goes to the saved position from step 2 and voila - safe restart.
It's been prototyped: http://www.youtube.com/watch?v=2wabcOH9YAA ---
An alternative view by Steve Blackmore
Manual actions during Feed hold should be kept as simple as possible. It should not work during canned cycles or subroutines as the results on restart cannot be easily predicted by the operator. The action is designed to be used to replace a like for like tool or a broken or worn insert or clear swarf during a program run. It is not designed to modify a program or perform other manual machining operations.
The only requirements are to jog, toggle spindle and coolant on/off and touch off current tool. MDI may be useful to allow accurate axis positioning.
EMC need only remember the axis positions it stopped at and on resume should always do a combined move back to that position.
The combined move is important, it is very easy to manually position the tool so it can make a safe move without damaging the work, tool or machine. Moves where a combination of single axis or sequence moves are made add uneccessary complication and are prone to operator error. It is not always easy to visualize where a sequence of moves are going to go, it's very easy to vizualize a straight line!
Fanuc 16i, 18i and 21i behave in the above manner.
In my view, if we specify in the ini file a manual tool change position, then at least it's possible to do a tool change. To go to the tool change position EMC could go out of the project (for 3 axis gantry style at least). Step 1: When TxM6? it then turn spindle off Step 2: Move Z all they way up Step 3: move to tool change Step 4:Do a manual tool change.
Then EMC could go back into the project aswell and continue milling. However, if yo need to touch off the new tool, then there must be some way to do a touch-off/auto Z
How would this work for >3 axis routers?
One other way to jog out we remember the jog coordinates and then we are beable to jog back in following the path back.