Enable ironing and shell options for spiral vase mode (#10115)

* Enable ironing and shell options for spiral vase mode

Co-Authored-By: Kaarel Pärtel <kaarelp2rtel@gmail.com>

* Remove boolean

Co-Authored-By: Rodrigo <162915171+RF47@users.noreply.github.com>

* Tab fix

* bool has_top_shell

* Fix some missing toggle lines

* Update Fill.cpp

* unnecessary check.

Co-Authored-By: Noisyfox <timemanager.rick@gmail.com>

---------

Co-authored-by: Kaarel Pärtel <kaarelp2rtel@gmail.com>
Co-authored-by: Rodrigo <162915171+RF47@users.noreply.github.com>
Co-authored-by: Noisyfox <timemanager.rick@gmail.com>
This commit is contained in:
Ian Bassi
2025-07-14 10:17:13 -03:00
committed by GitHub
parent bf52f5b4bf
commit f45155a966
2 changed files with 8 additions and 8 deletions

View File

@@ -1303,10 +1303,10 @@ void Layer::make_ironing()
IroningParams ironing_params;
const PrintRegionConfig &config = layerm->region().config();
if (config.ironing_type != IroningType::NoIroning &&
(config.ironing_type == IroningType::AllSolid ||
(config.top_shell_layers > 0 &&
(config.ironing_type == IroningType::TopSurfaces ||
(config.ironing_type == IroningType::TopmostOnly && layerm->layer()->upper_layer == nullptr))))) {
(config.ironing_type == IroningType::AllSolid ||
((config.top_shell_layers > 0 || (this->object()->print()->config().spiral_mode && config.bottom_shell_layers > 1)) &&
(config.ironing_type == IroningType::TopSurfaces ||
(config.ironing_type == IroningType::TopmostOnly && layerm->layer()->upper_layer == nullptr))))) {
if (config.wall_filament == config.solid_infill_filament || config.wall_loops == 0) {
// Iron the whole face.
ironing_params.extruder = config.solid_infill_filament;
@@ -1388,7 +1388,7 @@ void Layer::make_ironing()
polygons_append(polys, surface.expolygon);
} else {
for (const Surface &surface : ironing_params.layerm->slices.surfaces)
if ((surface.surface_type == stTop && region_config.top_shell_layers > 0) || (iron_everything && surface.surface_type == stBottom && region_config.bottom_shell_layers > 0))
if ((surface.surface_type == stTop && (region_config.top_shell_layers > 0 || this->object()->print()->config().spiral_mode)) || (iron_everything && surface.surface_type == stBottom && region_config.bottom_shell_layers > 0))
// stBottomBridge is not being ironed on purpose, as it would likely destroy the bridges.
polygons_append(polys, surface.expolygon);
}