FIX: Calibration limit left and right must be the same diameter
jira: none Change-Id: I3ea572184a122abeaee882742eda8b75fb21c30d
This commit is contained in:
parent
de449496b5
commit
79165e1ad4
|
@ -1768,6 +1768,18 @@ void CalibrationPresetPage::update_show_status()
|
|||
return;
|
||||
}
|
||||
|
||||
if (obj_->is_multi_extruders()) {
|
||||
float diameter = obj_->m_extder_data.extders[0].current_nozzle_diameter;
|
||||
bool is_same_diameter = std::all_of(obj_->m_extder_data.extders.begin(), obj_->m_extder_data.extders.end(),
|
||||
[diameter](const Extder& extruder) {
|
||||
return std::fabs(extruder.current_nozzle_diameter - diameter) < EPSILON;
|
||||
});
|
||||
if (!is_same_diameter) {
|
||||
show_status(CaliPresetPageStatus::CaliPresetStatusDifferentNozzleDiameters);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// check sdcard when if lan mode printer
|
||||
if (obj_->is_lan_mode_printer()) {
|
||||
if (obj_->get_sdcard_state() == MachineObject::SdcardState::NO_SDCARD) {
|
||||
|
@ -1897,6 +1909,11 @@ void CalibrationPresetPage::show_status(CaliPresetPageStatus status)
|
|||
update_print_status_msg(msg_text, true);
|
||||
Enable_Send_Button(false);
|
||||
}
|
||||
else if (status == CaliPresetPageStatus::CaliPresetStatusDifferentNozzleDiameters) {
|
||||
wxString msg_text = _L("Calibration only supports cases where the left and right nozzle diameters are identical.");
|
||||
update_print_status_msg(msg_text, true);
|
||||
Enable_Send_Button(false);
|
||||
}
|
||||
|
||||
Layout();
|
||||
}
|
||||
|
|
|
@ -154,6 +154,7 @@ enum CaliPresetPageStatus
|
|||
CaliPresetStatusUnsupportedPrinter,
|
||||
CaliPresetStatusInConnecting,
|
||||
CaliPresetStatusFilamentIncompatible,
|
||||
CaliPresetStatusDifferentNozzleDiameters
|
||||
};
|
||||
|
||||
class CalibrationPresetPage : public CalibrationWizardPage
|
||||
|
|
Loading…
Reference in New Issue