diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index 4283eca662..016ee6df44 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -646,6 +646,7 @@ std::string AppConfig::load() preset_info.nozzle_volume_type = NozzleVolumeType(cali_it.value()["nozzle_volume_type"].get()); preset_info.nozzle_diameter = cali_it.value()["nozzle_diameter"].get(); preset_info.filament_id = cali_it.value()["filament_id"].get(); + preset_info.bed_type = BedType(cali_it.value()["bed_type"].get()); preset_info.setting_id = cali_it.value()["setting_id"].get(); preset_info.name = cali_it.value()["name"].get(); cali_info.selected_presets.push_back(preset_info); @@ -790,6 +791,7 @@ void AppConfig::save() preset_json["tray_id"] = filament_preset.tray_id; preset_json["extruder_id"] = filament_preset.extruder_id; preset_json["nozzle_volume_type"] = int(filament_preset.nozzle_volume_type); + preset_json["bed_type"] = int(filament_preset.bed_type); preset_json["nozzle_diameter"] = filament_preset.nozzle_diameter; preset_json["filament_id"] = filament_preset.filament_id; preset_json["setting_id"] = filament_preset.setting_id; diff --git a/src/libslic3r/calib.hpp b/src/libslic3r/calib.hpp index 0128353643..0cf509bcb7 100644 --- a/src/libslic3r/calib.hpp +++ b/src/libslic3r/calib.hpp @@ -81,6 +81,7 @@ public: int tray_id; int extruder_id; NozzleVolumeType nozzle_volume_type; + BedType bed_type; float nozzle_diameter; std::string filament_id; std::string setting_id; diff --git a/src/slic3r/GUI/CalibrationWizard.cpp b/src/slic3r/GUI/CalibrationWizard.cpp index 08defd0017..dd2c962a6f 100644 --- a/src/slic3r/GUI/CalibrationWizard.cpp +++ b/src/slic3r/GUI/CalibrationWizard.cpp @@ -375,7 +375,7 @@ bool CalibrationWizard::save_preset_with_index(const std::string &old_preset_nam return true; } -void CalibrationWizard::cache_preset_info(MachineObject* obj, float nozzle_dia) +void CalibrationWizard::cache_preset_info(MachineObject *obj, float nozzle_dia, BedType bed_type) { if (!obj) return; @@ -388,6 +388,7 @@ void CalibrationWizard::cache_preset_info(MachineObject* obj, float nozzle_dia) CaliPresetInfo result; result.tray_id = item.first; result.nozzle_diameter = nozzle_dia; + result.bed_type = bed_type; result.filament_id = item.second->filament_id; result.setting_id = item.second->setting_id; result.name = item.second->name; @@ -696,7 +697,7 @@ void PressureAdvanceWizard::on_cali_start() float nozzle_dia = -1; preset_page->get_preset_info(nozzle_dia, plate_type); - CalibrationWizard::cache_preset_info(curr_obj, nozzle_dia); + CalibrationWizard::cache_preset_info(curr_obj, nozzle_dia, plate_type); if (/*nozzle_dia < 0 || */ plate_type == BedType::btDefault) { BOOST_LOG_TRIVIAL(error) << "CaliPreset: get preset info, nozzle and plate type error"; return; @@ -1207,7 +1208,7 @@ void FlowRateWizard::on_cali_start(CaliPresetStage stage, float cali_value, Flow msg_dlg.ShowModal(); return; } - CalibrationWizard::cache_preset_info(curr_obj, nozzle_dia); + CalibrationWizard::cache_preset_info(curr_obj, nozzle_dia, plate_type); } else if (from_page == FlowRatioCaliSource::FROM_COARSE_PAGE) { selected_filaments = get_cached_selected_filament(curr_obj); @@ -1278,6 +1279,7 @@ void FlowRateWizard::on_cali_start(CaliPresetStage stage, float cali_value, Flow int selected_tray_id = curr_obj->selected_cali_preset.front().tray_id; PresetCollection *filament_presets = &wxGetApp().preset_bundle->filaments; Preset* preset = filament_presets->find_preset(curr_obj->selected_cali_preset.front().name); + plate_type = curr_obj->selected_cali_preset.front().bed_type; if (preset) { selected_filaments.insert(std::make_pair(selected_tray_id, preset)); } @@ -1673,7 +1675,7 @@ void MaxVolumetricSpeedWizard::on_cali_start() preset_page->get_preset_info(nozzle_dia, plate_type); - CalibrationWizard::cache_preset_info(curr_obj, nozzle_dia); + CalibrationWizard::cache_preset_info(curr_obj, nozzle_dia, plate_type); wxArrayString values = preset_page->get_custom_range_values(); Calib_Params params; diff --git a/src/slic3r/GUI/CalibrationWizard.hpp b/src/slic3r/GUI/CalibrationWizard.hpp index 25f0049d82..d72d5fcb7b 100644 --- a/src/slic3r/GUI/CalibrationWizard.hpp +++ b/src/slic3r/GUI/CalibrationWizard.hpp @@ -69,7 +69,7 @@ public: bool save_preset(const std::string &old_preset_name, const std::string &new_preset_name, const std::map &key_values, wxString& message); bool save_preset_with_index(const std::string &old_preset_name, const std::string &new_preset_name, const std::map &key_values, wxString &message); - virtual void cache_preset_info(MachineObject* obj, float nozzle_dia); + virtual void cache_preset_info(MachineObject *obj, float nozzle_dia, BedType bed_type); virtual void recover_preset_info(MachineObject *obj); virtual void back_preset_info(MachineObject *obj, bool cali_finish, bool back_cali_flag = true);