Skip to content

Automatically match brim and support filament to the model surface they touch #882

Description

@ckhor94-hub

Is there an existing issue for this feature request?

  • I have searched the existing issues

Is your feature request related to a problem?

In multicolour prints, generated features such as brims and support interfaces can be printed using a filament colour that does not match the model surface they touch.

This can leave visible remnants of the wrong colour after the brim or support is removed.

For example:

  • A black section of a model may have a white brim attached to it.
  • A red painted surface may be supported by a blue support interface.
  • A build plate containing objects of several colours cannot be handled correctly by choosing one global brim or support filament.

The existing option to select a single support filament, or control the first-layer filament sequence, does not solve this for genuinely multicolour models.

Which printers will be beneficial to this feature?

Klipper, All

Describe the solution you'd like

Requested behaviour

Please add an option such as:

Filament: Match contacting model

for:

  • Brims
  • Support interfaces
  • Ideally other generated structures where appropriate

The slicer would determine which model surface or perimeter each generated region touches and use the same filament assigned to that model region.

For example:

  • Red model perimeter → red brim
  • Blue model perimeter → blue brim
  • Green model perimeter → green brim

And:

  • Support interface touching a red painted surface → red interface
  • Support interface touching a blue painted surface → blue interface

This should work independently for different regions of the same object and for multiple objects on the same plate.

Why this is preferable to a manual filament selector

A single selectable "Brim filament" or "Support interface filament" only works if every relevant model surface uses the same filament.

It does not solve cases where:

  • one model has multiple colours on its first layer;
  • several differently coloured objects share a plate;
  • different support interfaces touch differently coloured sections of a painted model.

The assignment therefore needs to be spatial rather than global.

Suggested implementation concept

Generated ancillary geometry could inherit its filament assignment from the model geometry it contacts.

Where generated geometry contacts multiple filament regions, it could be divided into regions based on the nearest/contacting model perimeter or supported surface.

A possible UI option would be:

Brim filament

  • Auto
  • Filament 1
  • Filament 2
  • …
  • Match contacting model

Support interface filament

  • Auto
  • Filament 1
  • Filament 2
  • …
  • Match contacting model

Related upstream requests

This appears to combine two existing OrcaSlicer requests into a more general solution:

Rather than treating brims and supports as unrelated special cases, a general “inherit filament from contacting model geometry” behaviour could solve both.

Printers affected

All printers capable of multicolour or multi-material printing, particularly systems with multiple toolheads or automatic filament changing.

For Snapmaker U1 in particular, this would make multicolour support and brim behaviour much more consistent with the colour assignments already made to the model.

Describe alternatives you've considered

Changing the colour of the brim or ALL supports is not helpful because in multicolour models the parts have different colours on layer 1 also different overhangs have different colours so a single support interface colour isn't suitable either.

Additional context

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions