Jump to content
Ultimaker Community of 3D Printing Experts
Sign in to follow this  

Rescueing a half printed model with Cura ??

Recommended Posts

Rescueing a half printed model with Cura ??

I used the latest version of Cura, sliced my model and copied onto sd card.

Then I cleaned, oiled and prepaired my home printer.

The printer printed the 26 hour print project for 18 hours without problem.

Then when I came home yesterday, I found the model 70 percent printed with

beautiful quality and then the print head continues to move but about 2 inches

above the object.

I put my finger on the heating block and it nicely burnt my finger..

so that worked :smile: then i tried pushing a little filament with the hand...


so i had to turn off my ultimaker and park the print head away from the model to have a better look.

Every thing seemed fine but when i opened up the print head, I found a pieces of semi melted PLA stuck in the centre of the little white Teflon insulator and that was game overe... dont ask me why that happened there.. never happened before.

Anyway... what I want to ask is. is there any way possible for me to leave the 70 perfect printed model on the table where it is... then some how, slice my gcode at the level where it was disrupted and then continue the print.

If there is no clean clean option to do this...

I was thinking, I can take my complete model in cinema4d, use a bolean command to cut my model exactly where it finished, then bring in my new cut model into cura and try and hope to position it on the ultimaker cura table as best as possible and hope... and pray... that when the print head starts moving that it lands in the right position...

I do know I can take the printed part off the table, then print the second half with the method i mentioned above, but then I have to glue things and thats just... silly....

there should be a rescure option in cura, to allow a user to open an existing gcode. then place a cut level, then that cut level will slice the gcode nicely where that split line appears and then generate a new gcode for the user.

Then the user just has to bring down the existing model on the print table, let the printer heat and start up.

click the top level switch with your finger and then level the print table under the print head. printing slow enough, it would be possible to lay down a fresh clean new layer on the existing model and then continue until the model is finished.

This would be amazing help and would mean that big models and lots of PLA wont get wasted, plus. it will increase the effenciency of an ultimaker greatly.

I am really interested in the feedback.

Best wishes.

Ian :smile:




Share this post

Link to post
Share on other sites

You can definitely do it. Joris has posted some recommendations recently - I think over on google groups. You should definitely try even if you fail as you will eventually succeed.

The quick explanation is you just cut out most of the gcode and rerun it. The trick is knowing which part to cut out, and also moving the z to the right spot and so on.

I think Joris is one of those who grabs the z coupler and clicks it a few times to adjust the z axis while printing. So if you go a little high you can fix it quickly. But if you go too low you will have trouble.

Personally I would home the z, then move the Z up and up until it is the right height. I would turn off steppers and check the height carefully and then when I think I know the right height within .2mm I would know where to edit the gcode. I would add a gcode to move the bed lower than when you stopped so that when it moves to the start of the print it doesn't bump your print.


Share this post

Link to post
Share on other sites

another option, which i've done before, is to first remove the partial print from the bed.. sounds counter intuitive, i know. then measure the thickness of it with some calipers and figure out the height, and use the 'sink into bed' feature in Cura and drip it down that far. slice the model and give the print a go. the print should start off at about where you left off and finish cleanly. once it finishes, use some gorilla glue or something similar to glue the two parts together and clamp it down if you can.

one thing you can do here, if you'd like to make sure it's as close of a match as possible, is after it's printed about 5 layers or so, stop the print and remove it from the bed (be sure to let it cool as to not warp it). line it up and see if you've chosen the right height to start the print at, it should line up closely with your earlier print. if it's too small, decrease the stat layer height, if it's too big, increase it. by stopping it early, you won't waste much extra material by printing it all if you don't match it up just right.

by doing it this way (by not printing directly on the previous print), you can have more control over what comes out and have less of a chance at messing up your previous print, with the compromise of using glue. also, if the previous print stopped in a weird spot on the last layer, it would give you a chance to sand it all down smooth to make clean contact.

i guess another method could be to figure out the height that it printed so far, divide it out by the thickness of the layers, and go into the gcode and remove the entire first section (after the start code) up to that layer. you might need to add some code yourself to be sure you don't run the head into your model, but it should be able to continue roughly where it left off, assuming your measurements are correct. with this method, you'd be dealing with the same kind of mess up chances as gr5's method.

