Jump to content

Do not retract after print finish


condemil

Recommended Posts

Posted · Do not retract after print finish

I can see that Cura does retract at the end or print on the configured filament "Retraction Distance", in my case 2mm:

 

G1 F1800 X106.169 Y153.687 E584.0065

;TIME_ELAPSED:1079.318716

G1 F1800 E582.0065

 

It affects the next print as the filament is retracted and not sent back after retraction.

I know I can fix it by adding custom printer g-code but it is not gonna work as "Retraction Distance" is not the same for different filaments.

Is there a way to configure or fix that?

  • Link to post
    Share on other sites

    Posted · Do not retract after print finish

    Isn't that one of the reasons that we print a skirt or brim ? Also, even if the retract didn't happen, your nozzle is going to dribble some filament out so it's always going to be a bit empty.

  • Link to post
    Share on other sites

    Posted · Do not retract after print finish

    Brim helps, it just requires several rounds around of object if the object is small. I specified 0 retractions in each filament settings for now and do filament return in final g-code and don't see any downsides after I did that. You are right that dribble is there, but now it is less empty then before.

  • Link to post
    Share on other sites

    Posted · Do not retract after print finish

    I have always printed a skirt or brim around my objects - it is no just retraction you have to manage but also pressure stabilisation within the feed/extrusion system. It is also beneficial to manually extrude filament before starting the print to ensure everything is flowing well; although I am not sure how easy that is to do if you are using Cura to do the printing; I normally extrude 30-50mm

  • Link to post
    Share on other sites

    Posted · Do not retract after print finish

    I've noticed this problem as well - Cura 4.8 on Linux will add a large retract at the end of the gcode, causing all the filament to be removed from the bowden tube.  A little retract is nice, say 3-5mm, but 750mm or 950mm is excessive and leads to the next print failing unless I ensure that the filament is indeed loaded.  Since the problem is random, I'm not in the habit of checking each time.

     

    I am using an OctoPi setup.  The prints are absolutely flawless, no errors, no corruption, etc.  Whoever is suggesting "corrupt bits", etc., sigh.  Anyway.  This is on a CR-10s running the latest Marlin firmware (2.0.7x).

     

    Here's my ending gcode from the printer settings in Cura:

    G91 ;Relative positioning
    
    G1 E-5 F2700 ;Retract a bit
    G1 E-2 Z0.2 F2400 ;Retract and raise Z
    G1 X5 Y5 F3000 ;Wipe out
    
    G90 ;Absolute positionning
    
    G1 X0 Y{machine_depth} ;Present print
    
    M106 S0 ;Turn-off fan
    M104 S0 ;Turn-off hotend
    M140 S0 ;Turn-off bed
    
    M84 X Y E ;Disable all steppers but Z

     

    And the last 37 lines of the gcode from the file in case you don't want to download the entire thing:

    G0 F9000 X151.851 Y164.366
    G1 F1500 X154.608 Y161.609 E952.71868
    G0 F9000 X154.425 Y161.096
    G0 X155.699 Y160.505
    G0 X155.979 Y160.973
    G1 F1500 X152.713 Y164.24 E952.91842
    ;TIME_ELAPSED:8970.640296
    G1 F2700 E947.91842
    M140 S0
    M107
    G91 ;Relative positioning
    
    G1 E-5 F2700 ;Retract a bit
    G1 E-2 Z0.2 F2400 ;Retract and raise Z
    G1 X5 Y5 F3000 ;Wipe out
    
    G90 ;Absolute positionning
    
    G1 X0 Y300 ;Present print
    
    M106 S0 ;Turn-off fan
    M104 S0 ;Turn-off hotend
    M140 S0 ;Turn-off bed
    
    M84 X Y E ;Disable all steppers but Z
    M82 ;absolute extrusion mode
    M104 S0
    ;End of Gcode
    ;SETTING_3 {"extruder_quality": ["[general]\\nversion = 4\\nname = Standard Qual
    ;SETTING_3 ity #2\\ndefinition = creality_cr10s\\n\\n[metadata]\\ntype = quality
    ;SETTING_3 _changes\\nsetting_version = 16\\nquality_type = standard\\nposition 
    ;SETTING_3 = 0\\n\\n[values]\\ninfill_overlap = 50.0\\ninfill_pattern = grid\\nl
    ;SETTING_3 ine_width = 0.52\\n\\n"], "global_quality": "[general]\\nversion = 4\
    ;SETTING_3 \nname = Standard Quality #2\\ndefinition = creality_cr10s\\n\\n[meta
    ;SETTING_3 data]\\ntype = quality_changes\\nsetting_version = 16\\nquality_type 
    ;SETTING_3 = standard\\n\\n[values]\\nsupport_enable = True\\n\\n"}

     

    roller.gcode

  • Link to post
    Share on other sites

    Posted · Do not retract after print finish

    You've probably noticed there isn't a big retraction there.  5, 5, 2 for a total of 12mm.  The machine will do what it's told.  If there is a file with the E at say 1000 and then there is no "relative" command (G91 or M83) and the Gcode says "G1 E-5" it's going to back up from 1000 to -5 for a total retraction of 1005.  If there IS a relative extrusion command, then the same line tells the printer to back up 5 from wherever it happens to be.  In the example that would be from 1000 to 995.  Big difference.

    Are you using a post-processing plugin in Cura?  Is there a closing statement or code that Octoprint runs?

  • Link to post
    Share on other sites

    Posted · Do not retract after print finish

    I was puzzled by that as well, as there doesn't appear to be anything in the gcode that would cause a large retracting.  It did do it at the end of the print for the roller.gcode file above.

    I verified that my Octoprint setup does not have any ending scripts, and I have no post-processing plugin for Cura.

    I recently switched from Simplify3D.  I raise my post/issue here on the Cura board since the only that's changed in my setup is the slicer (Simplify3D to Cura) and now I'm having this issue.  I was using S3D for quite a while and never ran into this large retract.

    Perhaps it's something in the gcode though, that's not explicitly a retract, but is causing the printer to retract regardless?

  • Link to post
    Share on other sites

    Posted · Do not retract after print finish

    And it did not do a wild retract here, with a terse version of the roller (I didn't leave quite enough room for the bearing requiring it to be hammered into place).  A snug fit is good, but this is too snug...  This gcode file is just a small part of the roller.

     

    roller test.gcode

  • Link to post
    Share on other sites

    Posted (edited) · Do not retract after print finish

    You can use Horizontal Hole Expansion to make the bearing ID (and the through hole) larger.  It acts on the radius so if the hole is .4mm too small, set HHE to .2.  Be careful when using HHE as it works on anything that is a hole (not necessarily a round feature- just a hole).

     

    Regarding the large retraction:  It isn't in the Gcode.  The two files end with identical moves (expected since they are defined in your End-Gcode).  The only real difference is the Z height although in the large roller there are combing moves at the end before the final extrusion line.  The final move in the main body of both files is a 5mm retraction as defined in your Cura Travel settings.  At that point, the End-Gcode comes in.  There is a switch to relative mode and an additional 5mm retraction followed by a 2mm retraction.  Finally, retraction is set back to absolute mode and the heater shuts off.  At the end of both files, the filament ends up 12mm back from the nozzle.

    The G91 line in your End-Gcode is supposed to set all the steppers to relative mode.  What if that is sometimes missed in the printer?  You would get a really long retraction in response to the G1 E-5 line.  I don't know why that would happen.  Adding a couple of lines to the End-Gcode may prevent it.

     

    M140 S0
    M107

    G92 E0 ;Reset the Extruder position
    G91 ;Relative positioning

    M83 ;Relative Extrusion

     

    Setting the extruder back to 0, and making Relative Extrusion explicit should keep the printer from doing that ridiculous retraction.

    Edited by GregValiant
  • Link to post
    Share on other sites

    Posted · Do not retract after print finish

    Thanks for the tip on HHE!

     

    So, I need to "retract" my earlier statement.  I swear, when I looked through OctoPrint's scripts the ending script was empty.  Turns out it wasn't.  Sigh.  Big sigh.  I watched the log in OctoPrint and captured the following lines:

    Send: N91903 M84 X Y E*121
    [...]
    Recv: ok
    Send: N91904 M82*28
    Recv: ok
    Send: N91905 M104 S0*97
    Recv: ok
    Changing monitoring state from "Printing" to "Finishing"
    Send: N91906 M400*32
    Recv: ok
    Send: N91907 G1 E-5 F300*6
    Recv: ok
    Changing monitoring state from "Finishing" to "Operational"

    The line N91907 is not from the gcode file, it's the end script from OctoPrint that didn't show the first time I looked through the interface.  I don't know if there was a delayed load on the page, or what, but I know I've checked that field in the past to ensure it was empty.

     

    I cleared it again and it's been fine since.

     

    The only difference I can think of between Simplify3D and Cura, is that S3D probably left the printer in relative mode, so that when this ending script ran from OctoPrint it only retracted 5mm?  Anyway.  I'm really happy with Cura overall, and my printer is running so much better these days.

     

  • Link to post
    Share on other sites

    Posted · Do not retract after print finish

    Line 91904 sets the printer to absolute E and then line 91907 tells the extruder to move to -5.  All it can do is what it's told.  If it has to move 4000 to get there, then that's what it does.

    You still might want to add the G92 E0 line in the End-Gcode just before the M84.  If you checked and found the Octo End Script empty, and later it had a script, it might add it back in again under certain conditions.

  • 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...