From 6888f9d8067eeb2afa6d0c949c6446d8c7093c18 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Sun, 5 Jul 2026 15:11:30 +0800 Subject: [PATCH] fix: use scalar config accessors in PA calibration for release/v2.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #14447 backported main's array-based calib.hpp accessors, which call DynamicPrintConfig::get_abs_value_at() — a coFloats/coFloatsOrPercents-only method that does not exist on release/v2.4. Here outer_wall_speed, outer_wall_acceleration and initial_layer_speed are still scalar coFloat, so the method is undefined and, if backported, would throw at runtime on these scalar options. This broke the build (calib.hpp is included widely via AppConfig.hpp). Revert speed_first_layer/speed_perimeter/accel_perimeter to the scalar option()->value form used before #14447. The actual #14447 crash fix (line_width_first_layer zero-width fallback in calib.cpp) is unaffected. --- src/libslic3r/calib.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/calib.hpp b/src/libslic3r/calib.hpp index 02b5c0695f..23d30b21c5 100644 --- a/src/libslic3r/calib.hpp +++ b/src/libslic3r/calib.hpp @@ -312,9 +312,9 @@ public: protected: // todo multi_extruders: - double speed_first_layer() const { return m_config.get_abs_value_at("initial_layer_speed", m_params.extruder_id); }; - double speed_perimeter() const { return m_config.get_abs_value_at("outer_wall_speed", m_params.extruder_id); }; - double accel_perimeter() const { return m_config.get_abs_value_at("outer_wall_acceleration", m_params.extruder_id); } + double speed_first_layer() const { return m_config.option("initial_layer_speed")->value; }; + double speed_perimeter() const { return m_config.option("outer_wall_speed")->value; }; + double accel_perimeter() const { return m_config.option("outer_wall_acceleration")->value; } double line_width_first_layer() const; double line_width() const; int wall_count() const { return m_config.option("wall_loops")->value; };