since in that print, you have those two circles in the middle of it, you might be able to locate where they are, model up or import something small and try to line it up there, and start printing there. it might help you to line up the print head to the right height without immediately starting on the edge, where it would be visible. you'd know after a layer or two if you guessed the height correctly, and then either peel off or sand off that one or two layers before actually continuing the print. oh, and remember that if it's still on the bed, you can use the +Z/-Z movements to move the head close to or touching the most recent layer to try to guess the height without calipers.

good luck, be sure to post back as to what worked and how well it turned out!


Share this post

Link to post
Share on other sites

what i did was, i noted the scale factor that i had used in creating my gcode.

then i brought in my original model into cinema4d, Bolean cut back exactly where I though the last line was.

Then knowing that cura would pop my model into the middle of the print surface, i made my original model hald transparent in cinema, then picked 2 small polygons on the very top and bottom of my new cut model, pulled them to the exact heigh and bottom level of my old head, then exported the new heat with location node points into STL and new gcoded it.

Then lowered the print table low enough, starting printing and clicked the stop switch with my finger, then leveled the bed and watched the ultimaker continue the print...

it will be amazing when this rescusue option is given in Cura...

Ian :-)


Share this post

Link to post
Share on other sites

Ok, I'm having the same problem, my print failed after 34 freaking hours!!

I got up a 5am this morning, and the printer was "air-printing" or more like not printing at al, il was clogged, and the bowden tube had popped on BOTH side, eventhough I used the clamp upgrade and the extruder side. I don't know if it's the bowden tube that popped-out first and the caused the clog or the other way around. The funny thing is that is failed maybe 5 minutes before I got up, the head not even 1mm above the print.

I had a clamp for the hot end too but never mounted it. now I did, maybe a bit late. Anyway. if it had been a 4 hours print, I would have said "screw it and start over" but here, it has been printing for a day and a half and it looks really good, it only need a couple more hours to finish, I don't want to start over. Sure I could print the missing part separately and glue them together (I will do that in the worst case scenario), but I manage to scratch off the couple messed up layers, it looks very clean now, I could print over that.

I'm not sure I understand what Ian did. I get the boolean part but then I'm confused.

I'd be more interested by a strictly gcode approach. Here is what I want to do: load the sliced model in cura to find the exact layer where it failed (I'm printing a detailed character, so I could easily find it, it's not like finding a layer in the middle of a cube).

Then I would edit the existing gcode and delete all the layers before that one. Finally, in the initialization, after the homing command, but before the start of the print, insert a command to lower the bed to the right level (number of layer*layer thickness)

I don't know shit about editing gcode, it's my first time, I don't even know if that feasible. It's probably not as simple as it sound. I would only have one shot, so please help me! I don't want to mess it up!

EDIT: By the way, this is for a HUGE project, I'm printing one of my own characters, fully standing. I cut the body in several part and will assemble them after, the whole thing should stand about 40cm tall. The part I was trying to print is the torso, which will be about 15 cm

EDIT2: Here is a photo of the print, as you see, it's pretty clean for a failed print, I generally have spaghetti of PLA stuck everywhere. And yes, there is enought room to home the print head



Share this post

Link to post
Share on other sites


In your GCode

You need to make sure your


  • [*]Nozzle is heated up and primed M109 S<Temperature>

[*]Fan on M106

[*]Nozzle Homed G28


If you are using Cura the Start Code will have comments and you should be able to make sense of what to leave at the start or show us your start code back here and the first line you want to print

Next to Insert after the start code is GCode to move the platform straight down so that the Nozzle doesn't knock into your model.

G1 Z99 F250 ;If the height of your first required layer is 99mm, F250 sets a steady speed

Next you need to Zero your extruder to that of the first required line

G92 E1234.5 ; example number though I think Cura may zero it out at each line anyway

From here you carry on with your code

I think I have that right.

Like I said if you unsure said your start GCode here and the first few lines of your desired starting layer

G0 or G1 = Move

Followed by combinations of Z, X, Y and E for what to move and F for speed of the movement.

