I’m running a huge job (flattening an MDF spoilboard) and the carbide cutters on my surfacing bit have gotten dull. (It’s a long story. Didn’t intend to cut as deep as I am. But that’s not the point…)
Is there any way to pause a job in FluidNC so that I can lift the Z axis long enough to change the cutters and then resume? I see that I can pause, but none of the commands I enter on the terminal do anything.
I don’t run FluidNC, and I don’t see any g-codes in the FluidNC reference to help you. But, if this was my problem, I would:
Note the percentage the job is completed
Note the XY coordinate
Stop the job
Change the cutters
Reset the Z height
Edit the g-code file to cut out the completed work
Run the edited script.
If you have the XY coordinate, it should be easy to find the current line in the g-code file for the horizontal or vertical pass. If you don’t have the XY coordinated, you can cut the file by a percentage minus some padding. You will have to fix or add the first rapid move. If you are concerned about editing the g-code, I’ll be glad to give it a try.
I agree. I’m not aware of a way to pause in the middle of a job and perform an action without cancelling the job. I agree that I would probably tackle it similar to the way @robertbu describes, but that “reset the Z height” step could prove to be tricky. It might be worth just starting over now that you probably have a better idea of where the high point is.
Someday I might have a better answer for this but not anytime soon. When I get around to surfacing my spoilboard (which I haven’t found necessary yet), I plan on trying to write a generic surfacing script using some FluidNC functionality. That will likely have you probe a few places on the spoilboard to give you an indication of where the high point is. I also have intentions of investigating some options to pause/resume likely using line numbers, variables, and some post processing.
If you include line numbers in the gcode, it will include the line number in the status string. However, that’s not entirely accurate but still useful enough to figure out a good place to restart.
When the sender requests a status report by issuing the realtime character ‘?’, FluidNC responds with a report that contains, among other information, the current position and possibly the GCode line number. The position is very accurate because it is derived from pulse counts at the very end of the pipeline. Line numbers are less accurate because they are propagated only as far as the end of the Planner Queue, but do not reflect delays due to the Segment Queue. In general there is no easy way to tell exactly when a given GCode line has fully executed, unless you add synchronizing commands in the GCode stream. Synchronizing commands like dwells wait for all motion to cease before proceeding.
There are pros and cons to Estlcam as well. I don’t want to have a computer tethered to my CNC if I don’t have to.
If you use FluidNC with a gcode sender like UGS, you have more options but I don’t use them, for some of the same reasons why I wouldn’t use Estlcam as a controller. Since that is handling the sending of the gcode lines, it has more control over the process. At least for UGS, you can run from a selected line.