In the spirit of this thread, can I ask if there's a way (log somewhere?) to know which layer last printed before a power failure to my octopi, so that I might edit the gcode to start again at following layer? The xy geometry is very small, but the z is very tall so I'd love to complete this print. Also is it safe to assume whatever didn't complete within the last attempted layer is probably ok to skip at 2mm /layer? And finally do I ignore my z offset when calculating new start z-position? Or do I need to include an allowance?
I know of no easy method since OctoPrint pushes many gcode lines into the printer's receive buffer; you don't know how many were actually printed.
Measure accurately, review the gcode file carefully and look at the layer comments. Look at the gcode at the beginning of a layer and look at the G0 or G1 command which includes a Z value.
When I think I've got the layer that's close, I'll then use the manual jogging commands in the Control tab of OctoPrint (no heat) to move the extruder carefully above this point and in some corner. I'll then jog it closer in the Z direction until I've determined what is likely the exact point where it left off.
Taking this back to the gcode, I'll then chop the file's first part to remove it (leaving some of the initial lines). You'd have to turn off autoleveling and any priming lines and any code which would crash into your part. It may be necessary to home the printer and then add a line which brings the extruder assembly somewhere safely over the middle of the part (within your Gcode Start script).
It's best to try to re-do the entire last layer so that there aren't gaps.
It's all very fussy but you can rescue a part.
Great answer - didnt occur to me but its simple and smart - thanks.
I've been accused of being both simple and smart.