If any Letter isn't there it remains as it was.


Share this post

Link to post
Share on other sites

Xeno, yes I had found your post on the same subject, and will do that ultimately if the other way does not work (I will imediatly shut down the printer if it goes wrong, it should not damage it too much)

Owen, thank you, that's exactly what I wanted to do. Yes I used Cura, the beta version, I had to, because version 14.04 could not slice such a big model, it ran out of memory. I understand everything you say except zeroing the extruder, which number correspond to what?

I will definitely post here tonight. I'm at work now and I did not think to bring my gcode with me. I think I do have the model here and I could slice it again, but I'd prefer to use the same gcode as the original to be sure it's a perfect match (I might have moved or turned the model before slicing). I'll keep you updated.

Also, on a side note, since we are in cura's subforum, I'm sure Daid already knows that, but I notice the longer the print, the less accurate the estimation of duration was. For a small test object, it matches to the minute, but when I print something that takes half an hours, I begin hiving a couple extra minutes. For bigger stuff that take approximatly 7 hours, cura is generally about half an hour off (it predicts something around 6.5 hours). And for this one, cura predicted 31 hours, which should have ended last night around 2am, but when it failed, it had been running for over 34 hours and as you can see, not quiet there yet, probably at least 2 more hours. I'm printing at 100% speed. Maybe it's because I have a lot of supports, combined with retraction


Share this post

Link to post
Share on other sites

Yep, definitely use your existing GCode

It looks like Cura doesn't zero out the E value at each line so here is how you zero out E (Extrusion distance)

Example from my GCode


G1 F2400 E467.40886

G0 F9000 X119.80 Y102.90 Z5.94


G1 F2400 E471.90886

G1 F2100 X119.80 Y102.99 E471.90955

The Z height is 5.94 so after you home you will want to move to this height without X or Y movement

G1 Z5.94 F2400

; Go slower by adjusting F down if you want to Prime/Wipe nozzle during this move

G92 E471.90886

; Make the UM think it's E value is currently already up to this amount so it doesn't extrude or retract at the start

from here go with the lines from Layer 47 on.

;LAYER:47 Just a comment (leave or remove it)

G1 F2400 E467.40886 A retraction from previous layer (remove this line)

Keep all lines from here till end

G0 F9000 X119.80 Y102.90 Z5.94 Moves to the first spot (No extrusion and Z is already there)


G1 F2400 E471.90886 E is already here so it shouldn't extrude here

G1 F2100 X119.80 Y102.99 E471.90955 This will be the first printing move


Share this post

Link to post
Share on other sites

Awesome! thank you so much! So I don't even have to calculate the Z value, it's already in the layer. I thought that since the layer height was constant, it would automatically increase by the layer height for every new layer, I did not think it would require an absolute value every time. Anyway, that's cool, that was the one thing I was worried to get wrong. I'll give it a shot tonight and I'll keep you updated, can't wait to try. If it works, I will owe you much

EDIT: man, threads like that should be pinned somewhere, I'ms ure it can be very useful to many people.


Share this post

Link to post
Share on other sites

Cura just adds up all the lengths of every move and figures out how long that segment will take based on the speed.

What cura doesn't account for is that Marlin doesn't print at a constant speed - it slows down on every vertex. It's similar to my gps assuming I take residential corners at the same high speed as when I am driving straight.

Cura doesn't set the acceleration so it doesn't know the acceleration so it can't do the more complicated math (plus it's lots more code to write).

So Cura's estimate is just an estimate. But it's a very useful estimate (better than no estimate at all).


Share this post

Link to post
Share on other sites

OK, Let's see if I understood... The only thing I miss is turning the fan on. Should I turn it on immediately or should I wait for the first layer to complete, this way it might merge better with the existing part?

I'm not going to try it tonight anyway, so take your time. My printer has been running for almost two days non-stop, I want to spend a quiet evening.


;Generated with Cura_SteamEngine 1.0
M109 T0 S210.000000
;Sliced at: Sat 08 Jun 2013 09:12:05
;Basic settings: Layer height: 0.1 Walls: 0.8 Fill: 20
;Print time: #P_TIME#
;Filament used: #F_AMNT#m #F_WGHT#g
;Filament cost: #F_COST#
G21 ;metric values
G90 ;absolute positioning
M107 ;start with the fan off
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
;G1 Z15.0 F9000 ;move the platform down 15mm COMMENTED THIS LINE FROM ORIGINAL HEADER
G92 E0 ;zero the extruded length
G1 F200 E3 ;extrude 3mm of feed stock ; I KEPT THIS BECAUSE I LIKE IT
;G92 E0 ;zero the extruded length again COMMENTED THIS LINE
M117 Printing...
G0 F9000 X130.51 Y69.41 Z96.10
G1 F3000 X130.67 Y68.83 E30189.53692
G1 X130.51 Y69.41 E30189.54068
G1 X134.75 Y70.65 E30189.56841
G1 X136.84 Y71.34 E30189.58220
G1 X137.39 Y71.56 E30189.58595
G1 X137.67 Y71.76 E30189.58808
G1 X137.90 Y71.93 E30189.58984

Edit: thank you for the explanation GR5, it makes sense, I'll be more cautious before starting a long print in the future


Share this post

Link to post
Share on other sites

Looks good. The fan is only off on the first layer to get good adhesion. That shouldn't be a problem when sticking pla to pla. Although since you have a very large part that you are printing, you don't really need the fan until you get to the last few layers.

I suggest adding a pause command:


G0 F9000 X130.51 Y69.41 Z96.10
M0 ; Consider putting a pause here - this will stop the printer and continue with a
; manual intervention from the user
; the advantage of having a pause is that you can check if it looks like it will start at the right spot.


Share this post

Link to post
Share on other sites

Morning guys.

Daid can I ask ? is it possible to get this as an option in a later version of Cura, where I can tell Cura, make new Gcode from level 200 to top ?

I have never played with gcode editing.... and.... im scared....... :-(

Best wishes.

Ian :-)

ps. would be a super option because then all these half models we print sometimes with clogging etc.... could be rescued easily.... a big happy bonus for ultimaker users :-)


Share this post

Link to post
Share on other sites

im not sure better, i was able to do a new cut 3d model, gcode it up, then start printing with the same model position, and simply continue the large print, no markings on the stop point and no need for.... oh shit i have to go shopping for glew.....

do you not think it sounds better, to offer a rescure print option in ultimaker software instead of just saying.... go down to your local supply store, buy some sandpaper to clean the top of your model, then buy some super glue, costs about 6 euros in germany... crazy, then go back, and try your luck in glewing the parts together.... it sounds a little like FIAT.... fix it again tomorrow ;-) LOL

Ian :-)


Share this post

Link to post
Share on other sites

Hi guy, thanks for all the help.

Thank you GR, I like the pause idea, that's precisely what I was thinking of last night: I'm not 100% sure I got the right layer to start from, all layers between 955 and 960 seem they could fit, but only one has the correct height. it it's too high, it's ok, it will print above the model, I'd just stop it. However, if it's too low, the burning hot nozzle would do some damage to the the model.

At first I thought maybe I can just make a few gcode files, that only contain the init code with a low temperature, where the printer level itself to the target height and then stop. I could make one for each of those layers and see which one matches the best.

But then I realize, why not just use the ulticontroler to to home the printer and then position it to the perfect height, read the Z value and find the matching layer? What do you think, is the ulticontroler accurate enough? I could not try last night because was not home, I need a break from the printer.


Share this post

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
Sign in to follow this  

  • Our picks

    • Ultimaker Cura | a new interface
      We're not only trying to always make Ultimaker Cura better with the usual new features and improvements we build, but we're also trying to make it more pleasant to operate. The interface was the focus for the upcoming release, from which we would already like to present you the first glance. 
        • Like
      • 19 replies
    • "Back To The Future" using Generative Design & Investment Casting
      Designing for light-weight parts is becoming more important, and I’m a firm believer in the need to produce lighter weight, less over-engineered parts for the future. This is for sustainability reasons because we need to be using less raw materials and, in things like transportation, it impacts the energy usage of the product during it’s service life.
        • Like
      • 12 replies

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!