Feature Request - Wall and Top/Bottom layers Material Sequencing

FR is for Snorca / upstream Orca (and other, PrusaSlicer etc.) but specifically to leverage the unique capabilities of the U1 and other toolchanger printers.

Add a set of multimaterial features which allow setting a wall sequence of different colors / materials for Wall Loops as well as Top Layers and Bottom Layers. Each one of these 3 items should have their own stack sequence with clear ordering.

A few use cases:

  1. For graphic effect, such as putting darker colors “behind” a layer or white, translucent, or tinted / semi-translucent material (e.g. in simple testing, black interior loops / layers create a useful appearance behind matte white).
  2. For functional prints this more easily allows integration of different materials properties without going to the lengths of large numbers of modifiers or separate parts in CAD.
    1. Example: HA print structurally all made of a carbon fiber filament, while all exterior walls and top/bottom-most surfaces are a single layer of non-carbon filament for those concerned with potential issues with handling CF prints.
    2. Another example - use case currently testing - constrained layer damping (CLD) by layering an elastomer material between two stiffer materials.
  3. Deeper mechanical interlock than Beam Interlocking for materials which do not directly bond - e.g. mixing PLA and TPU, 3 wall loops, then “center” loop is TPU and acts as a deep anchor for another feature printed in TPU while the other walls and the rest is PLA.
  4. More granular control of support structures and interfaces. (e.g. 1 material on the bottom for PEI build plate compatibility, one for structure of the supports, and an interface material for the interface). Current Orca slicer is pretty reasonable here, but the use case for one additional bottom layer material difference is not present.

A few examples of (1) and (2) above using modifiers, which are reasonable for a simple rectangular prism, but any more significant shape would require CAD reworking of a model into parts: https://imgur.com/a/uXV0nip. The reddish in the middle is red brick PLA-CF sandwiched in regular white PLA. Both of the black features in the other 2 are TPU similarly inserted with modifiers. Note the red streak along the white PLA wall from the wall start seam - I may open another thread as this appears to be an issue with the prime tower sequencing where the priming should work inward with a color but is picking up the prior material. Perhaps a larger area option for light colors.

The items above are possible with significant rework in CAD or very limited with modifier use, but sequencing wall loops and top / bottom layers is much easier and straightforward for most users. It also avoids issues with models which must be printed at specific wall widths and layer heights in order for multiple materials to sequence correctly when simple material change effects are desired.

A few details to proposed operation of the features:

Walls:

  • Sequenced as an outside → in list. For 5 wall layers the list would have 5 “slots” + 1 if alternate extra wall option bit is enabled.
  • Option bit for Alternate Sequence(s) for thin cross sections (those with fewer loops than set)
    • Could require a sequence for each variation - e.g. walls set for 5 loops with a sequence of 5 entries could require a sequences for 4/3/2/1 wall loop.
    • Without the Alternate Sequence(s) bit set, thinner sections work through the list outside → in maintaining loop continuity.
    • Classic vs Arachne fill behavior would need to be defined.

Top/Bottom layers:

  • Separate sequence for Top versus Bottom layer stacks.
  • Works outside → in such that for bottom layers set to 4 the sequence list goes from first entry for layer 1, second entry for layer 2, etc. Top layers would be reversed where the first entry is for the top-most layer n, second entry n-1, etc.

Modifiers:

  • Should have their own stack of the above options and the same existing inheritance from the object.
  • Could be used for example for (3) above to define a zone where certain surfaces are printed in the other material as a mechanical lock for a separate part without needing to modify the original object models as significantly.

P.S. It would also make a lot of sense to backport Stagger perimeters aka Brick Layers from Orca while making material swap logic since it is working on some of the same concepts with walls. Or alternately bring in your own processing to allow users to selectively increase extrusion to selected walls / layers (e.g. inner loops to maintain dimensional accuracy).