Jump to content

A question about Layer Cooling Fans


GregValiant
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

      • 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
      • Ultimaker Cura 5.6 stable released
        Cura now supports Method series printers!
         
        A year after the merger of Ultimaker and MakerBotQQ, we have unlocked the ability for users of our Method series printers to slice files using UltiMaker Cura. As of this release, users can find profiles for our Method and Method XL printers, as well as material profiles for ABS-R, ABS-CF, and RapidRinse. Meaning it’s now possible to use either Cura or the existing cloud-slicing software CloudPrint when printing with these printers or materials
        • 48 replies
    ×
    ×
    • Create New...