mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-08-03 08:12:07 +00:00
belt: default first_layer_plane to Auto, not BeltAffine
BeltAffine activates the FirstLayerPlane evaluator unconditionally, so on a
non-belt printer on_first_layer(point) stopped agreeing with the legacy
slicing-layer-0 test. Every per-path first-layer call site in _extrude then
took the non-first-layer branch, and first-layer speeds were skipped: brim
came out at the volumetric fallback (24.6 mm/s) instead of initial_layer_speed
(10 mm/s). This is the shared speed path, so it affected all printers on this
branch, not just belt ones.
Auto resolves to BeltAffine only when belt_printer is set with a non-zero
slicing rotation, and to XY (evaluator inactive, legacy behaviour) otherwise --
exactly what the option's own description already promised.
Caught by "Brim uses first layer speed" (upstream #14616), which arrived with
the upstream merge; the bad default dates back to a9bae54f20 (#30). Verified
against a pristine upstream/main build, which passes the same test.
tests/fff_print: 100/100 test cases, 1085 assertions (was 99/100).
Both belt regression tests still pass, confirming Auto still resolves to
BeltAffine for belt printers.
Note: this changes a config default. Projects and profiles that stored
first_layer_plane explicitly are unaffected; those relying on the default will
now get correct first-layer speeds on non-belt printers, so their G-code
changes accordingly.
This commit is contained in:
@@ -7209,7 +7209,13 @@ void PrintConfigDef::init_fff_params()
|
||||
def->enum_values = {"auto", "xy", "yz", "xz", "belt_affine"};
|
||||
def->enum_labels = {L("Auto"), L("XY (machine bed)"), L("YZ"), L("XZ"), L("Belt affine plane")};
|
||||
def->mode = comExpert;
|
||||
def->set_default_value(new ConfigOptionEnum<FirstLayerPlaneMode>(FirstLayerPlaneMode::BeltAffine));
|
||||
// Auto, not BeltAffine: BeltAffine activates the plane evaluator unconditionally, so on a
|
||||
// non-belt printer on_first_layer(point) stopped agreeing with the legacy slicing-layer-0
|
||||
// test and first-layer speeds were skipped (brim printed at the volumetric fallback rather
|
||||
// than initial_layer_speed). Auto resolves to BeltAffine only when belt_printer is set with
|
||||
// a non-zero slicing rotation, and to XY (evaluator inactive, legacy behaviour) otherwise --
|
||||
// which is what this option's own description promises.
|
||||
def->set_default_value(new ConfigOptionEnum<FirstLayerPlaneMode>(FirstLayerPlaneMode::Auto));
|
||||
|
||||
def = this->add("first_layer_plane_offset", coFloat);
|
||||
def->label = L("Belt plane offset");
|
||||
|
||||
Reference in New Issue
Block a user