FIX: add nozzle volume type for single printer

jira: STUDIO-12765
Change-Id: If1134e759c16a162537241e9e9b7db084263fb97
(cherry picked from commit 3a7d55e713117ee8249b2f67e2f399fa0b8a3b70)
This commit is contained in:
zhimin.zeng
2025-06-17 20:34:14 +08:00
committed by Noisyfox
parent 337d987ec8
commit 6fadf2da5c
2 changed files with 48 additions and 10 deletions

View File

@@ -642,6 +642,19 @@ void CalibrationPresetPage::create_selection_panel(wxWindow* parent)
single_nozzle_sizer->Add(m_nozzle_diameter_tips, 0, wxALL, 0); single_nozzle_sizer->Add(m_nozzle_diameter_tips, 0, wxALL, 0);
single_nozzle_sizer->AddSpacer(PRESET_GAP); single_nozzle_sizer->AddSpacer(PRESET_GAP);
auto nozzle_volume_type_text = new Label(m_single_nozzle_info_panel, _L("Nozzle Flow"));
nozzle_volume_type_text->SetFont(Label::Head_14);
nozzle_volume_type_text->Wrap(-1);
m_comboBox_nozzle_volume = new ComboBox(m_single_nozzle_info_panel, wxID_ANY, "", wxDefaultPosition, CALIBRATION_COMBOX_SIZE, 0, nullptr, wxCB_READONLY);
m_comboBox_nozzle_volume->Disable();
single_nozzle_sizer->Add(nozzle_volume_type_text, 0, wxALL, 0);
single_nozzle_sizer->AddSpacer(FromDIP(5));
single_nozzle_sizer->Add(m_comboBox_nozzle_volume, 0, wxALL, 0);
single_nozzle_sizer->AddSpacer(FromDIP(5));
single_nozzle_sizer->AddSpacer(PRESET_GAP);
m_single_nozzle_info_panel->SetSizer(single_nozzle_sizer); m_single_nozzle_info_panel->SetSizer(single_nozzle_sizer);
panel_sizer->Add(m_single_nozzle_info_panel); panel_sizer->Add(m_single_nozzle_info_panel);
} }
@@ -788,12 +801,24 @@ float nozzle_diameter_list[NOZZLE_LIST_COUNT] = {0.2, 0.4, 0.6, 0.8 };
void CalibrationPresetPage::init_selection_values() void CalibrationPresetPage::init_selection_values()
{ {
// init nozzle diameter // init nozzle diameter and nozzle volume
m_comboBox_nozzle_dia->Clear(); {
for (int i = 0; i < NOZZLE_LIST_COUNT; i++) { m_comboBox_nozzle_dia->Clear();
m_comboBox_nozzle_dia->AppendString(wxString::Format("%1.1f mm", nozzle_diameter_list[i])); for (int i = 0; i < NOZZLE_LIST_COUNT; i++) {
m_comboBox_nozzle_dia->AppendString(wxString::Format("%1.1f mm", nozzle_diameter_list[i]));
}
m_comboBox_nozzle_dia->SetSelection(NOZZLE_LIST_DEFAULT);
m_comboBox_nozzle_volume->Clear();
const ConfigOptionDef *nozzle_volume_type_def = print_config_def.get("nozzle_volume_type");
if (nozzle_volume_type_def && nozzle_volume_type_def->enum_keys_map) {
for (auto item : nozzle_volume_type_def->enum_labels) {
m_comboBox_nozzle_volume->AppendString(_L(item));
}
}
m_comboBox_nozzle_volume->SetSelection(int(NozzleVolumeType::nvtStandard));
} }
m_comboBox_nozzle_dia->SetSelection(NOZZLE_LIST_DEFAULT);
Preset* cur_printer_preset = get_printer_preset(curr_obj, 0.4); Preset* cur_printer_preset = get_printer_preset(curr_obj, 0.4);
@@ -948,11 +973,16 @@ float CalibrationPresetPage::get_nozzle_diameter(int extruder_id) const
NozzleVolumeType CalibrationPresetPage::get_nozzle_volume_type(int extruder_id) const NozzleVolumeType CalibrationPresetPage::get_nozzle_volume_type(int extruder_id) const
{ {
if (extruder_id == LEFT_EXTRUDER_ID) { if (curr_obj) {
return NozzleVolumeType(m_left_comboBox_nozzle_volume->GetSelection()); if (curr_obj->is_multi_extruders()) {
} if (extruder_id == LEFT_EXTRUDER_ID) {
else if (extruder_id == RIGHT_EXTRUDER_ID) { return NozzleVolumeType(m_left_comboBox_nozzle_volume->GetSelection());
return NozzleVolumeType(m_right_comboBox_nozzle_volume->GetSelection()); } else if (extruder_id == RIGHT_EXTRUDER_ID) {
return NozzleVolumeType(m_right_comboBox_nozzle_volume->GetSelection());
}
}
else
return NozzleVolumeType(m_comboBox_nozzle_volume->GetSelection());
} }
return NozzleVolumeType::nvtStandard; return NozzleVolumeType::nvtStandard;
} }
@@ -2139,6 +2169,13 @@ void CalibrationPresetPage::init_with_machine(MachineObject* obj)
m_filament_list_panel->Hide(); m_filament_list_panel->Hide();
} }
else { else {
if ((obj->m_extder_data.extders.size() > 0) && (obj->m_extder_data.extders[0].current_nozzle_flow_type != NozzleFlowType::NONE_FLOWTYPE)) {
m_comboBox_nozzle_volume->SetSelection(obj->m_extder_data.extders[0].current_nozzle_flow_type - 1);
} else {
m_comboBox_nozzle_volume->SetSelection(0);
}
m_single_nozzle_info_panel->Show(); m_single_nozzle_info_panel->Show();
m_multi_nozzle_info_panel->Hide(); m_multi_nozzle_info_panel->Hide();
m_multi_exutrder_filament_list_panel->Hide(); m_multi_exutrder_filament_list_panel->Hide();

View File

@@ -289,6 +289,7 @@ protected:
// m_selection_panel widgets // m_selection_panel widgets
ComboBox* m_comboBox_nozzle_dia; ComboBox* m_comboBox_nozzle_dia;
ComboBox* m_comboBox_nozzle_volume;
ComboBox* m_comboBox_bed_type; ComboBox* m_comboBox_bed_type;
ComboBox* m_comboBox_process; ComboBox* m_comboBox_process;
Label* m_nozzle_diameter_tips{nullptr}; Label* m_nozzle_diameter_tips{nullptr};