ENH: do not include brim_max in bed shrink

Including brim_max in bed shrink will make available area of bed be
small when an object has tree support, because this object will have
a brim_width as large as 24mm now.

Jira: MAK-2048
Change-Id: I309c0ec14e4acd75dcfc2fff0e7ea3558b43cc4c
This commit is contained in:
Arthur 2023-09-20 11:26:38 +08:00 committed by Lane.Wei
parent ddc052749c
commit 2293b33e73
2 changed files with 2 additions and 6 deletions

View file

@ -83,11 +83,9 @@ const double BIG_ITEM_TRESHOLD = 0.02;
void update_arrange_params(ArrangeParams& params, const DynamicPrintConfig& print_cfg, const ArrangePolygons& selected)
{
double skirt_distance = get_real_skirt_dist(print_cfg);
double brim_max = 0;
std::for_each(selected.begin(), selected.end(), [&](const ArrangePolygon& ap) { brim_max = std::max(brim_max, ap.brim_width); });
// Note: skirt_distance is now defined between outermost brim and skirt, not the object and skirt.
// So we can't do max but do adding instead.
params.brim_skirt_distance = skirt_distance + brim_max;
params.brim_skirt_distance = skirt_distance;
params.bed_shrink_x = params.brim_skirt_distance;
params.bed_shrink_y = params.brim_skirt_distance;
// for sequential print, we need to inflate the bed because cleareance_radius is so large

View file

@ -764,11 +764,9 @@ void update_arrange_params(arrangement::ArrangeParams &params, const Plater &p,
const GLCanvas3D::ArrangeSettings &settings = static_cast<const GLCanvas3D *>(p.canvas3D())->get_arrange_settings();
auto & print = wxGetApp().plater()->get_partplate_list().get_current_fff_print();
double skirt_distance = print.has_skirt() ? print.config().skirt_distance.value : 0;
double brim_max = 0;
std::for_each(selected.begin(), selected.end(), [&](const ArrangePolygon &ap) { brim_max = std::max(brim_max, ap.brim_width); });
// Note: skirt_distance is now defined between outermost brim and skirt, not the object and skirt.
// So we can't do max but do adding instead.
params.brim_skirt_distance = skirt_distance + brim_max;
params.brim_skirt_distance = skirt_distance;
params.bed_shrink_x = settings.bed_shrink_x + params.brim_skirt_distance;
params.bed_shrink_y = settings.bed_shrink_y + params.brim_skirt_distance;
// for sequential print, we need to inflate the bed because cleareance_radius is so large