diff --git a/src/slic3r/GUI/CaliHistoryDialog.cpp b/src/slic3r/GUI/CaliHistoryDialog.cpp index 1116bb374..d9eab3685 100644 --- a/src/slic3r/GUI/CaliHistoryDialog.cpp +++ b/src/slic3r/GUI/CaliHistoryDialog.cpp @@ -295,7 +295,7 @@ void HistoryWindow::sync_history_data() { name_value->SetLabel(from_u8(new_result.name)); new_result.tray_id = -1; - CalibUtils::set_PA_calib_result({ new_result }); + CalibUtils::set_PA_calib_result({ new_result }, true); enbale_action_buttons(false); } diff --git a/src/slic3r/GUI/CalibrationWizard.cpp b/src/slic3r/GUI/CalibrationWizard.cpp index 207ccaba5..27625d716 100644 --- a/src/slic3r/GUI/CalibrationWizard.cpp +++ b/src/slic3r/GUI/CalibrationWizard.cpp @@ -593,7 +593,7 @@ void PressureAdvanceWizard::on_cali_save() return; } - CalibUtils::set_PA_calib_result(new_pa_cali_results); + CalibUtils::set_PA_calib_result(new_pa_cali_results, true); } else if (m_cali_method == CalibrationMethod::CALI_METHOD_MANUAL) { PACalibResult new_pa_cali_result; @@ -601,7 +601,7 @@ void PressureAdvanceWizard::on_cali_save() if (!save_page->get_manual_result(new_pa_cali_result)) { return; } - CalibUtils::set_PA_calib_result({ new_pa_cali_result }); + CalibUtils::set_PA_calib_result({ new_pa_cali_result }, false); } MessageDialog msg_dlg(nullptr, _L("Flow Dynamics Calibration result has been saved to the printer"), wxEmptyString, wxOK); diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 46246e97b..618019737 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -2036,7 +2036,7 @@ int MachineObject::command_start_pa_calibration(const X1CCalibInfos &pa_data, in return -1; } -int MachineObject::command_set_pa_calibration(const std::vector& pa_calib_values) +int MachineObject::command_set_pa_calibration(const std::vector &pa_calib_values, bool is_auto_cali) { CNumericLocalesSetter locales_setter; @@ -2056,8 +2056,10 @@ int MachineObject::command_set_pa_calibration(const std::vector& j["print"]["filaments"][i]["setting_id"] = pa_calib_values[i].setting_id; j["print"]["filaments"][i]["name"] = pa_calib_values[i].name; j["print"]["filaments"][i]["k_value"] = std::to_string(pa_calib_values[i].k_value); - // j["print"]["filaments"][i]["n_coef"] = std::to_string(pa_calib_values[i].n_coef); - j["print"]["filaments"][i]["n_coef"] = "0.0"; + if (is_auto_cali) + j["print"]["filaments"][i]["n_coef"] = std::to_string(pa_calib_values[i].n_coef); + else + j["print"]["filaments"][i]["n_coef"] = "0.0"; } BOOST_LOG_TRIVIAL(trace) << "extrusion_cali_set: " << j.dump(); diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 1bd70d84d..08dadea34 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -818,7 +818,7 @@ public: // PA calibration int command_start_pa_calibration(const X1CCalibInfos& pa_data, int mode = 0); // 0: automatic mode; 1: manual mode. default: automatic mode - int command_set_pa_calibration(const std::vector& pa_calib_values); + int command_set_pa_calibration(const std::vector& pa_calib_values, bool is_auto_cali); int command_delete_pa_calibration(const PACalibIndexInfo& pa_calib); int command_get_pa_calibration_tab(float nozzle_diameter, const std::string &filament_id = ""); int command_get_pa_calibration_result(float nozzle_diameter); diff --git a/src/slic3r/Utils/CalibUtils.cpp b/src/slic3r/Utils/CalibUtils.cpp index 48219a548..70fbb4469 100644 --- a/src/slic3r/Utils/CalibUtils.cpp +++ b/src/slic3r/Utils/CalibUtils.cpp @@ -265,7 +265,7 @@ bool CalibUtils::get_PA_calib_info(PACalibResult & pa_calib_info) { return false; } -void CalibUtils::set_PA_calib_result(const std::vector& pa_calib_values) +void CalibUtils::set_PA_calib_result(const std::vector &pa_calib_values, bool is_auto_cali) { DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager(); if (!dev) @@ -275,7 +275,7 @@ void CalibUtils::set_PA_calib_result(const std::vector& pa_calib_ if (obj_ == nullptr) return; - obj_->command_set_pa_calibration(pa_calib_values); + obj_->command_set_pa_calibration(pa_calib_values, is_auto_cali); } void CalibUtils::select_PA_calib_result(const PACalibIndexInfo& pa_calib_info) diff --git a/src/slic3r/Utils/CalibUtils.hpp b/src/slic3r/Utils/CalibUtils.hpp index 0c68d6168..5dee64714 100644 --- a/src/slic3r/Utils/CalibUtils.hpp +++ b/src/slic3r/Utils/CalibUtils.hpp @@ -41,7 +41,7 @@ public: static void emit_get_PA_calib_info(float nozzle_diameter, const std::string &filament_id); static bool get_PA_calib_info(PACalibResult &pa_calib_info); - static void set_PA_calib_result(const std::vector& pa_calib_values); + static void set_PA_calib_result(const std::vector& pa_calib_values, bool is_auto_cali); static void select_PA_calib_result(const PACalibIndexInfo &pa_calib_info); static void delete_PA_calib_result(const PACalibIndexInfo &pa_calib_info);