Jump to content

Different Fan Speed for Overhangs?


rachael7

Recommended Posts

Posted · Different Fan Speed for Overhangs?

Would it be possible to add a function to change the fan speed for overhangs of a certain angle?  Perhaps it could be rolled in with the (currently experimental) Overhanging Wall Angle and Overhanging Wall Speed function? I'm printing a lot of ABS, Nylon, and Polycarbonate these days, and those materials need to run without a fan for best layer adhesion. But the lack of fan makes overhangs come out less than pretty, even when they are only 10-20 degrees off of vertical. I got some improvement using the Overhanging Wall Speed adjustment, but if I could turn on the fans just for the overhangs, that would allow me to improve the print quality of the overhangs, without as much compromise of the layer adhesion (and hence strength) as I would get from running the fans through the whole print.

  • Link to post
    Share on other sites

    Posted · Different Fan Speed for Overhangs?

    I usually open the gcode file and add fan lines manually.  You can try the ChangeAtZ post processor.  It had a couple of glitches if you were using "By Height" and there were Z-hops in a file, but without Z-hops and using "By Layer" it should be OK.  You would need one instance to turn the fan on and another to turn it off again.

  • Link to post
    Share on other sites

    Posted · Different Fan Speed for Overhangs?
    1 minute ago, GregValiant said:

    I usually open the gcode file and add fan lines manually.  You can try the ChangeAtZ post processor.  It had a couple of glitches if you were using "By Height" and there were Z-hops in a file, but without Z-hops and using "By Layer" it should be OK.  You would need one instance to turn the fan on and another to turn it off again.

     

    Thanks for the ideas, got me thinking!  Unfortunately, I do have (and need) Z-hops and it's not a by-layer situation for me.  The parts I'm working on are quite large, most of the area of the build plate, and only have overhangs in a few small portions of the perimeter. The fans need to stay off for the rest of the layer, to ensure good layer adhesion, and only come on for the actual overhanging portion. I suppose I could theoretically do it by manually editing the g-code, but that would really be a prohibitive editing process without much chance of automating it.

  • Link to post
    Share on other sites

    Posted · Different Fan Speed for Overhangs?

    Somebody mentioned changing the cooling based on the feature.  That isn't all that hard to do as the features are in comments throughout the gcode.

    Unfortunately within a gcode file you won't find anything that says "overhang starts here".  It would be really tough to code for.  If a support blocker could be configured...hold on... I feel a workaround coming on.

     

    You must have "Enable Jerk Control" turned on for this to work and all the Jerk values need to be the same.  For this example lets say we have Print Jerk and all the little jerks at 10.  The fan speed for the overhangs will be 50% and the rest of the time the fan will be off.

     

    So you take a support blocker and size it and place it covering the overhang.

    You select Per Model Settings / Modify Settings for Overlaps and make "Print Jerk" one of the settings.  Set the Jerk within the support blocker to "1".

    Every time Cura slices through the blocker it will add M205 X1 Y1.  When the nozzle leaves the blocker Cura will add M205 X10 Y10 (our default Print Jerk).

    You add two Search and Replace post processors.  The first one is:

    Search = M205 X1 Y1

    Replace = M106 S128 (fan at 50% PWM)

    and the second one is

    Search = M205 X10 Y10

    Replace = M205 X10 Y10\nM106 S0

    The second replacement re-inserts the Jerk line so you don't have to go back and change the first line manually.

     

    I like it.  Now it's up to you to prove why I shouldn't.

     

     

     

     

     

  • Link to post
    Share on other sites

    Posted · Different Fan Speed for Overhangs?
    2 minutes ago, GregValiant said:

    Somebody mentioned changing the cooling based on the feature.  That isn't all that hard to do as the features are in comments throughout the gcode.

    Unfortunately within a gcode file you won't find anything that says "overhang starts here".  It would be really tough to code for.  If a support blocker could be configured...hold on... I feel a workaround coming on.

    ...

    I like it.  Now it's up to you to prove why I shouldn't.

     

    I have to admit, that is pretty darn clever. I do use the jerk settings and could easily make them all the same, so that could work. The challenge will be to make the support blocker shape right to get the jerk changes to happen at the right points. Then again, once one has gone that far, why not just use the different settings for overlaps feature to change the fan speed directly? It would work the same, but without even the search/replace, right?

  • Link to post
    Share on other sites

    Posted · Different Fan Speed for Overhangs?

    No travel settings and no cooling settings on modifier meshes.

     

    Try again.

  • Link to post
    Share on other sites

    Posted · Different Fan Speed for Overhangs?

    Close, but no cigar.  I don't think it will work.  It looks like the Jerk only changes when "TYPE:FILL" is there.  For the outer and inner walls the Jerk doesn't appear to be inserted.

  • Link to post
    Share on other sites

    Posted · Different Fan Speed for Overhangs?
    17 minutes ago, GregValiant said:

    Close, but no cigar.  I don't think it will work.  It looks like the Jerk only changes when "TYPE:FILL" is there.  For the outer and inner walls the Jerk doesn't appear to be inserted.

     

    Dang. Heck of a good effort though. I'll put in a feature request on Github and hope the Cura gurus manage to work it into the schedule at some point.

  • Link to post
    Share on other sites

    Posted (edited) · Different Fan Speed for Overhangs?

    I know this was early last year but my workaround has been to find and replace cooling for the outer wall. Depending on your ordering within the slicer settings, you'll know what the next type of line is (infill, inner wall, etc..). 

     

    Then find the comment for the next type of line (e.g. ";TYPE:WALL-INNER") and replace that with the next fan setting.

     

    My printer can only turn cooling on or off so I just replace ";TYPE:WALL-OUTER" with "M126 T0" and assuming my next line type is the inner wall, then I replace  ";TYPE:WALL-INNER" with "M127 T0". 

     

    This unfortunately cools the entire outer wall instead of just the overhang but honestly it works way better than expected with ASA/ABS. My layer adhesion is a little reduced since the outer wall is being cooled, but I normally print 3+ walls.

     

    This was for an earlier version of Cura so it may have been fixed by now. Of course you could also use a different slicer if the printer allows for it (mine does not). 

    Edited by dingo3
    • Like 1
    Link to post
    Share on other sites

    Posted · Different Fan Speed for Overhangs?

    6 years ago there was a request for better cooling fan control.  Cura basically turns it on and then it's done.

    This past spring I taught myself some Python and wrote a post processor.  Unzip it and put the ".py" file in your Configuration Folder in the Scripts sub-folder.  For Windows mine is:

    "C:\Users\...user name...\AppData\Roaming\cura\5.4\scripts".  You can use the "Help | Show Configuration Folder" command to locate the config folder.

    Once you restart Cura "Advanced Cooling Fan Control" will be available under "Extensions / Post Processing / Modify G-code" and then "Add a Script".

    You can control the fan by Feature (but not overhang) or by Layer.  It supports up to 4 fan circuits.

    "By Feature" looks just like this

    image.thumb.png.2e25f7e8814bff54b46aaa5f18378dc8.png

    AddCoolingProfile.zip

    • Like 2
    • Heart 1
    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
        • 16 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...