FIX: FillBed crashes when accessing unset print config option

1. When the option is not set, print.full_print_config() is empty, so we
can't access opt_bool("scan_first_layer") or opt_bool("enable_support").
Should use wxGetApp().preset_bundle->full_config() instead.
Jira: STUDIO-3264
2. Allow different object having different brim_width to encode support's brim width.
In this way the arranging logic is simpler and more objects can be arranged in a plate.

Change-Id: Ic7178652147b0519d50b2eb9ceb214b4ef4c0251
(cherry picked from commit 0f163d59b40009cd29b8b1e32f730258ad0786dc)
This commit is contained in:
Arthur 2023-06-19 18:25:24 +08:00 committed by Lane.Wei
parent 9ad9ba213a
commit 4e5f4ee366
3 changed files with 15 additions and 15 deletions

View file

@ -157,6 +157,11 @@ ArrangePolygon get_instance_arrange_poly(ModelInstance* instance, const Slic3r::
}
#else
ap.brim_width = 0;
// For by-layer printing, need to shrink bed a little, so the support won't go outside bed.
// We set it to 5mm because that's how much a normal support will grow by default.
auto supp_type_ptr = obj->get_config_value<ConfigOptionBool>(config, "enable_support");
if (supp_type_ptr && supp_type_ptr->getBool())
ap.brim_width = 5.0;
#endif
ap.height = obj->bounding_box().size().z();