WorkAround? How to Salvage bad prints - Extruder set to Absolute
I have issue with MC hardwired to use Absolute length values for Extruder. Previously I used to use Slic3r and never had issue with how i salvaged bad prints. So, Slic3r/repetier host must have used Relative Extruder values.
Here's how i used to Salvage a bad print. For example today I am printing a large piece (10.75" diameter on my Rostock Max bed) and 4+ hours into the print the tube popped out of the bowden extruder and filament when everywhere - but the piece... Here's what i used to do with Slicer - I would measure the printed height of the piece and then load the Gcode file into an editor (Notepad++) and 'find' the layer (by z height) where the print left off - I would then remove all the code for the already printed layers from the end of the header to the layer where i need to RE-start printing. Then load the edited file in and resume printing from that layer.
It always worked and I've salvaged countless bad prints using that method. (Sometimes the print can stop due to printer malfunction, PC crashing, running out of filament, etc,, etc.)
For some months I've been using MatterControl both as the host software and for slicing. Generally i like it, especially the 13 point bed leveling feature with the Rostock Max, makes it print LEVEL all the way around... out to the edges.
I have had to modify the method for Salvaging bad prints due to the bed leveling feature in MC. I could no longer use the measured height of the piece where it stopped printing and find it in the saved gcode file, because the autho leveling would print to the compensated height. So, what i have been doing in MC is use the Layer View and so far I have been able to find the last printed layer with pinpoint accuracy by combination of looking at the print, and often time finding a where a feature starts or stops at a layer and count the layers since that feature to where it stopped. Anyway, that is a bit of an explanation, but the gist is I have always found the last printed layer, can modify the Gcode and save it and ReStart printing at that layer - And, up until today, even with MC that has worked.
But, today it didn't - the part is large - and i printed it with 50% infill. And, it had printed a considerable number of layers so far. So, when i tried to run the modified file, i noticed the Extruder went into convulsions, vibrating and spewing out as much filament as it could - all at once. But, i didn't know what was going on at first, because up until this file, this has worked for me in the past and i was able to salvage bad prints.
After some frustration, i finally found the issue. The first line of the layer i was trying to restart the print from was this:
G1 F6600 E1971.46079
E1971 - that is what? I would assume that is mm, but, not sure because it would seem by that layer it would have used more than just 2 meters of filament. Anyway, however long it is, the first layers of the file were deleted so i could salvage the print and print from this layer... so now this line is instructing the extruder to immediately extrude a whole bunch of filament all at once before proceeding. As a result the extruder can't run that fast and the stepper goes into convulsion while a whole bunch of filament pours out.
I was using Carbon-Fiber filled PETG (from 3DXTech) which is a little expensive, plus the print was already over 4 hours done, and i wanted to save it Sadly, it looks like it can't be done, and I don't have enough of that filament to print another from scratch. I will have to use plain ole PETG and start a new print.
But, in the future does anyone know of any workaround for what I am trying to do? I mean, I can't be the only one out here who tries to salvage bad prints am I? Like i said, i've done it in the past many times. And, it is something I would like to know how to do with MC in future. (other than writing some hack program that will read my Salvage GCode file in, and subtract the first E value from all the E values, making the salvaged file start with Extruder length of 0 rather then some large number - but i haven't written C utility programs in ages, so that would take me too long to set up a compiler and all)
Well, I just answered my own question... When I tried to run the edited Salvage file and the extruder went into convulsons, i would hit CANCEL immediately. But, when i did, it took some seconds before it canceled. As a One Last time try, i ran the file and this time i didn't hit cancel, after about 15 sec of spewing out filament, the printer jumped to the location and resumed the print. YEAH, I was too fast at hitting cancel before. Anyway, it has resumed the print and looks great so far. So, this print will be salvaged. I guess my method works - just waists a little filament. But, better then have to restart the print all over again.
G92command before the first move to set the E axis to the correct coordinates for starting. Example:
G92 E1971.46079 G1 F6600 E1971.46079
Oh wow, I didn't think about that. I've used that sort offset with XY before, didn't think about it for the extruder. I will try it out next time. Thanks