From 015a4a37dc8697725128d6e4107a5ea546b5c558 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Tue, 24 Mar 2020 11:52:43 +0100 Subject: [PATCH] Fix of a wrong order of processing the config sources when slicing from command line. Fixes PrusaSlicer Console --load my_config.ini doesnt overwrites the 3mf profiles or not used. #3893 The priority of config values is now: 1) Config keys from command line, for example --fill-pattern=stars (highest priority, overwrites everything below) 2) Config files loaded with --load 3) Config from 3mf (lowest priority) --- src/PrusaSlicer.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/PrusaSlicer.cpp b/src/PrusaSlicer.cpp index 048aea886..3611b1c04 100644 --- a/src/PrusaSlicer.cpp +++ b/src/PrusaSlicer.cpp @@ -132,14 +132,18 @@ int CLI::run(int argc, char **argv) Model model; try { // When loading an AMF or 3MF, config is imported as well, including the printer technology. - model = Model::read_from_file(file, &m_print_config, true); - PrinterTechnology other_printer_technology = get_printer_technology(m_print_config); + DynamicPrintConfig config; + model = Model::read_from_file(file, &config, true); + PrinterTechnology other_printer_technology = get_printer_technology(config); if (printer_technology == ptUnknown) { printer_technology = other_printer_technology; } else if (printer_technology != other_printer_technology && other_printer_technology != ptUnknown) { boost::nowide::cerr << "Mixing configurations for FFF and SLA technologies" << std::endl; return 1; } + // config is applied to m_print_config before the current m_config values. + config += std::move(m_print_config); + m_print_config = std::move(config); } catch (std::exception &e) { boost::nowide::cerr << file << ": " << e.what() << std::endl; return 1;