mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-10-19 06:41:14 -06:00
Various support improvements and bugfixes (#2202)
* Organic supports: Added check for variable layer height, with which Organic supports are not compatible. Fixes prusa3d/PrusaSlicer#9528 and similar. Check the object max Z against build volume Z in Print::validate(). Cherry-picked from prusa3d/PrusaSlicer@5b94971 * Fix crash with default tree support * Show "support_critical_regions_only" only when using auto normal tree supports (#2195) * Fix organic tree check --------- Co-authored-by: Vojtech Bubnik <bubnikv@gmail.com>
This commit is contained in:
parent
e93e517561
commit
7ef43f6849
9 changed files with 177 additions and 27 deletions
|
@ -1794,7 +1794,9 @@ void generate_support_toolpaths(
|
|||
filler->link_max_length = coord_t(scale_(filler->spacing * link_max_length_factor / density));
|
||||
sheath = true;
|
||||
no_sort = true;
|
||||
} else if (config.support_style == SupportMaterialStyle::smsOrganic) {
|
||||
} else if (config.support_style == SupportMaterialStyle::smsOrganic ||
|
||||
// Orca: use organic as default
|
||||
config.support_style == smsDefault) {
|
||||
tree_supports_generate_paths(base_layer.extrusions, base_layer.polygons_to_extrude(), flow, support_params);
|
||||
done = true;
|
||||
}
|
||||
|
|
|
@ -696,6 +696,9 @@ public:
|
|||
case smsTreeSlim:
|
||||
case smsTreeStrong:
|
||||
case smsTreeHybrid:
|
||||
|
||||
// Orca: use organic as default
|
||||
case smsDefault:
|
||||
case smsOrganic:
|
||||
// assert(false);
|
||||
[[fallthrough]];
|
||||
|
|
|
@ -3530,8 +3530,10 @@ static void generate_support_areas(Print &print, const BuildVolume &build_volume
|
|||
auto t_place = std::chrono::high_resolution_clock::now();
|
||||
|
||||
// ### draw these points as circles
|
||||
|
||||
if (print_object.config().support_style.value != smsOrganic)
|
||||
|
||||
if (print_object.config().support_style.value != smsOrganic &&
|
||||
// Orca: use organic as default
|
||||
print_object.config().support_style.value != smsDefault)
|
||||
draw_areas(*print.get_object(processing.second.front()), volumes, config, overhangs, move_bounds,
|
||||
bottom_contacts, top_contacts, intermediate_layers, layer_storage, throw_on_cancel);
|
||||
else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue