Trimming support base layer with brim.

Fixes Brim destroyed by support aka. Enable supports on top of brim #1156
Fixes Brim Priority/Support on Brim #713
Fixes Phantom Support columns interfere with brim #3396
Fixes false generation of brim when supports are used #3395

This is a work in progress, as the brim generator currently produces
different brim areas from what the support generator expects.
This commit is contained in:
Vojtech Bubnik 2021-02-23 14:43:47 +01:00
parent 8ba230db9f
commit 055d2321e7
5 changed files with 60 additions and 19 deletions

View file

@ -171,12 +171,6 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|| opt_key == "wipe_tower_y"
|| opt_key == "wipe_tower_rotation_angle") {
steps.emplace_back(psSkirt);
} else if (
opt_key == "brim_width"
|| opt_key == "brim_offset"
|| opt_key == "brim_type") {
steps.emplace_back(psBrim);
steps.emplace_back(psSkirt);
} else if (
opt_key == "nozzle_diameter"
|| opt_key == "resolution"
@ -1191,8 +1185,7 @@ bool Print::has_skirt() const
bool Print::has_brim() const
{
return std::any_of(m_objects.begin(), m_objects.end(),
[](PrintObject *object) { return object->config().brim_type != btNoBrim && object->config().brim_width.value > 0.; });
return std::any_of(m_objects.begin(), m_objects.end(), [](PrintObject *object) { return object->has_brim(); });
}
static inline bool sequential_print_horizontal_clearance_valid(const Print &print)