From f60020da215125e4dd209f3450a58534ac36dee4 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Mon, 19 May 2025 20:13:33 +0800 Subject: [PATCH] FIX: should not sync nozzle flow type for P/A printers jira: STUDIO-12183 Change-Id: I6351c18b7e01c50aa2c741047934a96ca7572c12 (cherry picked from commit 93095852fb41d7a2b0f252d11125a614fd4a1ef0) --- src/slic3r/GUI/Plater.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 45186bc0ed..83639e8167 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1264,13 +1264,20 @@ bool Sidebar::priv::sync_extruder_list(bool &only_external_material) for (size_t index = 0; index < extruder_nums; ++index) { int extruder_id = extruder_map[index]; nozzle_diameters[extruder_id] = obj->m_extder_data.extders[index].current_nozzle_diameter; - if (obj->m_extder_data.extders[index].current_nozzle_flow_type == NozzleFlowType::NONE_FLOWTYPE) { - MessageDialog dlg(this->plater, _L("There are unset nozzle types. Please set the nozzle types of all extruders before synchronizing."), - _L("Sync extruder infomation"), wxICON_WARNING | wxOK); - dlg.ShowModal(); - continue; + NozzleVolumeType target_type = NozzleVolumeType::nvtStandard; + auto printer_tab = dynamic_cast(wxGetApp().get_tab(Preset::TYPE_PRINTER)); + if (obj->is_nozzle_flow_type_supported()) { + if (obj->m_extder_data.extders[index].current_nozzle_flow_type == NozzleFlowType::NONE_FLOWTYPE) { + MessageDialog dlg(this->plater, _L("There are unset nozzle types. Please set the nozzle types of all extruders before synchronizing."), + _L("Sync extruder infomation"), wxICON_WARNING | wxOK); + dlg.ShowModal(); + continue; + } + // hack code, only use standard flow for 0.2 + if (std::fabs(nozzle_diameters[extruder_id] - 0.2) > EPSILON) + target_type = NozzleVolumeType(obj->m_extder_data.extders[extruder_id].current_nozzle_flow_type - 1); } - printer_tab->set_extruder_volume_type(index, NozzleVolumeType(obj->m_extder_data.extders[extruder_id].current_nozzle_flow_type - 1)); + printer_tab->set_extruder_volume_type(index, target_type); } int deputy_4 = 0, main_4 = 0, deputy_1 = 0, main_1 = 0;