Multi nozzle printing#575
Closed
LixNix wants to merge 3 commits into
Closed
Conversation
Printing with different nozzle sizes is now possible and each extruder can now print at a different semi fixed / semi adaptive layer height depending on user choice.
Includes:
- Fix Filament for Features (OrcaSlicer#13607)
- Fix + Support 'Default' filament option, index 0 (OrcaSlicer#13887)
- Filament for features for SEMM (OrcaSlicer#13937)
- Divided filament for features (OrcaSlicer#14042)
- Port of LixNix/OrcaSlicer-multi-nozzle-size-printing commit 944da13
Author
|
There is a minor issue that can cause wrong layer heigth in certain situations will be fixed later today or tomorrow hopefully. |
Author
|
closing this pull request due to it being improved and changed branch in #580. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR brings multi-nozzle-size printing to the Snapmaker U1 — letting each of the U1's four tool heads run a different nozzle diameter and print at its own layer height and line width within a single job. It ports proven, upstream OrcaSlicer functionality and adapts it to this fork's mixed-filament / Local-Z / SSWCP code paths, then adds the U1-specific UX and profile polish to make it usable out of the box.
What's new
1. Filament for Features — per-feature filament selectors (ports OrcaSlicer OrcaSlicer#13607, OrcaSlicer#13887, OrcaSlicer#13937, OrcaSlicer#14042)
The single wall / infill / solid-infill selectors are split into six independent ones: outer wall, inner wall, sparse infill, internal solid infill, top surface, bottom surface. Each defaults to
Default(0), meaning "use the object/part's active filament", so existing behavior is unchanged unless a feature is explicitly reassigned.2. Per-extruder layer height (multi-nozzle-size printing) (ports the
multi_nozzle_multi_layer_heightwork)extruder_layer_height): a part whose walls are assigned to a coarser nozzle prints on every Nth layer with correspondingly thicker extrusions wherever its geometry allows (near-vertical walls), falling back to the object layer height elsewhere; sparse infill on such an extruder is combined up to that height instead.consistent/adaptive) and Thick layer tolerance control how aggressively runs are combined.support_nozzle_diameter) keeps support / raft / interface on a single nozzle size on mixed-nozzle printers.3. Per-nozzle diameter selection in the Prepare panel
Each of the four nozzle tabs in the sidebar can now be set to its own diameter (previously changing one forced all four to sync). This mirrors the per-extruder behavior of the Printer Settings → Extruder tab.
4. Snapmaker U1 process profiles use % line widths
The U1 process profiles now express every line/extrusion width as a percentage of nozzle diameter instead of fixed mm, so widths auto-scale when a nozzle size changes — users no longer have to hand-edit them. Effective widths at each profile's native nozzle are unchanged.
Backward compatibility
handle_legacymaps the oldwall_filament/sparse_infill_filament/solid_infill_filamentkeys to the new*_idkeys, and the legacy default value1→0), covering process presets, 3MF projects, and imported G-code.%profile conversion reproduces the previous mm widths exactly at each profile's native nozzle.Screenshots/Recordings/Graphs
Tests
tests/fff_print/test_multi_nozzle_layer_height.cpp(Catch2) covering: layer combining for a coarser-nozzle part, per-feature filament dispatch (top/bottom/solid/gap fill/external bridges), infill combining limits, the support-nozzle-diameter restriction, and validation of invalid configurations (non-integer multiples, below min layer height, exceeding nozzle/max layer height).tests/libslic3r/test_mixed_filament.cppfor the renamed per-feature filament API.