Jump to content

Quality setting for layer height based on nozzle diameter


LucidWolf
Go to solution Solved by Cray0,

Recommended Posts

Posted · Quality setting for layer height based on nozzle diameter

Greetings,

 

Is there a reason not to have a layer height defined by a nozzle diameter.  When i try to code that into my quality profile it does not seem to grab the updated nozzle size from the variant and instead defaults to the machine nozzle size.  Am I crazy yes.  But am i crazy because i want my quality setting to be based on speed, and % of nozzle height?

I think this is a much more intuitive way to set feeds and speeds now that quick changing nozzles are a thing.

 

Ex)

draft: 

layer_height = =machine_nozzle_size*0.5

speed_print = 100

 

standard:

layer_height = =machine_nozzle_size*0.4

speed_print = 50

 

ultra:

layer_height = =machine_nozzle_size*0.2

speed_print = 50

 

The stack documents show this should work.

  • extruder_stack.getProperty("layer_height", "value")
  • user.getProperty("layer_height", "value") -> Returns None
  • quality_changes.getProperty("layer_height", "value") -> Returns None
  • intent.getProperty("layer_height", "value") -> Returns None
  • quality.getProperty("layer_height", "value") -> Returns "=machine_nozzle_size*0.5"
  • user.getProperty("machine_nozzle_size", "value") -> returns None
  • quality_changes.getProperty("machine_nozzle_size", "value", "value) -> Returns None
  • intent.getProperty("machine_nozzle_size", "value") -> Returns None
  • quality.getProperty("machine_nozzle_size", "value") -> Returns None
  • material.getProperty("machine_nozzle_size", "value") -> Returns None
  • variant.getProperty("machine_nozzle_size", "value") -> Returns 0.6  <=

 

Is there some issue with using nozzle size and layer height on a quality call?

I did notice the upper window tab was updating just not the profile.

 

Thanks in advance.

cura_nozzle_to_layer.JPG

  • Link to post
    Share on other sites

    Posted · Quality setting for layer height based on nozzle diameter
    Quote

    I think this is a much more intuitive way to set feeds and speeds now that quick changing nozzles are a thing.

     

    I have been printing for 10 years with print widths from 0.3 mm to 0.7 mm with a 0.5 mm nozzle.
    Until now I have seen no reason to change the nozzle 🙂

  • Link to post
    Share on other sites

    Posted · Quality setting for layer height based on nozzle diameter
    On 5/2/2022 at 5:49 PM, curatori said:

     

    I have been printing for 10 years with print widths from 0.3 mm to 0.7 mm with a 0.5 mm nozzle.
    Until now I have seen no reason to change the nozzle 🙂

    I concur on the I never really changed my nozzle in the past.  I kept a 0.6mm tungsten carbide nozzle on my workhorse from whenever Dyze design made them.  I am only nozzle switching crazy now because of the Revo.  I also imagine Cura 5.0 is going to make line width less important.  But switching nozzles lets you get higher layer heights.  Just how Cura 5.0 makes line width less important to end users.  I would think quality settings based on nozzle size could make layer height less important to end users.  I think you could just have 3 quality settings and then based on nozzle they would adjust.  I did not think through dual nozzles for that kind of setting.  I guess default to the smallest nozzle for setting max layer height?

     

    Ramblings:

    Normally when you increase line width without a nozzle change and increase layer you have to slow it down to get that extra squishy goodness.  My thought now is change nozzle and keep speed since its so quick to change a nozzle.  To get really fast nozzle change speeds I don't even let the old nozzle cool down when i change it out:

    1. I heat up prime and retract to get the old nozzle clear of filament. 
    2. Shut off heating.
    3. Put on my mechanics gloves, pull the old nozzle while still hot (Risk of burns, why I imagine E3D tells you to wait and change it cold.  To me its no worse than a hot engine block or accidentally burning myself on old nozzle changing.)
    4. Screw in new nozzle command heat back on and wait for rewarm then run auto level (delta so quick to do and part of normal process).

    Its only about 2min mostly waiting on heat up for both nozzles.  Both nozzles usually beat my bed warm up anyways so really no loss of time.  I would normally run a delta level as part of my print.

    So for 2min I don't have to sacrifice my 100mm/s print profile. (I keep outer walls still 50 mm)

     

    I did have to make my nozzle holders out of stacked silicon/wood since the plastic holder I printed will not take a 200C nozzle for obvious reasons.  I didn't even keep the PLA holder in the area knowing i would put my nozzle in it at full temp and that would be a mess... ^^

  • Link to post
    Share on other sites

    • Solution
    Posted · Quality setting for layer height based on nozzle diameter
    Quote

    But am i crazy because i want my quality setting to be based on speed, and % of nozzle height?

    I don't think so. If it is crazy, then you and I are in the same asylum.

     

    Quote

    I think this is a much more intuitive way to set feeds and speeds now that quick changing nozzles are a thing.

    I agree completely. So much so that I have been working to make all of the quality settings to be based on a percentage of the nozzle size. This includes layer_height, but there seems to be a problem with how it is calculated out of the box, as you described. The upper display seems to be calculated properly from the full stack, but the actual setting seems to be on the extruder's default nozzle size only. In other words,

     

    layer_height = =machine_nozzle_size*0.5 

    always results in layer_height calculated as 0.2 (half of 0.4 nozzle, which is the default), no matter which nozzle size you select.

     

    I am happy to tell you, I have found a workaround in order to calculate layer_height from a nozzle variant. Try:

    layer_height = =round(0.5*extruderValueFromContainer(0, 'machine_nozzle_size', 1), 2)

    The first argument (0) of extruderValueFromContainer() is the extruder number (0 is the first, and probably only extruder for most people), and the last argument (1) is (I think) the amount of containers/stack to skip, and it seems that the first container is the one that miss-calculates. Or something like that anyway.

  • 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

      • 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
        • 3 replies
      • 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
        • 26 replies
    ×
    ×
    • Create New...