diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 656c8d701..bbd5dcee3 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -2262,6 +2262,7 @@ int MachineObject::command_start_pa_calibration(const X1CCalibInfos &pa_data, in std::string filament_ids; for (int i = 0; i < pa_data.calib_datas.size(); ++i) { j["print"]["filaments"][i]["tray_id"] = pa_data.calib_datas[i].tray_id; + j["print"]["filaments"][i]["extruder_id"] = pa_data.calib_datas[i].extruder_id; j["print"]["filaments"][i]["bed_temp"] = pa_data.calib_datas[i].bed_temp; j["print"]["filaments"][i]["filament_id"] = pa_data.calib_datas[i].filament_id; j["print"]["filaments"][i]["setting_id"] = pa_data.calib_datas[i].setting_id; @@ -4657,38 +4658,26 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) has_get_pa_calib_tab = true; } - if (jj.contains("nozzle_diameter")) { - if (jj["nozzle_diameter"].is_number_float()) { - pa_calib_tab_info.pa_calib_tab_nozzle_dia = jj["nozzle_diameter"].get(); - } - else if (jj["nozzle_diameter"].is_string()) { - pa_calib_tab_info.pa_calib_tab_nozzle_dia = string_to_float(jj["nozzle_diameter"].get()); - } - else { - assert(false); - } - } - else { - assert(false); - } - - if (jj.contains("extruder_id")) { - pa_calib_tab_info.extruder_id = jj["extruder_id"].get(); - } - - if (jj.contains("nozzle_id")) { - pa_calib_tab_info.nozzle_volume_type = convert_to_nozzle_type(jj["nozzle_id"].get()); - } - if (jj.contains("filaments") && jj["filaments"].is_array()) { try { for (auto it = jj["filaments"].begin(); it != jj["filaments"].end(); it++) { PACalibResult pa_calib_result; pa_calib_result.filament_id = (*it)["filament_id"].get(); - pa_calib_result.setting_id = (*it)["setting_id"].get(); pa_calib_result.name = (*it)["name"].get(); pa_calib_result.cali_idx = (*it)["cali_idx"].get(); + if ((*it).contains("setting_id")) { + pa_calib_result.setting_id = (*it)["setting_id"].get(); + } + + if ((*it).contains("extruder_id")) { + pa_calib_result.extruder_id = (*it)["extruder_id"].get(); + } + + if ((*it).contains("nozzle_id")) { + pa_calib_result.nozzle_volume_type = convert_to_nozzle_type((*it)["nozzle_id"].get()); + } + if (jj["nozzle_diameter"].is_number_float()) { pa_calib_result.nozzle_diameter = jj["nozzle_diameter"].get(); } else if (jj["nozzle_diameter"].is_string()) { @@ -4742,7 +4731,10 @@ int MachineObject::parse_json(std::string payload, bool key_field_only) PACalibResult pa_calib_result; pa_calib_result.tray_id = (*it)["tray_id"].get(); pa_calib_result.filament_id = (*it)["filament_id"].get(); - pa_calib_result.setting_id = (*it)["setting_id"].get(); + + if ((*it).contains("setting_id")) { + pa_calib_result.setting_id = (*it)["setting_id"].get(); + } if (jj["nozzle_diameter"].is_number_float()) { pa_calib_result.nozzle_diameter = jj["nozzle_diameter"].get(); diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 4a8e6e498..fdb400ac0 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -693,16 +693,12 @@ public: ManualPaCaliMethod manual_pa_cali_method = ManualPaCaliMethod::PA_LINE; bool has_get_pa_calib_tab{ false }; std::vector pa_calib_tab; - PACalibTabInfo pa_calib_tab_info; bool get_pa_calib_result { false }; std::vector pa_calib_results; bool get_flow_calib_result { false }; std::vector flow_ratio_results; void reset_pa_cali_history_result() { - pa_calib_tab_info.pa_calib_tab_nozzle_dia = 0.4f; - pa_calib_tab_info.extruder_id = -1; - pa_calib_tab_info.nozzle_volume_type = NozzleVolumeType::nvtNormal; has_get_pa_calib_tab = false; pa_calib_tab.clear(); }