How to Continue a Stopped 3D Print




About: Born in Pluto, Raised in Mars

3D printers are the staple for quick and cheap prototyping nowadays. I am one of those fortunate enough to own a 3D printer, courtesy of an Instructables contest.

There are still a lot of improvements to be made with 3d printing technology. One such improvement is having non-volatile memory such that a 3d printing job can be resumed after it is accidentally turned off or if the SD card is accidentally removed.

Whether it is caused by a sudden power outage or a rude roommate, we would always have to restart a 3d print from scratch (even if it is 90% finish, sadly) and this is especially annoying for long or difficult prints.

Step 1: Tape Down the 3d Print

Once the build plate has cooled down, the object has little to no adhesion to the build plate anymore. So if you're not fortunate to catch the print shut off while the plate is still warm, we need to ensure the print job doesn't move. Take a generous amount of tape and tape off the brim of your 3d print to the build plate.

Step 2: Measure the Printed Height

To resume our print to where it was, we need to find out where it stopped. There's two ways of knowing this and I'm sure you're only ever going to do it one of the ways.

(1) Measure the height with a measuring tape and find the height in mm.

(2) if you're a masochist, you will count every single layer printed. It is visible to the human eye, just very tedious and long to do. It's not worth it, trust me.

Step 3: Convert Height to Number of Layers

Now, since I trust that none of you actually counted the individual layers, we're just going to employ a neat technique to find the number of layers. Back to junior high math class:

"The printed height is 35mm. The height of each layer is 0.15mm per layer. How many layers are printed?"

(Answer is 233 layers)

You can find the height of each layer in the print setting you have for the gcode. By default the unit is mm per layer.

Step 4: Slicing Your Prints Manually

First, let's verify that the layer height is indeed at 233 layers when it stopped. Open your slicer, mine is Cura and switch to layer view and view everything up to the 233th layer. If it looks the same as what you have physically then it's probably right or around that height. It's hard to tell precisely since you're only getting a resolution to 1mm which is around 7 layers.

Then open the gcode in a text editor. Don't use notepad. I use sublime text since I have it around for coding. You can also use notepad++. Delete the lines in between ;layer:0 and ;layer:233. It's a huge file so it might take a while to traverse. Save the new file with a new file name just in case we overshoot and want some old deleted layers printed.

Then as a final sanity check, open up the new gcode in your slicer and view the free floating print

Step 5: Rinse. Wash. Repeat

If your layer height estimate isn't fully accurate you're gonna see it printing in mid air or colliding with old layers. Immediately abort the print and change the gcode file accordingly (by adding or subtracting layers) until you get just the write amount.

Good luck hitting the Goldilocks zone!



    • Big and Small Contest

      Big and Small Contest
    • Toys Contest

      Toys Contest
    • PCB Contest

      PCB Contest

    4 Discussions


    Question 21 days ago

    How do you deal with the G28 home all command at the start of every job?
    Homing X and Y isnt a problem, but a Z home is going to crash the print head into the old part sitting in the middle of the build plate.

    2 answers

    Answer 20 days ago

    Hmm that's a very good point. I guess when I continued mine it was short enough and far away enough that it didn't collide. Here's an idea, what about adding an extra line of gcode. And here we specify it to be at home or close to home coordinates but just change the z? I'll have to try it out though and update my post.


    Reply 18 days ago

    The default is to home Z in the middle of the build area, but perhaps one can specify an empty area near the corner of the build area as the place to home the Z.
    Where to do that and how, I dont know alas.


    19 days ago

    Nice trick, I've been using it sooooo often :)
    Instead of calculating the number of layers I search for Z7. (for example)
    Beside that I always add two lines of code:
    G1 Z10 (higher than your print, to make sure it does not crash into your print)
    G92 E.... where E is the value that is in the first line of code after deleting the other lines. This is to make sure the printer does not want to run 2 meters of filament through the nozzle in a split second)