A good pause function

I have limited time during the day to run my long jobs… what would be really nice is a real pause feature: one that turns off the spindle. I have no problem leaving the machine powered up.

to be clear: the current pause feature is ok, but a pause and resume feature that has the machine go to home position and turn off the spindle would be extremely useful, since I hate leaving the machine unattended. Once I hit the resume button, the machine needs to go back to where it was and continue the job.

I had a 12+ hour run stop at 98% because the tool broke (it got dull). so I replaced the tool, then had to let the machine cut air for 11 hours!!! That sucked lol

Could you please consider this?

One thing you might consider is saving your roughing, parallel, waterline, and pencil tool paths in separate files as well as a file for all passes. If a tool breaks during the pencil clean up, I can replace the tool, and then just load the file containing the pencil cleanup paths without going through everything again.

1 Like

I agree 100% that some sort of “pause and save” function would be really great. I hope they implement it someday - but for what it’s worth people have been asking for that since the beginning, and I sense it’s not too high on the list of priorities. This is pure speculation on my part, though!

It might be worth your time to learn to do this manually by editing the g-code. It’s annoying, but in a case like the 11 hours of air-cutting you describe, it’s probably worth it. I have a VERY primitive understanding of g-code, so I’m sure there’s easier ways to do this, but in your case what you might have done is:

  1. open the g-code file in a simulator - CAMotics is the one I use but I’m sure there are better - and scrub through the visual simulation of the cutting program until you find where it stopped
  2. note the line number, which CAMotics shows you
  3. open the g-code file in a text editor - I use Text Wrangler - and locate that line number
  4. go backwards from there until you find the previous time the spindle is being moved to your z-clearance height. It will look like this: G0Z12.000 with 12.000 being replaced by whatever z-clearance you set.
  5. select the line right before that one, and then select all the way back to the start of the document, stopping before you get to this bit:
M6 T112
M3 S9000

Note that your M3 S9000 line will likely have a different spindle speed. Also your header might look different, since I’m using a Nomad. Perhaps a Shapeoko user will post what the correct header looks like.

  1. Now delete everything you selected.
  2. Save as a new document and, very important, run it through your simulator again to make sure it seems correct.
  3. You should be able to now run this g-code and not have to sit for 11 hours while your machine cuts air.

I do this all the time on my Nomad, and it works perfectly. I’m pretty sure it should work for a Shapeoko, but I can’t be 100%. Hopefully someone can verify.

Also, if there’s interest, I can make a quick video walkthrough of how to do this process, plus how to use calipers to achieve the same thing, though it’s a bit harder, but not much.


That’s pretty much it.

I suspect the reason this hasn’t been done is two-fold:

  • it’s hard to do 100% reliably
  • it will be easier to do once Grbl 1.1 (or some future update?) is in place

I’m given to understand that some 3D printer firmwares will write out to a companion file each line which is successfully sent to the machine — the problem is, resuming a print w/ undone command(s) means that there’s a void in the print, but resuming a cut w/ undone command(s) means that there is unremoved materials which may result in a broken endmill.

The cold (spindle out of material and off) pause for lunch should be easier than the resume after broken endmill since presumably reentering the material vertically at exactly the same X, Y position as the pause will be ok-ish. So I hope they’ll add at least that feature. I could help as a contract programmer if they like. :slight_smile:

The recover after broken endmill is harder because it’d require backing up to the point of failure which the machine nor CM actually know, so it’d have to be interactive somehow and that opens up another can of worms, though I can imagine imagine implementing a rewind feature that backs up one gcode command at a time and moves in x/y only, gives up if there is any non g1/g0, and instructs the user to over rewind to cut some air before continuing. And warns the user not to use this rewind feature if the work piece moved.

So I’m guessing we won’t see the rewind anytime soon.