From dd77599deab3b9734470f41ed50c2a5ffc16a28f Mon Sep 17 00:00:00 2001 From: SoftFever Date: Mon, 24 Oct 2022 22:35:40 +0800 Subject: [PATCH] small perimeter threshold --- bbl/i18n/zh_cn/BambuStudio_zh_CN.po | 6 ++++++ resources/i18n/zh_cn/BambuStudio.mo | Bin 169375 -> 169545 bytes src/libslic3r/GCode.cpp | 2 +- src/libslic3r/Model.cpp | 2 +- src/libslic3r/Preset.cpp | 2 +- src/libslic3r/PrintConfig.cpp | 14 +++++++++++--- src/libslic3r/PrintConfig.hpp | 8 +++++++- src/libslic3r/PrintObject.cpp | 2 ++ src/libslic3r/libslic3r.h | 2 +- src/slic3r/GUI/ConfigManipulation.cpp | 2 +- src/slic3r/GUI/Tab.cpp | 1 + version.inc | 2 +- 12 files changed, 33 insertions(+), 10 deletions(-) diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index 8d76c1ac1d..546fbd4721 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -1030,6 +1030,12 @@ msgstr "自动Brim" msgid "Outer wall speed" msgstr "外墙速度" +msgid "Small perimeters" +msgstr "微小部位" + +msgid "Small perimeters threshold" +msgstr "微小部位周长阈值" + msgid "Plate" msgstr "盘" diff --git a/resources/i18n/zh_cn/BambuStudio.mo b/resources/i18n/zh_cn/BambuStudio.mo index d052221a5416262fc14d232c16ff5b4d98900deb..e4c39a9372d981bf78494dedc74b98e4650a6065 100644 GIT binary patch delta 40804 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 z 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.opt_float(objectKey); if (objectKey == "small_perimeter_speed") - smallPerimeterSpeedObj = object->config.opt_float(objectKey); + smallPerimeterSpeedObj = object->config.get_abs_value(objectKey); } objMaxSpeed = std::max(perimeterSpeedObj, std::max(externalPerimeterSpeedObj, std::max(infillSpeedObj, std::max(solidInfillSpeedObj, std::max(topSolidInfillSpeedObj, std::max(supportSpeedObj, std::max(smallPerimeterSpeedObj, objMaxSpeed))))))); if (objMaxSpeed <= 0) objMaxSpeed = 250.; diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index d8e9c373d2..5ce16eab3c 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -695,7 +695,7 @@ static std::vector s_Preset_print_options { #ifdef HAS_PRESSURE_EQUALIZER "max_volumetric_extrusion_rate_slope_positive", "max_volumetric_extrusion_rate_slope_negative", #endif /* HAS_PRESSURE_EQUALIZER */ - "inner_wall_speed", "outer_wall_speed", "small_perimeter_speed", "sparse_infill_speed", "internal_solid_infill_speed", + "inner_wall_speed", "outer_wall_speed", "small_perimeter_speed", "small_perimeter_threshold", "sparse_infill_speed", "internal_solid_infill_speed", "top_surface_speed", "support_speed", "support_object_xy_distance", "support_interface_speed", "bridge_speed", "bridge_angle", "gap_infill_speed", "travel_speed", "travel_speed_z", "initial_layer_speed", "outer_wall_acceleration", "inner_wall_acceleration", "initial_layer_acceleration", "top_surface_acceleration", "default_acceleration", "travel_acceleration", "skirt_loops", "skirt_distance", "skirt_height", "draft_shield", diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 40fa408a45..436503e8bd 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -980,8 +980,17 @@ void PrintConfigDef::init_fff_params() def->ratio_over = "outer_wall_speed"; def->min = 0; def->mode = comAdvanced; - def->set_default_value(new ConfigOptionFloatOrPercent(15, false)); - + def->set_default_value(new ConfigOptionFloatOrPercent(100, true)); + + def = this->add("small_perimeter_threshold", coFloat); + def->label = L("Small perimeters threshold"); + def->category = L("Speed"); + def->tooltip = L("This sets the threshold for small perimeter length. Default threshold is 6.5mm"); + def->sidetext = L("mm"); + def->min = 0; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionFloat(6.5)); + def = this->add("wall_infill_order", coEnum); def->label = L("Order of inner wall/outer wall/infil"); def->category = L("Quality"); @@ -3755,7 +3764,6 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va opt_key == "top_surface_speed" || opt_key == "support_interface_speed" || opt_key == "outer_wall_speed" || - opt_key == "small_perimeter_speed" || opt_key == "support_object_xy_distance") && value.find("%") != std::string::npos) { //BBS: this is old profile in which value is expressed as percentage. //But now these key-value must be absolute value. diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 533e4823f3..8a1ae18af9 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -672,6 +672,7 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionFloat, outer_wall_line_width)) ((ConfigOptionFloat, outer_wall_speed)) ((ConfigOptionFloatOrPercent, small_perimeter_speed)) + ((ConfigOptionFloat, small_perimeter_threshold)) ((ConfigOptionFloat, infill_direction)) ((ConfigOptionPercent, sparse_infill_density)) ((ConfigOptionEnum, sparse_infill_pattern)) @@ -1281,7 +1282,12 @@ public: const ConfigOption* option(const t_config_option_key &opt_key) const { return m_data.option(opt_key); } int opt_int(const t_config_option_key &opt_key) const { return m_data.opt_int(opt_key); } int extruder() const { return opt_int("extruder"); } - double opt_float(const t_config_option_key &opt_key) const { return m_data.opt_float(opt_key); } + double opt_float(const t_config_option_key &opt_key) const { + return m_data.opt_float(opt_key); + } + double get_abs_value(const t_config_option_key &opt_key) const { + return m_data.get_abs_value(opt_key); + } std::string opt_serialize(const t_config_option_key &opt_key) const { return m_data.opt_serialize(opt_key); } // Return an optional timestamp of this object. diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index eca777cbb3..bad5b3fc20 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -657,6 +657,7 @@ bool PrintObject::invalidate_state_by_config_options( // BBS: brim generation depends on printing speed || opt_key == "outer_wall_speed" || opt_key == "small_perimeter_speed" + || opt_key == "small_perimeter_threshold" || opt_key == "sparse_infill_speed" || opt_key == "inner_wall_speed" || opt_key == "support_speed" @@ -832,6 +833,7 @@ bool PrintObject::invalidate_state_by_config_options( || opt_key == "bridge_speed" || opt_key == "outer_wall_speed" || opt_key == "small_perimeter_speed" + || opt_key == "small_perimeter_threshold" || opt_key == "sparse_infill_speed" || opt_key == "inner_wall_speed" || opt_key == "internal_solid_infill_speed" diff --git a/src/libslic3r/libslic3r.h b/src/libslic3r/libslic3r.h index 3a5e539bc4..8e85567131 100644 --- a/src/libslic3r/libslic3r.h +++ b/src/libslic3r/libslic3r.h @@ -66,7 +66,7 @@ static constexpr double SPARSE_INFILL_RESOLUTION = 0.04; static constexpr double SUPPORT_RESOLUTION = 0.05; #define SCALED_SUPPORT_RESOLUTION (SUPPORT_RESOLUTION / SCALING_FACTOR) // Maximum perimeter length for the loop to apply the small perimeter speed. -#define SMALL_PERIMETER_LENGTH ((6.5 / SCALING_FACTOR) * 2 * PI) +#define SMALL_PERIMETER_LENGTH(LENGTH) (((LENGTH) / SCALING_FACTOR) * 2 * PI) static constexpr double INSET_OVERLAP_TOLERANCE = 0.4; // 3mm ring around the top / bottom / bridging areas. //FIXME This is quite a lot. diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index b7f28d73c2..b8bb7e940f 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -451,7 +451,7 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co bool have_perimeters = config->opt_int("wall_loops") > 0; for (auto el : { "detect_thin_wall", "detect_overhang_wall", "seam_position", "wall_infill_order", "outer_wall_line_width", - "inner_wall_speed", "outer_wall_speed", "small_perimeter_speed" }) + "inner_wall_speed", "outer_wall_speed", "small_perimeter_speed", "small_perimeter_threshold" }) toggle_field(el, have_perimeters); bool have_infill = config->option("sparse_infill_density")->value > 0; diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 5e4db9fdda..5136fb9865 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1823,6 +1823,7 @@ void TabPrint::build() optgroup->append_single_option_line("outer_wall_speed"); optgroup->append_single_option_line("inner_wall_speed"); optgroup->append_single_option_line("small_perimeter_speed"); + optgroup->append_single_option_line("small_perimeter_threshold"); optgroup->append_single_option_line("sparse_infill_speed"); optgroup->append_single_option_line("internal_solid_infill_speed"); optgroup->append_single_option_line("top_surface_speed"); diff --git a/version.inc b/version.inc index fe04c4d142..bf5a197807 100644 --- a/version.inc +++ b/version.inc @@ -11,4 +11,4 @@ if(NOT DEFINED BBL_INTERNAL_TESTING) set(BBL_INTERNAL_TESTING "1") endif() set(SLIC3R_VERSION "01.03.00.12") -set(SoftFever_VERSION "1.3.2-beta") +set(SoftFever_VERSION "1.3.2 beta2")