From abbe58fb11e988b04e5345b7520f10cc91774638 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 8 Jan 2024 13:52:49 +0100 Subject: [PATCH 01/17] Split up raft margin setting per raft-type Added the following settings - raft_base_margin - raft_interface_margin - raft_surface_margin since these are all child settings of raft_margin, the raft_margin setting should now not be used anymore CURA-11395 --- include/LayerPlan.h | 3 +- include/raft.h | 16 +++++++ include/sliceDataStorage.h | 6 ++- src/FffGcodeWriter.cpp | 6 +-- src/LayerPlan.cpp | 33 +++++++++---- src/raft.cpp | 62 +++++++++++++++++++++---- src/sliceDataStorage.cpp | 43 ++++++++++++++--- src/support.cpp | 6 +-- 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/054.settings | 4 +- stress_benchmark/resources/055.settings | 4 +- stress_benchmark/resources/056.settings | 4 +- stress_benchmark/resources/057.settings | 4 +- stress_benchmark/resources/058.settings | 4 +- stress_benchmark/resources/059.settings | 4 +- stress_benchmark/resources/060.settings | 4 +- stress_benchmark/resources/061.settings | 4 +- stress_benchmark/resources/062.settings | 4 +- stress_benchmark/resources/063.settings | 4 +- stress_benchmark/resources/064.settings | 4 +- stress_benchmark/resources/065.settings | 4 +- stress_benchmark/resources/066.settings | 4 +- stress_benchmark/resources/067.settings | 4 +- tests/test_global_settings.txt | 4 +- 76 files changed, 378 insertions(+), 109 deletions(-) diff --git a/include/LayerPlan.h b/include/LayerPlan.h index d978cbdbd7..1d3b3628a3 100644 --- a/include/LayerPlan.h +++ b/include/LayerPlan.h @@ -13,6 +13,7 @@ #include "pathPlanning/GCodePath.h" #include "pathPlanning/NozzleTempInsert.h" #include "pathPlanning/TimeMaterialEstimates.h" +#include "raft.h" #include "settings/PathConfigStorage.h" #include "settings/types/LayerIndex.h" #include "utils/ExtrusionJunction.h" @@ -63,7 +64,7 @@ class LayerPlan : public NoCopy const SliceDataStorage& storage_; //!< The polygon data obtained from FffPolygonProcessor const LayerIndex layer_nr_; //!< The layer number of this layer plan const bool is_initial_layer_; //!< Whether this is the first layer (which might be raft) - const bool is_raft_layer_; //!< Whether this is a layer which is part of the raft + const Raft::LayerType layer_type_; //!< Which part of the raft, airgap or model this layer is. coord_t layer_thickness_; std::vector layer_start_pos_per_extruder_; //!< The starting position of a layer for each extruder diff --git a/include/raft.h b/include/raft.h index 1019bef761..11f0fffdf6 100644 --- a/include/raft.h +++ b/include/raft.h @@ -4,6 +4,7 @@ #ifndef RAFT_H #define RAFT_H +#include "settings/types/LayerIndex.h" #include "utils/Coord_t.h" namespace cura @@ -54,6 +55,21 @@ class Raft */ static size_t getTotalExtraLayers(); + enum LayerType { + RaftBase, + RaftInterface, + RaftSurface, + Airgap, + Model + }; + + /*! + * \brief Get the type of layer at the given layer index. + * \param layer_index The layer index to get the type of. + * \return The type of layer at the given layer index. + */ + static LayerType getLayerType(LayerIndex layer_index); + }; }//namespace cura diff --git a/include/sliceDataStorage.h b/include/sliceDataStorage.h index 74d2047336..e18a3783d3 100644 --- a/include/sliceDataStorage.h +++ b/include/sliceDataStorage.h @@ -355,7 +355,11 @@ class SliceDataStorage : public NoCopy std::vector skirt_brim[MAX_EXTRUDERS]; //!< Skirt/brim polygons per extruder, ordered from inner to outer polygons. Polygons support_brim; //!< brim lines for support, going from the edge of the support inward. \note Not ordered by inset. - Polygons raftOutline; // Storage for the outline of the raft. Will be filled with lines when the GCode is generated. + + // Storage for the outline of the raft-parts. Will be filled with lines when the GCode is generated. + Polygons raftBaseOutline; + Polygons raftInterfaceOutline; + Polygons raftSurfaceOutline; int max_print_height_second_to_last_extruder; //!< Used in multi-extrusion: the layer number beyond which all models are printed with the same extruder std::vector max_print_height_per_extruder; //!< For each extruder the highest layer number at which it is used. diff --git a/src/FffGcodeWriter.cpp b/src/FffGcodeWriter.cpp index d520bb94da..037a5e7456 100644 --- a/src/FffGcodeWriter.cpp +++ b/src/FffGcodeWriter.cpp @@ -630,7 +630,7 @@ void FffGcodeWriter::processRaft(const SliceDataStorage& storage) }; std::vector raft_outline_paths; - raft_outline_paths.emplace_back(ParameterizedRaftPath{ line_spacing, storage.raftOutline }); + raft_outline_paths.emplace_back(ParameterizedRaftPath{ line_spacing, storage.raftBaseOutline }); if (storage.primeTower.enabled_) { const Polygons& raft_outline_prime_tower = storage.primeTower.getOuterPoly(layer_nr); @@ -761,7 +761,7 @@ void FffGcodeWriter::processRaft(const SliceDataStorage& storage) Polygons raft_outline_path; const coord_t small_offset = gcode_layer.configs_storage_.raft_interface_config.getLineWidth() / 2; // Do this manually because of micron-movement created in corners when insetting a polygon that was offset with round joint type. - raft_outline_path = storage.raftOutline.offset(-small_offset); + raft_outline_path = storage.raftInterfaceOutline.offset(-small_offset); raft_outline_path = Simplify(interface_settings).polygon(raft_outline_path); // Remove those micron-movements. const coord_t infill_outline_width = gcode_layer.configs_storage_.raft_interface_config.getLineWidth(); Polygons raft_lines; @@ -880,7 +880,7 @@ void FffGcodeWriter::processRaft(const SliceDataStorage& storage) Polygons raft_outline_path; const coord_t small_offset = gcode_layer.configs_storage_.raft_interface_config.getLineWidth() / 2; // Do this manually because of micron-movement created in corners when insetting a polygon that was offset with round joint type. - raft_outline_path = storage.raftOutline.offset(-small_offset); + raft_outline_path = storage.raftSurfaceOutline.offset(-small_offset); raft_outline_path = Simplify(interface_settings).polygon(raft_outline_path); // Remove those micron-movements. const coord_t infill_outline_width = gcode_layer.configs_storage_.raft_interface_config.getLineWidth(); Polygons raft_lines; diff --git a/src/LayerPlan.cpp b/src/LayerPlan.cpp index 7d4ede0d0f..4f498caffd 100644 --- a/src/LayerPlan.cpp +++ b/src/LayerPlan.cpp @@ -95,7 +95,7 @@ LayerPlan::LayerPlan( , storage_(storage) , layer_nr_(layer_nr) , is_initial_layer_(layer_nr == 0 - static_cast(Raft::getTotalExtraLayers())) - , is_raft_layer_(layer_nr < 0 - static_cast(Raft::getFillerLayerCount())) + , layer_type_(Raft::getLayerType(layer_nr)) , layer_thickness_(layer_thickness) , has_prime_tower_planned_per_extruder_(Application::getInstance().current_slice_->scene.extruders.size(), false) , current_mesh_(nullptr) @@ -124,11 +124,12 @@ LayerPlan::LayerPlan( layer_start_pos_per_extruder_.emplace_back(extruder.settings_.get("layer_start_x"), extruder.settings_.get("layer_start_y")); } extruder_plans_.reserve(Application::getInstance().current_slice_->scene.extruders.size()); + const auto is_raft_layer = layer_type_ == Raft::LayerType::RaftBase || layer_type_ == Raft::LayerType::RaftInterface || layer_type_ == Raft::LayerType::RaftSurface; extruder_plans_.emplace_back( current_extruder, layer_nr, is_initial_layer_, - is_raft_layer_, + is_raft_layer, layer_thickness, fan_speed_layer_time_settings_per_extruder[current_extruder], storage.retraction_wipe_config_per_extruder[current_extruder].retraction_config); @@ -156,12 +157,25 @@ Polygons LayerPlan::computeCombBoundary(const CombBoundary boundary_type) const CombingMode mesh_combing_mode = Application::getInstance().current_slice_->scene.current_mesh_group->settings.get("retraction_combing"); if (mesh_combing_mode != CombingMode::OFF && (layer_nr_ >= 0 || mesh_combing_mode != CombingMode::NO_SKIN)) { - if (layer_nr_ < 0) - { - comb_boundary = storage_.raftOutline.offset(MM2INT(0.1)); - } - else + switch (layer_type_) { + case Raft::LayerType::RaftBase: + comb_boundary = storage_.raftBaseOutline.offset(MM2INT(0.1)); + break; + + case Raft::LayerType::RaftInterface: + comb_boundary = storage_.raftInterfaceOutline.offset(MM2INT(0.1)); + break; + + case Raft::LayerType::RaftSurface: + comb_boundary = storage_.raftSurfaceOutline.offset(MM2INT(0.1)); + break; + + case Raft::LayerType::Airgap: + // do nothing for airgap + break; + + case Raft::LayerType::Model: for (const std::shared_ptr& mesh_ptr : storage_.meshes) { const auto& mesh = *mesh_ptr; @@ -216,6 +230,7 @@ Polygons LayerPlan::computeCombBoundary(const CombBoundary boundary_type) } } } + break; } } return comb_boundary; @@ -255,11 +270,13 @@ bool LayerPlan::setExtruder(const size_t extruder_nr) { // first extruder plan in a layer might be empty, cause it is made with the last extruder planned in the previous layer extruder_plans_.back().extruder_nr_ = extruder_nr; } + + const auto is_raft_layer = layer_type_ == Raft::LayerType::RaftBase || layer_type_ == Raft::LayerType::RaftInterface || layer_type_ == Raft::LayerType::RaftSurface; extruder_plans_.emplace_back( extruder_nr, layer_nr_, is_initial_layer_, - is_raft_layer_, + is_raft_layer, layer_thickness_, fan_speed_layer_time_settings_per_extruder_[extruder_nr], storage_.retraction_wipe_config_per_extruder[extruder_nr].retraction_config); diff --git a/src/raft.cpp b/src/raft.cpp index 0bdc72bbfe..b42e3e2491 100644 --- a/src/raft.cpp +++ b/src/raft.cpp @@ -19,36 +19,50 @@ void Raft::generate(SliceDataStorage& storage) { assert(storage.raftOutline.size() == 0 && "Raft polygon isn't generated yet, so should be empty!"); const Settings& settings = Application::getInstance().current_slice_->scene.current_mesh_group->settings.get("raft_base_extruder_nr").settings_; - const coord_t distance = settings.get("raft_margin"); constexpr bool include_support = true; constexpr bool dont_include_prime_tower = false; // Prime tower raft will be handled separately in 'storage.primeRaftOutline'; see below. - storage.raftOutline = storage.getLayerOutlines(0, include_support, dont_include_prime_tower).offset(distance, ClipperLib::jtRound); + + storage.raftBaseOutline = storage.raftSurfaceOutline = storage.raftInterfaceOutline = storage.getLayerOutlines(0, include_support, dont_include_prime_tower); + storage.raftBaseOutline = storage.raftBaseOutline.offset(settings.get("raft_base_margin"), ClipperLib::jtRound); + storage.raftInterfaceOutline = storage.raftInterfaceOutline.offset(settings.get("raft_interface_margin"), ClipperLib::jtRound); + storage.raftSurfaceOutline = storage.raftSurfaceOutline.offset(settings.get("raft_surface_margin"), ClipperLib::jtRound); + const coord_t shield_line_width_layer0 = settings.get("skirt_brim_line_width"); + const coord_t max_raft_distance = std::max(std::max(settings.get("raft_base_margin"), settings.get("raft_interface_margin")), settings.get("raft_surface_margin")); if (storage.draft_protection_shield.size() > 0) { Polygons draft_shield_raft = storage.draft_protection_shield .offset(shield_line_width_layer0) // start half a line width outside shield - .difference(storage.draft_protection_shield.offset(-distance - shield_line_width_layer0 / 2, ClipperLib::jtRound)); // end distance inside shield - storage.raftOutline = storage.raftOutline.unionPolygons(draft_shield_raft); + .difference(storage.draft_protection_shield.offset(-max_raft_distance - shield_line_width_layer0 / 2, ClipperLib::jtRound)); // end distance inside shield + storage.raftBaseOutline = storage.raftBaseOutline.unionPolygons(draft_shield_raft); + storage.raftSurfaceOutline = storage.raftSurfaceOutline.unionPolygons(draft_shield_raft); + storage.raftInterfaceOutline = storage.raftInterfaceOutline.unionPolygons(draft_shield_raft); } if (storage.oozeShield.size() > 0 && storage.oozeShield[0].size() > 0) { const Polygons& ooze_shield = storage.oozeShield[0]; Polygons ooze_shield_raft = ooze_shield .offset(shield_line_width_layer0) // start half a line width outside shield - .difference(ooze_shield.offset(-distance - shield_line_width_layer0 / 2, ClipperLib::jtRound)); // end distance inside shield - storage.raftOutline = storage.raftOutline.unionPolygons(ooze_shield_raft); + .difference(ooze_shield.offset(-max_raft_distance - shield_line_width_layer0 / 2, ClipperLib::jtRound)); // end distance inside shield + storage.raftBaseOutline = storage.raftBaseOutline.unionPolygons(ooze_shield_raft); + storage.raftSurfaceOutline = storage.raftSurfaceOutline.unionPolygons(ooze_shield_raft); + storage.raftInterfaceOutline = storage.raftInterfaceOutline.unionPolygons(ooze_shield_raft); } if (settings.get("raft_remove_inside_corners")) { - storage.raftOutline.makeConvex(); + storage.raftBaseOutline.makeConvex(); + storage.raftSurfaceOutline.makeConvex(); + storage.raftInterfaceOutline.makeConvex(); } else { const coord_t smoothing = settings.get("raft_smoothing"); - storage.raftOutline = storage.raftOutline.offset(smoothing, ClipperLib::jtRound).offset(-smoothing, ClipperLib::jtRound); // remove small holes and smooth inward corners + // remove small holes and smooth inward corners + storage.raftBaseOutline = storage.raftBaseOutline.offset(smoothing, ClipperLib::jtRound).offset(-smoothing, ClipperLib::jtRound); + storage.raftSurfaceOutline = storage.raftSurfaceOutline.offset(smoothing, ClipperLib::jtRound).offset(-smoothing, ClipperLib::jtRound); + storage.raftInterfaceOutline = storage.raftInterfaceOutline.offset(smoothing, ClipperLib::jtRound).offset(-smoothing, ClipperLib::jtRound); } if (storage.primeTower.enabled_ && ! storage.primeTower.would_have_actual_tower_) @@ -121,5 +135,37 @@ size_t Raft::getTotalExtraLayers() return 1 + interface_train.settings_.get("raft_interface_layers") + surface_train.settings_.get("raft_surface_layers") + getFillerLayerCount(); } +Raft::LayerType Raft::getLayerType(LayerIndex layer_index) +{ + const Settings& mesh_group_settings = Application::getInstance().current_slice_->scene.current_mesh_group->settings; + const ExtruderTrain& base_train = mesh_group_settings.get("raft_base_extruder_nr"); + const ExtruderTrain& interface_train = mesh_group_settings.get("raft_interface_extruder_nr"); + const ExtruderTrain& surface_train = mesh_group_settings.get("raft_surface_extruder_nr"); + const auto airgap = Raft::getFillerLayerCount(); + const auto interface_layers = interface_train.settings_.get("raft_interface_layers"); + const auto surface_layers = surface_train.settings_.get("raft_surface_layers"); + + if (layer_index < - airgap - surface_layers - interface_layers) + { + return LayerType::RaftBase; + } + if (layer_index < - airgap - surface_layers) + { + return LayerType::RaftInterface; + } + if (layer_index < - airgap) + { + return LayerType::RaftSurface; + } + else if (layer_index < 0) + { + return LayerType::Airgap; + } + else + { + return LayerType::Model; + } +} + } // namespace cura diff --git a/src/sliceDataStorage.cpp b/src/sliceDataStorage.cpp index 94e2ccf16f..1af95d5027 100644 --- a/src/sliceDataStorage.cpp +++ b/src/sliceDataStorage.cpp @@ -271,13 +271,41 @@ Polygons const { const Settings& mesh_group_settings = Application::getInstance().current_slice_->scene.current_mesh_group->settings; - if (layer_nr < 0 && layer_nr < -static_cast(Raft::getFillerLayerCount())) - { // when processing raft - if (include_support && (extruder_nr == -1 || extruder_nr == int(mesh_group_settings.get("adhesion_extruder_nr").extruder_nr_))) + + const auto layer_type = Raft::getLayerType(layer_nr); + switch (layer_type) + { + case Raft::LayerType::RaftBase: + case Raft::LayerType::RaftInterface: + case Raft::LayerType::RaftSurface: + { + const Polygons* raftOutline; + bool use_current_extruder_for_raft = extruder_nr == -1; + + switch (layer_type) + { + case Raft::LayerType::RaftBase: + raftOutline = &raftBaseOutline; + use_current_extruder_for_raft |= extruder_nr == int(mesh_group_settings.get("raft_base_extruder_nr").extruder_nr_); + break; + case Raft::LayerType::RaftInterface: + raftOutline = &raftInterfaceOutline; + use_current_extruder_for_raft |= extruder_nr == int(mesh_group_settings.get("raft_interface_extruder_nr").extruder_nr_); + break; + case Raft::LayerType::RaftSurface: + raftOutline = &raftSurfaceOutline; + use_current_extruder_for_raft |= extruder_nr == int(mesh_group_settings.get("raft_surface_extruder_nr").extruder_nr_); + break; + default: + assert(false << "unreachable due to outer switch statement"); + return Polygons(); + } + + if (include_support && use_current_extruder_for_raft) { if (external_polys_only) { - std::vector parts = raftOutline.splitIntoParts(); + std::vector parts = raftOutline->splitIntoParts(); Polygons result; for (PolygonsPart& part : parts) { @@ -287,16 +315,17 @@ Polygons } else { - return raftOutline; + return *raftOutline; } } else { return Polygons(); } + break; } - else - { + case Raft::LayerType::Airgap: + case Raft::LayerType::Model: Polygons total; if (layer_nr >= 0) { diff --git a/src/support.cpp b/src/support.cpp index 5db274bfdd..09aff457c7 100644 --- a/src/support.cpp +++ b/src/support.cpp @@ -539,9 +539,9 @@ Polygons AreaSupport::join(const SliceDataStorage& storage, const Polygons& supp break; case EPlatformAdhesion::RAFT: { - adhesion_size = std::max({ mesh_group_settings.get("raft_base_extruder_nr").settings_.get("raft_margin"), - mesh_group_settings.get("raft_interface_extruder_nr").settings_.get("raft_margin"), - mesh_group_settings.get("raft_surface_extruder_nr").settings_.get("raft_margin") }); + adhesion_size = std::max({ mesh_group_settings.get("raft_base_extruder_nr").settings_.get("raft_base_margin"), + mesh_group_settings.get("raft_interface_extruder_nr").settings_.get("raft_interface_margin"), + mesh_group_settings.get("raft_surface_extruder_nr").settings_.get("raft_surface_margin") }); break; } case EPlatformAdhesion::NONE: diff --git a/stress_benchmark/resources/001.settings b/stress_benchmark/resources/001.settings index d56461c776..d72d076797 100644 --- a/stress_benchmark/resources/001.settings +++ b/stress_benchmark/resources/001.settings @@ -502,7 +502,9 @@ acceleration_infill=300 support_skip_some_zags=False material_end_of_filament_purge_speed=0.5 machine_max_jerk_e=5.0 -raft_margin=3 +raft_base_margin=3 +raft_interface_margin=3 +raft_surface_margin=3 support_interface_angles=[] support_roof_height=1.015 smooth_spiralized_contours=True diff --git a/stress_benchmark/resources/002.settings b/stress_benchmark/resources/002.settings index c5ec85db58..c9dfb14cc0 100644 --- a/stress_benchmark/resources/002.settings +++ b/stress_benchmark/resources/002.settings @@ -83,7 +83,9 @@ ironing_line_spacing=0.1 support_infill_sparse_thickness=0.2 material_bed_temperature_layer_0=50 machine_max_jerk_e=5 -raft_margin=5 +raft_base_margin=5 +raft_interface_margin=5 +raft_surface_margin=5 machine_scale_fan_speed_zero_to_one=False wall_x_material_flow=100 cool_fan_speed=100.0 @@ -1057,7 +1059,9 @@ bridge_skin_density_3=80 min_feature_size=0.1 infill_sparse_thickness=0.2 command_line_settings=0 -raft_margin=5 +raft_base_margin=5 +raft_interface_margin=5 +raft_surface_margin=5 material_end_of_filament_purge_speed=0.5 speed_support=25.0 machine_extruder_cooling_fan_number=0 diff --git a/stress_benchmark/resources/003.settings b/stress_benchmark/resources/003.settings index d0fd7a001a..b6aa5b0d7a 100644 --- a/stress_benchmark/resources/003.settings +++ b/stress_benchmark/resources/003.settings @@ -83,7 +83,9 @@ ironing_line_spacing=0.1 support_infill_sparse_thickness=0.12 material_bed_temperature_layer_0=65 machine_max_jerk_e=5 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 machine_scale_fan_speed_zero_to_one=False wall_x_material_flow=100 cool_fan_speed=100.0 @@ -1058,7 +1060,9 @@ bridge_skin_density_3=80 min_feature_size=0.105 infill_sparse_thickness=0.12 command_line_settings=0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 material_end_of_filament_purge_speed=0.5 speed_support=25.0 machine_extruder_cooling_fan_number=0 diff --git a/stress_benchmark/resources/004.settings b/stress_benchmark/resources/004.settings index 4683743db7..a4c2afe92e 100644 --- a/stress_benchmark/resources/004.settings +++ b/stress_benchmark/resources/004.settings @@ -83,7 +83,9 @@ ironing_line_spacing=0.1 support_infill_sparse_thickness=0.1 material_bed_temperature_layer_0=70 machine_max_jerk_e=5 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 machine_scale_fan_speed_zero_to_one=False wall_x_material_flow=100 cool_fan_speed=100.0 @@ -1058,7 +1060,9 @@ bridge_skin_density_3=80 min_feature_size=0.1 infill_sparse_thickness=0.1 command_line_settings=0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 material_end_of_filament_purge_speed=0.5 speed_support=30 machine_extruder_cooling_fan_number=0 diff --git a/stress_benchmark/resources/005.settings b/stress_benchmark/resources/005.settings index b4ee5d4563..f54b1d867c 100644 --- a/stress_benchmark/resources/005.settings +++ b/stress_benchmark/resources/005.settings @@ -83,7 +83,9 @@ ironing_line_spacing=0.1 support_infill_sparse_thickness=0.2 material_bed_temperature_layer_0=55 machine_max_jerk_e=5 -raft_margin=5.0 +raft_base_margin=5 +raft_interface_margin=5 +raft_surface_margin=5 machine_scale_fan_speed_zero_to_one=False wall_x_material_flow=100 cool_fan_speed=100.0 @@ -1059,7 +1061,9 @@ bridge_skin_density_3=80 min_feature_size=0.1 infill_sparse_thickness=0.2 command_line_settings=0 -raft_margin=5.0 +raft_base_margin=5 +raft_interface_margin=5 +raft_surface_margin=5 material_end_of_filament_purge_speed=0.5 speed_support=25.0 machine_extruder_cooling_fan_number=0 diff --git a/stress_benchmark/resources/006.settings b/stress_benchmark/resources/006.settings index ec75660851..956d6691a6 100644 --- a/stress_benchmark/resources/006.settings +++ b/stress_benchmark/resources/006.settings @@ -83,7 +83,9 @@ ironing_line_spacing=0.1 support_infill_sparse_thickness=0.2 material_bed_temperature_layer_0=60 machine_max_jerk_e=5 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 machine_scale_fan_speed_zero_to_one=False wall_x_material_flow=100 cool_fan_speed=100.0 @@ -1059,7 +1061,9 @@ bridge_skin_density_3=80 min_feature_size=0.1 infill_sparse_thickness=0.2 command_line_settings=0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 material_end_of_filament_purge_speed=0.5 speed_support=25.0 machine_extruder_cooling_fan_number=0 diff --git a/stress_benchmark/resources/007.settings b/stress_benchmark/resources/007.settings index 635226ed8c..424a7b4afa 100644 --- a/stress_benchmark/resources/007.settings +++ b/stress_benchmark/resources/007.settings @@ -83,7 +83,9 @@ ironing_line_spacing=0.1 support_infill_sparse_thickness=0.2 material_bed_temperature_layer_0=60 machine_max_jerk_e=5 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 machine_scale_fan_speed_zero_to_one=False wall_x_material_flow=100 cool_fan_speed=100.0 @@ -1059,7 +1061,9 @@ bridge_skin_density_3=80 min_feature_size=0.1 infill_sparse_thickness=0.2 command_line_settings=0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 material_end_of_filament_purge_speed=0.5 speed_support=40.0 machine_extruder_cooling_fan_number=0 diff --git a/stress_benchmark/resources/008.settings b/stress_benchmark/resources/008.settings index f4771e572b..cfcd6b234c 100644 --- a/stress_benchmark/resources/008.settings +++ b/stress_benchmark/resources/008.settings @@ -370,7 +370,9 @@ support_tree_top_rate=10 cross_infill_pocket_size=6.0 material_end_of_filament_purge_speed=0.5 machine_max_jerk_e=5.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 acceleration_support_roof=1000 support_roof_offset=0.0 wipe_retraction_prime_speed=45 @@ -899,7 +901,9 @@ wall_line_width_0=0.4 support_tree_top_rate=10 cross_infill_pocket_size=6.0 material_end_of_filament_purge_speed=0.5 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 material_break_preparation_temperature=210 wall_transition_filter_deviation=0.1 support_tree_max_diameter_increase_by_merges_when_support_to_model=1 diff --git a/stress_benchmark/resources/009.settings b/stress_benchmark/resources/009.settings index f4771e572b..cfcd6b234c 100644 --- a/stress_benchmark/resources/009.settings +++ b/stress_benchmark/resources/009.settings @@ -370,7 +370,9 @@ support_tree_top_rate=10 cross_infill_pocket_size=6.0 material_end_of_filament_purge_speed=0.5 machine_max_jerk_e=5.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 acceleration_support_roof=1000 support_roof_offset=0.0 wipe_retraction_prime_speed=45 @@ -899,7 +901,9 @@ wall_line_width_0=0.4 support_tree_top_rate=10 cross_infill_pocket_size=6.0 material_end_of_filament_purge_speed=0.5 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 material_break_preparation_temperature=210 wall_transition_filter_deviation=0.1 support_tree_max_diameter_increase_by_merges_when_support_to_model=1 diff --git a/stress_benchmark/resources/010.settings b/stress_benchmark/resources/010.settings index f4771e572b..cfcd6b234c 100644 --- a/stress_benchmark/resources/010.settings +++ b/stress_benchmark/resources/010.settings @@ -370,7 +370,9 @@ support_tree_top_rate=10 cross_infill_pocket_size=6.0 material_end_of_filament_purge_speed=0.5 machine_max_jerk_e=5.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 acceleration_support_roof=1000 support_roof_offset=0.0 wipe_retraction_prime_speed=45 @@ -899,7 +901,9 @@ wall_line_width_0=0.4 support_tree_top_rate=10 cross_infill_pocket_size=6.0 material_end_of_filament_purge_speed=0.5 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 material_break_preparation_temperature=210 wall_transition_filter_deviation=0.1 support_tree_max_diameter_increase_by_merges_when_support_to_model=1 diff --git a/stress_benchmark/resources/011.settings b/stress_benchmark/resources/011.settings index 3f63e86a10..08b6ec47db 100644 --- a/stress_benchmark/resources/011.settings +++ b/stress_benchmark/resources/011.settings @@ -83,7 +83,9 @@ ironing_line_spacing=0.1 support_infill_sparse_thickness=0.2 material_bed_temperature_layer_0=60 machine_max_jerk_e=5.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 machine_scale_fan_speed_zero_to_one=False wall_x_material_flow=100 cool_fan_speed=100.0 @@ -1059,7 +1061,9 @@ bridge_skin_density_3=80 min_feature_size=0.1 infill_sparse_thickness=0.2 command_line_settings=0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 material_end_of_filament_purge_speed=0.5 speed_support=60 machine_extruder_cooling_fan_number=0 diff --git a/stress_benchmark/resources/012.settings b/stress_benchmark/resources/012.settings index 712087c5e2..521724273d 100644 --- a/stress_benchmark/resources/012.settings +++ b/stress_benchmark/resources/012.settings @@ -28,7 +28,9 @@ material_initial_print_temperature=250 jerk_skirt_brim=12.5 roofing_monotonic=True machine_max_jerk_e=5.0 -raft_margin=3 +raft_base_margin=3 +raft_interface_margin=3 +raft_surface_margin=3 bottom_thickness=1.0 skirt_height=3 speed_travel_layer_0=250.0 diff --git a/stress_benchmark/resources/013.settings b/stress_benchmark/resources/013.settings index dd1893e2c9..311beb6893 100644 --- a/stress_benchmark/resources/013.settings +++ b/stress_benchmark/resources/013.settings @@ -134,7 +134,9 @@ raft_interface_jerk=8 material_shrinkage_percentage=100.0 support_interface_wall_count=0 machine_max_jerk_e=5 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 roofing_monotonic=True skin_overlap_mm=0.04 small_feature_max_length=0.0 diff --git a/stress_benchmark/resources/014.settings b/stress_benchmark/resources/014.settings index 3838f85463..93487b5295 100644 --- a/stress_benchmark/resources/014.settings +++ b/stress_benchmark/resources/014.settings @@ -134,7 +134,9 @@ raft_interface_jerk=8 material_shrinkage_percentage=100.0 support_interface_wall_count=0 machine_max_jerk_e=5.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 roofing_monotonic=True skin_overlap_mm=0.02 small_feature_max_length=0.0 diff --git a/stress_benchmark/resources/015.settings b/stress_benchmark/resources/015.settings index b2a53600c9..1159c55eba 100644 --- a/stress_benchmark/resources/015.settings +++ b/stress_benchmark/resources/015.settings @@ -134,7 +134,9 @@ raft_interface_jerk=20 material_shrinkage_percentage=100.0 support_interface_wall_count=0 machine_max_jerk_e=5.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 roofing_monotonic=True skin_overlap_mm=0.02 small_feature_max_length=0.0 diff --git a/stress_benchmark/resources/016.settings b/stress_benchmark/resources/016.settings index af2f42cf1e..de11857273 100644 --- a/stress_benchmark/resources/016.settings +++ b/stress_benchmark/resources/016.settings @@ -134,7 +134,9 @@ raft_interface_jerk=8 material_shrinkage_percentage=100.0 support_interface_wall_count=0 machine_max_jerk_e=5 -raft_margin=5 +raft_base_margin=5 +raft_interface_margin=5 +raft_surface_margin=5 roofing_monotonic=True skin_overlap_mm=0.04 small_feature_max_length=0.0 diff --git a/stress_benchmark/resources/017.settings b/stress_benchmark/resources/017.settings index 02d045445e..76a4b98128 100644 --- a/stress_benchmark/resources/017.settings +++ b/stress_benchmark/resources/017.settings @@ -134,7 +134,9 @@ raft_interface_jerk=12.0 material_shrinkage_percentage=100.0 support_interface_wall_count=0 machine_max_jerk_e=5 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 roofing_monotonic=True skin_overlap_mm=0.12 small_feature_max_length=0.0 diff --git a/stress_benchmark/resources/018.settings b/stress_benchmark/resources/018.settings index 2b377d53e0..4c6b5a3bf1 100644 --- a/stress_benchmark/resources/018.settings +++ b/stress_benchmark/resources/018.settings @@ -134,7 +134,9 @@ raft_interface_jerk=8 material_shrinkage_percentage=100.0 support_interface_wall_count=0 machine_max_jerk_e=5 -raft_margin=5.0 +raft_base_margin=5 +raft_interface_margin=5 +raft_surface_margin=5 roofing_monotonic=True skin_overlap_mm=0.04 small_feature_max_length=0.0 diff --git a/stress_benchmark/resources/019.settings b/stress_benchmark/resources/019.settings index 8910e83a35..443bd2d9a1 100644 --- a/stress_benchmark/resources/019.settings +++ b/stress_benchmark/resources/019.settings @@ -134,7 +134,9 @@ raft_interface_jerk=8 material_shrinkage_percentage=100.0 support_interface_wall_count=0 machine_max_jerk_e=5 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 roofing_monotonic=True skin_overlap_mm=0.04 small_feature_max_length=0.0 diff --git a/stress_benchmark/resources/020.settings b/stress_benchmark/resources/020.settings index 87cecf33c7..d96be4bd5a 100644 --- a/stress_benchmark/resources/020.settings +++ b/stress_benchmark/resources/020.settings @@ -134,7 +134,9 @@ raft_interface_jerk=20 material_shrinkage_percentage=100.0 support_interface_wall_count=0 machine_max_jerk_e=5.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 roofing_monotonic=True skin_overlap_mm=0.04 small_feature_max_length=0.0 diff --git a/stress_benchmark/resources/021.settings b/stress_benchmark/resources/021.settings index 8ddb9175ff..802d2c4733 100644 --- a/stress_benchmark/resources/021.settings +++ b/stress_benchmark/resources/021.settings @@ -135,7 +135,9 @@ raft_interface_jerk=30 material_shrinkage_percentage=100.1 support_interface_wall_count=1 machine_max_jerk_e=5.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 roofing_monotonic=True skin_overlap_mm=0.08 small_feature_max_length=0.0 diff --git a/stress_benchmark/resources/022.settings b/stress_benchmark/resources/022.settings index 6d484adf38..1384179d85 100644 --- a/stress_benchmark/resources/022.settings +++ b/stress_benchmark/resources/022.settings @@ -134,7 +134,9 @@ raft_interface_jerk=20 material_shrinkage_percentage=100.0 support_interface_wall_count=0 machine_max_jerk_e=5.0 -raft_margin=15.0 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 roofing_monotonic=True skin_overlap_mm=0.084 small_feature_max_length=0.0 diff --git a/stress_benchmark/resources/023.settings b/stress_benchmark/resources/023.settings index abc56c6905..2313a61291 100644 --- a/stress_benchmark/resources/023.settings +++ b/stress_benchmark/resources/023.settings @@ -134,7 +134,9 @@ raft_interface_jerk=10.0 material_shrinkage_percentage=100.0 support_interface_wall_count=1 machine_max_jerk_e=5.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 roofing_monotonic=True skin_overlap_mm=0.044000000000000004 small_feature_max_length=15.707963267948966 diff --git a/stress_benchmark/resources/024.settings b/stress_benchmark/resources/024.settings index 05c420b03e..15d687c588 100644 --- a/stress_benchmark/resources/024.settings +++ b/stress_benchmark/resources/024.settings @@ -135,7 +135,9 @@ raft_interface_jerk=8 material_shrinkage_percentage=100.0 support_interface_wall_count=1 machine_max_jerk_e=5 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 roofing_monotonic=True skin_overlap_mm=0.08 small_feature_max_length=0.0 diff --git a/stress_benchmark/resources/025.settings b/stress_benchmark/resources/025.settings index a6e3d3500e..60b63ed7ab 100644 --- a/stress_benchmark/resources/025.settings +++ b/stress_benchmark/resources/025.settings @@ -134,7 +134,9 @@ raft_interface_jerk=20 material_shrinkage_percentage=100.0 support_interface_wall_count=0 machine_max_jerk_e=5.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 roofing_monotonic=True skin_overlap_mm=0.02 small_feature_max_length=0.0 diff --git a/stress_benchmark/resources/026.settings b/stress_benchmark/resources/026.settings index a008515e9f..92acf19566 100644 --- a/stress_benchmark/resources/026.settings +++ b/stress_benchmark/resources/026.settings @@ -135,7 +135,9 @@ raft_interface_jerk=20 material_shrinkage_percentage=100.2 support_interface_wall_count=1 machine_max_jerk_e=5.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 roofing_monotonic=True skin_overlap_mm=0.08 small_feature_max_length=0.0 diff --git a/stress_benchmark/resources/027.settings b/stress_benchmark/resources/027.settings index 1b4b00078a..8617f7f696 100644 --- a/stress_benchmark/resources/027.settings +++ b/stress_benchmark/resources/027.settings @@ -135,7 +135,9 @@ raft_interface_jerk=50.0 material_shrinkage_percentage=100.3 support_interface_wall_count=1 machine_max_jerk_e=5.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 roofing_monotonic=True skin_overlap_mm=0.08 small_feature_max_length=0.0 diff --git a/stress_benchmark/resources/028.settings b/stress_benchmark/resources/028.settings index 7f958d05c2..0ffc6d9b51 100644 --- a/stress_benchmark/resources/028.settings +++ b/stress_benchmark/resources/028.settings @@ -134,7 +134,9 @@ raft_interface_jerk=20 material_shrinkage_percentage=100.0 support_interface_wall_count=0 machine_max_jerk_e=5.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 roofing_monotonic=True skin_overlap_mm=0.1 small_feature_max_length=0.0 diff --git a/stress_benchmark/resources/029.settings b/stress_benchmark/resources/029.settings index 823bf8129b..5b9c43af5e 100644 --- a/stress_benchmark/resources/029.settings +++ b/stress_benchmark/resources/029.settings @@ -134,7 +134,9 @@ raft_interface_jerk=20 material_shrinkage_percentage=100.0 support_interface_wall_count=0 machine_max_jerk_e=5.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 roofing_monotonic=True skin_overlap_mm=0.04 small_feature_max_length=15.707963267948966 diff --git a/stress_benchmark/resources/030.settings b/stress_benchmark/resources/030.settings index f003931b0a..47809b68eb 100644 --- a/stress_benchmark/resources/030.settings +++ b/stress_benchmark/resources/030.settings @@ -135,7 +135,9 @@ raft_interface_jerk=20 material_shrinkage_percentage=100.2 support_interface_wall_count=1 machine_max_jerk_e=5.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 roofing_monotonic=True skin_overlap_mm=0.08 small_feature_max_length=0.0 diff --git a/stress_benchmark/resources/031.settings b/stress_benchmark/resources/031.settings index 35ea2a8526..31984edfe1 100644 --- a/stress_benchmark/resources/031.settings +++ b/stress_benchmark/resources/031.settings @@ -134,7 +134,9 @@ raft_interface_jerk=8 material_shrinkage_percentage=100.0 support_interface_wall_count=0 machine_max_jerk_e=5 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 roofing_monotonic=True skin_overlap_mm=0.04 small_feature_max_length=0.0 diff --git a/stress_benchmark/resources/032.settings b/stress_benchmark/resources/032.settings index 8187ab3099..16d3b15c9c 100644 --- a/stress_benchmark/resources/032.settings +++ b/stress_benchmark/resources/032.settings @@ -555,7 +555,9 @@ wipe_pause=0 material_standby_temperature=175 jerk_wall=8 machine_nozzle_cool_down_speed=2.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 raft_acceleration=1000 support_roof_wall_count=0 raft_jerk=8 diff --git a/stress_benchmark/resources/033.settings b/stress_benchmark/resources/033.settings index 5783e17291..efb082178b 100644 --- a/stress_benchmark/resources/033.settings +++ b/stress_benchmark/resources/033.settings @@ -557,7 +557,9 @@ wipe_pause=0 material_standby_temperature=175 jerk_wall=20 machine_nozzle_cool_down_speed=2.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 raft_acceleration=3000 support_roof_wall_count=0 raft_jerk=20 diff --git a/stress_benchmark/resources/034.settings b/stress_benchmark/resources/034.settings index 0ed9af0382..ab7970bc26 100644 --- a/stress_benchmark/resources/034.settings +++ b/stress_benchmark/resources/034.settings @@ -554,7 +554,9 @@ wipe_pause=0 material_standby_temperature=180 jerk_wall=8 machine_nozzle_cool_down_speed=2.0 -raft_margin=5 +raft_base_margin=5 +raft_interface_margin=5 +raft_surface_margin=5 raft_acceleration=500 support_roof_wall_count=0 raft_jerk=8 diff --git a/stress_benchmark/resources/035.settings b/stress_benchmark/resources/035.settings index 0106e70349..186d401196 100644 --- a/stress_benchmark/resources/035.settings +++ b/stress_benchmark/resources/035.settings @@ -556,7 +556,9 @@ wipe_pause=0 material_standby_temperature=180 jerk_wall=8 machine_nozzle_cool_down_speed=2.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 raft_acceleration=500 support_roof_wall_count=0 raft_jerk=8 diff --git a/stress_benchmark/resources/036.settings b/stress_benchmark/resources/036.settings index 496ddb57a3..c81e9a4567 100644 --- a/stress_benchmark/resources/036.settings +++ b/stress_benchmark/resources/036.settings @@ -555,7 +555,9 @@ wipe_pause=0 material_standby_temperature=180 jerk_wall=12.0 machine_nozzle_cool_down_speed=2.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 raft_acceleration=500 support_roof_wall_count=0 raft_jerk=12.0 diff --git a/stress_benchmark/resources/037.settings b/stress_benchmark/resources/037.settings index 4a40bf459b..3a1ca85c98 100644 --- a/stress_benchmark/resources/037.settings +++ b/stress_benchmark/resources/037.settings @@ -555,7 +555,9 @@ wipe_pause=0 material_standby_temperature=175 jerk_wall=8 machine_nozzle_cool_down_speed=2.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 raft_acceleration=350 support_roof_wall_count=0 raft_jerk=8 diff --git a/stress_benchmark/resources/038.settings b/stress_benchmark/resources/038.settings index 853b097d2d..789165b2a9 100644 --- a/stress_benchmark/resources/038.settings +++ b/stress_benchmark/resources/038.settings @@ -556,7 +556,9 @@ wipe_pause=0 material_standby_temperature=175 jerk_wall=8 machine_nozzle_cool_down_speed=2.0 -raft_margin=5.0 +raft_base_margin=5 +raft_interface_margin=5 +raft_surface_margin=5 raft_acceleration=500 support_roof_wall_count=0 raft_jerk=8 diff --git a/stress_benchmark/resources/039.settings b/stress_benchmark/resources/039.settings index 3810b98181..b8183c4b0d 100644 --- a/stress_benchmark/resources/039.settings +++ b/stress_benchmark/resources/039.settings @@ -556,7 +556,9 @@ wipe_pause=0 material_standby_temperature=180.0 jerk_wall=8 machine_nozzle_cool_down_speed=2.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 raft_acceleration=500 support_roof_wall_count=0 raft_jerk=8 diff --git a/stress_benchmark/resources/040.settings b/stress_benchmark/resources/040.settings index 9df0af97c1..f74194fa38 100644 --- a/stress_benchmark/resources/040.settings +++ b/stress_benchmark/resources/040.settings @@ -556,7 +556,9 @@ wipe_pause=0 material_standby_temperature=175 jerk_wall=20 machine_nozzle_cool_down_speed=2.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 raft_acceleration=3000 support_roof_wall_count=0 raft_jerk=20 diff --git a/stress_benchmark/resources/041.settings b/stress_benchmark/resources/041.settings index 6054309199..0f3eaf0020 100644 --- a/stress_benchmark/resources/041.settings +++ b/stress_benchmark/resources/041.settings @@ -559,7 +559,9 @@ wipe_pause=0 material_standby_temperature=180.0 jerk_wall=8 machine_nozzle_cool_down_speed=2.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 raft_acceleration=500 support_roof_wall_count=1 raft_jerk=8 diff --git a/stress_benchmark/resources/042.settings b/stress_benchmark/resources/042.settings index 91100ebe88..10f61fa229 100644 --- a/stress_benchmark/resources/042.settings +++ b/stress_benchmark/resources/042.settings @@ -557,7 +557,9 @@ wipe_pause=0 material_standby_temperature=175 jerk_wall=8 machine_nozzle_cool_down_speed=2.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 raft_acceleration=500 support_roof_wall_count=0 raft_jerk=8 diff --git a/stress_benchmark/resources/043.settings b/stress_benchmark/resources/043.settings index 6e142cc7e7..85b1c44f4f 100644 --- a/stress_benchmark/resources/043.settings +++ b/stress_benchmark/resources/043.settings @@ -558,7 +558,9 @@ wipe_pause=0 material_standby_temperature=100 jerk_wall=20 machine_nozzle_cool_down_speed=0.75 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 raft_acceleration=3500 support_roof_wall_count=1 raft_jerk=20 diff --git a/stress_benchmark/resources/044.settings b/stress_benchmark/resources/044.settings index db0ea47a59..05e2be11ef 100644 --- a/stress_benchmark/resources/044.settings +++ b/stress_benchmark/resources/044.settings @@ -558,7 +558,9 @@ wipe_pause=0 material_standby_temperature=100 jerk_wall=20 machine_nozzle_cool_down_speed=0.75 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 raft_acceleration=3500 support_roof_wall_count=1 raft_jerk=20 diff --git a/stress_benchmark/resources/045.settings b/stress_benchmark/resources/045.settings index c93fd544aa..601a64d4c9 100644 --- a/stress_benchmark/resources/045.settings +++ b/stress_benchmark/resources/045.settings @@ -558,7 +558,9 @@ wipe_pause=0 material_standby_temperature=175 jerk_wall=20 machine_nozzle_cool_down_speed=2.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 raft_acceleration=3000 support_roof_wall_count=0 raft_jerk=20 diff --git a/stress_benchmark/resources/046.settings b/stress_benchmark/resources/046.settings index 2ebb338bdb..ba6d8b93b2 100644 --- a/stress_benchmark/resources/046.settings +++ b/stress_benchmark/resources/046.settings @@ -557,7 +557,9 @@ wipe_pause=0 material_standby_temperature=175 jerk_wall=5 machine_nozzle_cool_down_speed=2.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 raft_acceleration=1500 support_roof_wall_count=0 raft_jerk=5 diff --git a/stress_benchmark/resources/047.settings b/stress_benchmark/resources/047.settings index 49e632dc16..c1439409f0 100644 --- a/stress_benchmark/resources/047.settings +++ b/stress_benchmark/resources/047.settings @@ -557,7 +557,9 @@ wipe_pause=0 material_standby_temperature=175 jerk_wall=8 machine_nozzle_cool_down_speed=2.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 raft_acceleration=1800 support_roof_wall_count=0 raft_jerk=8 diff --git a/stress_benchmark/resources/048.settings b/stress_benchmark/resources/048.settings index 73eacc8380..62bc6888fa 100644 --- a/stress_benchmark/resources/048.settings +++ b/stress_benchmark/resources/048.settings @@ -555,7 +555,9 @@ wipe_pause=0 material_standby_temperature=180 jerk_wall=8 machine_nozzle_cool_down_speed=2.0 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 raft_acceleration=500 support_roof_wall_count=0 raft_jerk=8 diff --git a/stress_benchmark/resources/049.settings b/stress_benchmark/resources/049.settings index 8a534c14c4..4b0f97c5cc 100644 --- a/stress_benchmark/resources/049.settings +++ b/stress_benchmark/resources/049.settings @@ -67,7 +67,9 @@ material_initial_print_temperature=205.0 layer_0_z_overlap=0.15 support_roof_enable=True acceleration_wall_x_roofing=500 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 support_tree_branch_diameter_angle=7 prime_tower_base_height=0.12 machine_nozzle_head_distance=3 diff --git a/stress_benchmark/resources/050.settings b/stress_benchmark/resources/050.settings index bee0e8f4ce..f1fa5a28e8 100644 --- a/stress_benchmark/resources/050.settings +++ b/stress_benchmark/resources/050.settings @@ -67,7 +67,9 @@ material_initial_print_temperature=220 layer_0_z_overlap=0.15 support_roof_enable=False acceleration_wall_x_roofing=1000 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 support_tree_branch_diameter_angle=7 prime_tower_base_height=0.2 machine_nozzle_head_distance=3 diff --git a/stress_benchmark/resources/051.settings b/stress_benchmark/resources/051.settings index fd55479c67..1d7a79f521 100644 --- a/stress_benchmark/resources/051.settings +++ b/stress_benchmark/resources/051.settings @@ -67,7 +67,9 @@ material_initial_print_temperature=210.0 layer_0_z_overlap=0.15 support_roof_enable=True acceleration_wall_x_roofing=400.0 -raft_margin=0 +raft_base_margin=0 +raft_interface_margin=0 +raft_surface_margin=0 support_tree_branch_diameter_angle=7 prime_tower_base_height=0.12 machine_nozzle_head_distance=3 diff --git a/stress_benchmark/resources/052.settings b/stress_benchmark/resources/052.settings index 629a0a2715..c46d63e5e4 100644 --- a/stress_benchmark/resources/052.settings +++ b/stress_benchmark/resources/052.settings @@ -67,7 +67,9 @@ material_initial_print_temperature=200 layer_0_z_overlap=0.15 support_roof_enable=False acceleration_wall_x_roofing=500 -raft_margin=5 +raft_base_margin=5 +raft_interface_margin=5 +raft_surface_margin=5 support_tree_branch_diameter_angle=7 prime_tower_base_height=0.28 machine_nozzle_head_distance=3 diff --git a/stress_benchmark/resources/053.settings b/stress_benchmark/resources/053.settings index 5f59343201..2e5e59b2b3 100644 --- a/stress_benchmark/resources/053.settings +++ b/stress_benchmark/resources/053.settings @@ -67,7 +67,9 @@ material_initial_print_temperature=190 layer_0_z_overlap=0.15 support_roof_enable=False acceleration_wall_x_roofing=3000 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 support_tree_branch_diameter_angle=7 prime_tower_base_height=0.1 machine_nozzle_head_distance=5 diff --git a/stress_benchmark/resources/054.settings b/stress_benchmark/resources/054.settings index 41766d28d4..ed5709fe6d 100644 --- a/stress_benchmark/resources/054.settings +++ b/stress_benchmark/resources/054.settings @@ -67,7 +67,9 @@ material_initial_print_temperature=225.0 layer_0_z_overlap=0.15 support_roof_enable=False acceleration_wall_x_roofing=1800 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 support_tree_branch_diameter_angle=7 prime_tower_base_height=0.2 machine_nozzle_head_distance=3 diff --git a/stress_benchmark/resources/055.settings b/stress_benchmark/resources/055.settings index d4d7856ea3..14025ad607 100644 --- a/stress_benchmark/resources/055.settings +++ b/stress_benchmark/resources/055.settings @@ -67,7 +67,9 @@ material_initial_print_temperature=190 layer_0_z_overlap=0.15 support_roof_enable=False acceleration_wall_x_roofing=3000 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 support_tree_branch_diameter_angle=7 prime_tower_base_height=0.2 machine_nozzle_head_distance=3 diff --git a/stress_benchmark/resources/056.settings b/stress_benchmark/resources/056.settings index ae77715c21..427a32768d 100644 --- a/stress_benchmark/resources/056.settings +++ b/stress_benchmark/resources/056.settings @@ -67,7 +67,9 @@ material_initial_print_temperature=180 layer_0_z_overlap=0.15 support_roof_enable=True acceleration_wall_x_roofing=3000 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 support_tree_branch_diameter_angle=7 prime_tower_base_height=0.1 machine_nozzle_head_distance=3 diff --git a/stress_benchmark/resources/057.settings b/stress_benchmark/resources/057.settings index e69a30998b..22c8b9dd7b 100644 --- a/stress_benchmark/resources/057.settings +++ b/stress_benchmark/resources/057.settings @@ -67,7 +67,9 @@ material_initial_print_temperature=183 layer_0_z_overlap=0.15 support_roof_enable=True acceleration_wall_x_roofing=500 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 support_tree_branch_diameter_angle=7 prime_tower_base_height=0.5 machine_nozzle_head_distance=3 diff --git a/stress_benchmark/resources/058.settings b/stress_benchmark/resources/058.settings index 146ed80f11..7562c7a7bd 100644 --- a/stress_benchmark/resources/058.settings +++ b/stress_benchmark/resources/058.settings @@ -67,7 +67,9 @@ material_initial_print_temperature=200 layer_0_z_overlap=0.15 support_roof_enable=True acceleration_wall_x_roofing=500 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 support_tree_branch_diameter_angle=7 prime_tower_base_height=0.12 machine_nozzle_head_distance=3 diff --git a/stress_benchmark/resources/059.settings b/stress_benchmark/resources/059.settings index 878cc7f8b5..c8c547a1de 100644 --- a/stress_benchmark/resources/059.settings +++ b/stress_benchmark/resources/059.settings @@ -221,7 +221,9 @@ acceleration_support_bottom=500 bridge_skin_density=100 raft_airgap=0.3 mold_angle=40 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 speed_print_layer_0=25 hole_xy_offset_max_diameter=0 cool_fan_full_layer=2 diff --git a/stress_benchmark/resources/060.settings b/stress_benchmark/resources/060.settings index 9fd982aca1..afff41c33d 100644 --- a/stress_benchmark/resources/060.settings +++ b/stress_benchmark/resources/060.settings @@ -221,7 +221,9 @@ acceleration_support_bottom=500 bridge_skin_density=100 raft_airgap=0.3 mold_angle=40 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 speed_print_layer_0=20.0 hole_xy_offset_max_diameter=0 cool_fan_full_layer=4 diff --git a/stress_benchmark/resources/061.settings b/stress_benchmark/resources/061.settings index 3a05b93091..18d0f316fd 100644 --- a/stress_benchmark/resources/061.settings +++ b/stress_benchmark/resources/061.settings @@ -222,7 +222,9 @@ bridge_skin_density=100 raft_airgap=0.3 mold_angle=40 quality_name=Draft -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 speed_print_layer_0=10.0 hole_xy_offset_max_diameter=0 cool_fan_full_layer=2 diff --git a/stress_benchmark/resources/062.settings b/stress_benchmark/resources/062.settings index d6c59d5fec..96d4a28dd1 100644 --- a/stress_benchmark/resources/062.settings +++ b/stress_benchmark/resources/062.settings @@ -221,7 +221,9 @@ acceleration_support_bottom=3000 bridge_skin_density=100 raft_airgap=0.3 mold_angle=40 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 speed_print_layer_0=30.0 hole_xy_offset_max_diameter=0 cool_fan_full_layer=2 diff --git a/stress_benchmark/resources/063.settings b/stress_benchmark/resources/063.settings index 4757dbfedc..d300bfc633 100644 --- a/stress_benchmark/resources/063.settings +++ b/stress_benchmark/resources/063.settings @@ -222,7 +222,9 @@ bridge_skin_density=100 raft_airgap=0.3 mold_angle=40 quality_name=Draft -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 speed_print_layer_0=75.0 hole_xy_offset_max_diameter=0 cool_fan_full_layer=2 diff --git a/stress_benchmark/resources/064.settings b/stress_benchmark/resources/064.settings index ad14e390a1..1739abbb7e 100644 --- a/stress_benchmark/resources/064.settings +++ b/stress_benchmark/resources/064.settings @@ -220,7 +220,9 @@ acceleration_support_bottom=400 bridge_skin_density=100 raft_airgap=0.3 mold_angle=40 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 speed_print_layer_0=10 hole_xy_offset_max_diameter=0 cool_fan_full_layer=45 diff --git a/stress_benchmark/resources/065.settings b/stress_benchmark/resources/065.settings index e82e8ae600..a32ec18ddb 100644 --- a/stress_benchmark/resources/065.settings +++ b/stress_benchmark/resources/065.settings @@ -223,7 +223,9 @@ bridge_skin_density=80 raft_airgap=0 mold_angle=40 quality_name=Fine -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 speed_print_layer_0=10.0 roofing_angles=[] hole_xy_offset_max_diameter=0 diff --git a/stress_benchmark/resources/066.settings b/stress_benchmark/resources/066.settings index 3b324482ff..9a50e01066 100644 --- a/stress_benchmark/resources/066.settings +++ b/stress_benchmark/resources/066.settings @@ -223,7 +223,9 @@ bridge_skin_density=80 raft_airgap=0.3 mold_angle=40 quality_name=Fine -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 speed_print_layer_0=16.0 roofing_angles=[] hole_xy_offset_max_diameter=0 diff --git a/stress_benchmark/resources/067.settings b/stress_benchmark/resources/067.settings index 8fead7495b..f0aaccedf9 100644 --- a/stress_benchmark/resources/067.settings +++ b/stress_benchmark/resources/067.settings @@ -221,7 +221,9 @@ acceleration_support_bottom=500.0 bridge_skin_density=100 raft_airgap=0.3 mold_angle=40 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 speed_print_layer_0=25 roofing_angles=[45,135] hole_xy_offset_max_diameter=0 diff --git a/tests/test_global_settings.txt b/tests/test_global_settings.txt index cb0c373c6a..7861bc4139 100644 --- a/tests/test_global_settings.txt +++ b/tests/test_global_settings.txt @@ -260,7 +260,9 @@ jerk_ironing=5 retraction_combing_max_distance=0 acceleration_layer_0=500 coasting_min_volume=0.8 -raft_margin=15 +raft_base_margin=15 +raft_interface_margin=15 +raft_surface_margin=15 support_tower_diameter=3.0 cool_fan_speed_max=100 machine_endstop_positive_direction_x=False From 3bec150d36b09a28121a481b982d93fbf13067a2 Mon Sep 17 00:00:00 2001 From: casperlamboo Date: Mon, 8 Jan 2024 13:45:56 +0000 Subject: [PATCH 02/17] Applied clang-format. --- include/raft.h | 16 ++++++++-------- src/raft.cpp | 9 +++++---- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/include/raft.h b/include/raft.h index 11f0fffdf6..b6f837f53e 100644 --- a/include/raft.h +++ b/include/raft.h @@ -1,5 +1,5 @@ -//Copyright (c) 2018 Ultimaker B.V. -//CuraEngine is released under the terms of the AGPLv3 or higher. +// Copyright (c) 2018 Ultimaker B.V. +// CuraEngine is released under the terms of the AGPLv3 or higher. #ifndef RAFT_H #define RAFT_H @@ -30,7 +30,7 @@ class Raft /*! * \brief Get the amount of layers to fill the airgap and initial layer with * helper parts (support, prime tower, etc.). - * + * * The initial layer gets a separate filler layer because we don't want to * apply the layer_0_z_overlap to it. */ @@ -50,12 +50,13 @@ class Raft /*! * \brief Get the total amount of extra layers below zero because there is a * raft. - * + * * This includes the filler layers which are introduced in the air gap. */ static size_t getTotalExtraLayers(); - enum LayerType { + enum LayerType + { RaftBase, RaftInterface, RaftSurface, @@ -69,9 +70,8 @@ class Raft * \return The type of layer at the given layer index. */ static LayerType getLayerType(LayerIndex layer_index); - }; -}//namespace cura +} // namespace cura -#endif//RAFT_H +#endif // RAFT_H diff --git a/src/raft.cpp b/src/raft.cpp index b42e3e2491..7fb1e4dd8c 100644 --- a/src/raft.cpp +++ b/src/raft.cpp @@ -28,7 +28,8 @@ void Raft::generate(SliceDataStorage& storage) storage.raftSurfaceOutline = storage.raftSurfaceOutline.offset(settings.get("raft_surface_margin"), ClipperLib::jtRound); const coord_t shield_line_width_layer0 = settings.get("skirt_brim_line_width"); - const coord_t max_raft_distance = std::max(std::max(settings.get("raft_base_margin"), settings.get("raft_interface_margin")), settings.get("raft_surface_margin")); + const coord_t max_raft_distance + = std::max(std::max(settings.get("raft_base_margin"), settings.get("raft_interface_margin")), settings.get("raft_surface_margin")); if (storage.draft_protection_shield.size() > 0) { Polygons draft_shield_raft @@ -145,15 +146,15 @@ Raft::LayerType Raft::getLayerType(LayerIndex layer_index) const auto interface_layers = interface_train.settings_.get("raft_interface_layers"); const auto surface_layers = surface_train.settings_.get("raft_surface_layers"); - if (layer_index < - airgap - surface_layers - interface_layers) + if (layer_index < -airgap - surface_layers - interface_layers) { return LayerType::RaftBase; } - if (layer_index < - airgap - surface_layers) + if (layer_index < -airgap - surface_layers) { return LayerType::RaftInterface; } - if (layer_index < - airgap) + if (layer_index < -airgap) { return LayerType::RaftSurface; } From 88c255cec76611984257d65321ce29041b7d1235 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 8 Jan 2024 14:49:34 +0100 Subject: [PATCH 03/17] Make remove inside corners configurable per raft type CURA-11395 --- src/raft.cpp | 27 +++++++++++++++++++------ stress_benchmark/resources/001.settings | 4 +++- stress_benchmark/resources/002.settings | 4 +++- stress_benchmark/resources/003.settings | 4 +++- stress_benchmark/resources/004.settings | 4 +++- stress_benchmark/resources/005.settings | 4 +++- stress_benchmark/resources/006.settings | 4 +++- stress_benchmark/resources/007.settings | 4 +++- stress_benchmark/resources/008.settings | 4 +++- stress_benchmark/resources/009.settings | 4 +++- stress_benchmark/resources/010.settings | 4 +++- stress_benchmark/resources/011.settings | 4 +++- 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/054.settings | 4 +++- stress_benchmark/resources/055.settings | 4 +++- stress_benchmark/resources/056.settings | 4 +++- stress_benchmark/resources/057.settings | 4 +++- stress_benchmark/resources/058.settings | 4 +++- stress_benchmark/resources/059.settings | 4 +++- stress_benchmark/resources/060.settings | 4 +++- stress_benchmark/resources/061.settings | 4 +++- stress_benchmark/resources/062.settings | 4 +++- stress_benchmark/resources/063.settings | 4 +++- stress_benchmark/resources/064.settings | 4 +++- stress_benchmark/resources/065.settings | 4 +++- stress_benchmark/resources/066.settings | 4 +++- stress_benchmark/resources/067.settings | 4 +++- 68 files changed, 222 insertions(+), 73 deletions(-) diff --git a/src/raft.cpp b/src/raft.cpp index b42e3e2491..c299b79061 100644 --- a/src/raft.cpp +++ b/src/raft.cpp @@ -50,21 +50,36 @@ void Raft::generate(SliceDataStorage& storage) storage.raftInterfaceOutline = storage.raftInterfaceOutline.unionPolygons(ooze_shield_raft); } - if (settings.get("raft_remove_inside_corners")) + if (settings.get("raft_base_remove_inside_corners")) { storage.raftBaseOutline.makeConvex(); - storage.raftSurfaceOutline.makeConvex(); - storage.raftInterfaceOutline.makeConvex(); } else { - const coord_t smoothing = settings.get("raft_smoothing"); - // remove small holes and smooth inward corners + const coord_t smoothing = settings.get("raft_base_smoothing"); storage.raftBaseOutline = storage.raftBaseOutline.offset(smoothing, ClipperLib::jtRound).offset(-smoothing, ClipperLib::jtRound); - storage.raftSurfaceOutline = storage.raftSurfaceOutline.offset(smoothing, ClipperLib::jtRound).offset(-smoothing, ClipperLib::jtRound); + } + + if (settings.get("raft_interface_remove_inside_corners")) + { + storage.raftInterfaceOutline.makeConvex(); + } + else + { + const coord_t smoothing = settings.get("raft_interface_smoothing"); storage.raftInterfaceOutline = storage.raftInterfaceOutline.offset(smoothing, ClipperLib::jtRound).offset(-smoothing, ClipperLib::jtRound); } + if (settings.get("raft_surface_remove_inside_corners")) + { + storage.raftSurfaceOutline.makeConvex(); + } + else + { + const coord_t smoothing = settings.get("raft_surface_smoothing"); + storage.raftSurfaceOutline = storage.raftSurfaceOutline.offset(smoothing, ClipperLib::jtRound).offset(-smoothing, ClipperLib::jtRound); + } + if (storage.primeTower.enabled_ && ! storage.primeTower.would_have_actual_tower_) { // Find out if the prime-tower part of the raft still needs to be printed, even if there is no actual tower. diff --git a/stress_benchmark/resources/001.settings b/stress_benchmark/resources/001.settings index d72d076797..71ee472bd9 100644 --- a/stress_benchmark/resources/001.settings +++ b/stress_benchmark/resources/001.settings @@ -271,7 +271,9 @@ infill_mesh_order=0 retraction_prime_speed=5 z_seam_type=sharpest_corner ironing_only_highest_layer=False -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False acceleration_topbottom=300 machine_settings=0 travel_retract_before_outer_wall=False diff --git a/stress_benchmark/resources/002.settings b/stress_benchmark/resources/002.settings index c9dfb14cc0..c63aba30f3 100644 --- a/stress_benchmark/resources/002.settings +++ b/stress_benchmark/resources/002.settings @@ -598,7 +598,9 @@ support_bottom_wall_count=0 jerk_wall_x=8 draft_shield_height_limitation=full bridge_sparse_infill_max_density=0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False cooling=0 infill_support_angle=40 diff --git a/stress_benchmark/resources/003.settings b/stress_benchmark/resources/003.settings index b6aa5b0d7a..1a0de365f5 100644 --- a/stress_benchmark/resources/003.settings +++ b/stress_benchmark/resources/003.settings @@ -599,7 +599,9 @@ support_bottom_wall_count=0 jerk_wall_x=8 draft_shield_height_limitation=full bridge_sparse_infill_max_density=0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False cooling=0 infill_support_angle=40 diff --git a/stress_benchmark/resources/004.settings b/stress_benchmark/resources/004.settings index a4c2afe92e..74603b80f0 100644 --- a/stress_benchmark/resources/004.settings +++ b/stress_benchmark/resources/004.settings @@ -599,7 +599,9 @@ support_bottom_wall_count=0 jerk_wall_x=8 draft_shield_height_limitation=full bridge_sparse_infill_max_density=0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False cooling=0 infill_support_angle=40 diff --git a/stress_benchmark/resources/005.settings b/stress_benchmark/resources/005.settings index f54b1d867c..4352f108a2 100644 --- a/stress_benchmark/resources/005.settings +++ b/stress_benchmark/resources/005.settings @@ -600,7 +600,9 @@ support_bottom_wall_count=0 jerk_wall_x=8 draft_shield_height_limitation=full bridge_sparse_infill_max_density=0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False cooling=0 infill_support_angle=40 diff --git a/stress_benchmark/resources/006.settings b/stress_benchmark/resources/006.settings index 956d6691a6..9a94d8f6da 100644 --- a/stress_benchmark/resources/006.settings +++ b/stress_benchmark/resources/006.settings @@ -600,7 +600,9 @@ support_bottom_wall_count=0 jerk_wall_x=8 draft_shield_height_limitation=full bridge_sparse_infill_max_density=0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False cooling=0 infill_support_angle=40 diff --git a/stress_benchmark/resources/007.settings b/stress_benchmark/resources/007.settings index 424a7b4afa..4e98a3d2e7 100644 --- a/stress_benchmark/resources/007.settings +++ b/stress_benchmark/resources/007.settings @@ -600,7 +600,9 @@ support_bottom_wall_count=0 jerk_wall_x=8 draft_shield_height_limitation=full bridge_sparse_infill_max_density=0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False cooling=0 infill_support_angle=40 diff --git a/stress_benchmark/resources/008.settings b/stress_benchmark/resources/008.settings index cfcd6b234c..b4aca3d5ff 100644 --- a/stress_benchmark/resources/008.settings +++ b/stress_benchmark/resources/008.settings @@ -347,7 +347,9 @@ wall_0_material_flow=100 meshfix_maximum_extrusion_area_deviation=50000 wall_0_wipe_dist=0.2 ironing_only_highest_layer=False -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False machine_max_feedrate_e=45 prime_tower_line_width=0.4 wall_line_width_x=0.4 diff --git a/stress_benchmark/resources/009.settings b/stress_benchmark/resources/009.settings index cfcd6b234c..b4aca3d5ff 100644 --- a/stress_benchmark/resources/009.settings +++ b/stress_benchmark/resources/009.settings @@ -347,7 +347,9 @@ wall_0_material_flow=100 meshfix_maximum_extrusion_area_deviation=50000 wall_0_wipe_dist=0.2 ironing_only_highest_layer=False -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False machine_max_feedrate_e=45 prime_tower_line_width=0.4 wall_line_width_x=0.4 diff --git a/stress_benchmark/resources/010.settings b/stress_benchmark/resources/010.settings index cfcd6b234c..b4aca3d5ff 100644 --- a/stress_benchmark/resources/010.settings +++ b/stress_benchmark/resources/010.settings @@ -347,7 +347,9 @@ wall_0_material_flow=100 meshfix_maximum_extrusion_area_deviation=50000 wall_0_wipe_dist=0.2 ironing_only_highest_layer=False -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False machine_max_feedrate_e=45 prime_tower_line_width=0.4 wall_line_width_x=0.4 diff --git a/stress_benchmark/resources/011.settings b/stress_benchmark/resources/011.settings index 08b6ec47db..c789ab5a63 100644 --- a/stress_benchmark/resources/011.settings +++ b/stress_benchmark/resources/011.settings @@ -601,7 +601,9 @@ support_bottom_wall_count=0 jerk_wall_x=20 draft_shield_height_limitation=full bridge_sparse_infill_max_density=0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False cooling=0 infill_support_angle=40 diff --git a/stress_benchmark/resources/012.settings b/stress_benchmark/resources/012.settings index 521724273d..db4584485c 100644 --- a/stress_benchmark/resources/012.settings +++ b/stress_benchmark/resources/012.settings @@ -590,7 +590,9 @@ jerk_infill=12.5 draft_shield_height_limitation=full layer_height_0=0.2 jerk_print=12.5 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False support_pattern=lines infill_support_angle=40 raft_base_acceleration=300 diff --git a/stress_benchmark/resources/013.settings b/stress_benchmark/resources/013.settings index 311beb6893..692c6164cc 100644 --- a/stress_benchmark/resources/013.settings +++ b/stress_benchmark/resources/013.settings @@ -214,7 +214,9 @@ support_interface_line_width=0.4 support_skip_zag_per_mm=20 support_angle=55 raft_base_speed=16.875 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False roofing_line_width=0.4 hole_xy_offset=0 diff --git a/stress_benchmark/resources/014.settings b/stress_benchmark/resources/014.settings index 93487b5295..77d3f128f7 100644 --- a/stress_benchmark/resources/014.settings +++ b/stress_benchmark/resources/014.settings @@ -214,7 +214,9 @@ support_interface_line_width=0.4 support_skip_zag_per_mm=20 support_angle=50 raft_base_speed=30.0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False roofing_line_width=0.4 hole_xy_offset=0 diff --git a/stress_benchmark/resources/015.settings b/stress_benchmark/resources/015.settings index 1159c55eba..55af6339c5 100644 --- a/stress_benchmark/resources/015.settings +++ b/stress_benchmark/resources/015.settings @@ -214,7 +214,9 @@ support_interface_line_width=0.4 support_skip_zag_per_mm=20 support_angle=0 raft_base_speed=37.5 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False roofing_line_width=0.4 hole_xy_offset=0 diff --git a/stress_benchmark/resources/016.settings b/stress_benchmark/resources/016.settings index de11857273..fed8689b55 100644 --- a/stress_benchmark/resources/016.settings +++ b/stress_benchmark/resources/016.settings @@ -214,7 +214,9 @@ support_interface_line_width=0.4 support_skip_zag_per_mm=20 support_angle=45 raft_base_speed=18.75 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False roofing_line_width=0.4 hole_xy_offset=0 diff --git a/stress_benchmark/resources/017.settings b/stress_benchmark/resources/017.settings index 76a4b98128..d63440f363 100644 --- a/stress_benchmark/resources/017.settings +++ b/stress_benchmark/resources/017.settings @@ -214,7 +214,9 @@ support_interface_line_width=0.42 support_skip_zag_per_mm=20 support_angle=40 raft_base_speed=18.75 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False roofing_line_width=0.38 hole_xy_offset=0 diff --git a/stress_benchmark/resources/018.settings b/stress_benchmark/resources/018.settings index 4c6b5a3bf1..64168b1780 100644 --- a/stress_benchmark/resources/018.settings +++ b/stress_benchmark/resources/018.settings @@ -214,7 +214,9 @@ support_interface_line_width=0.4 support_skip_zag_per_mm=20 support_angle=65.0 raft_base_speed=18.75 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False roofing_line_width=0.4 hole_xy_offset=0 diff --git a/stress_benchmark/resources/019.settings b/stress_benchmark/resources/019.settings index 443bd2d9a1..e1a9b826ee 100644 --- a/stress_benchmark/resources/019.settings +++ b/stress_benchmark/resources/019.settings @@ -214,7 +214,9 @@ support_interface_line_width=0.4 support_skip_zag_per_mm=20 support_angle=45 raft_base_speed=30.0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False roofing_line_width=0.4 hole_xy_offset=0 diff --git a/stress_benchmark/resources/020.settings b/stress_benchmark/resources/020.settings index d96be4bd5a..a38b801b56 100644 --- a/stress_benchmark/resources/020.settings +++ b/stress_benchmark/resources/020.settings @@ -214,7 +214,9 @@ support_interface_line_width=0.8 support_skip_zag_per_mm=20 support_angle=55 raft_base_speed=30.0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False roofing_line_width=0.8 hole_xy_offset=0 diff --git a/stress_benchmark/resources/021.settings b/stress_benchmark/resources/021.settings index 802d2c4733..8f09ee7382 100644 --- a/stress_benchmark/resources/021.settings +++ b/stress_benchmark/resources/021.settings @@ -215,7 +215,9 @@ support_interface_line_width=0.4 support_skip_zag_per_mm=20 support_angle=60 raft_base_speed=15 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False roofing_line_width=0.4 hole_xy_offset=0 diff --git a/stress_benchmark/resources/022.settings b/stress_benchmark/resources/022.settings index 1384179d85..ca4041d688 100644 --- a/stress_benchmark/resources/022.settings +++ b/stress_benchmark/resources/022.settings @@ -214,7 +214,9 @@ support_interface_line_width=0.42000000000000004 support_skip_zag_per_mm=20 support_angle=50 raft_base_speed=12.0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False roofing_line_width=0.42000000000000004 hole_xy_offset=0 diff --git a/stress_benchmark/resources/023.settings b/stress_benchmark/resources/023.settings index 2313a61291..c630167843 100644 --- a/stress_benchmark/resources/023.settings +++ b/stress_benchmark/resources/023.settings @@ -214,7 +214,9 @@ support_interface_line_width=0.44 support_skip_zag_per_mm=20 support_angle=50 raft_base_speed=56.25 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=True roofing_line_width=0.44 hole_xy_offset=0 diff --git a/stress_benchmark/resources/024.settings b/stress_benchmark/resources/024.settings index 15d687c588..4ccc228f0e 100644 --- a/stress_benchmark/resources/024.settings +++ b/stress_benchmark/resources/024.settings @@ -215,7 +215,9 @@ support_interface_line_width=0.4 support_skip_zag_per_mm=20 support_angle=45 raft_base_speed=26.25 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False roofing_line_width=0.4 hole_xy_offset=0 diff --git a/stress_benchmark/resources/025.settings b/stress_benchmark/resources/025.settings index 60b63ed7ab..70275e935e 100644 --- a/stress_benchmark/resources/025.settings +++ b/stress_benchmark/resources/025.settings @@ -214,7 +214,9 @@ support_interface_line_width=0.4 support_skip_zag_per_mm=20 support_angle=50 raft_base_speed=22.5 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False roofing_line_width=0.4 hole_xy_offset=0 diff --git a/stress_benchmark/resources/026.settings b/stress_benchmark/resources/026.settings index 92acf19566..83110138e7 100644 --- a/stress_benchmark/resources/026.settings +++ b/stress_benchmark/resources/026.settings @@ -215,7 +215,9 @@ support_interface_line_width=0.4 support_skip_zag_per_mm=20 support_angle=45 raft_base_speed=15 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False roofing_line_width=0.4 hole_xy_offset=0 diff --git a/stress_benchmark/resources/027.settings b/stress_benchmark/resources/027.settings index 8617f7f696..6dccc78fad 100644 --- a/stress_benchmark/resources/027.settings +++ b/stress_benchmark/resources/027.settings @@ -215,7 +215,9 @@ support_interface_line_width=0.4 support_skip_zag_per_mm=20 support_angle=45 raft_base_speed=15 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False roofing_line_width=0.4 hole_xy_offset=0 diff --git a/stress_benchmark/resources/028.settings b/stress_benchmark/resources/028.settings index 0ffc6d9b51..7e1d34e6f2 100644 --- a/stress_benchmark/resources/028.settings +++ b/stress_benchmark/resources/028.settings @@ -214,7 +214,9 @@ support_interface_line_width=0.4 support_skip_zag_per_mm=20 support_angle=50 raft_base_speed=22.5 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False roofing_line_width=0.4 hole_xy_offset=0 diff --git a/stress_benchmark/resources/029.settings b/stress_benchmark/resources/029.settings index 5b9c43af5e..2863e74b64 100644 --- a/stress_benchmark/resources/029.settings +++ b/stress_benchmark/resources/029.settings @@ -214,7 +214,9 @@ support_interface_line_width=0.4 support_skip_zag_per_mm=20 support_angle=60 raft_base_speed=56.25 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=True roofing_line_width=0.4 hole_xy_offset=0 diff --git a/stress_benchmark/resources/030.settings b/stress_benchmark/resources/030.settings index 47809b68eb..fda295d176 100644 --- a/stress_benchmark/resources/030.settings +++ b/stress_benchmark/resources/030.settings @@ -215,7 +215,9 @@ support_interface_line_width=0.4 support_skip_zag_per_mm=20 support_angle=60 raft_base_speed=15 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False roofing_line_width=0.4 hole_xy_offset=0 diff --git a/stress_benchmark/resources/031.settings b/stress_benchmark/resources/031.settings index 31984edfe1..40d89ac715 100644 --- a/stress_benchmark/resources/031.settings +++ b/stress_benchmark/resources/031.settings @@ -214,7 +214,9 @@ support_interface_line_width=0.4 support_skip_zag_per_mm=20 support_angle=45 raft_base_speed=18.75 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False ironing_only_highest_layer=False roofing_line_width=0.4 hole_xy_offset=0 diff --git a/stress_benchmark/resources/032.settings b/stress_benchmark/resources/032.settings index 16d3b15c9c..d27cae81b7 100644 --- a/stress_benchmark/resources/032.settings +++ b/stress_benchmark/resources/032.settings @@ -443,7 +443,9 @@ multiple_mesh_overlap=0.15 z_seam_type=sharpest_corner prime_tower_base_size=7 material_print_temp_wait=True -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wall_distribution_count=1 support_roof_offset=0.0 material_shrinkage_percentage_z=100.0 diff --git a/stress_benchmark/resources/033.settings b/stress_benchmark/resources/033.settings index efb082178b..e061183e7e 100644 --- a/stress_benchmark/resources/033.settings +++ b/stress_benchmark/resources/033.settings @@ -445,7 +445,9 @@ multiple_mesh_overlap=0.15 z_seam_type=sharpest_corner prime_tower_base_size=8.0 material_print_temp_wait=True -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wall_distribution_count=1 support_roof_offset=0.0 material_shrinkage_percentage_z=100.0 diff --git a/stress_benchmark/resources/034.settings b/stress_benchmark/resources/034.settings index ab7970bc26..ef2d14e75c 100644 --- a/stress_benchmark/resources/034.settings +++ b/stress_benchmark/resources/034.settings @@ -442,7 +442,9 @@ multiple_mesh_overlap=0.15 z_seam_type=back prime_tower_base_size=5 material_print_temp_wait=True -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wall_distribution_count=1 support_roof_offset=0.0 material_shrinkage_percentage_z=100.0 diff --git a/stress_benchmark/resources/035.settings b/stress_benchmark/resources/035.settings index 186d401196..07cfade33e 100644 --- a/stress_benchmark/resources/035.settings +++ b/stress_benchmark/resources/035.settings @@ -444,7 +444,9 @@ multiple_mesh_overlap=0.15 z_seam_type=sharpest_corner prime_tower_base_size=8.0 material_print_temp_wait=True -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wall_distribution_count=1 support_roof_offset=0.0 material_shrinkage_percentage_z=100.0 diff --git a/stress_benchmark/resources/036.settings b/stress_benchmark/resources/036.settings index c81e9a4567..5a87f6f72f 100644 --- a/stress_benchmark/resources/036.settings +++ b/stress_benchmark/resources/036.settings @@ -443,7 +443,9 @@ multiple_mesh_overlap=0.15 z_seam_type=sharpest_corner prime_tower_base_size=8.0 material_print_temp_wait=True -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wall_distribution_count=1 support_roof_offset=0.0 material_shrinkage_percentage_z=100.0 diff --git a/stress_benchmark/resources/037.settings b/stress_benchmark/resources/037.settings index 3a1ca85c98..c3b00ba245 100644 --- a/stress_benchmark/resources/037.settings +++ b/stress_benchmark/resources/037.settings @@ -443,7 +443,9 @@ multiple_mesh_overlap=0.15 z_seam_type=back prime_tower_base_size=8.0 material_print_temp_wait=True -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wall_distribution_count=1 support_roof_offset=0.0 material_shrinkage_percentage_z=100.0 diff --git a/stress_benchmark/resources/038.settings b/stress_benchmark/resources/038.settings index 789165b2a9..4fa621641d 100644 --- a/stress_benchmark/resources/038.settings +++ b/stress_benchmark/resources/038.settings @@ -444,7 +444,9 @@ multiple_mesh_overlap=0.15 z_seam_type=back prime_tower_base_size=5.0 material_print_temp_wait=True -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wall_distribution_count=1 support_roof_offset=0.0 material_shrinkage_percentage_z=100.0 diff --git a/stress_benchmark/resources/039.settings b/stress_benchmark/resources/039.settings index b8183c4b0d..be719c02d9 100644 --- a/stress_benchmark/resources/039.settings +++ b/stress_benchmark/resources/039.settings @@ -444,7 +444,9 @@ multiple_mesh_overlap=0.15 z_seam_type=back prime_tower_base_size=8.0 material_print_temp_wait=True -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wall_distribution_count=1 support_roof_offset=0.0 material_shrinkage_percentage_z=100.0 diff --git a/stress_benchmark/resources/040.settings b/stress_benchmark/resources/040.settings index f74194fa38..86c045c3f9 100644 --- a/stress_benchmark/resources/040.settings +++ b/stress_benchmark/resources/040.settings @@ -443,7 +443,9 @@ multiple_mesh_overlap=0.15 z_seam_type=back prime_tower_base_size=8.0 material_print_temp_wait=True -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wall_distribution_count=1 support_roof_offset=0.0 material_shrinkage_percentage_z=100.0 diff --git a/stress_benchmark/resources/041.settings b/stress_benchmark/resources/041.settings index 0f3eaf0020..68d1e291d4 100644 --- a/stress_benchmark/resources/041.settings +++ b/stress_benchmark/resources/041.settings @@ -447,7 +447,9 @@ multiple_mesh_overlap=0.15 z_seam_type=sharpest_corner prime_tower_base_size=8.0 material_print_temp_wait=True -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wall_distribution_count=1 support_roof_offset=0 material_shrinkage_percentage_z=100.0 diff --git a/stress_benchmark/resources/042.settings b/stress_benchmark/resources/042.settings index 10f61fa229..6407e893e6 100644 --- a/stress_benchmark/resources/042.settings +++ b/stress_benchmark/resources/042.settings @@ -444,7 +444,9 @@ multiple_mesh_overlap=0.15 z_seam_type=sharpest_corner prime_tower_base_size=8.0 material_print_temp_wait=True -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wall_distribution_count=1 support_roof_offset=0.0 material_shrinkage_percentage_z=100.0 diff --git a/stress_benchmark/resources/043.settings b/stress_benchmark/resources/043.settings index 85b1c44f4f..74cf037495 100644 --- a/stress_benchmark/resources/043.settings +++ b/stress_benchmark/resources/043.settings @@ -446,7 +446,9 @@ multiple_mesh_overlap=0 z_seam_type=sharpest_corner prime_tower_base_size=3 material_print_temp_wait=True -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wall_distribution_count=1 support_roof_offset=0.8 material_shrinkage_percentage_z=100.0 diff --git a/stress_benchmark/resources/044.settings b/stress_benchmark/resources/044.settings index 05e2be11ef..6c76fcfa34 100644 --- a/stress_benchmark/resources/044.settings +++ b/stress_benchmark/resources/044.settings @@ -446,7 +446,9 @@ multiple_mesh_overlap=0 z_seam_type=sharpest_corner prime_tower_base_size=3 material_print_temp_wait=True -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wall_distribution_count=1 support_roof_offset=0.0 material_shrinkage_percentage_z=100.2 diff --git a/stress_benchmark/resources/045.settings b/stress_benchmark/resources/045.settings index 601a64d4c9..442c9a56b7 100644 --- a/stress_benchmark/resources/045.settings +++ b/stress_benchmark/resources/045.settings @@ -445,7 +445,9 @@ multiple_mesh_overlap=0.15 z_seam_type=sharpest_corner prime_tower_base_size=8.0 material_print_temp_wait=True -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wall_distribution_count=1 support_roof_offset=0.0 material_shrinkage_percentage_z=100.0 diff --git a/stress_benchmark/resources/046.settings b/stress_benchmark/resources/046.settings index ba6d8b93b2..8d590679fb 100644 --- a/stress_benchmark/resources/046.settings +++ b/stress_benchmark/resources/046.settings @@ -445,7 +445,9 @@ multiple_mesh_overlap=0.15 z_seam_type=back prime_tower_base_size=8.0 material_print_temp_wait=True -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wall_distribution_count=1 support_roof_offset=0.0 material_shrinkage_percentage_z=100.0 diff --git a/stress_benchmark/resources/047.settings b/stress_benchmark/resources/047.settings index c1439409f0..0d58cef982 100644 --- a/stress_benchmark/resources/047.settings +++ b/stress_benchmark/resources/047.settings @@ -445,7 +445,9 @@ multiple_mesh_overlap=0.15 z_seam_type=sharpest_corner prime_tower_base_size=4.0 material_print_temp_wait=True -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wall_distribution_count=1 support_roof_offset=0.0 material_shrinkage_percentage_z=100.0 diff --git a/stress_benchmark/resources/048.settings b/stress_benchmark/resources/048.settings index 62bc6888fa..d293d5f621 100644 --- a/stress_benchmark/resources/048.settings +++ b/stress_benchmark/resources/048.settings @@ -443,7 +443,9 @@ multiple_mesh_overlap=0.15 z_seam_type=back prime_tower_base_size=8.0 material_print_temp_wait=True -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wall_distribution_count=1 support_roof_offset=0.0 material_shrinkage_percentage_z=100.0 diff --git a/stress_benchmark/resources/049.settings b/stress_benchmark/resources/049.settings index 4b0f97c5cc..cc70c56c37 100644 --- a/stress_benchmark/resources/049.settings +++ b/stress_benchmark/resources/049.settings @@ -224,7 +224,9 @@ support_bottom_line_distance=1.800018000180002 support_enable=False adhesion_extruder_nr=-1 print_temperature=210 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wipe_retraction_retract_speed=40 material_anti_ooze_retracted_position=-4 layer_height=0.12 diff --git a/stress_benchmark/resources/050.settings b/stress_benchmark/resources/050.settings index f1fa5a28e8..a16b860daf 100644 --- a/stress_benchmark/resources/050.settings +++ b/stress_benchmark/resources/050.settings @@ -224,7 +224,9 @@ support_bottom_line_distance=0.8 support_enable=False adhesion_extruder_nr=-1 print_temperature=210 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wipe_retraction_retract_speed=50 material_anti_ooze_retracted_position=-4 layer_height=0.2 diff --git a/stress_benchmark/resources/051.settings b/stress_benchmark/resources/051.settings index 1d7a79f521..78c8abbd15 100644 --- a/stress_benchmark/resources/051.settings +++ b/stress_benchmark/resources/051.settings @@ -225,7 +225,9 @@ support_bottom_line_distance=0.5 support_enable=False adhesion_extruder_nr=-1 print_temperature=210 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wipe_retraction_retract_speed=20.0 material_anti_ooze_retracted_position=-4 layer_height=0.12 diff --git a/stress_benchmark/resources/052.settings b/stress_benchmark/resources/052.settings index c46d63e5e4..dfab6c8c61 100644 --- a/stress_benchmark/resources/052.settings +++ b/stress_benchmark/resources/052.settings @@ -224,7 +224,9 @@ support_bottom_line_distance=2.8800288002880032 support_enable=True adhesion_extruder_nr=-1 print_temperature=210 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wipe_retraction_retract_speed=45 material_anti_ooze_retracted_position=-4 layer_height=0.28 diff --git a/stress_benchmark/resources/053.settings b/stress_benchmark/resources/053.settings index 2e5e59b2b3..b8cdb66682 100644 --- a/stress_benchmark/resources/053.settings +++ b/stress_benchmark/resources/053.settings @@ -225,7 +225,9 @@ support_bottom_line_distance=0.4 support_enable=False adhesion_extruder_nr=-1 print_temperature=210 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wipe_retraction_retract_speed=25 material_anti_ooze_retracted_position=-4 layer_height=0.1 diff --git a/stress_benchmark/resources/054.settings b/stress_benchmark/resources/054.settings index ed5709fe6d..4903e9647f 100644 --- a/stress_benchmark/resources/054.settings +++ b/stress_benchmark/resources/054.settings @@ -224,7 +224,9 @@ support_bottom_line_distance=0.4 support_enable=True adhesion_extruder_nr=-1 print_temperature=210 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wipe_retraction_retract_speed=25 material_anti_ooze_retracted_position=-4 layer_height=0.2 diff --git a/stress_benchmark/resources/055.settings b/stress_benchmark/resources/055.settings index 14025ad607..6868231de8 100644 --- a/stress_benchmark/resources/055.settings +++ b/stress_benchmark/resources/055.settings @@ -225,7 +225,9 @@ support_bottom_line_distance=0.35 support_enable=False adhesion_extruder_nr=-1 print_temperature=210 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wipe_retraction_retract_speed=50 material_anti_ooze_retracted_position=-4 layer_height=0.2 diff --git a/stress_benchmark/resources/056.settings b/stress_benchmark/resources/056.settings index 427a32768d..8973474b86 100644 --- a/stress_benchmark/resources/056.settings +++ b/stress_benchmark/resources/056.settings @@ -224,7 +224,9 @@ support_bottom_line_distance=0.4 support_enable=False adhesion_extruder_nr=0 print_temperature=210 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wipe_retraction_retract_speed=60 material_anti_ooze_retracted_position=-4 layer_height=0.1 diff --git a/stress_benchmark/resources/057.settings b/stress_benchmark/resources/057.settings index 22c8b9dd7b..bb247ec669 100644 --- a/stress_benchmark/resources/057.settings +++ b/stress_benchmark/resources/057.settings @@ -224,7 +224,9 @@ support_bottom_line_distance=5.333333333333333 support_enable=True adhesion_extruder_nr=-1 print_temperature=210 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wipe_retraction_retract_speed=70 material_anti_ooze_retracted_position=-4 layer_height=0.5 diff --git a/stress_benchmark/resources/058.settings b/stress_benchmark/resources/058.settings index 7562c7a7bd..39446ad26e 100644 --- a/stress_benchmark/resources/058.settings +++ b/stress_benchmark/resources/058.settings @@ -224,7 +224,9 @@ support_bottom_line_distance=2.4000240002400024 support_enable=False adhesion_extruder_nr=-1 print_temperature=210 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False wipe_retraction_retract_speed=45 material_anti_ooze_retracted_position=-4 layer_height=0.12 diff --git a/stress_benchmark/resources/059.settings b/stress_benchmark/resources/059.settings index c8c547a1de..97eb1229c2 100644 --- a/stress_benchmark/resources/059.settings +++ b/stress_benchmark/resources/059.settings @@ -192,7 +192,9 @@ roofing_line_width=0.4 material_flow_layer_0=100 minimum_roof_area=10 blackmagic=0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False support_interface_pattern=grid xy_offset=0 prime_tower_brim_enable=True diff --git a/stress_benchmark/resources/060.settings b/stress_benchmark/resources/060.settings index afff41c33d..f07e7c3030 100644 --- a/stress_benchmark/resources/060.settings +++ b/stress_benchmark/resources/060.settings @@ -192,7 +192,9 @@ roofing_line_width=0.4 material_flow_layer_0=100 minimum_roof_area=10 blackmagic=0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False support_interface_pattern=grid xy_offset=0 prime_tower_brim_enable=True diff --git a/stress_benchmark/resources/061.settings b/stress_benchmark/resources/061.settings index 18d0f316fd..9a2e6f80a8 100644 --- a/stress_benchmark/resources/061.settings +++ b/stress_benchmark/resources/061.settings @@ -192,7 +192,9 @@ roofing_line_width=0.4 material_flow_layer_0=100 minimum_roof_area=1.0 blackmagic=0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False support_interface_pattern=concentric xy_offset=0 prime_tower_brim_enable=False diff --git a/stress_benchmark/resources/062.settings b/stress_benchmark/resources/062.settings index 96d4a28dd1..19969a024d 100644 --- a/stress_benchmark/resources/062.settings +++ b/stress_benchmark/resources/062.settings @@ -192,7 +192,9 @@ roofing_line_width=0.4 material_flow_layer_0=100 minimum_roof_area=1.0 blackmagic=0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False support_interface_pattern=concentric xy_offset=0 prime_tower_brim_enable=False diff --git a/stress_benchmark/resources/063.settings b/stress_benchmark/resources/063.settings index d300bfc633..f31688e84e 100644 --- a/stress_benchmark/resources/063.settings +++ b/stress_benchmark/resources/063.settings @@ -192,7 +192,9 @@ roofing_line_width=0.4 material_flow_layer_0=100 minimum_roof_area=1.0 blackmagic=0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False support_interface_pattern=concentric xy_offset=0 prime_tower_brim_enable=False diff --git a/stress_benchmark/resources/064.settings b/stress_benchmark/resources/064.settings index 1739abbb7e..7cf1a24790 100644 --- a/stress_benchmark/resources/064.settings +++ b/stress_benchmark/resources/064.settings @@ -191,7 +191,9 @@ roofing_line_width=0.4 material_flow_layer_0=85 minimum_roof_area=2 blackmagic=0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False support_interface_pattern=grid xy_offset=0 prime_tower_brim_enable=True diff --git a/stress_benchmark/resources/065.settings b/stress_benchmark/resources/065.settings index a32ec18ddb..0515cd4b53 100644 --- a/stress_benchmark/resources/065.settings +++ b/stress_benchmark/resources/065.settings @@ -193,7 +193,9 @@ roofing_line_width=0.25 material_flow_layer_0=100 minimum_roof_area=1.0 blackmagic=0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False support_interface_pattern=zigzag xy_offset=-0.010000000000000002 prime_tower_brim_enable=True diff --git a/stress_benchmark/resources/066.settings b/stress_benchmark/resources/066.settings index 9a50e01066..79f3d54d8b 100644 --- a/stress_benchmark/resources/066.settings +++ b/stress_benchmark/resources/066.settings @@ -193,7 +193,9 @@ roofing_line_width=0.4 material_flow_layer_0=100 minimum_roof_area=1.0 blackmagic=0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False support_interface_pattern=zigzag xy_offset=-0.010000000000000002 prime_tower_brim_enable=False diff --git a/stress_benchmark/resources/067.settings b/stress_benchmark/resources/067.settings index f0aaccedf9..1f04d38ae0 100644 --- a/stress_benchmark/resources/067.settings +++ b/stress_benchmark/resources/067.settings @@ -192,7 +192,9 @@ roofing_line_width=0.45 material_flow_layer_0=100 minimum_roof_area=10 blackmagic=0 -raft_remove_inside_corners=False +raft_base_remove_inside_corners=False +raft_interface_remove_inside_corners=False +raft_surface_remove_inside_corners=False support_interface_pattern=grid xy_offset=0 prime_tower_brim_enable=False From 68d0de9d4dab7ef05683d21c0514a2c1158e2af9 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 9 Jan 2024 09:19:42 +0100 Subject: [PATCH 04/17] Make switch state exhaustive CURA 11395 --- src/sliceDataStorage.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/sliceDataStorage.cpp b/src/sliceDataStorage.cpp index 1af95d5027..bb8182aaee 100644 --- a/src/sliceDataStorage.cpp +++ b/src/sliceDataStorage.cpp @@ -326,6 +326,7 @@ Polygons } case Raft::LayerType::Airgap: case Raft::LayerType::Model: + { Polygons total; if (layer_nr >= 0) { @@ -367,6 +368,10 @@ Polygons } return total; } + default: + assert(false << "unreachable as switch statement is exhaustive"); + return Polygons(); + } } std::vector SliceDataStorage::getExtrudersUsed() const From cf6f7723790391cb00d077bc2f640c2b69eb9f12 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 9 Jan 2024 09:23:09 +0100 Subject: [PATCH 05/17] Use lambda to avoid code duplication CURA 11395 --- src/raft.cpp | 42 +++++++++++++----------------------------- 1 file changed, 13 insertions(+), 29 deletions(-) diff --git a/src/raft.cpp b/src/raft.cpp index 233f93a40b..a8a23cf21e 100644 --- a/src/raft.cpp +++ b/src/raft.cpp @@ -51,35 +51,19 @@ void Raft::generate(SliceDataStorage& storage) storage.raftInterfaceOutline = storage.raftInterfaceOutline.unionPolygons(ooze_shield_raft); } - if (settings.get("raft_base_remove_inside_corners")) - { - storage.raftBaseOutline.makeConvex(); - } - else - { - const coord_t smoothing = settings.get("raft_base_smoothing"); - storage.raftBaseOutline = storage.raftBaseOutline.offset(smoothing, ClipperLib::jtRound).offset(-smoothing, ClipperLib::jtRound); - } - - if (settings.get("raft_interface_remove_inside_corners")) - { - storage.raftInterfaceOutline.makeConvex(); - } - else - { - const coord_t smoothing = settings.get("raft_interface_smoothing"); - storage.raftInterfaceOutline = storage.raftInterfaceOutline.offset(smoothing, ClipperLib::jtRound).offset(-smoothing, ClipperLib::jtRound); - } - - if (settings.get("raft_surface_remove_inside_corners")) - { - storage.raftSurfaceOutline.makeConvex(); - } - else - { - const coord_t smoothing = settings.get("raft_surface_smoothing"); - storage.raftSurfaceOutline = storage.raftSurfaceOutline.offset(smoothing, ClipperLib::jtRound).offset(-smoothing, ClipperLib::jtRound); - } + const auto remove_inside_corners = [&settings, &storage](Polygons& outline, bool remove_inside_corners, coord_t smoothing) { + if (remove_inside_corners) + { + outline.makeConvex(); + } + else + { + outline = outline.offset(smoothing, ClipperLib::jtRound).offset(-smoothing, ClipperLib::jtRound); + } + }; + remove_inside_corners(storage.raftBaseOutline, settings.get("raft_base_remove_inside_corners"), settings.get("raft_base_smoothing")); + remove_inside_corners(storage.raftInterfaceOutline, settings.get("raft_interface_remove_inside_corners"), settings.get("raft_interface_smoothing")); + remove_inside_corners(storage.raftSurfaceOutline, settings.get("raft_surface_remove_inside_corners"), settings.get("raft_surface_smoothing")); if (storage.primeTower.enabled_ && ! storage.primeTower.would_have_actual_tower_) { From 280612a5bcc94b8463a3edbdab1caab29689e73d Mon Sep 17 00:00:00 2001 From: casperlamboo Date: Tue, 9 Jan 2024 08:24:19 +0000 Subject: [PATCH 06/17] Applied clang-format. --- src/raft.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/raft.cpp b/src/raft.cpp index a8a23cf21e..edc5c51fb7 100644 --- a/src/raft.cpp +++ b/src/raft.cpp @@ -51,7 +51,8 @@ void Raft::generate(SliceDataStorage& storage) storage.raftInterfaceOutline = storage.raftInterfaceOutline.unionPolygons(ooze_shield_raft); } - const auto remove_inside_corners = [&settings, &storage](Polygons& outline, bool remove_inside_corners, coord_t smoothing) { + const auto remove_inside_corners = [&settings, &storage](Polygons& outline, bool remove_inside_corners, coord_t smoothing) + { if (remove_inside_corners) { outline.makeConvex(); From 47f51d1eadf63a457d69ce033517f06b18945210 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Tue, 9 Jan 2024 09:30:12 +0100 Subject: [PATCH 07/17] Fix debug build --- src/raft.cpp | 4 +++- src/sliceDataStorage.cpp | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/raft.cpp b/src/raft.cpp index edc5c51fb7..9bb181cf5d 100644 --- a/src/raft.cpp +++ b/src/raft.cpp @@ -17,7 +17,9 @@ namespace cura void Raft::generate(SliceDataStorage& storage) { - assert(storage.raftOutline.size() == 0 && "Raft polygon isn't generated yet, so should be empty!"); + assert( + storage.raftBaseOutline.size() == 0 && storage.raftInterfaceOutline.size() == 0 && storage.raftSurfaceOutline.size() == 0 + && "Raft polygon isn't generated yet, so should be empty!"); const Settings& settings = Application::getInstance().current_slice_->scene.current_mesh_group->settings.get("raft_base_extruder_nr").settings_; constexpr bool include_support = true; constexpr bool dont_include_prime_tower = false; // Prime tower raft will be handled separately in 'storage.primeRaftOutline'; see below. diff --git a/src/sliceDataStorage.cpp b/src/sliceDataStorage.cpp index bb8182aaee..24c4be9bda 100644 --- a/src/sliceDataStorage.cpp +++ b/src/sliceDataStorage.cpp @@ -297,7 +297,7 @@ Polygons use_current_extruder_for_raft |= extruder_nr == int(mesh_group_settings.get("raft_surface_extruder_nr").extruder_nr_); break; default: - assert(false << "unreachable due to outer switch statement"); + assert(false && "unreachable due to outer switch statement"); return Polygons(); } From 6670b80fff2722572a405bcd8d62cf9e4eef1b95 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Tue, 9 Jan 2024 09:53:25 +0100 Subject: [PATCH 08/17] Fix debug build --- src/sliceDataStorage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sliceDataStorage.cpp b/src/sliceDataStorage.cpp index 24c4be9bda..e87250191b 100644 --- a/src/sliceDataStorage.cpp +++ b/src/sliceDataStorage.cpp @@ -369,7 +369,7 @@ Polygons return total; } default: - assert(false << "unreachable as switch statement is exhaustive"); + assert(false && "unreachable as switch statement is exhaustive"); return Polygons(); } } From 956d47aaf59f6be519126f1eddcbc77bef2ce8d4 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 9 Jan 2024 10:28:08 +0100 Subject: [PATCH 09/17] Avoid re-use of setting getters by storing setting-value in local variable CURA 11395 --- src/raft.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/raft.cpp b/src/raft.cpp index 9bb181cf5d..a4286c2ce5 100644 --- a/src/raft.cpp +++ b/src/raft.cpp @@ -23,15 +23,17 @@ void Raft::generate(SliceDataStorage& storage) const Settings& settings = Application::getInstance().current_slice_->scene.current_mesh_group->settings.get("raft_base_extruder_nr").settings_; constexpr bool include_support = true; constexpr bool dont_include_prime_tower = false; // Prime tower raft will be handled separately in 'storage.primeRaftOutline'; see below. + const auto raft_base_margin = settings.get("raft_base_margin"); + const auto raft_interface_margin = settings.get("raft_interface_margin"); + const auto raft_surface_margin = settings.get("raft_surface_margin"); storage.raftBaseOutline = storage.raftSurfaceOutline = storage.raftInterfaceOutline = storage.getLayerOutlines(0, include_support, dont_include_prime_tower); - storage.raftBaseOutline = storage.raftBaseOutline.offset(settings.get("raft_base_margin"), ClipperLib::jtRound); - storage.raftInterfaceOutline = storage.raftInterfaceOutline.offset(settings.get("raft_interface_margin"), ClipperLib::jtRound); - storage.raftSurfaceOutline = storage.raftSurfaceOutline.offset(settings.get("raft_surface_margin"), ClipperLib::jtRound); + storage.raftBaseOutline = storage.raftBaseOutline.offset(raft_base_margin, ClipperLib::jtRound); + storage.raftInterfaceOutline = storage.raftInterfaceOutline.offset(raft_interface_margin, ClipperLib::jtRound); + storage.raftSurfaceOutline = storage.raftSurfaceOutline.offset(raft_surface_margin, ClipperLib::jtRound); const coord_t shield_line_width_layer0 = settings.get("skirt_brim_line_width"); - const coord_t max_raft_distance - = std::max(std::max(settings.get("raft_base_margin"), settings.get("raft_interface_margin")), settings.get("raft_surface_margin")); + const coord_t max_raft_distance = std::max(std::max(raft_base_margin, raft_interface_margin), raft_surface_margin); if (storage.draft_protection_shield.size() > 0) { Polygons draft_shield_raft From 25870b875b37302cc9bdf20bce2c94473cb64e4f Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 9 Jan 2024 16:41:20 +0100 Subject: [PATCH 10/17] Remove unused environment variable attachment in lambda CURA 11395 --- src/raft.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/raft.cpp b/src/raft.cpp index a4286c2ce5..ee9281e92b 100644 --- a/src/raft.cpp +++ b/src/raft.cpp @@ -55,7 +55,7 @@ void Raft::generate(SliceDataStorage& storage) storage.raftInterfaceOutline = storage.raftInterfaceOutline.unionPolygons(ooze_shield_raft); } - const auto remove_inside_corners = [&settings, &storage](Polygons& outline, bool remove_inside_corners, coord_t smoothing) + const auto remove_inside_corners = [&storage](Polygons& outline, bool remove_inside_corners, coord_t smoothing) { if (remove_inside_corners) { From c287580dee4342f95c48ebd469d3166f7d3aee34 Mon Sep 17 00:00:00 2001 From: Erwan MATHIEU Date: Tue, 9 Jan 2024 16:45:07 +0100 Subject: [PATCH 11/17] Code cleaning CURA-11395 --- src/raft.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/raft.cpp b/src/raft.cpp index ee9281e92b..2fb12e100b 100644 --- a/src/raft.cpp +++ b/src/raft.cpp @@ -55,7 +55,7 @@ void Raft::generate(SliceDataStorage& storage) storage.raftInterfaceOutline = storage.raftInterfaceOutline.unionPolygons(ooze_shield_raft); } - const auto remove_inside_corners = [&storage](Polygons& outline, bool remove_inside_corners, coord_t smoothing) + const auto remove_inside_corners = [](Polygons& outline, bool remove_inside_corners, coord_t smoothing) { if (remove_inside_corners) { From 2bc52f7ade897316730b4f337d37a78bd09a21ec Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Tue, 9 Jan 2024 17:29:11 +0100 Subject: [PATCH 12/17] Add slicing time Contribute to CURA-11527 --- .github/workflows/gcodeanalyzer.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gcodeanalyzer.yml b/.github/workflows/gcodeanalyzer.yml index b73d5900ad..722985afd9 100644 --- a/.github/workflows/gcodeanalyzer.yml +++ b/.github/workflows/gcodeanalyzer.yml @@ -179,7 +179,7 @@ jobs: run: | for file in `ls ../NightlyTestModels/*.stl`; do - ./build/Release/CuraEngine slice --force-read-parent --force-read-nondefault -v -p -j ../Cura/resources/definitions/ultimaker_s3.def.json -l $file -o ../`basename $file .stl`.gcode + ( time ./build/Release/CuraEngine slice --force-read-parent --force-read-nondefault -v -p -j ../Cura/resources/definitions/ultimaker_s3.def.json -l $file -o ../`basename $file .stl`.gcode ) 2> `basename $file .stl`.time done working-directory: CuraEngine @@ -190,6 +190,7 @@ jobs: import sys import os import json + import re from Charon.filetypes.GCodeFile import GCodeFile sys.path.append(".") @@ -204,6 +205,8 @@ jobs: if ext.lower() != ".gcode": continue infilename = os.path.join(folder_path, filename) + with open(infilename.split(".")[0] + ".time", "r") as f: + timer = float(re.match(r"^.*?cpu (\d+\.\d+)", f.read())[1]) frame = GCodeAnalyzer.DataFrame(infilename) @@ -291,6 +294,11 @@ jobs: "unit": "Celcius", "value": temperatures["50%"], }, + { + "name": f"Slicing time {basename}", + "unit": "s", + "value": timer, + }, ] with open("../output.json", "w") as outfile: From 085665f3ad83bca88b2a9d26e552d23b43dc981d Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Tue, 9 Jan 2024 17:42:13 +0100 Subject: [PATCH 13/17] use correct relative path Contribute to CURA-11527 --- .github/workflows/gcodeanalyzer.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gcodeanalyzer.yml b/.github/workflows/gcodeanalyzer.yml index 722985afd9..fd3c171165 100644 --- a/.github/workflows/gcodeanalyzer.yml +++ b/.github/workflows/gcodeanalyzer.yml @@ -179,7 +179,7 @@ jobs: run: | for file in `ls ../NightlyTestModels/*.stl`; do - ( time ./build/Release/CuraEngine slice --force-read-parent --force-read-nondefault -v -p -j ../Cura/resources/definitions/ultimaker_s3.def.json -l $file -o ../`basename $file .stl`.gcode ) 2> `basename $file .stl`.time + ( time ./build/Release/CuraEngine slice --force-read-parent --force-read-nondefault -v -p -j ../Cura/resources/definitions/ultimaker_s3.def.json -l $file -o ../`basename $file .stl`.gcode ) 2> ../`basename $file .stl`.time done working-directory: CuraEngine From f61cffdfe6e9b853083e420b741de2b39eabc371 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Tue, 9 Jan 2024 17:45:33 +0100 Subject: [PATCH 14/17] Alert on benchmark regression Very low tresshold to test things out Contribute to CURA-11527 --- .github/workflows/benchmark.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index adb24aa2ff..b843ffc052 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -55,4 +55,6 @@ jobs: output_file_path: "build/Release/benchmark_result.json" data_dir: "dev/bench" tool: "googlecpp" + alert_threshold: "101%" + alert_comment_cc_users: "@nallath, @jellespijker, @wawanbreton, @casperlamboo, @saumyaj3, @HellAholic" secrets: inherit From 2cf8adbe640bd9a4574d9ce125e1bbc04d8f7f8d Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Tue, 9 Jan 2024 17:51:59 +0100 Subject: [PATCH 15/17] use .time Contribute to CURA-11527 --- .github/workflows/gcodeanalyzer.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gcodeanalyzer.yml b/.github/workflows/gcodeanalyzer.yml index fd3c171165..61a5c49a47 100644 --- a/.github/workflows/gcodeanalyzer.yml +++ b/.github/workflows/gcodeanalyzer.yml @@ -179,7 +179,7 @@ jobs: run: | for file in `ls ../NightlyTestModels/*.stl`; do - ( time ./build/Release/CuraEngine slice --force-read-parent --force-read-nondefault -v -p -j ../Cura/resources/definitions/ultimaker_s3.def.json -l $file -o ../`basename $file .stl`.gcode ) 2> ../`basename $file .stl`.time + ( time ./build/Release/CuraEngine slice --force-read-parent --force-read-nondefault -v -p -j ../Cura/resources/definitions/ultimaker_s3.def.json -l $file -o ../`basename $file .stl`.gcode ) 2> ../$file.time done working-directory: CuraEngine @@ -205,7 +205,7 @@ jobs: if ext.lower() != ".gcode": continue infilename = os.path.join(folder_path, filename) - with open(infilename.split(".")[0] + ".time", "r") as f: + with open(infilename + ".time", "r") as f: timer = float(re.match(r"^.*?cpu (\d+\.\d+)", f.read())[1]) frame = GCodeAnalyzer.DataFrame(infilename) From a0892ba96292d2e04e6684e8a0c035b9d96929f7 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Tue, 9 Jan 2024 17:55:28 +0100 Subject: [PATCH 16/17] realistic alert value Contribute to CURA-11527 --- .github/workflows/benchmark.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index b843ffc052..30ce6205c6 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -55,6 +55,6 @@ jobs: output_file_path: "build/Release/benchmark_result.json" data_dir: "dev/bench" tool: "googlecpp" - alert_threshold: "101%" + alert_threshold: "125%" alert_comment_cc_users: "@nallath, @jellespijker, @wawanbreton, @casperlamboo, @saumyaj3, @HellAholic" secrets: inherit From 60c94ef84b35037e0c0bad93ef4ad9aff1b70fc5 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Tue, 9 Jan 2024 18:00:53 +0100 Subject: [PATCH 17/17] different relative path Contribute to CURA-11527 --- .github/workflows/gcodeanalyzer.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gcodeanalyzer.yml b/.github/workflows/gcodeanalyzer.yml index 61a5c49a47..116937507c 100644 --- a/.github/workflows/gcodeanalyzer.yml +++ b/.github/workflows/gcodeanalyzer.yml @@ -179,7 +179,7 @@ jobs: run: | for file in `ls ../NightlyTestModels/*.stl`; do - ( time ./build/Release/CuraEngine slice --force-read-parent --force-read-nondefault -v -p -j ../Cura/resources/definitions/ultimaker_s3.def.json -l $file -o ../`basename $file .stl`.gcode ) 2> ../$file.time + ( time ./build/Release/CuraEngine slice --force-read-parent --force-read-nondefault -v -p -j ../Cura/resources/definitions/ultimaker_s3.def.json -l $file -o ../`basename $file .stl`.gcode ) 2> $file.time done working-directory: CuraEngine