Jump to content

2 ways to resume print from last layer


tonycstech

Recommended Posts

Posted (edited) · 2 ways to resume print from last layer

Due to new filament extruder, my filament is far from perfect and gets jammed in the nozzle from time to time preventing me to complete my print 100%.

So, to avoid having to reprint the model from a scratch and replacing the tape and wait time to heat the bed and cry over wasted filament i decided to just resume the print from its last layer.

CURA and CRAFTWARE making it really eazy so why not post a tutorial.

NOTES:

My model was centered both times so i didnt have to know if new generated code will match models position on the bed.

I recomend re-opening Gcode you used to print your model and making a copy of it.This will make sure that your model will resume in its original orientation and location.

:cool: Yes you can turn off your printer and come back doing it tomorrow. :cool:

METHOD #1

#1 Look at your model and find easiest spot from which to count layers.

#2 Count layers from the eazy spot (as described in step #1) using a toothpick or a needle for accuracy.

#3 Open Gcode used to print this model (if you 100% sure orientation and location are the same, you can generate new one, just make sure all parameters are the same)

#4 Go into layer preview mode and find your easy to spot layer (as described in step #1)

#5 Add what ever number of layers you counted (as in step #2) to currently viewing layer.

#6 Due to the nature of CURA starting layers from 0 (Brim and Raft have negative values and need to be concidered as well when editing Gcode) drop 1 number. For example: Your print failed at layer 44. Drop 1 number and your target layer is 43

#7 Open Gcode in text editor (or what ever) and search for ;LAYER:X (X is the layer number you determined)

#8 Delete everything before this layer leaving parameter values such as temperature/home for XYZ etc all the way down to M117 Printing...

Your code should now look something like this:

 

M109 T0 S240.000000
T0
M80
G28 X0 Y0  ;move X/Y to min endstops
G28 Z0     ;move Z to min endstops
G1 Z15.0 F13200 ;move the platform down 15mm
G92 E0                  ;zero the extruded length
G1 F200 E3              ;extrude 3mm of feed stock
G92 E0                  ;zero the extruded length again
G1 F13200
;Put printing message on LCD screen
M117 Printing...
;LAYER:43
G0 F13200 X92.25 Y136.17 Z13.20
;TYPE:WALL-INNER
G1 F2700 X91.17 Y136.16 E4987.93047
G1 X84.75 Y136.16 E4988.28186
G1 X84.75 Y134.41 E4988.37760
G1 X101.42 Y134.51 E4989.29061
G1 X123.58 Y134.51 E4990.50320
G1 X140.25 Y134.41 E4991.41615

#9 Make sure that line with (below)

 

G1 Z15.0 F13200 ;move the platform down 15mm

has Z value higher then Z value for the layer you resuming from (below)

 

;LAYER:43
G0 F13200 X92.25 Y136.17 Z13.20

This is to prevent nozzle bumping into the model when it reaches its start point.

#10 Save the Gcode and print using newlyu saved/modified Gcode.

METHOD #2

#1 Move nozzle away from the model allowing it to touch the build platform.

#2 Home your Z axis.

#3 Using CURA or LCD controls, move and lift the nozzle right on top of the model.

Write down the distance you had to lift the nozzle. (for example 43.5mm)

#4 Open Gcode used to print the model and search for (Z43) do not specify the 5 because it may be 3,4 or 6 or 7 depending on your print layer height.

Found result shoud look like this

 

;LAYER:43
G0 F13200 X92.25 Y136.17 Z43.6

#5 If you print at 0.1mm layer height, then you need to match exact height, if not, then you need to pick the closest one. I print at 0.3mm so closes to my estimated 43.5 height is 43.6 and previous layer would be 43.3 (obviously -0.3)

#6 You want to find the lilne where next layer start. This is becayse you dont want to start printing from this layer but from the next. So scroll down untill you find ;Layer:44 (in this example its 44)

