From 3a8269f9d4ae132a75601999f5769f46b82fc5ca Mon Sep 17 00:00:00 2001 From: "jiangkai.zhao" Date: Thu, 18 Sep 2025 14:44:25 +0800 Subject: [PATCH] ENH:Frontend limits rib width to less than half the tower side length jira: STUDIO-14681 Change-Id: Id303ae07cacf36059d6de8570fa5ddf7802829ee (cherry picked from commit 919a57eef5d05066c4a804448cad69bdd3102456) --- src/libslic3r/PrintConfig.cpp | 3 ++- src/slic3r/GUI/PartPlate.cpp | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index c525c00755..8a7a3f7007 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -6214,10 +6214,11 @@ void PrintConfigDef::init_fff_params() def = this->add("wipe_tower_rib_width", coFloat); def->label = L("Rib width"); - def->tooltip = L("Rib width."); + def->tooltip = L("Rib width is always less than half the prime tower side length."); def->sidetext = "mm"; // milimeters, don't need translation def->mode = comAdvanced; def->min = 0; + def->max = 300; def->set_default_value(new ConfigOptionFloat(8)); def = this->add("wipe_tower_fillet_wall", coBool); diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index 8da277fd14..30ad79c78c 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -2040,6 +2040,7 @@ Vec3d PartPlate::estimate_wipe_tower_size(const DynamicPrintConfig & config, con float min_wipe_tower_depth = WipeTower::get_limit_depth_by_height(max_height); double volume_depth = depth; depth = std::max((double) min_wipe_tower_depth, depth); + rib_width = std::min(rib_width, depth / 2); depth = rib_width / std::sqrt(2) + std::max(depth + m_print->config().wipe_tower_extra_rib_length.value, volume_depth); wipe_tower_size(0) = wipe_tower_size(1) = depth; }