From bde01dc1814f7cef812d7f441cd969e0f3ab7747 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Wed, 20 Nov 2024 10:50:51 +0800 Subject: [PATCH] FIX: the gcode.3mf cannot display correctly because the empty value of unprintable_filament_map jira: none Change-Id: I223fde51e31c2206b81512737058c7015cb10816 --- src/libslic3r/PrintApply.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/libslic3r/PrintApply.cpp b/src/libslic3r/PrintApply.cpp index 12da0e88a..f729273e3 100644 --- a/src/libslic3r/PrintApply.cpp +++ b/src/libslic3r/PrintApply.cpp @@ -266,6 +266,15 @@ static t_config_option_keys print_config_diffs( else if ((plate_index < option_new->values.size())||(plate_index < option_old->values.size())) print_diff.emplace_back(opt_key); } + else if (opt_key == "unprintable_filament_map") { + size_t extruder_nums = new_full_config.option("nozzle_diameter")->values.size(); + std::vector> old_map = current_config.option("unprintable_filament_map")->values; + std::vector> new_map = new_full_config.option("unprintable_filament_map")->values; + old_map.resize(extruder_nums, std::vector()); + new_map.resize(extruder_nums, std::vector()); + if (old_map != new_map) + print_diff.emplace_back(opt_key); + } else print_diff.emplace_back(opt_key); } @@ -297,6 +306,18 @@ static t_config_option_keys full_print_config_diffs(const DynamicPrintConfig &cu else if ((plate_index < option_new->values.size())||(plate_index < option_old->values.size())) full_config_diff.emplace_back(opt_key); } + else if (opt_key == "unprintable_filament_map") { + size_t extruder_nums = new_full_config.option("nozzle_diameter")->values.size(); + std::vector> old_map; + if (opt_old) { + old_map = current_full_config.option("unprintable_filament_map")->values; + } + std::vector> new_map = new_full_config.option("unprintable_filament_map")->values; + old_map.resize(extruder_nums, std::vector()); + new_map.resize(extruder_nums, std::vector()); + if (old_map != new_map) + full_config_diff.emplace_back(opt_key); + } else full_config_diff.emplace_back(opt_key); }