Jump to content

A question about Layer Cooling Fans


Go to solution Solved by Cuq,

Recommended Posts

Posted · A question about Layer Cooling Fans

Hello to all.

I don't have a multi-extruder printer to play with so I'll ask.

Consider a Dual Extruder printer with separate layer cooling fans for each hot end.  Here is a code snippet:

T0

M106 S255 P0

(...)

T1

M106 S255 P1

What is the T0 fan speed at this point?  Did the tool change automatically turn it off?  Cura does not seem to turn fans off at tool changes.

 

Slightly different:

T1

(...)

T0

M106 S255

What is the T0 fan speed here?  Does the M106 act on the Active Extruder or would it require the P parameter to explicitly call out the fan number?

 

Some clarification would be appreciated.  Google and MarlinFW has not been much help.

  • Link to post
    Share on other sites

    Posted · A question about Layer Cooling Fans

    This really depends on the firmware configuration settings.. and the hardware configuration..
    Lots of "cheap" idex or dual extruder machines have the part cooling fans linked to the same header.. so they are both on or both off. 

  • Link to post
    Share on other sites

    Posted · A question about Layer Cooling Fans

    Thanks Dustin.  That's what I was thinking.  Pulling a running fan around an area (or for layers), that don't need/want cooling probably isn't a good idea but adding a second fan port might have cost .10 Euro.

    • Like 1
    Link to post
    Share on other sites

    Posted (edited) · A question about Layer Cooling Fans

    I have another couple of questions regarding Cura...

    I want to get the "initial_extruder_nr" from Cura in a post-processor.  Getting the "extruders_enabled_count" would be a bonus. 

    What do I need to import?

    What would be the syntax?

    Edited by GregValiant
  • Link to post
    Share on other sites

    • Solution
    Posted · A question about Layer Cooling Fans
    from UM.Application import Application
    
    extruder_count=Application.getInstance().getGlobalContainerStack().getProperty("machine_extruder_count", "value")

     

  • Link to post
    Share on other sites

    Posted · A question about Layer Cooling Fans

    I have another question.  I've been playing with a post for altering Z-hops.  I want it to exit when Z-hops are not enabled in Cura (or adaptive layers are enabled, or extruder count >1, but those are OK).

     

    ("extrud" is the extruderlist)

    When Z-hops are enabled in Cura

    retraction_hop_enabled = (extrud[0].getProperty("retraction_hop_enabled", "value"))

    results in 

    retraction_hop_enabled = True

    but when Z-hops are disabled in Cura it results in:

    "TypeError: 'NoneType' object is not subscriptable"

    and exits.

    I have tried several things but I've been unable to get around this so any help would be appreciated.

     

    (My normal system of blindly pushing buttons until I find one that works has let me down.)

     

     

  • Link to post
    Share on other sites

    Posted (edited) · A question about Layer Cooling Fans

    Certainly something wrong in your code but without relation with your analyse.  It works event if Z hop are not Enable.

     

    from UM.Message import Message

    from cura.CuraApplication import CuraApplication

     

    global_container_stack = CuraApplication.getInstance().getGlobalContainerStack()

    extruder = global_container_stack.extruderList[0]

    retraction_hop_enabled = extruder.getProperty("retraction_hop_enabled", "value")

    Message(text = "retraction_hop_enabled : {}".format(retraction_hop_enabled)).show()

     

     

    Capture.GIF

    Edited by Cuq
  • Link to post
    Share on other sites

    Posted · A question about Layer Cooling Fans

    "Certainly something wrong in your code."

    Cuq, putting it up here where everybody can see that I'm banging rocks together isn't helping my self-esteem.

     

    I had "UM.Application" instead of "Cura.CuraApplication".  Curious that it worked with "True" but not with "False".

  • Link to post
    Share on other sites

    Posted · A question about Layer Cooling Fans
    from UM.Application import Application
    
    global_container_stack = Application.getInstance().getGlobalContainerStack()

     

    or 

     

    from cura.CuraApplication import CuraApplication
    
    global_container_stack = CuraApplication.getInstance().getGlobalContainerStack()

     

    Should give the same Result , But I think it is better to use CuraApplication

  • Link to post
    Share on other sites

    Posted · A question about Layer Cooling Fans

    It's still broken.  Adaptive Layers has also caught the bug.  

     

    retraction_hop_enabled = extruder.getProperty("retraction_hop_enabled", "value") 

    and

    adaptive_layers = global_container_stack.getProperty("adaptive_layer_height_enabled", "value")

    Everything else seems fine and works as expected.  

     

  • Link to post
    Share on other sites

    Posted · A question about Layer Cooling Fans

    It ended up being my "return" line.

    I used a simple "return" figuring it would exit gracefully.  Wrong.  A simple "return" implies "return None" and it wasn't the post-processor that was complaining, it was Cura when the None came back instead of the data.

    Using "return data" makes it all good again even though nothing was done to the data.

     

    Once again, much thanks.

  • 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.9 stable released!
        Here comes Cura 5.9 and in this stable release we have lots of material and printer profiles for UltiMaker printers, including the newly released Sketch Sprint. Additionally, scarf seams have been introduced alongside even more print settings and improvements.  Check out the rest of this article to find out the details on all of that and more
          • Like
        • 5 replies
      • Introducing the UltiMaker Factor 4
        We are happy to announce the next evolution in the UltiMaker 3D printer lineup: the UltiMaker Factor 4 industrial-grade 3D printer, designed to take manufacturing to new levels of efficiency and reliability. Factor 4 is an end-to-end 3D printing solution for light industrial applications
          • Heart
          • Thanks
          • Like
        • 4 replies
    ×
    ×
    • Create New...