From c5283c98372942ae7830406a088d31270b643968 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 29 May 2026 11:40:39 +0200 Subject: [PATCH 1/7] Apply extra skin wall based on actual wall count CURA-12446 --- include/FffGcodeWriter.h | 4 +++- include/LayerPlan.h | 2 ++ src/FffGcodeWriter.cpp | 17 ++++++++++++----- src/LayerPlan.cpp | 5 +++++ src/sliceDataStorage.cpp | 3 +-- 5 files changed, 23 insertions(+), 8 deletions(-) diff --git a/include/FffGcodeWriter.h b/include/FffGcodeWriter.h index 0da487aaec..a7b0ca335c 100644 --- a/include/FffGcodeWriter.h +++ b/include/FffGcodeWriter.h @@ -114,6 +114,7 @@ class FffGcodeWriter : public NoCopy std::string extruder_nr; std::string pattern; std::string monotonic; + std::string wall_count; }; /*! Helper structure to pre-process then later add the optimized insets */ @@ -466,7 +467,7 @@ class FffGcodeWriter : public NoCopy const SliceMeshStorage& mesh, const size_t extruder_nr, const MeshPathConfigs& mesh_config, - SliceLayerPart& part, + const SliceLayerPart& part, const bool infill_added) const; /*! @@ -604,6 +605,7 @@ class FffGcodeWriter : public NoCopy const coord_t skin_overlap, const Ratio skin_density, const LinesOrderingMethod ordering, + const size_t wall_line_count, const bool is_roofing_flooring, bool& added_something, double fan_speed = GCodePathConfig::FAN_SPEED_DEFAULT, diff --git a/include/LayerPlan.h b/include/LayerPlan.h index 1e13ef4ffa..c1c19d03c8 100644 --- a/include/LayerPlan.h +++ b/include/LayerPlan.h @@ -257,6 +257,8 @@ class LayerPlan : public NoCopy LayerIndex getLayerNr() const; + bool isInitialLayer() const; + /*! * Get the last planned position, or if no position has been planned yet, the user specified layer start position. * diff --git a/src/FffGcodeWriter.cpp b/src/FffGcodeWriter.cpp index 510488e7e7..66010fdaca 100644 --- a/src/FffGcodeWriter.cpp +++ b/src/FffGcodeWriter.cpp @@ -44,8 +44,10 @@ namespace cura { -const FffGcodeWriter::RoofingFlooringSettingsNames FffGcodeWriter::roofing_settings_names = { "roofing_extruder_nr", "roofing_pattern", "roofing_monotonic" }; -const FffGcodeWriter::RoofingFlooringSettingsNames FffGcodeWriter::flooring_settings_names = { "flooring_extruder_nr", "flooring_pattern", "flooring_monotonic" }; +const FffGcodeWriter::RoofingFlooringSettingsNames FffGcodeWriter::roofing_settings_names + = { "roofing_extruder_nr", "roofing_pattern", "roofing_monotonic", "wall_line_count_roofing" }; +const FffGcodeWriter::RoofingFlooringSettingsNames FffGcodeWriter::flooring_settings_names + = { "flooring_extruder_nr", "flooring_pattern", "flooring_monotonic", "wall_line_count_flooring" }; FffGcodeWriter::FffGcodeWriter() : max_object_height(0) @@ -2879,7 +2881,7 @@ bool FffGcodeWriter::endProcessInsets( const SliceMeshStorage& mesh, const size_t extruder_nr, const MeshPathConfigs& mesh_config, - SliceLayerPart& part, + const SliceLayerPart& part, const bool infill_added) const { if (preprocess_result.spiralize) @@ -3076,6 +3078,7 @@ void FffGcodeWriter::processRoofingFlooring( const Ratio skin_density = 1.0; const coord_t skin_overlap = 0; // skinfill already expanded over the roofing areas; don't overlap with perimeters const LinesOrderingMethod ordering = mesh.settings.get(settings_names.monotonic) ? LinesOrderingMethod::Monotonic : LinesOrderingMethod::Basic; + const size_t wall_line_count = mesh.settings.get(settings_names.wall_count); constexpr bool is_roofing_flooring = true; processSkinPrintFeature( storage, @@ -3089,6 +3092,7 @@ void FffGcodeWriter::processRoofingFlooring( skin_overlap, skin_density, ordering, + wall_line_count, is_roofing_flooring, added_something); } @@ -3275,6 +3279,7 @@ void FffGcodeWriter::processTopBottom( } constexpr bool is_roofing_flooring = false; + const size_t wall_line_count = mesh.settings.get(gcode_layer.isInitialLayer() ? "wall_line_count_layer_0" : "wall_line_count_inside_skin"); processSkinPrintFeature( storage, gcode_layer, @@ -3287,6 +3292,7 @@ void FffGcodeWriter::processTopBottom( skin_overlap, skin_density, ordering, + wall_line_count, is_roofing_flooring, added_something, fan_speed, @@ -3305,6 +3311,7 @@ void FffGcodeWriter::processSkinPrintFeature( const coord_t skin_overlap, const Ratio skin_density, const LinesOrderingMethod ordering, + const size_t wall_line_count, const bool is_roofing_flooring, bool& added_something, double fan_speed, @@ -3316,7 +3323,6 @@ void FffGcodeWriter::processSkinPrintFeature( constexpr int infill_multiplier = 1; constexpr int extra_infill_shift = 0; - const size_t wall_line_count = mesh.settings.get("skin_outline_count"); const bool zig_zaggify_infill = pattern == EFillMethod::ZIG_ZAG; const bool connect_polygons = mesh.settings.get("connect_skin_polygons"); coord_t max_resolution = mesh.settings.get("meshfix_maximum_resolution"); @@ -3335,6 +3341,7 @@ void FffGcodeWriter::processSkinPrintFeature( = forced_small_area_width.value_or((small_areas_on_surface || ! is_roofing_flooring) ? mesh.settings.get("small_skin_width") : line_width / 4); const auto& current_layer = mesh.layers[gcode_layer.getLayerNr()]; const auto& exposed_to_air = current_layer.top_surface.areas.unionPolygons(current_layer.bottom_surface); + const size_t extra_wall_count = static_cast(std::max(0, static_cast(wall_line_count) - mesh.settings.get("wall_line_count"))); Infill infill_comp( pattern, @@ -3350,7 +3357,7 @@ void FffGcodeWriter::processSkinPrintFeature( extra_infill_shift, max_resolution, max_deviation, - wall_line_count, + extra_wall_count, small_area_width, infill_origin, skip_line_stitching, diff --git a/src/LayerPlan.cpp b/src/LayerPlan.cpp index 18993faffc..9ed624e749 100644 --- a/src/LayerPlan.cpp +++ b/src/LayerPlan.cpp @@ -4120,6 +4120,11 @@ LayerIndex LayerPlan::getLayerNr() const return layer_nr_; } +bool LayerPlan::isInitialLayer() const +{ + return is_initial_layer_; +} + Point2LL LayerPlan::getLastPlannedPositionOrStartingPosition() const { return last_planned_position_.value_or(layer_start_pos_per_extruder_[getExtruder()]).toPoint2LL(); diff --git a/src/sliceDataStorage.cpp b/src/sliceDataStorage.cpp index 6f2e0981ee..2d7af164bf 100644 --- a/src/sliceDataStorage.cpp +++ b/src/sliceDataStorage.cpp @@ -169,8 +169,7 @@ bool SliceMeshStorage::getExtruderIsUsed(const size_t extruder_nr, const LayerIn return false; } const SliceLayer& layer = layers[layer_nr]; - if (settings.get("wall_0_extruder_nr").extruder_nr_ == extruder_nr - && (settings.get("wall_line_count") > 0 || settings.get("skin_outline_count") > 0)) + if (settings.get("wall_0_extruder_nr").extruder_nr_ == extruder_nr && settings.get("wall_line_count") > 0) { for (const SliceLayerPart& part : layer.parts) { From e5dfe7e5d70a5defac09aca046abab5f54ec2c3a Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 29 May 2026 17:02:08 +0200 Subject: [PATCH 2/7] Apply variable wall line counts CURA-12446 --- include/FffGcodeWriter.h | 10 ++++- include/WallsComputation.h | 2 +- include/infill/LightningGenerator.h | 22 ++++++++-- include/sliceDataStorage.h | 6 +++ src/FffGcodeWriter.cpp | 67 ++++++++++++++++++++--------- src/FffPolygonGenerator.cpp | 30 +++++++++++++ src/WallsComputation.cpp | 23 +++------- src/infill/LightningGenerator.cpp | 25 +++++++---- src/skin.cpp | 2 +- 9 files changed, 135 insertions(+), 52 deletions(-) diff --git a/include/FffGcodeWriter.h b/include/FffGcodeWriter.h index a7b0ca335c..2b4002a3f7 100644 --- a/include/FffGcodeWriter.h +++ b/include/FffGcodeWriter.h @@ -114,7 +114,6 @@ class FffGcodeWriter : public NoCopy std::string extruder_nr; std::string pattern; std::string monotonic; - std::string wall_count; }; /*! Helper structure to pre-process then later add the optimized insets */ @@ -330,6 +329,7 @@ class FffGcodeWriter : public NoCopy void addMeshLayerToGCode( const SliceDataStorage& storage, const std::shared_ptr& mesh_ptr, + const SliceLayer& slice_layer, const size_t extruder_nr, const MeshPathConfigs& mesh_config, LayerPlan& gcode_layer) const; @@ -349,6 +349,7 @@ class FffGcodeWriter : public NoCopy void addMeshPartToGCode( const SliceDataStorage& storage, const SliceMeshStorage& mesh, + const SliceLayer& slice_layer, const size_t extruder_nr, const MeshPathConfigs& mesh_config, SliceLayerPart& part, @@ -370,6 +371,7 @@ class FffGcodeWriter : public NoCopy const SliceDataStorage& storage, LayerPlan& gcodeLayer, const SliceMeshStorage& mesh, + const SliceLayer& slice_layer, const size_t extruder_nr, const MeshPathConfigs& mesh_config, const SliceLayerPart& part, @@ -394,6 +396,7 @@ class FffGcodeWriter : public NoCopy bool processMultiLayerInfill( LayerPlan& gcodeLayer, const SliceMeshStorage& mesh, + const SliceLayer& slice_layer, const size_t extruder_nr, const MeshPathConfigs& mesh_config, const SliceLayerPart& part, @@ -420,6 +423,7 @@ class FffGcodeWriter : public NoCopy const SliceDataStorage& storage, LayerPlan& gcodeLayer, const SliceMeshStorage& mesh, + const SliceLayer& slice_layer, const size_t extruder_nr, const MeshPathConfigs& mesh_config, const SliceLayerPart& part, @@ -497,6 +501,7 @@ class FffGcodeWriter : public NoCopy const SliceDataStorage& storage, LayerPlan& gcode_layer, const SliceMeshStorage& mesh, + const SliceLayer& slice_layer, const size_t extruder_nr, const MeshPathConfigs& mesh_config, const SliceLayerPart& part) const; @@ -526,6 +531,7 @@ class FffGcodeWriter : public NoCopy const SliceDataStorage& storage, LayerPlan& gcode_layer, const SliceMeshStorage& mesh, + const SliceLayer& slice_layer, const size_t extruder_nr, const MeshPathConfigs& mesh_config, const SkinPart& skin_part) const; @@ -547,6 +553,7 @@ class FffGcodeWriter : public NoCopy const SliceMeshStorage& mesh, const size_t extruder_nr, const RoofingFlooringSettingsNames& settings_names, + const size_t wall_line_count, const Shape& fill, const GCodePathConfig& config, const std::vector& angles, @@ -568,6 +575,7 @@ class FffGcodeWriter : public NoCopy const SliceDataStorage& storage, LayerPlan& gcode_layer, const SliceMeshStorage& mesh, + const SliceLayer& slice_layer, const size_t extruder_nr, const MeshPathConfigs& mesh_config, const Shape& skin_fill, diff --git a/include/WallsComputation.h b/include/WallsComputation.h index 868ec0472b..c7fa1f1867 100644 --- a/include/WallsComputation.h +++ b/include/WallsComputation.h @@ -57,7 +57,7 @@ class WallsComputation * * \param part The part for which to generate the insets. */ - void generateWalls(SliceLayerPart* part, SectionType section); + void generateWalls(const SliceLayer* layer, SliceLayerPart* part, SectionType section); /*! * Generates the outer inset / perimeter used in spiralize mode for a single layer part. The spiral inset is diff --git a/include/infill/LightningGenerator.h b/include/infill/LightningGenerator.h index 3f8ffdd7dd..83cdc96897 100644 --- a/include/infill/LightningGenerator.h +++ b/include/infill/LightningGenerator.h @@ -15,6 +15,7 @@ namespace cura { class SliceMeshStorage; class SupportStorage; +class SliceLayer; /*! * Generates the Lightning Infill pattern. @@ -68,6 +69,21 @@ class LightningGenerator // "Just like Nicola used to make!" const LightningLayer& getTreesForLayer(const size_t& layer_id) const; protected: + struct WallLineCount : std::variant*> + { + WallLineCount(const size_t fixed_count) + : std::variant*>(fixed_count) + { + } + + WallLineCount(const std::vector* variable_count) + : std::variant*>(variable_count) + { + } + + size_t getCountAt(const size_t layer_nr) const; + }; + /*! * Generate the lightning infill for the given areas with the given settings * @param layer_thickness The actual layer thickness @@ -82,7 +98,7 @@ class LightningGenerator // "Just like Nicola used to make!" void generate( const coord_t layer_thickness, const coord_t line_width, - const coord_t wall_line_count, + const WallLineCount& wall_line_count, const coord_t line_distance, const AngleRadians& overhang_angle, const AngleRadians& prune_angle, @@ -97,12 +113,12 @@ class LightningGenerator // "Just like Nicola used to make!" * only when support is generated. For this pattern, we also need to * generate overhang areas for the inside of the model. */ - void generateInitialInternalOverhangs(const coord_t infill_line_width, const coord_t infill_wall_line_count, const std::vector& areas_per_layer); + void generateInitialInternalOverhangs(const coord_t infill_line_width, const WallLineCount& infill_wall_line_count, const std::vector& areas_per_layer); /*! * Calculate the tree structure of all layers. */ - void generateTrees(const coord_t infill_line_width, const coord_t infill_wall_line_count, const std::vector& areas_per_layer); + void generateTrees(const coord_t infill_line_width, const WallLineCount& infill_wall_line_count, const std::vector& areas_per_layer); /*! * How far each piece of infill can support skin in the layer above. diff --git a/include/sliceDataStorage.h b/include/sliceDataStorage.h index 64c5939dc5..8a42111375 100644 --- a/include/sliceDataStorage.h +++ b/include/sliceDataStorage.h @@ -184,6 +184,12 @@ class SliceLayer */ Shape bottom_surface; + size_t outer_wall_count{ 0 }; + size_t extra_wall_count_infill{ 0 }; + size_t extra_wall_count_skin{ 0 }; + size_t extra_wall_count_flooring{ 0 }; + size_t extra_wall_count_roofing{ 0 }; + /*! * Get the all outlines of all layer parts in this layer. * diff --git a/src/FffGcodeWriter.cpp b/src/FffGcodeWriter.cpp index 66010fdaca..66ccb2e09b 100644 --- a/src/FffGcodeWriter.cpp +++ b/src/FffGcodeWriter.cpp @@ -44,10 +44,8 @@ namespace cura { -const FffGcodeWriter::RoofingFlooringSettingsNames FffGcodeWriter::roofing_settings_names - = { "roofing_extruder_nr", "roofing_pattern", "roofing_monotonic", "wall_line_count_roofing" }; -const FffGcodeWriter::RoofingFlooringSettingsNames FffGcodeWriter::flooring_settings_names - = { "flooring_extruder_nr", "flooring_pattern", "flooring_monotonic", "wall_line_count_flooring" }; +const FffGcodeWriter::RoofingFlooringSettingsNames FffGcodeWriter::roofing_settings_names = { "roofing_extruder_nr", "roofing_pattern", "roofing_monotonic" }; +const FffGcodeWriter::RoofingFlooringSettingsNames FffGcodeWriter::flooring_settings_names = { "flooring_extruder_nr", "flooring_pattern", "flooring_monotonic" }; FffGcodeWriter::FffGcodeWriter() : max_object_height(0) @@ -1262,6 +1260,7 @@ FffGcodeWriter::ProcessLayerResult FffGcodeWriter::processLayer(const SliceDataS { const std::shared_ptr& mesh = storage.meshes[mesh_idx]; const MeshPathConfigs& mesh_config = gcode_layer.configs_storage_.mesh_configs[mesh_idx]; + const SliceLayer& slice_layer = mesh->layers[layer_nr]; if (mesh->settings.get("magic_mesh_surface_mode") == ESurfaceMode::SURFACE && extruder_nr == mesh->settings.get("wall_0_extruder_nr").extruder_nr_ // mesh surface mode should always only be printed with the outer wall extruder! @@ -1271,7 +1270,7 @@ FffGcodeWriter::ProcessLayerResult FffGcodeWriter::processLayer(const SliceDataS } else { - addMeshLayerToGCode(storage, mesh, extruder_nr, mesh_config, gcode_layer); + addMeshLayerToGCode(storage, mesh, slice_layer, extruder_nr, mesh_config, gcode_layer); } time_keeper.registerTime(fmt::format("Mesh {}", mesh->mesh_name)); } @@ -1767,6 +1766,7 @@ void FffGcodeWriter::addMeshOpenPolyLinesToGCode(const SliceMeshStorage& mesh, c void FffGcodeWriter::addMeshLayerToGCode( const SliceDataStorage& storage, const std::shared_ptr& mesh_ptr, + const SliceLayer& slice_layer, const size_t extruder_nr, const MeshPathConfigs& mesh_config, LayerPlan& gcode_layer) const @@ -1814,7 +1814,7 @@ void FffGcodeWriter::addMeshLayerToGCode( for (const PathOrdering& path : part_order_optimizer.paths_) { - addMeshPartToGCode(storage, mesh, extruder_nr, mesh_config, *path.vertices_, gcode_layer); + addMeshPartToGCode(storage, mesh, slice_layer, extruder_nr, mesh_config, *path.vertices_, gcode_layer); } const std::string extruder_identifier = (mesh.settings.get("roofing_layer_count") > 0) ? "roofing_extruder_nr" : "top_bottom_extruder_nr"; @@ -1832,6 +1832,7 @@ void FffGcodeWriter::addMeshLayerToGCode( void FffGcodeWriter::addMeshPartToGCode( const SliceDataStorage& storage, const SliceMeshStorage& mesh, + const SliceLayer& slice_layer, const size_t extruder_nr, const MeshPathConfigs& mesh_config, SliceLayerPart& part, @@ -1856,7 +1857,7 @@ void FffGcodeWriter::addMeshPartToGCode( near_end_location = insets_preprocess_result.walls_optimizer->getStartPosition(); } - infill_added = processInfill(storage, gcode_layer, mesh, extruder_nr, mesh_config, part, near_end_location); + infill_added = processInfill(storage, gcode_layer, mesh, slice_layer, extruder_nr, mesh_config, part, near_end_location); added_something = added_something | infill_added; } @@ -1864,10 +1865,10 @@ void FffGcodeWriter::addMeshPartToGCode( if (! infill_before_walls) { - added_something = added_something | processInfill(storage, gcode_layer, mesh, extruder_nr, mesh_config, part); + added_something = added_something | processInfill(storage, gcode_layer, mesh, slice_layer, extruder_nr, mesh_config, part); } - added_something = added_something | processSkin(storage, gcode_layer, mesh, extruder_nr, mesh_config, part); + added_something = added_something | processSkin(storage, gcode_layer, mesh, slice_layer, extruder_nr, mesh_config, part); // After a layer part, make sure the nozzle is inside the comb boundary, so we do not retract on the perimeter. if (added_something && (! mesh_group_settings.get("magic_spiralize") || gcode_layer.getLayerNr() < LayerIndex(mesh.settings.get("initial_bottom_layers")))) @@ -1887,6 +1888,7 @@ bool FffGcodeWriter::processInfill( const SliceDataStorage& storage, LayerPlan& gcode_layer, const SliceMeshStorage& mesh, + const SliceLayer& slice_layer, const size_t extruder_nr, const MeshPathConfigs& mesh_config, const SliceLayerPart& part, @@ -1900,15 +1902,34 @@ bool FffGcodeWriter::processInfill( const coord_t infill_start_move_inwards_length = mesh.settings.get("infill_start_move_inwards_length"); const coord_t infill_end_move_inwards_length = mesh.settings.get("infill_end_move_inwards_length"); - const bool added_something - = processMultiLayerInfill(gcode_layer, mesh, extruder_nr, mesh_config, part, infill_start_move_inwards_length, infill_end_move_inwards_length, near_end_location) - | processSingleLayerInfill(storage, gcode_layer, mesh, extruder_nr, mesh_config, part, infill_start_move_inwards_length, infill_end_move_inwards_length, near_end_location); + const bool added_something = processMultiLayerInfill( + gcode_layer, + mesh, + slice_layer, + extruder_nr, + mesh_config, + part, + infill_start_move_inwards_length, + infill_end_move_inwards_length, + near_end_location) + | processSingleLayerInfill( + storage, + gcode_layer, + mesh, + slice_layer, + extruder_nr, + mesh_config, + part, + infill_start_move_inwards_length, + infill_end_move_inwards_length, + near_end_location); return added_something; } bool FffGcodeWriter::processMultiLayerInfill( LayerPlan& gcode_layer, const SliceMeshStorage& mesh, + const SliceLayer& slice_layer, const size_t extruder_nr, const MeshPathConfigs& mesh_config, const SliceLayerPart& part, @@ -2098,6 +2119,7 @@ bool FffGcodeWriter::processSingleLayerInfill( const SliceDataStorage& storage, LayerPlan& gcode_layer, const SliceMeshStorage& mesh, + const SliceLayer& slice_layer, const size_t extruder_nr, const MeshPathConfigs& mesh_config, const SliceLayerPart& part, @@ -2129,7 +2151,7 @@ bool FffGcodeWriter::processSingleLayerInfill( const bool connect_polygons = mesh.settings.get("connect_infill_polygons"); const auto infill_overlap = mesh.settings.get("infill_overlap_mm"); const auto infill_multiplier = mesh.settings.get("infill_multiplier"); - const auto wall_line_count = mesh.settings.get("infill_wall_line_count"); + const auto wall_line_count = slice_layer.extra_wall_count_infill; const size_t last_idx = part.infill_area_per_combine_per_density.size() - 1; const auto max_resolution = mesh.settings.get("meshfix_maximum_resolution"); const auto max_deviation = mesh.settings.get("meshfix_maximum_deviation"); @@ -2170,7 +2192,7 @@ bool FffGcodeWriter::processSingleLayerInfill( if (! infill_below_skin.empty()) { - const auto infill_wall_line_count = static_cast(mesh.settings.get("infill_wall_line_count")); + const auto infill_wall_line_count = mesh.layers[gcode_layer.getLayerNr()].extra_wall_count_infill; const coord_t infill_wall_offset = -infill_wall_line_count * infill_line_width; const Shape infill_contour = part.infill_area.offset(-(infill_line_width / 2) + infill_overlap + infill_wall_offset); const LayerPlan* completed_layer_below = layer_plan_buffer.getCompletedLayerPlan(gcode_layer.getLayerNr() - 1); @@ -2979,6 +3001,7 @@ bool FffGcodeWriter::processSkin( const SliceDataStorage& storage, LayerPlan& gcode_layer, const SliceMeshStorage& mesh, + const SliceLayer& slice_layer, const size_t extruder_nr, const MeshPathConfigs& mesh_config, const SliceLayerPart& part) const @@ -3007,7 +3030,7 @@ bool FffGcodeWriter::processSkin( { const SkinPart& skin_part = *path.vertices_; - added_something = added_something | processSkinPart(storage, gcode_layer, mesh, extruder_nr, mesh_config, skin_part); + added_something = added_something | processSkinPart(storage, gcode_layer, mesh, slice_layer, extruder_nr, mesh_config, skin_part); } return added_something; @@ -3017,6 +3040,7 @@ bool FffGcodeWriter::processSkinPart( const SliceDataStorage& storage, LayerPlan& gcode_layer, const SliceMeshStorage& mesh, + const SliceLayer& slice_layer, const size_t extruder_nr, const MeshPathConfigs& mesh_config, const SkinPart& skin_part) const @@ -3028,6 +3052,7 @@ bool FffGcodeWriter::processSkinPart( mesh, extruder_nr, roofing_settings_names, + slice_layer.extra_wall_count_roofing, skin_part.roofing_fill, mesh_config.roofing_config, mesh.roofing_angles, @@ -3038,11 +3063,12 @@ bool FffGcodeWriter::processSkinPart( mesh, extruder_nr, flooring_settings_names, + slice_layer.extra_wall_count_flooring, skin_part.flooring_fill, mesh_config.flooring_config, mesh.flooring_angles, added_something); - processTopBottom(storage, gcode_layer, mesh, extruder_nr, mesh_config, skin_part.skin_fill, added_something); + processTopBottom(storage, gcode_layer, mesh, slice_layer, extruder_nr, mesh_config, skin_part.skin_fill, added_something); return added_something; } @@ -3052,6 +3078,7 @@ void FffGcodeWriter::processRoofingFlooring( const SliceMeshStorage& mesh, const size_t extruder_nr, const RoofingFlooringSettingsNames& settings_names, + const size_t wall_line_count, const Shape& fill, const GCodePathConfig& config, const std::vector& angles, @@ -3078,7 +3105,6 @@ void FffGcodeWriter::processRoofingFlooring( const Ratio skin_density = 1.0; const coord_t skin_overlap = 0; // skinfill already expanded over the roofing areas; don't overlap with perimeters const LinesOrderingMethod ordering = mesh.settings.get(settings_names.monotonic) ? LinesOrderingMethod::Monotonic : LinesOrderingMethod::Basic; - const size_t wall_line_count = mesh.settings.get(settings_names.wall_count); constexpr bool is_roofing_flooring = true; processSkinPrintFeature( storage, @@ -3101,6 +3127,7 @@ void FffGcodeWriter::processTopBottom( const SliceDataStorage& storage, LayerPlan& gcode_layer, const SliceMeshStorage& mesh, + const SliceLayer& slice_layer, const size_t extruder_nr, const MeshPathConfigs& mesh_config, const Shape& skin_fill, @@ -3279,7 +3306,6 @@ void FffGcodeWriter::processTopBottom( } constexpr bool is_roofing_flooring = false; - const size_t wall_line_count = mesh.settings.get(gcode_layer.isInitialLayer() ? "wall_line_count_layer_0" : "wall_line_count_inside_skin"); processSkinPrintFeature( storage, gcode_layer, @@ -3292,7 +3318,7 @@ void FffGcodeWriter::processTopBottom( skin_overlap, skin_density, ordering, - wall_line_count, + slice_layer.extra_wall_count_skin, is_roofing_flooring, added_something, fan_speed, @@ -3341,7 +3367,6 @@ void FffGcodeWriter::processSkinPrintFeature( = forced_small_area_width.value_or((small_areas_on_surface || ! is_roofing_flooring) ? mesh.settings.get("small_skin_width") : line_width / 4); const auto& current_layer = mesh.layers[gcode_layer.getLayerNr()]; const auto& exposed_to_air = current_layer.top_surface.areas.unionPolygons(current_layer.bottom_surface); - const size_t extra_wall_count = static_cast(std::max(0, static_cast(wall_line_count) - mesh.settings.get("wall_line_count"))); Infill infill_comp( pattern, @@ -3357,7 +3382,7 @@ void FffGcodeWriter::processSkinPrintFeature( extra_infill_shift, max_resolution, max_deviation, - extra_wall_count, + wall_line_count, small_area_width, infill_origin, skip_line_stitching, diff --git a/src/FffPolygonGenerator.cpp b/src/FffPolygonGenerator.cpp index 0cf8ada600..c72dc28702 100644 --- a/src/FffPolygonGenerator.cpp +++ b/src/FffPolygonGenerator.cpp @@ -740,6 +740,36 @@ void FffPolygonGenerator::processDerivedWallsSkinInfill(SliceMeshStorage& mesh) void FffPolygonGenerator::processWalls(SliceMeshStorage& mesh, size_t layer_nr) { SliceLayer* layer = &mesh.layers[layer_nr]; + + const bool first_layer = layer_nr == 0; + layer->outer_wall_count = mesh.settings.get(first_layer ? "wall_line_count_layer_0" : "wall_line_count"); + + const bool spiralize = mesh.settings.get("magic_spiralize"); + const size_t alternate = ((layer_nr % 2) + 2) % 2; + if (spiralize && layer_nr < LayerIndex(mesh.settings.get("initial_bottom_layers")) + && alternate == 1) // Add extra insets every 2 layers when spiralizing. This makes bottoms of cups watertight. + { + layer->outer_wall_count += 5; + } + if (mesh.settings.get("alternate_extra_perimeter")) + { + layer->outer_wall_count += alternate; + } + + if (! first_layer) + { + const size_t wall_line_count_inside_skin = mesh.settings.get("wall_line_count_inside_skin"); + const size_t wall_line_count_roofing = mesh.settings.get("wall_line_count_roofing"); + const size_t wall_line_count_flooring = mesh.settings.get("wall_line_count_flooring"); + const size_t infill_wall_line_count = mesh.settings.get("infill_wall_line_count"); + + layer->outer_wall_count = std::min({ layer->outer_wall_count, wall_line_count_inside_skin, wall_line_count_roofing, wall_line_count_flooring, infill_wall_line_count }); + layer->extra_wall_count_infill = infill_wall_line_count - layer->outer_wall_count; + layer->extra_wall_count_skin = wall_line_count_inside_skin - layer->outer_wall_count; + layer->extra_wall_count_flooring = wall_line_count_flooring - layer->outer_wall_count; + layer->extra_wall_count_roofing = wall_line_count_roofing - layer->outer_wall_count; + } + WallsComputation walls_computation(mesh.settings, layer_nr); walls_computation.generateWalls(layer, SectionType::WALL); } diff --git a/src/WallsComputation.cpp b/src/WallsComputation.cpp index f75c89defa..3923bd5378 100644 --- a/src/WallsComputation.cpp +++ b/src/WallsComputation.cpp @@ -35,29 +35,18 @@ WallsComputation::WallsComputation(const Settings& settings, const LayerIndex la * * generateWalls only reads and writes data for the current layer */ -void WallsComputation::generateWalls(SliceLayerPart* part, SectionType section_type) +void WallsComputation::generateWalls(const SliceLayer* layer, SliceLayerPart* part, SectionType section_type) { - size_t wall_count = settings_.get("wall_line_count"); - if (wall_count == 0) // Early out if no walls are to be generated + if (layer->outer_wall_count == 0) // Early out if no walls are to be generated { part->print_outline = part->outline; part->inner_area = part->outline; return; } + const bool first_layer = layer_nr_ == 0; const bool spiralize = settings_.get("magic_spiralize"); - const size_t alternate = ((layer_nr_ % 2) + 2) % 2; - if (spiralize && layer_nr_ < LayerIndex(settings_.get("initial_bottom_layers")) - && alternate == 1) // Add extra insets every 2 layers when spiralizing. This makes bottoms of cups watertight. - { - wall_count += 5; - } - if (settings_.get("alternate_extra_perimeter")) - { - wall_count += alternate; - } - const bool first_layer = layer_nr_ == 0; const Ratio line_width_0_factor = first_layer ? settings_.get("wall_0_extruder_nr").settings_.get("initial_layer_line_width_factor") : 1.0_r; const coord_t line_width_0 = settings_.get("wall_line_width_0") * line_width_0_factor; const coord_t wall_0_inset = settings_.get("wall_0_inset"); @@ -73,14 +62,14 @@ void WallsComputation::generateWalls(SliceLayerPart* part, SectionType section_t generateSpiralInsets(part, line_width_0, wall_0_inset, recompute_outline_based_on_outer_wall); if (layer_nr_ <= static_cast(settings_.get("initial_bottom_layers"))) { - WallToolPaths wall_tool_paths(part->outline, line_width_0, line_width_x, wall_count, wall_0_inset, settings_, layer_nr_, section_type); + WallToolPaths wall_tool_paths(part->outline, line_width_0, line_width_x, layer->outer_wall_count, wall_0_inset, settings_, layer_nr_, section_type); part->wall_toolpaths = wall_tool_paths.getToolPaths(); part->inner_area = wall_tool_paths.getInnerContour(); } } else { - WallToolPaths wall_tool_paths(part->outline, line_width_0, line_width_x, wall_count, wall_0_inset, settings_, layer_nr_, section_type); + WallToolPaths wall_tool_paths(part->outline, line_width_0, line_width_x, layer->outer_wall_count, wall_0_inset, settings_, layer_nr_, section_type); part->wall_toolpaths = wall_tool_paths.getToolPaths(); part->inner_area = wall_tool_paths.getInnerContour(); } @@ -99,7 +88,7 @@ void WallsComputation::generateWalls(SliceLayer* layer, SectionType section) { for (SliceLayerPart& part : layer->parts) { - generateWalls(&part, section); + generateWalls(layer, &part, section); } // Remove the parts which did not generate a wall. As these parts are too small to print, diff --git a/src/infill/LightningGenerator.cpp b/src/infill/LightningGenerator.cpp index 5bcbbc1606..96e353c759 100644 --- a/src/infill/LightningGenerator.cpp +++ b/src/infill/LightningGenerator.cpp @@ -28,13 +28,22 @@ using namespace cura; +size_t LightningGenerator::WallLineCount::getCountAt(const size_t layer_nr) const +{ + if (std::holds_alternative(*this)) + { + return std::get(*this); + } + + return std::get*>(*this)->at(layer_nr).extra_wall_count_infill; +} + LightningGenerator::LightningGenerator(const SliceMeshStorage& mesh) { const auto infill_extruder = mesh.settings.get("infill_extruder_nr"); const auto layer_thickness = infill_extruder.settings_.get( "layer_height"); // Note: There's not going to be a layer below the first one, so the 'initial layer height' doesn't have to be taken into account. const auto infill_line_width = infill_extruder.settings_.get("infill_line_width"); - const auto infill_wall_line_count = static_cast(mesh.settings.get("infill_wall_line_count")); const auto line_distance = infill_extruder.settings_.get("infill_line_distance"); const auto overhang_angle = infill_extruder.settings_.get("lightning_infill_overhang_angle"); const auto prune_angle = infill_extruder.settings_.get("lightning_infill_prune_angle"); @@ -53,7 +62,7 @@ LightningGenerator::LightningGenerator(const SliceMeshStorage& mesh) areas_per_layer.push_back(infill_area_here); } - generate(layer_thickness, infill_line_width, infill_wall_line_count, line_distance, overhang_angle, prune_angle, straightening_angle, areas_per_layer); + generate(layer_thickness, infill_line_width, &mesh.layers, line_distance, overhang_angle, prune_angle, straightening_angle, areas_per_layer); } LightningGenerator::LightningGenerator(const SupportStorage& support) @@ -68,7 +77,7 @@ LightningGenerator::LightningGenerator(const SupportStorage& support) const Settings& extruder_settings = support_extruder.settings_; const auto layer_thickness = extruder_settings.get("support_infill_sparse_thickness"); const auto infill_line_width = extruder_settings.get("support_line_width"); - const auto infill_wall_line_count = static_cast(settings.get("support_wall_count")); + const auto infill_wall_line_count = settings.get("support_wall_count"); const auto line_distance = extruder_settings.get("support_line_distance"); const auto overhang_angle = extruder_settings.get("support_lightning_overhang_angle"); const auto prune_angle = extruder_settings.get("support_lightning_prune_angle"); @@ -90,15 +99,15 @@ LightningGenerator::LightningGenerator(const SupportStorage& support) generate(layer_thickness, infill_line_width, infill_wall_line_count, line_distance, overhang_angle, prune_angle, straightening_angle, areas_per_layer); } -void LightningGenerator::generateInitialInternalOverhangs(const coord_t infill_line_width, const coord_t infill_wall_line_count, const std::vector& shape_per_layer) +void LightningGenerator::generateInitialInternalOverhangs(const coord_t infill_line_width, const WallLineCount& infill_wall_line_count, const std::vector& shape_per_layer) { overhang_per_layer.resize(shape_per_layer.size()); - const coord_t infill_wall_offset = -infill_wall_line_count * infill_line_width; Shape infill_area_above; // Iterate from top to bottom, to subtract the overhang areas above from the overhang areas on the layer below, to get only overhang in the top layer where it is overhanging. for (const auto& [layer_nr, layer_shape] : shape_per_layer | ranges::views::enumerate | ranges::views::reverse) { + const coord_t infill_wall_offset = -static_cast(infill_wall_line_count.getCountAt(layer_nr)) * infill_line_width; Shape infill_area_here = layer_shape.offset(infill_wall_offset); // Remove the part of the infill area that is already supported by the walls. @@ -118,7 +127,7 @@ const LightningLayer& LightningGenerator::getTreesForLayer(const size_t& layer_i void LightningGenerator::generate( const coord_t layer_thickness, const coord_t line_width, - const coord_t wall_line_count, + const WallLineCount& wall_line_count, const coord_t line_distance, const AngleRadians& overhang_angle, const AngleRadians& prune_angle, @@ -134,10 +143,9 @@ void LightningGenerator::generate( generateTrees(line_width, wall_line_count, shape_per_layer); } -void LightningGenerator::generateTrees(const coord_t infill_line_width, const coord_t infill_wall_line_count, const std::vector& shape_per_layer) +void LightningGenerator::generateTrees(const coord_t infill_line_width, const WallLineCount& infill_wall_line_count, const std::vector& shape_per_layer) { lightning_layers.resize(shape_per_layer.size()); - const coord_t infill_wall_offset = -infill_wall_line_count * infill_line_width; std::vector infill_outlines; infill_outlines.insert(infill_outlines.end(), shape_per_layer.size(), Shape()); @@ -145,6 +153,7 @@ void LightningGenerator::generateTrees(const coord_t infill_line_width, const co // For-each layer from top to bottom: for (const auto& [layer_nr, layer_shape] : shape_per_layer | ranges::views::enumerate | ranges::views::reverse) { + const coord_t infill_wall_offset = -static_cast(infill_wall_line_count.getCountAt(layer_nr)) * infill_line_width; infill_outlines[layer_nr].push_back(layer_shape.offset(infill_wall_offset)); } diff --git a/src/skin.cpp b/src/skin.cpp index 2cdc020dad..27083199b2 100644 --- a/src/skin.cpp +++ b/src/skin.cpp @@ -642,12 +642,12 @@ void SkinInfillAreaComputation::generateGradualInfill(SliceMeshStorage& mesh) const Simplify simplifier(mesh.settings.get("infill_extruder_nr").settings_); - const auto infill_wall_count = mesh.settings.get("infill_wall_line_count"); const auto infill_wall_width = mesh.settings.get("infill_line_width"); const auto is_connected = mesh.settings.get("zig_zaggify_infill") || mesh.settings.get("infill_pattern") == EFillMethod::ZIG_ZAG; for (LayerIndex layer_idx = 0; layer_idx < static_cast(mesh.layers.size()); layer_idx++) { // loop also over layers which don't contain infill cause of bottom_ and top_layer to initialize their infill_area_per_combine_per_density SliceLayer& layer = mesh.layers[layer_idx]; + const size_t infill_wall_count = layer.extra_wall_count_infill; for (SliceLayerPart& part : layer.parts) { From e2fdd31f2e4cf45552e680c8de58ff553461702f Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Fri, 29 May 2026 17:25:11 +0200 Subject: [PATCH 3/7] Add documentation CURA-12446 --- include/FffGcodeWriter.h | 12 ++++++++++-- include/infill/LightningGenerator.h | 1 + include/sliceDataStorage.h | 10 +++++----- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/include/FffGcodeWriter.h b/include/FffGcodeWriter.h index 2b4002a3f7..16dd9ec2a8 100644 --- a/include/FffGcodeWriter.h +++ b/include/FffGcodeWriter.h @@ -322,6 +322,7 @@ class FffGcodeWriter : public NoCopy * * \param[in] storage where the slice data is stored. * \param mesh_ptr The mesh to add to the layer plan \p gcode_layer. + * \param slice_layer The layer currently being processed * \param extruder_nr The extruder for which to print all features of the mesh which should be printed with this extruder * \param mesh_config the line config with which to print a print feature * \param gcode_layer The initial planning of the gcode of the layer. @@ -341,6 +342,7 @@ class FffGcodeWriter : public NoCopy * \param[in] storage where the slice data is stored. * \param storage Storage to get global settings from. * \param mesh The mesh to add to the layer plan \p gcode_layer. + * \param slice_layer The layer currently being processed * \param extruder_nr The extruder for which to print all features of the mesh which should be printed with this extruder * \param mesh_config the line config with which to print a print feature * \param part The part to add @@ -360,6 +362,7 @@ class FffGcodeWriter : public NoCopy * * \param gcodeLayer The initial planning of the gcode of the layer. * \param mesh The mesh for which to add to the layer plan \p gcodeLayer. + * \param slice_layer The layer currently being processed * \param extruder_nr The extruder for which to print all features of the * mesh which should be printed with this extruder. * \param mesh_config the line config with which to print a print feature. @@ -384,7 +387,8 @@ class FffGcodeWriter : public NoCopy * \param gcodeLayer The initial planning of the gcode of the layer. * \param mesh The mesh for which to add to the layer plan \p gcodeLayer. * \param extruder_nr The extruder for which to print all features of the - * mesh which should be printed with this extruder. + * \param mesh which should be printed with this extruder. + * \param slice_layer The layer currently being processed * \param mesh_config The line config with which to print a print feature. * \param part The part for which to create gcode. * \param start_move_inwards_length The length of the extra inwards moves to be added at the start of each infill line @@ -410,7 +414,8 @@ class FffGcodeWriter : public NoCopy * \param gcodeLayer The initial planning of the gcode of the layer. * \param mesh The mesh for which to add to the layer plan \p gcodeLayer. * \param extruder_nr The extruder for which to print all features of the - * mesh which should be printed with this extruder + * \param mesh which should be printed with this extruder + * \param slice_layer The layer currently being processed * \param mesh_config The line config with which to print a print feature. * \param part The part for which to create gcode. * \param start_move_inwards_length The length of the extra inwards moves to be added at the start of each infill line @@ -492,6 +497,7 @@ class FffGcodeWriter : public NoCopy * \param[in] storage where the slice data is stored. * \param gcode_layer The initial planning of the gcode of the layer. * \param mesh The mesh for which to add to the layer plan \p gcode_layer. + * \param slice_layer The layer currently being processed * \param extruder_nr The extruder for which to print all features of the mesh which should be printed with this extruder * \param mesh_config the line config with which to print a print feature * \param part The part for which to create gcode @@ -522,6 +528,7 @@ class FffGcodeWriter : public NoCopy * \param[in] storage where the slice data is stored. * \param gcode_layer The initial planning of the gcode of the layer. * \param mesh The mesh for which to add to the layer plan \p gcode_layer. + * \param slice_layer The layer currently being processed * \param extruder_nr The extruder for which to print all features of the mesh which should be printed with this extruder * \param mesh_config the line config with which to print a print feature * \param skin_part The skin part for which to create gcode @@ -566,6 +573,7 @@ class FffGcodeWriter : public NoCopy * \param[in] storage where the slice data is stored. * \param gcode_layer The initial planning of the gcode of the layer. * \param mesh The mesh for which to add to the layer plan \p gcode_layer. + * \param slice_layer The layer currently being processed * \param extruder_nr The extruder for which to print all features of the mesh which should be printed with this extruder * \param mesh_config the line config with which to print a print feature * \param skin_fill The shape of the skin for which to create gcode diff --git a/include/infill/LightningGenerator.h b/include/infill/LightningGenerator.h index 83cdc96897..9162c542e4 100644 --- a/include/infill/LightningGenerator.h +++ b/include/infill/LightningGenerator.h @@ -69,6 +69,7 @@ class LightningGenerator // "Just like Nicola used to make!" const LightningLayer& getTreesForLayer(const size_t& layer_id) const; protected: + /*! Helper structure to get the infill wall line count either from a fixed value or depending on the layer */ struct WallLineCount : std::variant*> { WallLineCount(const size_t fixed_count) diff --git a/include/sliceDataStorage.h b/include/sliceDataStorage.h index 8a42111375..8cfefeb334 100644 --- a/include/sliceDataStorage.h +++ b/include/sliceDataStorage.h @@ -184,11 +184,11 @@ class SliceLayer */ Shape bottom_surface; - size_t outer_wall_count{ 0 }; - size_t extra_wall_count_infill{ 0 }; - size_t extra_wall_count_skin{ 0 }; - size_t extra_wall_count_flooring{ 0 }; - size_t extra_wall_count_roofing{ 0 }; + size_t outer_wall_count{ 0 }; //!< The number of walls printed on the outer contour of the model, common to all areas + size_t extra_wall_count_infill{ 0 }; //!< The extra number of walls printed around infill areas + size_t extra_wall_count_skin{ 0 }; //!< The extra number of walls printed around skin areas + size_t extra_wall_count_flooring{ 0 }; //!< The extra number of walls printed around flooring areas + size_t extra_wall_count_roofing{ 0 }; //!< The extra number of walls printed around roofing areas /*! * Get the all outlines of all layer parts in this layer. From 58900d50f926e20cdff8d7f5f65fc1e96f71dcba Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 1 Jun 2026 08:31:43 +0200 Subject: [PATCH 4/7] Fix unit test CURA-12446 --- tests/FffGcodeWriterTest.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/FffGcodeWriterTest.cpp b/tests/FffGcodeWriterTest.cpp index 44701202b4..0007b9919b 100644 --- a/tests/FffGcodeWriterTest.cpp +++ b/tests/FffGcodeWriterTest.cpp @@ -124,8 +124,9 @@ TEST_F(DISABLED_FffGcodeWriterTest, SurfaceGetsExtraInfillLinesUnderIt) part.infill_area_per_combine_per_density = { { outer_square } }; part.infill_area = outer_square; - mesh_storage.layers[101].parts.emplace_back(); - SliceLayerPart& top_part = mesh_storage.layers[101].parts.back(); + SliceLayer& layer = mesh_storage.layers[101]; + layer.parts.emplace_back(); + SliceLayerPart& top_part = layer.parts.back(); top_part.skin_parts.emplace_back(); top_part.skin_parts[0].outline.push_back(inner_square); @@ -135,7 +136,7 @@ TEST_F(DISABLED_FffGcodeWriterTest, SurfaceGetsExtraInfillLinesUnderIt) // We're expecting the sparse infill on layer 100 to have // some lines to support the corners of the layer above. // But we arent wanting the whole area densely supported. - fff_gcode_writer.processSingleLayerInfill(*storage, gcode_layer, mesh_storage, extruder_nr, mesh_config, part); + fff_gcode_writer.processSingleLayerInfill(*storage, gcode_layer, mesh_storage, layer, extruder_nr, mesh_config, part); /* Useful code if you're debugging this test. Also add this test as a friend in GCodeExport.h GCodeExport gcode_export; From 4b9f8cb7c66b6831fbb2985d0110e4db042934eb Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 1 Jun 2026 14:10:02 +0200 Subject: [PATCH 5/7] Fix unit test CURA-12446 --- tests/WallsComputationTest.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/WallsComputationTest.cpp b/tests/WallsComputationTest.cpp index 98061d4cdc..ec65da1607 100644 --- a/tests/WallsComputationTest.cpp +++ b/tests/WallsComputationTest.cpp @@ -85,7 +85,6 @@ class WallsComputationTest : public testing::Test settings.add("min_feature_size", "0"); settings.add("wall_0_extruder_nr", "0"); settings.add("wall_0_inset", "0"); - settings.add("wall_line_count", "2"); settings.add("wall_line_width_0", "0.4"); settings.add("wall_line_width_x", "0.4"); settings.add("min_even_wall_line_width", "0.34"); @@ -104,9 +103,11 @@ class WallsComputationTest : public testing::Test */ TEST_F(WallsComputationTest, GenerateWallsForLayerSinglePart) { + settings.add("wall_line_count", "2"); auto layers = std::vector(200, SlicerLayer{}); scripta::setAll(layers); SliceLayer layer; + layer.outer_wall_count = 2; layer.parts.emplace_back(); SliceLayerPart& part = layer.parts.back(); part.outline.push_back(square_shape); @@ -131,6 +132,7 @@ TEST_F(WallsComputationTest, GenerateWallsZeroWalls) settings.add("wall_line_count", "0"); SliceLayer layer; layer.parts.emplace_back(); + layer.outer_wall_count = 0; SliceLayerPart& part = layer.parts.back(); part.outline.push_back(square_shape); @@ -152,6 +154,7 @@ TEST_F(WallsComputationTest, WallToolPathsGetWeakOrder) settings.add("wall_line_count", "5"); SliceLayer layer; layer.parts.emplace_back(); + layer.outer_wall_count = 5; SliceLayerPart& part = layer.parts.back(); part.outline.push_back(ff_holes); From 84b2b6b438f89e25b0097b8a8d3917f306657638 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Mon, 1 Jun 2026 14:40:56 +0200 Subject: [PATCH 6/7] Upgrade test settings CURA-12446 --- stress_benchmark/resources/001.settings | 4 ++-- stress_benchmark/resources/002.settings | 8 ++++---- stress_benchmark/resources/003.settings | 8 ++++---- stress_benchmark/resources/004.settings | 8 ++++---- stress_benchmark/resources/005.settings | 8 ++++---- stress_benchmark/resources/006.settings | 8 ++++---- stress_benchmark/resources/007.settings | 8 ++++---- stress_benchmark/resources/008.settings | 8 ++++---- stress_benchmark/resources/009.settings | 8 ++++---- stress_benchmark/resources/010.settings | 8 ++++---- stress_benchmark/resources/011.settings | 8 ++++---- stress_benchmark/resources/012.settings | 4 ++-- stress_benchmark/resources/013.settings | 4 ++-- stress_benchmark/resources/014.settings | 4 ++-- stress_benchmark/resources/015.settings | 4 ++-- stress_benchmark/resources/016.settings | 4 ++-- stress_benchmark/resources/017.settings | 4 ++-- stress_benchmark/resources/018.settings | 4 ++-- stress_benchmark/resources/019.settings | 4 ++-- stress_benchmark/resources/020.settings | 4 ++-- stress_benchmark/resources/021.settings | 4 ++-- stress_benchmark/resources/022.settings | 4 ++-- stress_benchmark/resources/023.settings | 4 ++-- stress_benchmark/resources/024.settings | 4 ++-- stress_benchmark/resources/025.settings | 4 ++-- stress_benchmark/resources/026.settings | 4 ++-- stress_benchmark/resources/027.settings | 4 ++-- stress_benchmark/resources/028.settings | 4 ++-- stress_benchmark/resources/029.settings | 4 ++-- stress_benchmark/resources/030.settings | 4 ++-- stress_benchmark/resources/031.settings | 4 ++-- stress_benchmark/resources/032.settings | 4 ++-- stress_benchmark/resources/033.settings | 4 ++-- stress_benchmark/resources/034.settings | 4 ++-- stress_benchmark/resources/035.settings | 4 ++-- stress_benchmark/resources/036.settings | 4 ++-- stress_benchmark/resources/037.settings | 4 ++-- stress_benchmark/resources/038.settings | 4 ++-- stress_benchmark/resources/039.settings | 4 ++-- stress_benchmark/resources/040.settings | 4 ++-- stress_benchmark/resources/041.settings | 4 ++-- stress_benchmark/resources/042.settings | 4 ++-- stress_benchmark/resources/043.settings | 4 ++-- stress_benchmark/resources/044.settings | 4 ++-- stress_benchmark/resources/045.settings | 4 ++-- stress_benchmark/resources/046.settings | 4 ++-- stress_benchmark/resources/047.settings | 4 ++-- stress_benchmark/resources/048.settings | 4 ++-- stress_benchmark/resources/049.settings | 4 ++-- stress_benchmark/resources/050.settings | 4 ++-- stress_benchmark/resources/051.settings | 4 ++-- stress_benchmark/resources/052.settings | 4 ++-- stress_benchmark/resources/053.settings | 4 ++-- stress_benchmark/resources/055.settings | 4 ++-- stress_benchmark/resources/056.settings | 4 ++-- stress_benchmark/resources/058.settings | 4 ++-- stress_benchmark/resources/059.settings | 4 ++-- stress_benchmark/resources/060.settings | 4 ++-- stress_benchmark/resources/062.settings | 4 ++-- stress_benchmark/resources/065.settings | 4 ++-- stress_benchmark/resources/066.settings | 4 ++-- tests/test_default_settings.txt | 6 ++---- tests/test_global_settings.txt | 4 ++-- 63 files changed, 146 insertions(+), 148 deletions(-) diff --git a/stress_benchmark/resources/001.settings b/stress_benchmark/resources/001.settings index 1d888b2803..5356c011b6 100644 --- a/stress_benchmark/resources/001.settings +++ b/stress_benchmark/resources/001.settings @@ -22,7 +22,7 @@ roofing_line_width=0.4 material_break_retracted_position=-50 material_initial_print_temperature=250 jerk_skirt_brim=12.5 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 support_line_width=0.3 ooze_shield_enabled=False @@ -467,7 +467,7 @@ skin_preshrink=0 magic_spiralize=False raft_interface_thickness=0.3 jerk_prime_tower=12.5 -skin_outline_count=0 +wall_line_count_skin=2 support_interface_priority=interface_area_overwrite_support_area machine_steps_per_mm_x=50 prime_tower_position_x=138.8 diff --git a/stress_benchmark/resources/002.settings b/stress_benchmark/resources/002.settings index 3c14f3fc33..04d31f6b2c 100644 --- a/stress_benchmark/resources/002.settings +++ b/stress_benchmark/resources/002.settings @@ -162,7 +162,7 @@ retraction_hop_after_extruder_switch=True wall_0_inset=0 relative_extrusion=False wipe_hop_speed=5 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 support_roof_line_width=0.4 magic_fuzzy_skin_outside_only=False @@ -486,7 +486,7 @@ infill_support_angle=40 material_no_load_move_factor=0.940860215 roofing_pattern=lines jerk_prime_tower=8 -skin_outline_count=1 +wall_line_count_skin=3 support_interface_priority=interface_area_overwrite_support_area infill_offset_y=0 magic_fuzzy_skin_thickness=0.3 @@ -686,7 +686,7 @@ machine_extruder_end_pos_x=0 retraction_speed=45 travel_avoid_supports=True acceleration_infill=500 -skin_outline_count=1 +wall_line_count_skin=3 jerk_prime_tower=8 machine_nozzle_id=unknown acceleration_travel_layer_0=500 @@ -747,7 +747,7 @@ magic_fuzzy_skin_outside_only=False brim_line_count=20 support_roof_line_distance=2.4000240002400024 prime_tower_line_width=0.4 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 support_roof_line_width=0.4 skin_line_width=0.4 diff --git a/stress_benchmark/resources/003.settings b/stress_benchmark/resources/003.settings index c902158b8f..e9556869cc 100644 --- a/stress_benchmark/resources/003.settings +++ b/stress_benchmark/resources/003.settings @@ -163,7 +163,7 @@ retraction_hop_after_extruder_switch=True wall_0_inset=0 relative_extrusion=False wipe_hop_speed=5 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 support_roof_line_width=0.42 magic_fuzzy_skin_outside_only=False @@ -487,7 +487,7 @@ infill_support_angle=40 material_no_load_move_factor=0.940860215 roofing_pattern=lines jerk_prime_tower=8 -skin_outline_count=1 +wall_line_count_skin=3 support_interface_priority=interface_area_overwrite_support_area infill_offset_y=0 magic_fuzzy_skin_thickness=0.3 @@ -687,7 +687,7 @@ machine_extruder_end_pos_x=0 retraction_speed=45 travel_avoid_supports=True acceleration_infill=500 -skin_outline_count=0 +wall_line_count_skin=2 jerk_prime_tower=12.0 machine_nozzle_id=unknown acceleration_travel_layer_0=500 @@ -748,7 +748,7 @@ magic_fuzzy_skin_outside_only=False brim_line_count=20 support_roof_line_distance=2.5200252002520025 prime_tower_line_width=0.42 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 support_roof_line_width=0.42 skin_line_width=0.38 diff --git a/stress_benchmark/resources/004.settings b/stress_benchmark/resources/004.settings index c05afc0970..1ccf345f7f 100644 --- a/stress_benchmark/resources/004.settings +++ b/stress_benchmark/resources/004.settings @@ -162,7 +162,7 @@ retraction_hop_after_extruder_switch=True wall_0_inset=0 relative_extrusion=False wipe_hop_speed=5 -infill_wall_line_count=0 +infill_wall_line_count=6 support_supported_skin_fan_speed=100 support_roof_line_width=0.4 magic_fuzzy_skin_outside_only=False @@ -487,7 +487,7 @@ infill_support_angle=40 material_no_load_move_factor=0.940860215 roofing_pattern=lines jerk_prime_tower=8 -skin_outline_count=1 +wall_line_count_skin=7 support_interface_priority=interface_area_overwrite_support_area infill_offset_y=0 magic_fuzzy_skin_thickness=0.3 @@ -687,7 +687,7 @@ machine_extruder_end_pos_x=0 retraction_speed=25 travel_avoid_supports=True acceleration_infill=350 -skin_outline_count=1 +wall_line_count_skin=7 jerk_prime_tower=8 machine_nozzle_id=unknown acceleration_travel_layer_0=500 @@ -748,7 +748,7 @@ magic_fuzzy_skin_outside_only=False brim_line_count=15 support_roof_line_distance=2.4000240002400024 prime_tower_line_width=0.4 -infill_wall_line_count=0 +infill_wall_line_count=6 support_supported_skin_fan_speed=100 support_roof_line_width=0.4 skin_line_width=0.4 diff --git a/stress_benchmark/resources/005.settings b/stress_benchmark/resources/005.settings index 297de77cd1..6dada6f7bf 100644 --- a/stress_benchmark/resources/005.settings +++ b/stress_benchmark/resources/005.settings @@ -163,7 +163,7 @@ retraction_hop_after_extruder_switch=True wall_0_inset=0 relative_extrusion=False wipe_hop_speed=5 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 support_roof_line_width=0.4 magic_fuzzy_skin_outside_only=False @@ -488,7 +488,7 @@ infill_support_angle=40 material_no_load_move_factor=0.940860215 roofing_pattern=lines jerk_prime_tower=8 -skin_outline_count=1 +wall_line_count_skin=3 support_interface_priority=interface_area_overwrite_support_area infill_offset_y=0 magic_fuzzy_skin_thickness=0.3 @@ -688,7 +688,7 @@ machine_extruder_end_pos_x=0 retraction_speed=25 travel_avoid_supports=True acceleration_infill=500 -skin_outline_count=1 +wall_line_count_skin=3 jerk_prime_tower=8 machine_nozzle_id=unknown acceleration_travel_layer_0=500 @@ -749,7 +749,7 @@ magic_fuzzy_skin_outside_only=False brim_line_count=8 support_roof_line_distance=2.4000240002400024 prime_tower_line_width=0.4 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 support_roof_line_width=0.4 skin_line_width=0.4 diff --git a/stress_benchmark/resources/006.settings b/stress_benchmark/resources/006.settings index bf2a3f294b..ce154a50ac 100644 --- a/stress_benchmark/resources/006.settings +++ b/stress_benchmark/resources/006.settings @@ -163,7 +163,7 @@ retraction_hop_after_extruder_switch=True wall_0_inset=0 relative_extrusion=False wipe_hop_speed=5 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 support_roof_line_width=0.4 magic_fuzzy_skin_outside_only=False @@ -488,7 +488,7 @@ infill_support_angle=40 material_no_load_move_factor=0.940860215 roofing_pattern=lines jerk_prime_tower=8 -skin_outline_count=1 +wall_line_count_skin=3 support_interface_priority=interface_area_overwrite_support_area infill_offset_y=0 magic_fuzzy_skin_thickness=0.3 @@ -688,7 +688,7 @@ machine_extruder_end_pos_x=0 retraction_speed=25 travel_avoid_supports=True acceleration_infill=500 -skin_outline_count=1 +wall_line_count_skin=3 jerk_prime_tower=8 machine_nozzle_id=unknown acceleration_travel_layer_0=500 @@ -749,7 +749,7 @@ magic_fuzzy_skin_outside_only=False brim_line_count=20 support_roof_line_distance=2.4000240002400024 prime_tower_line_width=0.4 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 support_roof_line_width=0.4 skin_line_width=0.4 diff --git a/stress_benchmark/resources/007.settings b/stress_benchmark/resources/007.settings index 9e15ba53d2..9319c59b4d 100644 --- a/stress_benchmark/resources/007.settings +++ b/stress_benchmark/resources/007.settings @@ -163,7 +163,7 @@ retraction_hop_after_extruder_switch=True wall_0_inset=0 relative_extrusion=False wipe_hop_speed=5 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 support_roof_line_width=0.4 magic_fuzzy_skin_outside_only=False @@ -488,7 +488,7 @@ infill_support_angle=40 material_no_load_move_factor=0.940860215 roofing_pattern=lines jerk_prime_tower=8 -skin_outline_count=1 +wall_line_count_skin=3 support_interface_priority=interface_area_overwrite_support_area infill_offset_y=0 magic_fuzzy_skin_thickness=0.3 @@ -688,7 +688,7 @@ machine_extruder_end_pos_x=0 retraction_speed=45 travel_avoid_supports=True acceleration_infill=500 -skin_outline_count=1 +wall_line_count_skin=3 jerk_prime_tower=8 machine_nozzle_id=unknown acceleration_travel_layer_0=500 @@ -749,7 +749,7 @@ magic_fuzzy_skin_outside_only=False brim_line_count=20 support_roof_line_distance=2.4000240002400024 prime_tower_line_width=0.4 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 support_roof_line_width=0.4 skin_line_width=0.4 diff --git a/stress_benchmark/resources/008.settings b/stress_benchmark/resources/008.settings index ce9d96897b..08eea0e98e 100644 --- a/stress_benchmark/resources/008.settings +++ b/stress_benchmark/resources/008.settings @@ -340,7 +340,7 @@ cool_fan_speed_max=100 cool_fan_enabled=True wall_overhang_angle=90 seam_overhang_angle=30 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 brim_width=3 wall_0_material_flow=100 @@ -499,7 +499,7 @@ support_z_distance=0.3 meshfix_union_all=True infill_support_angle=40 jerk_prime_tower=20 -skin_outline_count=1 +wall_line_count_skin=3 support_interface_priority=interface_area_overwrite_support_area support_pattern=zigzag prime_tower_min_volume=6 @@ -678,7 +678,7 @@ infill_randomize_start_location=False acceleration_prime_tower=2000 speed_support_roof=35 retraction_extra_prime_amount=0 -skin_outline_count=1 +wall_line_count_skin=3 jerk_prime_tower=20 wall_transition_angle=10 z_seam_position=back @@ -1092,7 +1092,7 @@ machine_feeder_wheel_diameter=10.0 bridge_skin_support_threshold=50 prime_tower_min_volume=6 roofing_material_flow=100 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 bridge_sparse_infill_max_density=0 skirt_brim_line_width=0.4 diff --git a/stress_benchmark/resources/009.settings b/stress_benchmark/resources/009.settings index ce9d96897b..08eea0e98e 100644 --- a/stress_benchmark/resources/009.settings +++ b/stress_benchmark/resources/009.settings @@ -340,7 +340,7 @@ cool_fan_speed_max=100 cool_fan_enabled=True wall_overhang_angle=90 seam_overhang_angle=30 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 brim_width=3 wall_0_material_flow=100 @@ -499,7 +499,7 @@ support_z_distance=0.3 meshfix_union_all=True infill_support_angle=40 jerk_prime_tower=20 -skin_outline_count=1 +wall_line_count_skin=3 support_interface_priority=interface_area_overwrite_support_area support_pattern=zigzag prime_tower_min_volume=6 @@ -678,7 +678,7 @@ infill_randomize_start_location=False acceleration_prime_tower=2000 speed_support_roof=35 retraction_extra_prime_amount=0 -skin_outline_count=1 +wall_line_count_skin=3 jerk_prime_tower=20 wall_transition_angle=10 z_seam_position=back @@ -1092,7 +1092,7 @@ machine_feeder_wheel_diameter=10.0 bridge_skin_support_threshold=50 prime_tower_min_volume=6 roofing_material_flow=100 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 bridge_sparse_infill_max_density=0 skirt_brim_line_width=0.4 diff --git a/stress_benchmark/resources/010.settings b/stress_benchmark/resources/010.settings index ce9d96897b..08eea0e98e 100644 --- a/stress_benchmark/resources/010.settings +++ b/stress_benchmark/resources/010.settings @@ -340,7 +340,7 @@ cool_fan_speed_max=100 cool_fan_enabled=True wall_overhang_angle=90 seam_overhang_angle=30 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 brim_width=3 wall_0_material_flow=100 @@ -499,7 +499,7 @@ support_z_distance=0.3 meshfix_union_all=True infill_support_angle=40 jerk_prime_tower=20 -skin_outline_count=1 +wall_line_count_skin=3 support_interface_priority=interface_area_overwrite_support_area support_pattern=zigzag prime_tower_min_volume=6 @@ -678,7 +678,7 @@ infill_randomize_start_location=False acceleration_prime_tower=2000 speed_support_roof=35 retraction_extra_prime_amount=0 -skin_outline_count=1 +wall_line_count_skin=3 jerk_prime_tower=20 wall_transition_angle=10 z_seam_position=back @@ -1092,7 +1092,7 @@ machine_feeder_wheel_diameter=10.0 bridge_skin_support_threshold=50 prime_tower_min_volume=6 roofing_material_flow=100 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 bridge_sparse_infill_max_density=0 skirt_brim_line_width=0.4 diff --git a/stress_benchmark/resources/011.settings b/stress_benchmark/resources/011.settings index 9a87ff69f9..c674adabbd 100644 --- a/stress_benchmark/resources/011.settings +++ b/stress_benchmark/resources/011.settings @@ -163,7 +163,7 @@ retraction_hop_after_extruder_switch=True wall_0_inset=0 relative_extrusion=False wipe_hop_speed=10 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 support_roof_line_width=0.4 magic_fuzzy_skin_outside_only=False @@ -489,7 +489,7 @@ infill_support_angle=40 material_no_load_move_factor=0.940860215 roofing_pattern=lines jerk_prime_tower=20 -skin_outline_count=1 +wall_line_count_skin=3 support_interface_priority=interface_area_overwrite_support_area infill_offset_y=0 magic_fuzzy_skin_thickness=0.3 @@ -689,7 +689,7 @@ machine_extruder_end_pos_x=0 retraction_speed=25 travel_avoid_supports=False acceleration_infill=3000 -skin_outline_count=1 +wall_line_count_skin=3 jerk_prime_tower=20 machine_nozzle_id=unknown acceleration_travel_layer_0=5000.0 @@ -750,7 +750,7 @@ magic_fuzzy_skin_outside_only=False brim_line_count=20 support_roof_line_distance=0.4 prime_tower_line_width=0.4 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 support_roof_line_width=0.4 skin_line_width=0.4 diff --git a/stress_benchmark/resources/012.settings b/stress_benchmark/resources/012.settings index a5c84a5fd8..aec12b6bfd 100644 --- a/stress_benchmark/resources/012.settings +++ b/stress_benchmark/resources/012.settings @@ -223,7 +223,7 @@ support_meshes_present=False raft_interface_speed=30.0 travel_avoid_distance=3 jerk_prime_tower=12.5 -skin_outline_count=0 +wall_line_count_skin=2 support_infill_extruder_nr=0 coasting_speed=90 speed_prime_tower=30.0 @@ -295,7 +295,7 @@ small_skin_width=0.8 shell=0 support_zag_skip_count=8 material_type=empty -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 support_roof_line_width=0.25 speed_topbottom=55 diff --git a/stress_benchmark/resources/013.settings b/stress_benchmark/resources/013.settings index 7ede07d39e..823c8f3671 100644 --- a/stress_benchmark/resources/013.settings +++ b/stress_benchmark/resources/013.settings @@ -150,7 +150,7 @@ support_meshes_present=False travel_avoid_distance=0.638 raft_interface_speed=16.875 jerk_prime_tower=8 -skin_outline_count=1 +wall_line_count_skin=7 mold_enabled=False jerk_travel_layer_0=10 platform_adhesion=0 @@ -299,7 +299,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.4 material_no_load_move_factor=0.940860215 -infill_wall_line_count=0 +infill_wall_line_count=6 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=True acceleration_skirt_brim=350 diff --git a/stress_benchmark/resources/014.settings b/stress_benchmark/resources/014.settings index 7c75163949..695b4c626b 100644 --- a/stress_benchmark/resources/014.settings +++ b/stress_benchmark/resources/014.settings @@ -150,7 +150,7 @@ support_meshes_present=False travel_avoid_distance=0.625 raft_interface_speed=30.0 jerk_prime_tower=8 -skin_outline_count=1 +wall_line_count_skin=4 mold_enabled=False jerk_travel_layer_0=10.0 platform_adhesion=0 @@ -299,7 +299,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.4 material_no_load_move_factor=0.940860215 -infill_wall_line_count=0 +infill_wall_line_count=3 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=True acceleration_skirt_brim=1000 diff --git a/stress_benchmark/resources/015.settings b/stress_benchmark/resources/015.settings index 2efc3a746f..a16b48ca84 100644 --- a/stress_benchmark/resources/015.settings +++ b/stress_benchmark/resources/015.settings @@ -150,7 +150,7 @@ support_meshes_present=False travel_avoid_distance=0.625 raft_interface_speed=37.5 jerk_prime_tower=20 -skin_outline_count=1 +wall_line_count_skin=3 mold_enabled=False jerk_travel_layer_0=30.0 platform_adhesion=0 @@ -300,7 +300,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.4 material_no_load_move_factor=0.940860215 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=True acceleration_skirt_brim=3000 diff --git a/stress_benchmark/resources/016.settings b/stress_benchmark/resources/016.settings index 7c69b499ae..4f1dcd472c 100644 --- a/stress_benchmark/resources/016.settings +++ b/stress_benchmark/resources/016.settings @@ -150,7 +150,7 @@ support_meshes_present=False travel_avoid_distance=0.625 raft_interface_speed=18.75 jerk_prime_tower=8 -skin_outline_count=1 +wall_line_count_skin=3 mold_enabled=False jerk_travel_layer_0=8 platform_adhesion=0 @@ -299,7 +299,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.4 material_no_load_move_factor=0.940860215 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=True acceleration_skirt_brim=500 diff --git a/stress_benchmark/resources/017.settings b/stress_benchmark/resources/017.settings index fe0eb75df7..826b5a02cd 100644 --- a/stress_benchmark/resources/017.settings +++ b/stress_benchmark/resources/017.settings @@ -150,7 +150,7 @@ support_meshes_present=False travel_avoid_distance=0.625 raft_interface_speed=18.75 jerk_prime_tower=12.0 -skin_outline_count=0 +wall_line_count_skin=2 mold_enabled=False jerk_travel_layer_0=12.0 platform_adhesion=0 @@ -299,7 +299,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.42 material_no_load_move_factor=0.940860215 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=True acceleration_skirt_brim=500 diff --git a/stress_benchmark/resources/018.settings b/stress_benchmark/resources/018.settings index 163421e147..6951884411 100644 --- a/stress_benchmark/resources/018.settings +++ b/stress_benchmark/resources/018.settings @@ -150,7 +150,7 @@ support_meshes_present=False travel_avoid_distance=0.625 raft_interface_speed=18.75 jerk_prime_tower=8 -skin_outline_count=1 +wall_line_count_skin=3 mold_enabled=False jerk_travel_layer_0=8 platform_adhesion=0 @@ -299,7 +299,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.4 material_no_load_move_factor=0.940860215 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=True acceleration_skirt_brim=500 diff --git a/stress_benchmark/resources/019.settings b/stress_benchmark/resources/019.settings index bbd999a856..e4c9221810 100644 --- a/stress_benchmark/resources/019.settings +++ b/stress_benchmark/resources/019.settings @@ -150,7 +150,7 @@ support_meshes_present=False travel_avoid_distance=0.625 raft_interface_speed=30.0 jerk_prime_tower=8 -skin_outline_count=1 +wall_line_count_skin=3 mold_enabled=False jerk_travel_layer_0=8 platform_adhesion=0 @@ -299,7 +299,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.4 material_no_load_move_factor=0.940860215 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=True acceleration_skirt_brim=500 diff --git a/stress_benchmark/resources/020.settings b/stress_benchmark/resources/020.settings index 192fae0479..bfcde6cd9f 100644 --- a/stress_benchmark/resources/020.settings +++ b/stress_benchmark/resources/020.settings @@ -150,7 +150,7 @@ support_meshes_present=False travel_avoid_distance=0.625 raft_interface_speed=30.0 jerk_prime_tower=20 -skin_outline_count=1 +wall_line_count_skin=2 mold_enabled=False jerk_travel_layer_0=30.0 platform_adhesion=0 @@ -299,7 +299,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.8 material_no_load_move_factor=0.940860215 -infill_wall_line_count=0 +infill_wall_line_count=1 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=True acceleration_skirt_brim=3000 diff --git a/stress_benchmark/resources/021.settings b/stress_benchmark/resources/021.settings index 14d59c8302..cdb9631a04 100644 --- a/stress_benchmark/resources/021.settings +++ b/stress_benchmark/resources/021.settings @@ -151,7 +151,7 @@ support_meshes_present=False travel_avoid_distance=3 raft_interface_speed=32.5 jerk_prime_tower=30 -skin_outline_count=1 +wall_line_count_skin=3 mold_enabled=False jerk_travel_layer_0=20.0 platform_adhesion=0 @@ -301,7 +301,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.4 material_no_load_move_factor=0.91 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=False acceleration_skirt_brim=1000 diff --git a/stress_benchmark/resources/022.settings b/stress_benchmark/resources/022.settings index ebb2b050a6..d7f329dcea 100644 --- a/stress_benchmark/resources/022.settings +++ b/stress_benchmark/resources/022.settings @@ -150,7 +150,7 @@ support_meshes_present=False travel_avoid_distance=0.625 raft_interface_speed=18.0 jerk_prime_tower=20 -skin_outline_count=1 +wall_line_count_skin=3 mold_enabled=False jerk_travel_layer_0=30.0 platform_adhesion=0 @@ -300,7 +300,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.5 material_no_load_move_factor=0.940860215 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=True acceleration_skirt_brim=500 diff --git a/stress_benchmark/resources/023.settings b/stress_benchmark/resources/023.settings index ffdf69d2e5..b44e42d20b 100644 --- a/stress_benchmark/resources/023.settings +++ b/stress_benchmark/resources/023.settings @@ -149,7 +149,7 @@ support_meshes_present=False travel_avoid_distance=0.625 raft_interface_speed=56.25 jerk_prime_tower=10.0 -skin_outline_count=1 +wall_line_count_skin=3 mold_enabled=False jerk_travel_layer_0=100.0 platform_adhesion=0 @@ -299,7 +299,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.44 material_no_load_move_factor=0.940860215 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=True acceleration_skirt_brim=8000.0 diff --git a/stress_benchmark/resources/024.settings b/stress_benchmark/resources/024.settings index 4e7493750a..beea3bedf1 100644 --- a/stress_benchmark/resources/024.settings +++ b/stress_benchmark/resources/024.settings @@ -151,7 +151,7 @@ support_meshes_present=False travel_avoid_distance=0.625 raft_interface_speed=26.25 jerk_prime_tower=8 -skin_outline_count=1 +wall_line_count_skin=3 mold_enabled=False jerk_travel_layer_0=8 platform_adhesion=0 @@ -300,7 +300,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.4 material_no_load_move_factor=0.940860215 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=25 nozzle_offsetting_for_disallowed_areas=True acceleration_skirt_brim=500 diff --git a/stress_benchmark/resources/025.settings b/stress_benchmark/resources/025.settings index 18f0708d8b..0b608a6271 100644 --- a/stress_benchmark/resources/025.settings +++ b/stress_benchmark/resources/025.settings @@ -150,7 +150,7 @@ support_meshes_present=False travel_avoid_distance=0.625 raft_interface_speed=22.5 jerk_prime_tower=20 -skin_outline_count=1 +wall_line_count_skin=3 mold_enabled=False jerk_travel_layer_0=30.0 platform_adhesion=0 @@ -300,7 +300,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.4 material_no_load_move_factor=0.940860215 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=True acceleration_skirt_brim=3000 diff --git a/stress_benchmark/resources/026.settings b/stress_benchmark/resources/026.settings index b815f15c7a..436b231df1 100644 --- a/stress_benchmark/resources/026.settings +++ b/stress_benchmark/resources/026.settings @@ -151,7 +151,7 @@ support_meshes_present=False travel_avoid_distance=3 raft_interface_speed=17.5 jerk_prime_tower=20 -skin_outline_count=1 +wall_line_count_skin=3 mold_enabled=False jerk_travel_layer_0=20.0 platform_adhesion=0 @@ -300,7 +300,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.4 material_no_load_move_factor=0.91 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=False acceleration_skirt_brim=1000 diff --git a/stress_benchmark/resources/027.settings b/stress_benchmark/resources/027.settings index a9192ae852..6970fd2b91 100644 --- a/stress_benchmark/resources/027.settings +++ b/stress_benchmark/resources/027.settings @@ -151,7 +151,7 @@ support_meshes_present=False travel_avoid_distance=3 raft_interface_speed=57.5 jerk_prime_tower=50.0 -skin_outline_count=1 +wall_line_count_skin=3 mold_enabled=False jerk_travel_layer_0=30.0 platform_adhesion=0 @@ -301,7 +301,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.4 material_no_load_move_factor=0.93 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=False acceleration_skirt_brim=1500 diff --git a/stress_benchmark/resources/028.settings b/stress_benchmark/resources/028.settings index d0ec43350d..af5935711a 100644 --- a/stress_benchmark/resources/028.settings +++ b/stress_benchmark/resources/028.settings @@ -150,7 +150,7 @@ support_meshes_present=False travel_avoid_distance=0.625 raft_interface_speed=22.5 jerk_prime_tower=20 -skin_outline_count=1 +wall_line_count_skin=5 mold_enabled=False jerk_travel_layer_0=30.0 platform_adhesion=0 @@ -300,7 +300,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.4 material_no_load_move_factor=0.940860215 -infill_wall_line_count=0 +infill_wall_line_count=4 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=True acceleration_skirt_brim=3000 diff --git a/stress_benchmark/resources/029.settings b/stress_benchmark/resources/029.settings index cf36de465e..876bee197d 100644 --- a/stress_benchmark/resources/029.settings +++ b/stress_benchmark/resources/029.settings @@ -150,7 +150,7 @@ support_meshes_present=False travel_avoid_distance=0.625 raft_interface_speed=56.25 jerk_prime_tower=20 -skin_outline_count=1 +wall_line_count_skin=4 mold_enabled=False jerk_travel_layer_0=20 platform_adhesion=0 @@ -300,7 +300,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.4 material_no_load_move_factor=0.940860215 -infill_wall_line_count=0 +infill_wall_line_count=3 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=True acceleration_skirt_brim=3000 diff --git a/stress_benchmark/resources/030.settings b/stress_benchmark/resources/030.settings index 9fd754cb6a..08856bf3e8 100644 --- a/stress_benchmark/resources/030.settings +++ b/stress_benchmark/resources/030.settings @@ -151,7 +151,7 @@ support_meshes_present=False travel_avoid_distance=0.75 raft_interface_speed=22.5 jerk_prime_tower=20 -skin_outline_count=1 +wall_line_count_skin=3 mold_enabled=False jerk_travel_layer_0=20.0 platform_adhesion=0 @@ -301,7 +301,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.4 material_no_load_move_factor=0.91 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=False acceleration_skirt_brim=1000 diff --git a/stress_benchmark/resources/031.settings b/stress_benchmark/resources/031.settings index e53551ee84..b6167cde61 100644 --- a/stress_benchmark/resources/031.settings +++ b/stress_benchmark/resources/031.settings @@ -150,7 +150,7 @@ support_meshes_present=False travel_avoid_distance=0.625 raft_interface_speed=18.75 jerk_prime_tower=8 -skin_outline_count=1 +wall_line_count_skin=3 mold_enabled=False jerk_travel_layer_0=8 platform_adhesion=0 @@ -299,7 +299,7 @@ machine_endstop_positive_direction_x=False ooze_shield_angle=60 raft_surface_line_spacing=0.4 material_no_load_move_factor=0.940860215 -infill_wall_line_count=0 +infill_wall_line_count=2 support_supported_skin_fan_speed=100 nozzle_offsetting_for_disallowed_areas=True acceleration_skirt_brim=500 diff --git a/stress_benchmark/resources/032.settings b/stress_benchmark/resources/032.settings index 8a6e130c83..7b3444ce1f 100644 --- a/stress_benchmark/resources/032.settings +++ b/stress_benchmark/resources/032.settings @@ -311,7 +311,7 @@ lightning_infill_straightening_angle=40 support_tree_angle=50 draft_shield_height_limitation=full conical_overhang_angle=50 -skin_outline_count=1 +wall_line_count_skin=4 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 small_feature_speed_factor=50 skin_overlap_mm=0.02 @@ -541,7 +541,7 @@ material_print_temperature=195 jerk_print_layer_0=8 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=3 speed_print=80 wall_0_inset=0 skin_edge_support_thickness=0 diff --git a/stress_benchmark/resources/033.settings b/stress_benchmark/resources/033.settings index 0993838d18..ce34e177ca 100644 --- a/stress_benchmark/resources/033.settings +++ b/stress_benchmark/resources/033.settings @@ -312,7 +312,7 @@ lightning_infill_straightening_angle=40 support_tree_angle=20 draft_shield_height_limitation=full conical_overhang_angle=50 -skin_outline_count=1 +wall_line_count_skin=3 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 small_feature_speed_factor=50 skin_overlap_mm=0.02 @@ -543,7 +543,7 @@ material_print_temperature=200 jerk_print_layer_0=20 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=2 speed_print=100.0 wall_0_inset=0 skin_edge_support_thickness=0 diff --git a/stress_benchmark/resources/034.settings b/stress_benchmark/resources/034.settings index 4365daf171..a7da736b6c 100644 --- a/stress_benchmark/resources/034.settings +++ b/stress_benchmark/resources/034.settings @@ -310,7 +310,7 @@ lightning_infill_straightening_angle=40 support_tree_angle=45 draft_shield_height_limitation=full conical_overhang_angle=50 -skin_outline_count=1 +wall_line_count_skin=3 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 small_feature_speed_factor=50 skin_overlap_mm=0.04 @@ -540,7 +540,7 @@ material_print_temperature=200 jerk_print_layer_0=8 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=2 speed_print=50.0 wall_0_inset=0 skin_edge_support_thickness=0 diff --git a/stress_benchmark/resources/035.settings b/stress_benchmark/resources/035.settings index dfa3672553..bf127e8d22 100644 --- a/stress_benchmark/resources/035.settings +++ b/stress_benchmark/resources/035.settings @@ -312,7 +312,7 @@ lightning_infill_straightening_angle=40 support_tree_angle=45.0 draft_shield_height_limitation=full conical_overhang_angle=50 -skin_outline_count=1 +wall_line_count_skin=3 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 small_feature_speed_factor=50 skin_overlap_mm=0.04 @@ -542,7 +542,7 @@ material_print_temperature=200.0 jerk_print_layer_0=8 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=2 speed_print=60.0 wall_0_inset=0 skin_edge_support_thickness=0 diff --git a/stress_benchmark/resources/036.settings b/stress_benchmark/resources/036.settings index 5869f58a73..44573fb3cb 100644 --- a/stress_benchmark/resources/036.settings +++ b/stress_benchmark/resources/036.settings @@ -311,7 +311,7 @@ lightning_infill_straightening_angle=40 support_tree_angle=50 draft_shield_height_limitation=full conical_overhang_angle=50 -skin_outline_count=0 +wall_line_count_skin=2 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 small_feature_speed_factor=50 skin_overlap_mm=0.12 @@ -541,7 +541,7 @@ material_print_temperature=205.0 jerk_print_layer_0=12.0 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=2 speed_print=50.0 wall_0_inset=0 skin_edge_support_thickness=0 diff --git a/stress_benchmark/resources/037.settings b/stress_benchmark/resources/037.settings index f52f188876..2a2f95cfe3 100644 --- a/stress_benchmark/resources/037.settings +++ b/stress_benchmark/resources/037.settings @@ -311,7 +311,7 @@ lightning_infill_straightening_angle=40 support_tree_angle=55 draft_shield_height_limitation=full conical_overhang_angle=50 -skin_outline_count=1 +wall_line_count_skin=7 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 small_feature_speed_factor=50 skin_overlap_mm=0.04 @@ -541,7 +541,7 @@ material_print_temperature=190 jerk_print_layer_0=8 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=6 speed_print=45 wall_0_inset=0 skin_edge_support_thickness=0 diff --git a/stress_benchmark/resources/038.settings b/stress_benchmark/resources/038.settings index e13abd8021..3e20d849ca 100644 --- a/stress_benchmark/resources/038.settings +++ b/stress_benchmark/resources/038.settings @@ -312,7 +312,7 @@ lightning_infill_straightening_angle=40 support_tree_angle=65.0 draft_shield_height_limitation=full conical_overhang_angle=50 -skin_outline_count=1 +wall_line_count_skin=3 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 small_feature_speed_factor=50 skin_overlap_mm=0.04 @@ -542,7 +542,7 @@ material_print_temperature=203.0 jerk_print_layer_0=8 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=2 speed_print=50.0 wall_0_inset=0 skin_edge_support_thickness=0 diff --git a/stress_benchmark/resources/039.settings b/stress_benchmark/resources/039.settings index 7fef8dfdd6..cb1699ff8f 100644 --- a/stress_benchmark/resources/039.settings +++ b/stress_benchmark/resources/039.settings @@ -312,7 +312,7 @@ lightning_infill_straightening_angle=40 support_tree_angle=45 draft_shield_height_limitation=full conical_overhang_angle=50 -skin_outline_count=1 +wall_line_count_skin=3 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 small_feature_speed_factor=50 skin_overlap_mm=0.04 @@ -542,7 +542,7 @@ material_print_temperature=225.0 jerk_print_layer_0=8 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=2 speed_print=80.0 wall_0_inset=0 skin_edge_support_thickness=0 diff --git a/stress_benchmark/resources/040.settings b/stress_benchmark/resources/040.settings index b581d6d0b8..c07702f9f2 100644 --- a/stress_benchmark/resources/040.settings +++ b/stress_benchmark/resources/040.settings @@ -311,7 +311,7 @@ lightning_infill_straightening_angle=40 support_tree_angle=55 draft_shield_height_limitation=full conical_overhang_angle=50 -skin_outline_count=1 +wall_line_count_skin=2 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 small_feature_speed_factor=50 skin_overlap_mm=0.04 @@ -542,7 +542,7 @@ material_print_temperature=265 jerk_print_layer_0=20 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=1 speed_print=80 wall_0_inset=0 skin_edge_support_thickness=0 diff --git a/stress_benchmark/resources/041.settings b/stress_benchmark/resources/041.settings index 095fbd4cf2..be681cb37e 100644 --- a/stress_benchmark/resources/041.settings +++ b/stress_benchmark/resources/041.settings @@ -315,7 +315,7 @@ lightning_infill_straightening_angle=40 support_tree_angle=60.0 draft_shield_height_limitation=full conical_overhang_angle=50 -skin_outline_count=1 +wall_line_count_skin=3 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 small_feature_speed_factor=50 skin_overlap_mm=0.08 @@ -545,7 +545,7 @@ material_print_temperature=220.0 jerk_print_layer_0=8 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=2 speed_print=70 wall_0_inset=0 skin_edge_support_thickness=0 diff --git a/stress_benchmark/resources/042.settings b/stress_benchmark/resources/042.settings index a61a39d03a..2e908b187b 100644 --- a/stress_benchmark/resources/042.settings +++ b/stress_benchmark/resources/042.settings @@ -311,7 +311,7 @@ lightning_infill_straightening_angle=40 support_tree_angle=70 draft_shield_height_limitation=full conical_overhang_angle=50 -skin_outline_count=1 +wall_line_count_skin=3 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 small_feature_speed_factor=50 skin_overlap_mm=0.04 @@ -543,7 +543,7 @@ material_print_temperature=200.0 jerk_print_layer_0=8 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=2 speed_print=60.0 wall_0_inset=0 skin_edge_support_thickness=0 diff --git a/stress_benchmark/resources/043.settings b/stress_benchmark/resources/043.settings index 05ef23db74..9a5cfd1b05 100644 --- a/stress_benchmark/resources/043.settings +++ b/stress_benchmark/resources/043.settings @@ -314,7 +314,7 @@ lightning_infill_straightening_angle=40 support_tree_angle=45 draft_shield_height_limitation=full conical_overhang_angle=50 -skin_outline_count=1 +wall_line_count_skin=3 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 small_feature_speed_factor=50 skin_overlap_mm=0.04 @@ -544,7 +544,7 @@ material_print_temperature=200 jerk_print_layer_0=20 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=2 speed_print=70 wall_0_inset=0 skin_edge_support_thickness=0.4 diff --git a/stress_benchmark/resources/044.settings b/stress_benchmark/resources/044.settings index 3ce627ee25..67389b64a3 100644 --- a/stress_benchmark/resources/044.settings +++ b/stress_benchmark/resources/044.settings @@ -315,7 +315,7 @@ lightning_infill_straightening_angle=40 support_tree_angle=45 draft_shield_height_limitation=full conical_overhang_angle=50 -skin_outline_count=1 +wall_line_count_skin=3 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 small_feature_speed_factor=50 skin_overlap_mm=0.08 @@ -544,7 +544,7 @@ material_print_temperature=195 jerk_print_layer_0=20 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=2 speed_print=50 wall_0_inset=0 skin_edge_support_thickness=0.24 diff --git a/stress_benchmark/resources/045.settings b/stress_benchmark/resources/045.settings index 07447c71a2..6d645335a1 100644 --- a/stress_benchmark/resources/045.settings +++ b/stress_benchmark/resources/045.settings @@ -312,7 +312,7 @@ lightning_infill_straightening_angle=40 support_tree_angle=50 draft_shield_height_limitation=full conical_overhang_angle=50 -skin_outline_count=1 +wall_line_count_skin=5 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 small_feature_speed_factor=50 skin_overlap_mm=0.1 @@ -544,7 +544,7 @@ material_print_temperature=220 jerk_print_layer_0=20 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=4 speed_print=60 wall_0_inset=0 skin_edge_support_thickness=0 diff --git a/stress_benchmark/resources/046.settings b/stress_benchmark/resources/046.settings index fc8451b14f..9604186b85 100644 --- a/stress_benchmark/resources/046.settings +++ b/stress_benchmark/resources/046.settings @@ -312,7 +312,7 @@ lightning_infill_straightening_angle=40 support_tree_angle=60 draft_shield_height_limitation=full conical_overhang_angle=50 -skin_outline_count=1 +wall_line_count_skin=3 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 small_feature_speed_factor=50 skin_overlap_mm=0.04 @@ -543,7 +543,7 @@ material_print_temperature=215 jerk_print_layer_0=5 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=2 speed_print=50 wall_0_inset=0 skin_edge_support_thickness=0 diff --git a/stress_benchmark/resources/047.settings b/stress_benchmark/resources/047.settings index 91b7e77a2e..5cff747f24 100644 --- a/stress_benchmark/resources/047.settings +++ b/stress_benchmark/resources/047.settings @@ -312,7 +312,7 @@ lightning_infill_straightening_angle=40 support_tree_angle=60 draft_shield_height_limitation=full conical_overhang_angle=50 -skin_outline_count=1 +wall_line_count_skin=4 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 small_feature_speed_factor=50 skin_overlap_mm=0.02 @@ -543,7 +543,7 @@ material_print_temperature=200 jerk_print_layer_0=8 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=3 speed_print=50 wall_0_inset=0 skin_edge_support_thickness=0 diff --git a/stress_benchmark/resources/048.settings b/stress_benchmark/resources/048.settings index be9820e1f5..3ef525bb5f 100644 --- a/stress_benchmark/resources/048.settings +++ b/stress_benchmark/resources/048.settings @@ -311,7 +311,7 @@ lightning_infill_straightening_angle=40 support_tree_angle=30.0 draft_shield_height_limitation=full conical_overhang_angle=50 -skin_outline_count=1 +wall_line_count_skin=5 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 small_feature_speed_factor=50 skin_overlap_mm=0.04 @@ -541,7 +541,7 @@ material_print_temperature=215.0 jerk_print_layer_0=8 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=4 speed_print=40.0 wall_0_inset=0 skin_edge_support_thickness=0 diff --git a/stress_benchmark/resources/049.settings b/stress_benchmark/resources/049.settings index 097cc76f93..70c55289b8 100644 --- a/stress_benchmark/resources/049.settings +++ b/stress_benchmark/resources/049.settings @@ -336,7 +336,7 @@ shell=0 support_conical_min_width=5.0 conical_overhang_angle=50 draft_shield_height_limitation=full -skin_outline_count=1 +wall_line_count_skin=4 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 smooth_spiralized_contours=True jerk_topbottom=8 @@ -505,7 +505,7 @@ max_skin_angle_for_expansion=90 raft_base_fan_speed=0 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=3 speed_print=30.0 machine_endstop_positive_direction_x=False prime_tower_enable=False diff --git a/stress_benchmark/resources/050.settings b/stress_benchmark/resources/050.settings index 902172a462..efa761a215 100644 --- a/stress_benchmark/resources/050.settings +++ b/stress_benchmark/resources/050.settings @@ -336,7 +336,7 @@ shell=0 support_conical_min_width=5.0 conical_overhang_angle=50 draft_shield_height_limitation=full -skin_outline_count=1 +wall_line_count_skin=4 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 smooth_spiralized_contours=True jerk_topbottom=20 @@ -506,7 +506,7 @@ max_skin_angle_for_expansion=90 raft_base_fan_speed=0 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=3 speed_print=80 machine_endstop_positive_direction_x=False prime_tower_enable=False diff --git a/stress_benchmark/resources/051.settings b/stress_benchmark/resources/051.settings index ff46e5f93d..215d628a78 100644 --- a/stress_benchmark/resources/051.settings +++ b/stress_benchmark/resources/051.settings @@ -337,7 +337,7 @@ shell=0 support_conical_min_width=5.0 conical_overhang_angle=50 draft_shield_height_limitation=full -skin_outline_count=1 +wall_line_count_skin=4 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 smooth_spiralized_contours=True jerk_topbottom=6.0 @@ -507,7 +507,7 @@ max_skin_angle_for_expansion=90 raft_base_fan_speed=0 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=3 speed_print=40.0 machine_endstop_positive_direction_x=False prime_tower_enable=False diff --git a/stress_benchmark/resources/052.settings b/stress_benchmark/resources/052.settings index 269b99e8c6..b4dc9a7f7e 100644 --- a/stress_benchmark/resources/052.settings +++ b/stress_benchmark/resources/052.settings @@ -336,7 +336,7 @@ shell=0 support_conical_min_width=5.0 conical_overhang_angle=50 draft_shield_height_limitation=full -skin_outline_count=0 +wall_line_count_skin=4 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 smooth_spiralized_contours=True jerk_topbottom=8 @@ -505,7 +505,7 @@ max_skin_angle_for_expansion=90 raft_base_fan_speed=0 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=4 speed_print=60 machine_endstop_positive_direction_x=False prime_tower_enable=False diff --git a/stress_benchmark/resources/053.settings b/stress_benchmark/resources/053.settings index 0fb91da637..ae092e3589 100644 --- a/stress_benchmark/resources/053.settings +++ b/stress_benchmark/resources/053.settings @@ -338,7 +338,7 @@ shell=0 support_conical_min_width=5.0 conical_overhang_angle=50 draft_shield_height_limitation=full -skin_outline_count=1 +wall_line_count_skin=3 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 smooth_spiralized_contours=True jerk_topbottom=20 @@ -509,7 +509,7 @@ max_skin_angle_for_expansion=90 raft_base_fan_speed=0 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=2 speed_print=50 machine_endstop_positive_direction_x=False prime_tower_enable=False diff --git a/stress_benchmark/resources/055.settings b/stress_benchmark/resources/055.settings index 53d3f33367..3c864bfd63 100644 --- a/stress_benchmark/resources/055.settings +++ b/stress_benchmark/resources/055.settings @@ -338,7 +338,7 @@ shell=0 support_conical_min_width=5.0 conical_overhang_angle=50 draft_shield_height_limitation=full -skin_outline_count=1 +wall_line_count_skin=4 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 smooth_spiralized_contours=True jerk_topbottom=20 @@ -508,7 +508,7 @@ max_skin_angle_for_expansion=90 raft_base_fan_speed=0 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=3 speed_print=60 machine_endstop_positive_direction_x=False prime_tower_enable=False diff --git a/stress_benchmark/resources/056.settings b/stress_benchmark/resources/056.settings index 4f8b695d2f..4b899adc1d 100644 --- a/stress_benchmark/resources/056.settings +++ b/stress_benchmark/resources/056.settings @@ -336,7 +336,7 @@ shell=0 support_conical_min_width=5.0 conical_overhang_angle=50 draft_shield_height_limitation=full -skin_outline_count=1 +wall_line_count_skin=3 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 smooth_spiralized_contours=True jerk_topbottom=20 @@ -506,7 +506,7 @@ max_skin_angle_for_expansion=90 raft_base_fan_speed=0 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=2 speed_print=60 machine_endstop_positive_direction_x=False prime_tower_enable=False diff --git a/stress_benchmark/resources/058.settings b/stress_benchmark/resources/058.settings index f75b3ddd6c..ee7aee18f4 100644 --- a/stress_benchmark/resources/058.settings +++ b/stress_benchmark/resources/058.settings @@ -336,7 +336,7 @@ shell=0 support_conical_min_width=5.0 conical_overhang_angle=50 draft_shield_height_limitation=full -skin_outline_count=1 +wall_line_count_skin=4 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 smooth_spiralized_contours=True jerk_topbottom=8 @@ -505,7 +505,7 @@ max_skin_angle_for_expansion=90 raft_base_fan_speed=0 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=3 speed_print=50.0 machine_endstop_positive_direction_x=False prime_tower_enable=False diff --git a/stress_benchmark/resources/059.settings b/stress_benchmark/resources/059.settings index da3828fe8c..9fbce1138b 100644 --- a/stress_benchmark/resources/059.settings +++ b/stress_benchmark/resources/059.settings @@ -82,7 +82,7 @@ cool_fan_speed=100 raft_base_jerk=8 retraction_enable=True jerk_support_bottom=8 -skin_outline_count=1 +wall_line_count_skin=3 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 cool_min_speed=10 travel_avoid_distance=0.625 @@ -559,7 +559,7 @@ support_tree_min_height_to_model=3 ironing_enabled=False wipe_move_distance=20 speed_print=60.0 -infill_wall_line_count=0 +infill_wall_line_count=2 bridge_fan_speed_3=0 support_tree_angle_slow=30.0 raft_speed=30.0 diff --git a/stress_benchmark/resources/060.settings b/stress_benchmark/resources/060.settings index 88de133ca0..1078814284 100644 --- a/stress_benchmark/resources/060.settings +++ b/stress_benchmark/resources/060.settings @@ -82,7 +82,7 @@ cool_fan_speed=100.0 raft_base_jerk=8 retraction_enable=True jerk_support_bottom=8 -skin_outline_count=1 +wall_line_count_skin=4 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 cool_min_speed=10 travel_avoid_distance=0.625 @@ -558,7 +558,7 @@ support_tree_min_height_to_model=3 ironing_enabled=True wipe_move_distance=20 speed_print=80.0 -infill_wall_line_count=0 +infill_wall_line_count=3 bridge_fan_speed_3=0 support_tree_angle_slow=42.0 raft_speed=40.0 diff --git a/stress_benchmark/resources/062.settings b/stress_benchmark/resources/062.settings index 0cbbc973ee..04751909eb 100644 --- a/stress_benchmark/resources/062.settings +++ b/stress_benchmark/resources/062.settings @@ -82,7 +82,7 @@ cool_fan_speed=100 raft_base_jerk=20 retraction_enable=True jerk_support_bottom=20 -skin_outline_count=1 +wall_line_count_skin=4 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 cool_min_speed=10 travel_avoid_distance=0.625 @@ -560,7 +560,7 @@ support_tree_min_height_to_model=3 ironing_enabled=False wipe_move_distance=20 speed_print=60 -infill_wall_line_count=0 +infill_wall_line_count=3 bridge_fan_speed_3=0 support_tree_angle_slow=33.333333333333336 raft_speed=30.0 diff --git a/stress_benchmark/resources/065.settings b/stress_benchmark/resources/065.settings index 01cf138b3e..b060830943 100644 --- a/stress_benchmark/resources/065.settings +++ b/stress_benchmark/resources/065.settings @@ -82,7 +82,7 @@ cool_fan_speed=100 raft_base_jerk=20 retraction_enable=True jerk_support_bottom=20 -skin_outline_count=1 +wall_line_count_skin=4 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 cool_min_speed=4 travel_avoid_distance=0.4 @@ -561,7 +561,7 @@ support_tree_min_height_to_model=3 ironing_enabled=False wipe_move_distance=20 speed_print=30 -infill_wall_line_count=0 +infill_wall_line_count=3 bridge_fan_speed_3=100 support_tree_angle_slow=30.0 raft_speed=15 diff --git a/stress_benchmark/resources/066.settings b/stress_benchmark/resources/066.settings index 9aac810949..7297d679dc 100644 --- a/stress_benchmark/resources/066.settings +++ b/stress_benchmark/resources/066.settings @@ -82,7 +82,7 @@ cool_fan_speed=100 raft_base_jerk=20 retraction_enable=True jerk_support_bottom=20 -skin_outline_count=1 +wall_line_count_skin=3 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 cool_min_speed=6 travel_avoid_distance=3 @@ -561,7 +561,7 @@ support_tree_min_height_to_model=3 ironing_enabled=False wipe_move_distance=20 speed_print=45 -infill_wall_line_count=0 +infill_wall_line_count=2 bridge_fan_speed_3=100 support_tree_angle_slow=30.0 raft_speed=15 diff --git a/tests/test_default_settings.txt b/tests/test_default_settings.txt index b4dcf413bf..5145255f4b 100644 --- a/tests/test_default_settings.txt +++ b/tests/test_default_settings.txt @@ -285,7 +285,7 @@ bridge_skin_density_2=100 acceleration_support_bottom=3000 bridge_skin_density=80 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 -skin_outline_count=1 +wall_line_count_skin=3 acceleration_travel_layer_0=5000.0 material_extrusion_cool_down_speed=0.7 mesh_position_z=0 @@ -575,7 +575,7 @@ bridge_skin_speed_3=30.0 infill=0 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 +infill_wall_line_count=2 speed_print=60 jerk_enabled=False bridge_settings_enabled=True @@ -977,7 +977,6 @@ raft_surface_z_offset=0.0 cross_infill_pocket_size=60.0 acceleration_support_infill=3000 min_wall_line_width=0.2125 -skin_outline_count=1 _plugin__curaenginegradualflow__0_1_0__gradual_flow_discretisation_step_size=0.2 conical_overhang_angle=62.0 skin_angles=[] @@ -1092,7 +1091,6 @@ bridge_skin_speed_3=40.0 infill=0 magic_fuzzy_skin_point_density=1.25 hole_xy_offset=0 -infill_wall_line_count=0 speed_print=60.0 material_break_preparation_temperature=210 material_alternate_walls=False diff --git a/tests/test_global_settings.txt b/tests/test_global_settings.txt index 7ce4594a03..e81df08670 100644 --- a/tests/test_global_settings.txt +++ b/tests/test_global_settings.txt @@ -54,7 +54,7 @@ relative_extrusion=False support_fan_enable=False support_infill_rate=0 bridge_skin_material_flow=60 -infill_wall_line_count=0 +infill_wall_line_count=3 experimental=0 machine_center_is_zero=False infill=0 @@ -132,7 +132,7 @@ support_mesh_drop_down=True wall_line_count=3 retract_at_layer_change=False machine_steps_per_mm_y=50 -skin_outline_count=1 +wall_line_count_skin=4 retraction_count_max=10 material_guid= acceleration_infill=4000 From 728444d0d05d28cc75a751b1786ac4213aac639c Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Tue, 2 Jun 2026 10:24:28 +0200 Subject: [PATCH 7/7] Fix benchmark CURA-12446 --- benchmark/wall_benchmark.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/benchmark/wall_benchmark.h b/benchmark/wall_benchmark.h index 089524cf9c..765d710691 100644 --- a/benchmark/wall_benchmark.h +++ b/benchmark/wall_benchmark.h @@ -68,7 +68,6 @@ class WallTestFixture : public benchmark::Fixture settings.add("min_feature_size", "0"); settings.add("wall_0_extruder_nr", "0"); settings.add("wall_0_inset", "0"); - settings.add("wall_line_count", "2"); settings.add("wall_line_width_0", "0.4"); settings.add("wall_line_width_x", "0.4"); settings.add("min_even_wall_line_width", "0.34"); @@ -82,6 +81,7 @@ class WallTestFixture : public benchmark::Fixture settings.add("wall_line_count", std::to_string(state.range(0))); outer_to_inner = false; layer.parts.emplace_back(); + layer.outer_wall_count = state.range(0); SliceLayerPart& part = layer.parts.back(); part.outline.push_back(ff_holes); @@ -128,7 +128,6 @@ class HolesWallTestFixture : public benchmark::Fixture settings.add("min_feature_size", "0"); settings.add("wall_0_extruder_nr", "0"); settings.add("wall_0_inset", "0"); - settings.add("wall_line_count", "2"); settings.add("wall_line_width_0", "0.4"); settings.add("wall_line_width_x", "0.4"); settings.add("min_even_wall_line_width", "0.34"); @@ -142,6 +141,7 @@ class HolesWallTestFixture : public benchmark::Fixture settings.add("wall_line_count", std::to_string(state.range(0))); outer_to_inner = false; layer.parts.emplace_back(); + layer.outer_wall_count = state.range(0); SliceLayerPart& part = layer.parts.back(); part.outline.push_back(shape.front());