diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index baaf0e14264..18bbe8a8c75 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -2593,7 +2593,7 @@ LayerResult GCodeGenerator::process_layer( const std::pair loops = loops_it->second; this->set_origin(0., 0.); m_avoid_crossing_perimeters.use_external_mp(); - Flow layer_skirt_flow = print.skirt_flow().with_height(float(m_skirt_done.back() - (m_skirt_done.size() == 1 ? 0. : m_skirt_done[m_skirt_done.size() - 2]))); + Flow layer_skirt_flow = print.skirt_flow(this->layer()->id() == 0).with_height(float(m_skirt_done.back() - (m_skirt_done.size() == 1 ? 0. : m_skirt_done[m_skirt_done.size() - 2]))); double mm3_per_mm = layer_skirt_flow.mm3_per_mm(); size_t i_start = loops.first; @@ -3167,6 +3167,7 @@ std::string GCodeGenerator::extrude_skirt( // Override extrusion parameters. el.path_attributes.mm3_per_mm = extrusion_flow_override.mm3_per_mm; el.path_attributes.height = extrusion_flow_override.height; + el.path_attributes.width = extrusion_flow_override.width; gcode += this->_extrude(el.path_attributes, el.path, description, speed); } diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index ddd4bef8b91..f057909b1c8 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -923,9 +923,9 @@ Flow Print::brim_flow() const (float)this->skirt_first_layer_height()); } -Flow Print::skirt_flow() const +Flow Print::skirt_flow(bool first_layer) const { - ConfigOptionFloatOrPercent width = m_config.first_layer_extrusion_width; + ConfigOptionFloatOrPercent width = first_layer ? m_config.first_layer_extrusion_width : m_default_object_config.support_material_extrusion_width; if (width.value == 0) width = m_print_regions.front()->config().perimeter_extrusion_width; if (width.value == 0) diff --git a/src/libslic3r/Print.hpp b/src/libslic3r/Print.hpp index 444e390e74b..e073072d8b2 100644 --- a/src/libslic3r/Print.hpp +++ b/src/libslic3r/Print.hpp @@ -610,7 +610,7 @@ class Print : public PrintBaseWithState std::string validate(std::vector* warnings = nullptr) const override; double skirt_first_layer_height() const; Flow brim_flow() const; - Flow skirt_flow() const; + Flow skirt_flow(bool first_layer = true) const; std::vector object_extruders() const; std::vector support_material_extruders() const; diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index f409f2806cd..4bd181aeb19 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -3141,7 +3141,7 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionInt(1)); def = this->add("support_material_extrusion_width", coFloatOrPercent); - def->label = L("Support material"); + def->label = L("Support material/Draft shield"); def->category = L("Extrusion Width"); def->tooltip = L("Set this to a non-zero value to set a manual extrusion width for support material. " "If left zero, default extrusion width will be used if set, otherwise nozzle diameter will be used. " diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 27e341f0eac..c03b6c1122c 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -324,7 +324,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig* config) for (auto el : { "support_material_style", "support_material_pattern", "support_material_with_sheath", "support_material_spacing", "support_material_angle", "support_material_interface_pattern", "support_material_interface_layers", - "dont_support_bridges", "support_material_extrusion_width", "support_material_contact_distance", + "dont_support_bridges", "support_material_contact_distance", "support_material_xy_spacing" }) toggle_field(el, have_support_material); toggle_field("support_material_threshold", have_support_material_auto);