mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-08 08:11:14 +00:00
Leading-edge brim takes part in the outer-wall-first rule
The first-layer rule that prints the outer wall first when a brim is attached to it, and the brim_type change rule that regenerates the perimeters for it, only knew btOuterOnly. btLeadingEdgeOnly, the belt brim at the part's first contact, is an outer brim too. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
b2fb552e32
commit
9289fc4dd3
@@ -1839,8 +1839,10 @@ void PerimeterGenerator::process_classic()
|
||||
bool is_outer_wall_first = this->config->wall_sequence == WallSequence::OuterInner;
|
||||
if (is_outer_wall_first ||
|
||||
//BBS: always print outer wall first when there indeed has brim.
|
||||
// btLeadingEdgeOnly is an outer brim too (a belt brim at the part's first contact).
|
||||
(this->layer_id == 0 &&
|
||||
this->object_config->brim_type == BrimType::btOuterOnly &&
|
||||
(this->object_config->brim_type == BrimType::btOuterOnly ||
|
||||
this->object_config->brim_type == BrimType::btLeadingEdgeOnly) &&
|
||||
this->object_config->brim_width.value > 0))
|
||||
entities.reverse();
|
||||
// Orca: sandwich mode. Apply after 1st layer.
|
||||
|
||||
@@ -1373,7 +1373,10 @@ bool PrintObject::invalidate_state_by_config_options(
|
||||
const auto* new_brim_type = new_config.option<ConfigOptionEnum<BrimType>>(opt_key);
|
||||
//BBS: When switch to manual brim, the object must have brim, then re-generate perimeter
|
||||
//to make the wall order of first layer to be outer-first
|
||||
if (old_brim_type->value == btOuterOnly || new_brim_type->value == btOuterOnly)
|
||||
// btLeadingEdgeOnly is printed as an outer brim (Brim.cpp, BeltBrim.cpp), so it
|
||||
// takes part in the same first-layer wall order rule.
|
||||
if (old_brim_type->value == btOuterOnly || new_brim_type->value == btOuterOnly ||
|
||||
old_brim_type->value == btLeadingEdgeOnly || new_brim_type->value == btLeadingEdgeOnly)
|
||||
steps.emplace_back(posPerimeters);
|
||||
}
|
||||
} else if (
|
||||
|
||||
Reference in New Issue
Block a user