From a312425f5fe02a367b5d9945d59811d460b68e37 Mon Sep 17 00:00:00 2001 From: "BBL\\chuan.he" Date: Fri, 27 Dec 2024 10:42:02 +0800 Subject: [PATCH] fix:gcodechecker add multi nozzle temp check threshold Change-Id: Iee8beec34edc82bbe58873d22785c70ed25bd604 --- .../bbs_gcode_checker/GCodeChecker.cpp | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/bbs_test_tools/bbs_gcode_checker/GCodeChecker.cpp b/bbs_test_tools/bbs_gcode_checker/GCodeChecker.cpp index b2215b064..fb3160308 100644 --- a/bbs_test_tools/bbs_gcode_checker/GCodeChecker.cpp +++ b/bbs_test_tools/bbs_gcode_checker/GCodeChecker.cpp @@ -9,6 +9,7 @@ namespace BambuStudio { const double CHECK_WIDTH_E_THRESHOLD = 0.0025; const double WIDTH_THRESHOLD = 0.05; const double RADIUS_THRESHOLD = 0.005; +const double MULTI_NOZZLE_TEMP_THRESHOLD = 100; const double filament_diameter = 1.75; const double Pi = 3.14159265358979323846; @@ -134,20 +135,25 @@ GCodeCheckResult GCodeChecker::parse_comment(GCodeLine& line) } if (m_role == erExternalPerimeter) { - if (z_height == initial_layer_height && check_nozzle_temp != nozzle_temperature_initial_layer[filament_id]) { - if (is_multi_nozzle == false) { - std::cout << "Invalid filament nozzle initial layer temperature! Expected: " - << nozzle_temperature_initial_layer[filament_id] - << ", but got: " << check_nozzle_temp << "." << std::endl; - return GCodeCheckResult::ParseFailed; + if (z_height != initial_layer_height) { + if (is_multi_nozzle) { + double expected_temp = nozzle_temperature[filament_id]; + if (std::abs(check_nozzle_temp - expected_temp) > MULTI_NOZZLE_TEMP_THRESHOLD) { + std::cout << "Multi-nozzle: Invalid filament nozzle temperature! Expected: " + << expected_temp + << ", but got: " << check_nozzle_temp + << " (Threshold: ±100)." << std::endl; + return GCodeCheckResult::ParseFailed; + } + } + else { + if (check_nozzle_temp != nozzle_temperature[filament_id]) { + std::cout << "Invalid filament nozzle temperature! Expected: " + << nozzle_temperature[filament_id] + << ", but got: " << check_nozzle_temp << "." << std::endl; + return GCodeCheckResult::ParseFailed; + } } - } - - if (z_height != initial_layer_height && check_nozzle_temp != nozzle_temperature[filament_id]) { - std::cout << "Invalid filament nozzle temperature! Expected: " - << nozzle_temperature[filament_id] - << ", but got: " << check_nozzle_temp << "." << std::endl; - return GCodeCheckResult::ParseFailed; } } else if (m_role == erGapFill) {