Thinking about what would be the slicer UI for multiple nozzle size support

I’ve got over 10 years experience in 3D printing and early in December I took advantage of an opportunity to trade in my X1C with dual AMS for an H2C Ultimate set. Of course like everyone else who gets an H2C (or even a H2D) I love the idea of supporting multiple nozzle sizes in one print, but the more I think about it the more complicated it sounds to implement in the slicer and I’m curious what others think.

My first question is what is the method users would like to select which parts of the print are printed by which nozzle size?

Setting up a print with multiple objects on the bed each with specified nozzle sizes sounds easy but probably not really what anyone is looking for, so let’s ignore this one.

The rest of the options seem parallel to how multi-color support is done.

In one case the designer would define a multi-color item as objects and in Studio you’d split that into objects and then assign both a color and potentially a nozzle size to each one. This seems doable and reasonable, though a lot of work for the designer.

Another option would be to specify nozzle size on a layer boundary, but this seems to me to be unlikely to be that useful.

The next option would parallel the color painting feature where you paint the nozzle size onto areas of the print. This kinda seems among the more useful, but would mean the painting UI would have to be implemented a second time for the feature, and even then aspects of it would work differently (in painting you’re only interested in the depth of the painting enough to ensure pure colors, but for nozzle diameter you’re probably trying to control a much greater depth.

Another option would be as a modifier object: add a modifier and then specify the nozzle size for that modifier. This might be a pretty good option and wouldn’t involve changing that much of the Studio UI. Maybe do this in combination with specifying nozzle size per object.

Then if we really want to go for it I could think of a feature like adaptive layer height but for nozzle size, though the more you think about that the more your head might hurt.

And once we’ve chosen one or more of the above we’ve got a whole new level of challenge because it’s likely that we’re using a given color for more than one size nozzle, so that means the poop problem comes back because a rack of 7 nozzles now has to stretch across color/size combinations and not just color.

And then I’m sure there are gcode generation issues to sort out like multiple layer heights on a single layer.

I’d be curious what other people’s thoughts are, but thinking about the above I’m not going to be holding my breath for multiple size nozzle support to be rolled out and if it is I’ll be very impressed.

2 Likes

yeah, it is unexpected that it was not supported but also understandable. Per object seems the best approach, but it is mostly a convenience not a break thru, I would expect some kind arachne mode for the outside layer with finer nozzles (just to fill the extra details)

To answer this question, you first need to ask yourself which users want this feature the most. The largest group who want this feature are people who print figurines, miniatures and decoration.

The most efficient method for the user would be adaptive / variable layer height option that already exists, except that the printer would then also automatically change the nozzle. Most people already use this to improve the quality of their prints; all that’s needed is a logic that allows the printer to select the appropriate nozzle automatically.

I imagine it exactly as it is now: I know many of you already know it, but for those who don’t:

1 Like

I see two useful paths for this moving forward. The first should be easy to implement. If you want tight radiuses/details and quick print time then you could select a 0.22 layer width for the outer walls and 0.88 for infill. The slicer lets you do this but this is a crazy range for any given nozzle. If you could run the outer wall with a 0.2 nozzle and 0.8 for infill that would fix this and the slicer just has to set a nozzle size for the different line widths that it already is capable of slicing.
The next useful function of this would be to let the outer walls have a layer height of 0.1 for detail and an infill layer height of 2x or 3x the wall layer height. While this is technically feasible I imagine this is a bit more difficult to implement but could help speed up print time and increase part strength.
I personally do not see a lot of reason to do it as a paint function unless you were going more for the variable layer height function that @RetroSharky described.

Regarding the UI, I would really think of a separate profile for each nozzle size. Because a lot of the profile settings are related to the nozzle size.
On the other hand, some parts of the path would need to relate to settings in the other profile, like: sparse infill pattern and wall thickness/width (in mm, not passes).
So some settings need a master profile to follow.

Then you need to consider what you need to be able to combine those profiles:

  • Nozzle size per layer (range/steepness)
    This would have imho minimal impact on the UI and also is the simplest to implement.
    Handling a different nozzle for a set of layers would be interesting for text on top or bottom of parts, or the steepness for more detail on shallow layers (variable layer height)
    But here are some things to consider:
    • I think preferably, the user should be able to select a complete new profile for the different nozzle.
      Parameters like line width, speed, layer height (unless variable), etc, are really nozzle specific.
    • But the interaction between the profiles is also required.
      Sparse infill patterns should fit on top of previous infill patterns, or can we just ignore the previous layer and use a new pattern?
      Do we need to lay multiple passes of the same pattern when we transition from a large to a smaller nozzle?
      The line width of a 0.2 on top of a 0.8 is not an issue, although strength is definitely different.
      And what about a 0.8 line on top of a 0.2 one, would that work?
  • Different nozzle sizes for different parts of the path
    This would be great for strength and high speed for the infill and detail on the outside.
    So (sparse) infill with a different nozzle size than the boundaries.
    Considerations here:
    • Here you need to manage different layer heights within layers.
      Lets assume a 0.2 for walls and 0.4 for infills, the you need 2 layers of 0.2 against 1 layer of 0.4, but 0.4 and 0.6 need 3 vs 2 layers (variable layer height not even considered here)
    • How to handle the different nozzles on shallow areas, where the infill shows for the next layer, or should we separate standard infill and sparse infill?
    • How to handle the order of paths, then?
      In theory you need to lay down the thinnest layers first until you come to a level where the thicker layer meets or exceeds the height of the thinner layer. This means that you have no control anymore over “Order of walls” or “Print infill first”
  • Different nozzle sizes based on a coloring or modifier method
    This method, I would really consider last. This will introduce even greater complexity, and will also introduce additional seams on the part surface.
    Considerations here:
    • How deep this must this penetrate the part when coloring is used
    • What if a modifier doesn’t match a common layer height of the 2 nozzle sizes?
      Where to transition then?

And I am sure that there are considerations that not have even come to mind, and would probably surface as soon as you are starting to implement and test this.

What really surprises me that there are people here on the forum, that think that this is just a little bit of effort, and they are complaining that this is not implemented yet in Bambu Studio, while no one else in FDM printing world has a full functioning solution yet. There seems to be some experimental stuff in Prusa Slicer, but that is very limited in functionality.

I am sure that BambuLabs is already aware of all the considerations I am describing here, and possibly already working on it for a long time. But on the other hand, they might be waiting till someone else comes with a solution and then reverse engineer the solution.

Just my 2 cents.

I would happily have a printer that could print with a 0.8 nozzle for infill and a 0.4mm nozzle for most of the rest with a 0.2mm nozzle for details including smooth curves in the z-axis.

The problem is, the slicer can only do so much. The only real printer that could deliver this is a tool changer. The H2D could have two nozzles, but the H2C doesn’t have 7 nozzles as advertised p, it has two, as the AMS is needed between swaps.

It is a real shame that BL went the route they did rather than a tool changer is the smarter design.

3 Likes

FWIW might be interesting to take a look at (and improve upon :wink: ) how PrusaSlicer does it with the XL printer selected. Granted tool heads are not the same as hot ends, but not that different in terms of slicing options, I think. And anyway we do have 2 actual heads/extruders, w/out the Vortek being involved.

One simple (in terms of UI) feature is that one can select which nozzle size to use for various line types like walls/infill/support/etc.

Beyond that, the various nozzle sizes can be treated as different “colors” and applied similarly (painted/modifiers/by part/etc). Of course the different nozzles could also use different colors as well (or vice versa, however you look at it). So maybe where we now can select filament type and color, we could also select nozzle size, which seems like could propagate throughout the rest of the UI with minimal changes. When editing such a filament profile, Studio could pull in the correct defaults for the given nozzle size.

Now when it comes to selecting line width per nozzle, PS punts that to an “automatic” mode… and I don’t see offhand how to customize the result (it’s either same line widths for all extruders or “automatic” for all line types). Being able to set the line width per nozzle size seems rather useful. So at minimum I’d hope the QualityLine Width options could be modified per nozzle size being used (perhaps broken out to their own tab).

To customize speeds per nozzle size I suppose a logical way would be to add more “tabs” to the Left/Right options in the current Speed settings window. So e.g.
Left Standard 0.4mm | Right Standard 0.6mm | Right HF 0.8mm

Anyway, not meant to cover all the bases, but perhaps a starting point.

-Max

Hi, could you elaborate on why all 7 nozzles couldn’t be used (effectively)? With an AMS to retract the filament, of course (not sure you can buy an H2C w/out AMS). Or maybe I misunderstand what you mean…. to me it seems essentially like any other nozzle swap, though it may be feeding the same filament back into a different size nozzle vs. a different filament into the same size nozzle.

As somewhat of a counterpoint, playing with PrusaSlicer just now I couldn’t find a way to set up an XL printer to use their AMS on one or more tool heads, essentially limiting mixed nozzle size setups to “only” 5 filaments/colors… and if one wants to use the same filament on multiple heads (nozzle sizes) then a spool per extruder are required. From what I could tell, anyway.

Thanks,
-Max

I would personally implement a “detail thresholds” or binning that calculates 2d gradients of the surface and then have the user set levels for switching nozzles. These bins could easily be made visible dynamically by false-color mapping so the user just slides the high frequency/gradient details in and out. Mathematically no biggie and as of now that would be the most useful one applicable to anything that deals with aesthetics.

Other than that, the obvious one: a clone of the painting tool

Happy to.

The most obvious thing you can do is count them, there are two hot ends, while the mechanism can swap out 6 docked nozzles into one of the hot ends, there are still only ever two that can print at any one time, and even that is true.

It is worth noting the differences between the main printer types currently popular, this list is not exhaustive and ignores types that have fallen out of favour:

  1. Single nozzle, examples: A, P & X series, and H2S.
  2. Dual nozzles (one at a time), examples: H2D & H2C.
  3. Dual nozzles (can operate at the same time), examples: true IDEX like Tenlog TL-D3 Pro (I used to own one).
  4. Tool changers (one at a time), examples: Snapmaker U1 & Prusa XL.

We will use the term Nozzle to denote the place where the filament comes out of the printer to form the model.

We will use the term hot end to denote where the nozzle is attached and accepts the filament come from the spool, however that is achieved. This is simplified for the example as the tool changers blur the purpose.

For your question we need to look at point 2, specifically the H2C and a tool changer, we will keep the U1 in mind.

When you print using either solution, only one hot end (differentiating between hot end and nozzles) actual extrudes any filament, when the other is used, the other one is not used. When a tool changer works, only one of any ‘hot end’ is used at any one time.

When a tool changer is in the mix and in its most basic setup, there is a one to one relationship between the filament you will use and the nozzle that will extrude it. Assuming, you have red, green, blue and yellow this is the process of swapping between red and green and back to red again.

  • Dock the tool with red
  • Attach the green
  • Use the prime tower
  • Continue printing
  • Dock the tool with green
  • Attach the red
  • Use the prime tower
  • Continue printing

Now the same process with the H2C, we will assume red is on the left toolhead and an AMS is hooked up with green, blue and yellow installed.

  • Load the left head with Red
  • Cut the filament
  • Poop
  • Use the prime tower
  • Continue printing
  • Swap heads to the right head
  • Grab and dock the nozzle associated with the green filament
  • Load the right head with green from the AMS
  • Remember to wait for the filament to be pulled through the PTFE tube to the head and into the nozzle
  • Cut the filament
  • Poop
  • Use the prime tower
  • Continue printing
  • Swap heads to the left head
  • Use the prime tower
  • Continue printing

The H2C has 1y steps, the tool changer has 8, a 100% increase. This simple example doesn’t show the difference between how each type swaps filaments, with the H2C already much slower than the tool changer as no filament was pulled from the AMS with that.

Some simplified swapping times are as follows: 45 seconds for the right nozzle each time there is a colour change on the H2C and tool changers are 15 seconds. Both of these are subject to fluctuations based on the exact scenario in use.

Now, let’s swap through some more filaments.

Tool changer:

Red > Green > Blue > Yellow > Red

  • Dock the tool with red
  • Attach the green
  • Use the prime tower
  • Continue printing
  • Dock the tool with green
  • Attach the blue
  • Use the prime tower
  • Continue printing
  • Dock the tool with blue
  • Attach the yellow
  • Use the prime tower
  • Continue printing
  • Dock the tool with yellow
  • Attach the red
  • Use the prime tower
  • Continue printing

H2C:

Red > Green > Blue > Yellow > Red

  • Load the left head with Red
  • Cut the filament
  • Poop
  • Use the prime tower
  • Continue printing
  • Swap heads to the right head
  • Grab and dock the nozzle associated with the green filament
  • Load the right head with green from the AMS
  • Remember to wait for the filament to be pulled through the PTFE tube to the head and into the nozzle
  • Cut the filament
  • Poop
  • Use the prime tower
  • Continue printing
  • Remove the nozzle from the right head and put it away
  • Grab and dock the nozzle associated with the blue filament
  • Load the right head with blue from the AMS
  • Remember to wait for the filament to be pulled through the PTFE tube to the head and into the nozzle
  • Cut the filament
  • Poop
  • Use the prime tower
  • Continue printing
  • Remove the nozzle from the right head and put it away
  • Grab and dock the nozzle associated with the yellow filament
  • Load the right head with yellow from the AMS
  • Remember to wait for the filament to be pulled through the PTFE tube to the head and into the nozzle
  • Cut the filament
  • Poop
  • Use the prime tower
  • Continue printing
  • Swap heads to the left head
  • Use the prime tower
  • Continue printing

The tool changer takes 16 steps and the H2C takes 32 steps. The difference in time is significant and the amount of waste is dramatically different.

The H2C requires an AMS retraction and retrieval for each colour change that isn’t on the left tool head and a poop. The tool changer doesn’t need either unless the filament changes in any docked head during print.

The H2C can use one fixed filament and six changeable filaments, each requiring an AMS swap and poop. The H2C can have even more materials in use with multiple AMS units connected.

The tool changer has as many available filaments as it has docked heads. The Snapmaker U1 has four and the Prusa XL has 5. There are other printers available with more. None currently support an ANS style tool, but that is likely as every company has is is about to launch. Using an AMS style solution will increase the swap time though.

The biggest differences is the print time which is often half or faster than a H2C, the amount of waste is far greater as every swap requires a poop.

If you want fast colour prints with the only waste being the prime tower then a tool changer is the only solution.

The other thing to consider is that a larger format tool changer allows more heads, thus more filaments available per model. This is an exciting direction for 3D printers.

I loved my IDEX, it could print using both nozzles at the same time, albeit each one only occupying half of the build plate (left and right). This meant two identical or mirrored models at the same time with no downsides.

The other benefit is the price. Snapmaker U1 has made a solution that is less than half the cost of the H2C. The build volume is smaller on the U1 though.

I love Bambu Lab printers, I am disappointed they produced the H2C as it is an expensive solution in the wrong direction. I feel they wanted to raise the cost of the flag ship printers rather than truly innovate.

1 Like

Thanks for the elaboration! I understand the limitations of re-using one tool head with multiple nozzles… basically it’s slower than multiple heads. But it’s still fully usable, so having 4 different nozzles sizes, for example, in one print should be no problem. If swapping filament isn’t needed then that removes the retraction time as well, and the possible poop.

The U1 isn’t available so IMHO it’s not on the comparison table (been using H2C for ~ a month now). IDEX printers were attractive, but I personally thought the H2C nozzle swapping was rather innovative. I was surprised however that using 2 different nozzle sizes wasn’t possible with H2D/C since the XL has that capability.

Anyway, thanks again, and back on topic.
-Max

It is important to know the finer details as the marketing materials do not make it clear.

No current mainline slicer supports this for any printer.

The support in PrusaSlicer is marked as experimental.

Tens of thousands of owners would disagree.

On a technical level, it is, but innovative doesn’t mean better. I have no idea how old you are, so this might date you. Betamax was better than Philips 2000, which was better than VHS, yet VHS won the race. In that example, it wasn’t the quality the people wanted, but availability.

You are welcome.

1 Like

Maybe if you they are not that old…

The Microsoft Zune was better than the iPod in almost every way. But the iPod killed the Zune when it came to sales.

The Microsoft part was the problem. The had a pattern of making stuff, screwing up the roll out and then killing them off.

I also had a Philips Laser Disc machine. Think 12” (LP-sized) DVD, you flipped it over halfway through to continue the movie. I watched Smokey The Bandit on that. So, if you wondered who bought it, I was that person.

So, as a rule, when things go wrong, three tool changes per layer.

Before purchasing the H2C, I naturally asked myself what would be better for my printing style – Vortek or a tool changer like the U1. However, I deliberately chose the H2C, even though I had a fairly modified X1C that I didn’t really want to replace. Buying a U1 would have been an option.

I would do the same thing again anytime. It’s a shame that Vortek will probably not survive, because the community clearly needs tool changers urgently.

The ‘smaller’ space requirement, the many different nozzles that can be selected at any time in the software, the closed housing including heating for the more specialised materials… All of that was more important to me than the tools of the U1.

I think Vortek would also be an option for tool changer fans IF Bambulab provided an AMS with 4 outputs and something like a hub that waits at the input of the H2C with the filament. So that changing the filament takes 5 seconds instead of 30. So that it only has to be retracted to the hub, and the new one only has to start from there. This way, it wouldn’t matter how far away the AMS are.

Personally, I don’t think it makes sense to use dozens of different nozzle sizes in one layer. That’s why I would do it in a similar way to ‘colouring’. Either I would use a different nozzle for entire layers (from - to), or I would use it for protruding details such as lettering, which stand out individually at the top.

I would favour the following approach to multiple nozzle sizes.

At a colour/virtual extruder level within Bambu Studio being able to select the following options:

  1. Use default profile nozzle size and layer height for the print profile.
  2. Override nozzle size (and other parameters like line width / layer height etc). to different nozzle size for that whole colour.
  3. Dynamic Nozzle size - use best nozzle size within available range in H2D/H2C for different layers or segments within layers of the colour - optimising for detail, then speed. With small features and complex shapes prioritising smaller nozzles, with larger details, flat surfaces and internals moving more towards larger nozzles if there is a time benefit within the layer to swap. Possibly also allow dynamic layer height within nozzle sizes for this option too.

Then as normal you would select the colours either at object level or by painting on.

Some way of differentiating within the prepare and preview screen would be needed to highlight different nozzle size variations of the same colour

Re the points about H2Cs / Vortek etc. vs other options.

I do think 7 nozzles is not going to be enough - but it is a good start, and I will certainly still be upgrading my H2D to an H2C when the kits are available in the UK.

Will probably get a 2nd H2C too - to replace X1Cs - as am in particular given the current cold weather in the UK finding the heated chamber on the H2D very useful for ABS printing.

Whilst Bambulab have gone in a different direction to other tool change approaches - there are still quite a few benefits in terms of practicality of the AMS+Nozzle changer approach - and I am willing to give up a bit of print time - firstly for reliability and print quality, secondly for waste reduction, thirdly for the practicality of the approach - such as only needing 2 PTFEs, keeping the heated chamber size down, the benefits in terms of filament spool management of the BL AMS vs other solutions.

I think they should continue with Vortek both in terms of expanding the number of nozzles on the right from 6 to 10, and plus adding a second rack for the left up/down toolhead - bringing the total number of Vortek nozzles up to 20.

Perhaps combined with a slightly larger build plate size.

Personally I am doing quite a lot of work on prototyping printers that are a combination of Box Turtle AMS / Multiple Toolhead / Multi Gantry / Parallel Printing / Bondtech INDX tool changing - mainly focussed on maximising print speed for 12 colour multiple nozzle size prints - but I am still printing all of the parts for these on my H2D and X1Cs - and will probably continue to use H2D plus H2Cs for real actual printing work.

I am not sure what you believe is going wrong in my use case.

The idea is the holy grail of 3D printing, using the right tool at the right for the right reason.

It also does not require three tool changes per layer.

Oh, you’re just fantasizing… then why bother with a printer at all? You might as well have a replicator that simply creates everything for you out of matter. :smiley:

How is it fantasising when we have the makings of the ideal of a replicator already?

Current 3D printers are capable of printing toys, medical equipment, things for every room in the house, in the car, in the engine bay and far beyond.

Then we have thins for outside and inside your body, footwear and clothing, and sex toys.

Wheelchairs, robots, things that drastically improve the quality of life of those who desperately need it,

Those same printers are printing in multiple colours and material types at the same time.

We can use PLA for everyday stuff, PETG for things requiring a little give, ABS for strength, ASA for outside benefits, TPU for truly flexible materials from very soft to hard, and new newer variants like PEBA that improves on TPU in every way. We PA and beyond for heat intensive projects.

We have GF and CF infused filaments of all types.

We have gone from a 1cm cubed shape taking the best part of a day to massive parts printed in hours. To almost no precision to precision unthinkable just a few years ago.

Yet you are concerned that variable height layers within the same layer are a scientific fantasy.

Firstly, it already exists, so a scientific reality.

This is a slicer issue, they just need to deal with the algorithms as most slicers have been single layer height per layer was the focus.

It is a shame you have limited knowledge and think so little of the industry.

1 Like

I am amazed that @MaxThreeD found anything in the post above that I wrote bestowing the greatness that is 3D printing.

A downvote!

Was it too positive?