diff --git a/resources/ui_layout/print.ui b/resources/ui_layout/print.ui index f07e756c9..ccfaccdff 100644 --- a/resources/ui_layout/print.ui +++ b/resources/ui_layout/print.ui @@ -135,10 +135,19 @@ group:sidetext_width$3:Advanced end_line setting:only_retract_when_crossing_perimeters setting:infill_first -group:Advanced Infill - line:Ironing tuning - setting:label_width$6:width$5:sidetext_width$7:fill_smooth_width +group:Advanced Infill options + line:Ironing infill tuning setting:label_width$9:width$5:fill_smooth_distribution + setting:label$Spacing between ironing lines:width$5:sidetext_width$7:fill_smooth_width + end_line +group:Ironing post-process (This will go on top of infills and perimeters) + line:Enable ironing post-process + setting:label$_:ironing + setting:label$On:ironing_type + end_line + line:Tuning ironing + setting:ironing_flowrate + setting:ironing_spacing end_line page:Skirt & Brim:skirt+brim @@ -211,6 +220,7 @@ group:label_width$8:Speed for print moves setting:width$4:gap_fill_speed setting:width$4:thin_walls_speed end_line + setting:label$Ironing post-process speed:label_width$30:width$4:ironing_speed group:Speed for non-print moves setting:travel_speed group:Modifiers diff --git a/src/libslic3r/Fill/Fill.cpp b/src/libslic3r/Fill/Fill.cpp index 28f96d4dd..bc5789670 100644 --- a/src/libslic3r/Fill/Fill.cpp +++ b/src/libslic3r/Fill/Fill.cpp @@ -111,6 +111,7 @@ std::vector group_fills(const Layer &layer) params.extruder = layerm.region()->extruder(extrusion_role); params.pattern = layerm.region()->config().fill_pattern.value; params.density = float(layerm.region()->config().fill_density) / 100.f; + params.dont_adjust = false; if (surface.has_fill_solid()) { params.density = 1.f; @@ -408,11 +409,11 @@ void Layer::make_fills(FillAdaptive::Octree* adaptive_fill_octree, FillAdaptive: // so we can safely ignore the slight variation that might have // been applied to $f->flow_spacing } else { - surface_fill.params.flow = Flow::new_from_spacing((float)f->get_spacing(), surface_fill.params.flow.nozzle_diameter, (float)surface_fill.params.flow.height, is_bridge); + surface_fill.params.flow = Flow::new_from_spacing((float)f->get_spacing(), surface_fill.params.flow.nozzle_diameter, (float)surface_fill.params.flow.height, surface_fill.params.flow.bridge); } //apply bridge_overlap if needed - if (is_bridge && surface_fill.params.density > 99 && layerm->region()->config().bridge_overlap.get_abs_value(1) != 1) { + if (surface_fill.params.flow.bridge && surface_fill.params.density > 99 && layerm->region()->config().bridge_overlap.get_abs_value(1) != 1) { surface_fill.params.density *= float(layerm->region()->config().bridge_overlap.get_abs_value(1)); } diff --git a/src/libslic3r/Fill/FillSmooth.cpp b/src/libslic3r/Fill/FillSmooth.cpp index 79cb978a7..a23423288 100644 --- a/src/libslic3r/Fill/FillSmooth.cpp +++ b/src/libslic3r/Fill/FillSmooth.cpp @@ -131,7 +131,9 @@ namespace Slic3r { eecroot->no_sort = true; // first infill - perform_single_fill(0, *eecroot, *surface, params, volumeToOccupy); + FillParams first_pass_params = params; + first_pass_params.role = ExtrusionRole::erSolidInfill; + perform_single_fill(0, *eecroot, *surface, first_pass_params, volumeToOccupy); //use monotonous for ironing pass FillParams monotonous_params = params; diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 00afa88e8..a54490ba0 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1985,7 +1985,8 @@ void PrintConfigDef::init_fff_params() def = this->add("ironing_flowrate", coPercent); def->label = L("Flow rate"); def->category = OptionCategory::ironing; - def->tooltip = L("Percent of a flow rate relative to object's normal layer height."); + def->tooltip = L("Percent of a flow rate relative to object's normal layer height." + " It's the percentage of the layer that will be over-extruded on top to do the ironing."); def->sidetext = L("%"); def->ratio_over = "layer_height"; def->min = 0; @@ -1993,7 +1994,7 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionPercent(15)); def = this->add("ironing_spacing", coFloat); - def->label = L("Spacing between ironing passes"); + def->label = L("Spacing between ironing lines"); def->category = OptionCategory::ironing; def->tooltip = L("Distance between ironing lines"); def->sidetext = L("mm");