#7 Delete all layers before layer 44 leaving general print parameters (see example below)

 

M109 T0 S240.000000
T0
M80
G28 X0 Y0  ;move X/Y to min endstops
G28 Z0     ;move Z to min endstops
G1 Z15.0 F13200 ;move the platform down 15mm
G92 E0                  ;zero the extruded length
G1 F200 E3              ;extrude 3mm of feed stock
G92 E0                  ;zero the extruded length again
G1 F13200
;Put printing message on LCD screen
M117 Printing...

#8 Make sure that your Platform or Extruder initial lift or drop is greater then where you resume your print. In this example, print resumes at 43.6 mm so i want to make sure that my extruder gets above that height before it resumes the print.

I do this by editing this line and changing Z15.0 to Z45. Nearly 2mm's higher

 

G1 Z15.0 F13200 ;move the platform down 15mm

#9 Save your file, reupload to SD card or print from CURA, how ever you want.

#10 Watch your print. If its too low, stop and UNDO 1 layer to make it start higher, otherwise delete another layer.

 

 

2nd method for some reasons i thought that height was at 8.6 when in reality just a second ago i measured 8.4. Thats why i start the print at 8.7 would be perfect start from next layer.

Edited by tonycstech
  • Like 3
Link to post
Share on other sites

Posted · 2 ways to resume print from last layer

Excellent writeup!

One problem with this:

 


;Put printing message on LCD screen
M117 Printing...
;LAYER:43
G0 F13200 X92.25 Y136.17 Z13.20
;TYPE:WALL-INNER
G1 F2700 X91.17 Y136.16 E4987.93047

The red part above will have the extruder try to rotate 4.9 Meters of filament! So you should add a

G92 E4987.93047

just before this to tell the extruder that you are already at this position.

I like your method #1. I have only tried method #2. I never tried counting layers from a known layer! smart!

 

Yes you can turn off your printer and come back doing it tomorrow

 

Well on the Ultimaker2 if your bed is not at room temperature then you must leave the printer on and keep the bed at the same temperature. But yes, I've done this. Gone to bed and continued the print the next day. So if your bed is at 60C you MUST KEEP THE BED AT 60C UNTIL THE PRINT IS DONE. If not it will very likely pop off the bed when it gets cold.

Here's my version of the same thing:

read all gr5 posts here:

http://umforum.ultimaker.com/index.php?/topic/4213-ideas-for-recovering-failed-prints/?p=34788

post #9 here has specific code change example for um2 (ultigcode):

http://umforum.ultimaker.com/index.php?/topic/5269-um²-printing-more-than-24-hours-non-stop/?p=46704

 

 

  • Link to post
    Share on other sites

    Posted · 2 ways to resume print from last layer

     

    
    

    The red part above will have the extruder try to rotate 4.9 Meters of filament! So you should add a

    G92 E4987.93047

    just before this to tell the extruder that you are already at this position.

     

    Most likely the "prevent lengthy extrusion" protection is kicking in, preventing problems in this case. But I wouldn't relay on that and it would be better to add the G92

     

  • Link to post
    Share on other sites

    Posted · 2 ways to resume print from last layer

    I update my program to allow users to select starting and ending layers (as range) to be removed from the code and saved as new file (preserving original code unchanged in case of need make changes)

    It also has height search function to find what layer has given height.

    Newest version is here

    http://umforum.ultimaker.com/index.php?/topic/4185-tweak-at-layer-number-windows-application/

    Hope you guys find it usefull.

     

  • Link to post
    Share on other sites

    • 1 month later...
    Posted · 2 ways to resume print from last layer

    I'd also suggest slowing the printer down when it resumes, to make it more likely that the first new layer will adhere to the existing part. After the first few layers are down, it should be okay to turn the speed back up.

    And is there any way to compensate if the new layers are shifted out of position when the print resumes? I was having a nice and successful 40 hour print:

    DSC00599 crop

    ...up until this thing (I think it's a piece of fur from the cat) managed to make it all the way to the nozzle and then decide that it wasn't going to go any further:

    DSC00606 crop

     

    I managed to track down the right layer to resume from and edit the Gcode, but the new layers are all shifted back a few mm from where they should be:

    DSC00603 crop

    Is there some way to correct that sort of thing when editing the Gcode?

     

  • Link to post
    Share on other sites

    Posted · 2 ways to resume print from last layer

    Slowing down print ? I print large objects with cooling fan on. By the time 1/4 of the layer is printed, rest is already cold.

    Dont think it matters.

    Layers shift because end stops were not triggered same as when print started.

    I had it happen to me few times.

    I forced the bed/extruder to move to where i need. I was off by very little.

    Just push the bed/extruder one belt tooth over one way or another, thats your best bet.

    Otherwise you need to tweak your endstops.

    If you were printing angels, print would not get ruined. Try printing something less satanic :mrgreen:

     

  • Link to post
    Share on other sites

    Posted · 2 ways to resume print from last layer

    I've already got success in restarting a printing job using method #2, however, I was just wondering why Cura does not log in a file the layers that were successfully completed. It would make our lives much easier when restarting a jog. Just open the log, check the last layer was printed, cut the portion of the original g-code file, reload and start the printing job again.

    What no log is created by Cura while printing? (or if it's created... where it is?)

     

  • Link to post
    Share on other sites

    Posted · 2 ways to resume print from last layer

    It doesnt know the layer was "properly" printed. The human eye tell that its good or not but not the machine. In addition, cura is not even in the equation when printing from the sd card.

    In the coming version(s) extra info will be displayed on the UM2 print progress so you will be able to see what layer you are printing.

  • Link to post
    Share on other sites

    Posted · 2 ways to resume print from last layer

    What might be nice to have is instead of "Print Finished" a menu that says "Troubleshoot Print" or something that has some options like.. resume from layer, move to layer, set extent (set extent being setting the position of the head by finding the furthers point in one of two directions and using the wheel to position X and Y over that point, to avoid layer shifts when starting over)

    It's great we'll be able to see the layer as it prints, but for me and other posts I've seen these problem occur when we walk away on very long running prints.

  • Link to post
    Share on other sites

    Posted · 2 ways to resume print from last layer

    Thanks, all my printing isues with warping were solved, and then the f... filaments tangles on the wheel. This thread solved the problem. Great job.

  • Link to post
    Share on other sites

    Posted · 2 ways to resume print from last layer

    If you were printing angels, print would not get ruined. Try printing something less satanic :mrgreen:

    A human skull is satan? You must be Catholic :D

  • Link to post
    Share on other sites

    Posted · 2 ways to resume print from last layer

    Yes! :-)

    Trying to resume a print in such a way just saved me hours.

    Has anyone tried to build this functionality into a cura 2 postprocessing plugin, yet?

  • Link to post
    Share on other sites

    Posted (edited) · 2 ways to resume print from last layer

    Has anyone done this with Cura 2?  I have a large print which ran out of filament overnight.  I've worked out I want to restart on layer 510.  Here's the start of the original file

     

    ;FLAVOR:UltiGCode;TIME:300436;MATERIAL:909681;MATERIAL2:0;NOZZLE_DIAMETER:0.6;Generated with Cura_SteamEngine 2.1.3;LAYER_COUNT:999;LAYER:0M107G10G0 F9000.000000 X5.962 Y40.132 Z0.400G0 X6.110 Y40.115;TYPE:SKIRTG11G1 F1800.000 X6.515 Y40.087 E0.09256G1 X6.550 Y40.085 E0.10055G1 X7.189 Y40.077 E0.24626

     

    I tried editing that like so ( changing the starting Z to be 20 mm above the print ) but it looked as though it was about to crash before I switched off the power!

     

    ;FLAVOR:UltiGCode;TIME:300436;MATERIAL:909681;MATERIAL2:0;NOZZLE_DIAMETER:0.6;Generated with Cura_SteamEngine 2.1.3;LAYER_COUNT:999;LAYER:0G0 F9000.000000 X5.962 Y40.132 Z132.600G11 ;unretractM107 ;fan off ( switch it on at layer 511 )G92 E3167.82512  ;very important step - this is the last extruder position on layer 509;from here nothing is changed;LAYER:510G10G0 X202.930 Y114.190 Z112.600G0 X202.439 Y114.120G0 X202.414 Y114.090

     

    Any suggestions?

    Edited by Guest
  • Link to post
    Share on other sites

    Posted · 2 ways to resume print from last layer

    I have a problem that I believe is caused by my Z offset. I have it set very high to compensate for an auto bed leveling sensor. (2.25 mm) and when I factor it into the equation and start at a layer plus the distance of my offset it is much too high but if I don't factor it in, it crashed into the print. I used a layer height of .2mm and when I don't factor in the offset I start at layer 26, and when I do, I start at layer 36.

  • Link to post
    Share on other sites

    Posted · 2 ways to resume print from last layer

    Hello, what software did you use to save the modified gcode?

  • Link to post
    Share on other sites

    Posted · 2 ways to resume print from last layer

    Anyone know how to restart a print when you have automatic bed leveling?

  • Link to post
    Share on other sites

    Posted · 2 ways to resume print from last layer

    Or, instead of all this, you could buy a printer from Raise3D, which has the restart function built-in to their SW, and has a filament sensor on the way.

  • Link to post
    Share on other sites

    Posted · 2 ways to resume print from last layer
    On 1/28/2018 at 9:27 AM, eldrick said:

    Or, instead of all this, you could buy a printer from Raise3D, which has the restart function built-in to their SW, and has a filament sensor on the way.

    Yep.
    If you cant figure out why your car wont start in the morning, all you have to do is to go buy a new one.

    Hopefully it will have enough gas in it for another week, caz you might need to buy another one next week ;)

  • Link to post
    Share on other sites

    Posted · 2 ways to resume print from last layer
    On 1/16/2015 at 5:14 PM, renato-elias said:

    I've already got success in restarting a printing job using method #2, however, I was just wondering why Cura does not log in a file the layers that were successfully completed. It would make our lives much easier when restarting a jog. Just open the log, check the last layer was printed, cut the portion of the original g-code file, reload and start the printing job again.

    What no log is created by Cura while printing? (or if it's created... where it is?)

     

    That would be amazing.

    If it does that or not i dont care because i ALWAYS print from SD card.

    Doubt that printer would write any log in the SD card.

  • Link to post
    Share on other sites

    Posted · 2 ways to resume print from last layer

    Thankyou that was great, I tried the first way and it worked. my situation was unique but i adapted it and it worked great. so I have an ender 3 pro and I forgot ironing was enabled and the print finished but the top layer looked terrible. so I tried your fix but just reprinted the last two top layers of the print and deleted the last layer of code which I assumed was the Ironing part. it kept wanting to print in air bc of bl touch so at 

     

    ;LAYER:81
    ;TYPE:WALL-INNER
    ;MESH:sax hoarder screw base.stl
    G1 F1500 E96.16446
    G1 X48.555 Y162.807 Z0.3 E96.19235

     

    I added the Z0.3 to the fist line of coordinates  (made it bold to show the change) and now it treated the top of my print as layer 81. Im sure there are better ways  but this was my first attempt at gcode and dont have any programming or computer background. and it worked. 

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • UltiMaker Cura 5.7 stable released
        Cura 5.7 is here and it brings a handy new workflow improvement when using Thingiverse and Cura together, as well as additional capabilities for Method series printers, and a powerful way of sharing print settings using new printer-agnostic project files! Read on to find out about all of these improvements and more. 
         
          • Like
        • 18 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
         
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
          • Like
        • 0 replies
    ×
    ×
    • Create New...