ENH: 0.2 nozzle do not have high flow type

jira: NONE

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I9544f32f2f6528ec7a7225de22ab29309a9c32a7
This commit is contained in:
xun.zhang 2025-04-11 14:18:25 +08:00 committed by lane.wei
parent 34ec644e29
commit c2a3313404
1 changed files with 13 additions and 4 deletions

View File

@ -1214,7 +1214,11 @@ bool Sidebar::priv::sync_extruder_list(bool &only_external_material)
continue; continue;
} }
auto printer_tab = dynamic_cast<TabPrinter *>(wxGetApp().get_tab(Preset::TYPE_PRINTER)); auto printer_tab = dynamic_cast<TabPrinter *>(wxGetApp().get_tab(Preset::TYPE_PRINTER));
printer_tab->set_extruder_volume_type(index, NozzleVolumeType(obj->m_extder_data.extders[extruder_id].current_nozzle_flow_type - 1)); NozzleVolumeType target_type = NozzleVolumeType::nvtStandard;
// 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, target_type);
} }
int deputy_4 = 0, main_4 = 0, deputy_1 = 0, main_1 = 0; int deputy_4 = 0, main_4 = 0, deputy_1 = 0, main_1 = 0;
@ -2291,21 +2295,26 @@ void Sidebar::update_presets(Preset::Type preset_type)
auto extruders = printer_preset.config.option<ConfigOptionEnumsGeneric>("extruder_type"); auto extruders = printer_preset.config.option<ConfigOptionEnumsGeneric>("extruder_type");
auto nozzle_volumes_def = wxGetApp().preset_bundle->project_config.def()->get("nozzle_volume_type"); auto nozzle_volumes_def = wxGetApp().preset_bundle->project_config.def()->get("nozzle_volume_type");
auto nozzle_volumes = wxGetApp().preset_bundle->project_config.option<ConfigOptionEnumsGeneric>("nozzle_volume_type"); auto nozzle_volumes = wxGetApp().preset_bundle->project_config.option<ConfigOptionEnumsGeneric>("nozzle_volume_type");
auto update_extruder_variant = [extruders_def, extruders, nozzle_volumes_def, nozzle_volumes, extruder_variants](ExtruderGroup & extruder, int index) { auto diameters = wxGetApp().preset_bundle->printers.diameters_of_selected_printer();
auto diameter = printer_preset.config.opt_string("printer_variant");
auto update_extruder_variant = [extruders_def, extruders, nozzle_volumes_def, nozzle_volumes, extruder_variants,diameter](ExtruderGroup & extruder, int index) {
extruder.combo_flow->Clear(); extruder.combo_flow->Clear();
auto type = extruders_def->enum_labels[extruders->values[index]]; auto type = extruders_def->enum_labels[extruders->values[index]];
int select = -1; int select = -1;
for (size_t i = 0; i < nozzle_volumes_def->enum_labels.size(); ++i) { for (size_t i = 0; i < nozzle_volumes_def->enum_labels.size(); ++i) {
if (boost::algorithm::contains(extruder_variants->values[index], type + " " + nozzle_volumes_def->enum_labels[i])) { if (boost::algorithm::contains(extruder_variants->values[index], type + " " + nozzle_volumes_def->enum_labels[i])) {
if (diameter == "0.2" && nozzle_volumes_def->enum_keys_map->at(nozzle_volumes_def->enum_values[i]) == NozzleVolumeType::nvtHighFlow)
continue;
if (nozzle_volumes->values[index] == i) if (nozzle_volumes->values[index] == i)
select = extruder.combo_flow->GetCount(); select = extruder.combo_flow->GetCount();
extruder.combo_flow->Append(_L(nozzle_volumes_def->enum_labels[i]), {}, (void*)i); extruder.combo_flow->Append(_L(nozzle_volumes_def->enum_labels[i]), {}, (void*)i);
} }
} }
if (select == -1)
select = extruder.combo_flow->GetCount() - 1;
extruder.combo_flow->SetSelection(select); extruder.combo_flow->SetSelection(select);
}; };
auto diameters = wxGetApp().preset_bundle->printers.diameters_of_selected_printer();
auto diameter = printer_preset.config.opt_string("printer_variant");
auto update_extruder_diameter = [&diameters, &diameter](ExtruderGroup & extruder) { auto update_extruder_diameter = [&diameters, &diameter](ExtruderGroup & extruder) {
extruder.combo_diameter->Clear(); extruder.combo_diameter->Clear();
int select = -1; int select = -1;