ENH: support auto calibration for A series

jira: none
Change-Id: I6340cb8aa8b2fff174859d796ebf8a36effae004
This commit is contained in:
zhimin.zeng 2024-08-01 12:28:07 +08:00 committed by Lane.Wei
parent 49f67b80e5
commit c80a3fc5d1
4 changed files with 14 additions and 14 deletions

View File

@ -577,7 +577,7 @@ void PressureAdvanceWizard::on_cali_start()
//std::string error_message;
wxString wx_err_string;
if (m_cali_method == CalibrationMethod::CALI_METHOD_AUTO && curr_obj->get_printer_series() == PrinterSeries::SERIES_X1) {
if (m_cali_method == CalibrationMethod::CALI_METHOD_AUTO && (curr_obj->get_printer_series() == PrinterSeries::SERIES_X1 || curr_obj->get_printer_arch() == PrinterArch::ARCH_I3)) {
X1CCalibInfos calib_infos;
for (auto &item : selected_filaments) {
int nozzle_temp = -1;
@ -701,7 +701,7 @@ void PressureAdvanceWizard::on_cali_save()
return;
}
if (curr_obj->get_printer_series() == PrinterSeries::SERIES_X1) {
if (curr_obj->get_printer_series() == PrinterSeries::SERIES_X1 || curr_obj->get_printer_arch() == PrinterArch::ARCH_I3) {
if (m_cali_method == CalibrationMethod::CALI_METHOD_AUTO) {
std::vector<PACalibResult> new_pa_cali_results;
auto save_page = static_cast<CalibrationPASavePage*>(save_step->page);

View File

@ -52,12 +52,12 @@ wxString get_calibration_wiki_page(CalibMode cali_mode)
CalibrationFilamentMode get_cali_filament_mode(MachineObject* obj, CalibMode mode)
{
// default
// default
if (!obj) return CalibrationFilamentMode::CALI_MODEL_SINGLE;
if (mode == CalibMode::Calib_PA_Line) {
if (obj->get_printer_series() == PrinterSeries::SERIES_X1)
if (obj->get_printer_series() == PrinterSeries::SERIES_X1 || obj->get_printer_arch() == PrinterArch::ARCH_I3)
return CalibrationFilamentMode::CALI_MODEL_MULITI;
else if (obj->get_printer_series() == PrinterSeries::SERIES_P1P)
return CalibrationFilamentMode::CALI_MODEL_SINGLE;
@ -302,7 +302,7 @@ void FilamentComboBox::load_tray_from_ams(int id, DynamicPrintConfig& tray)
if (m_radioBox)
m_radioBox->Enable(m_comboBox->is_compatible_with_printer());
if (m_checkBox)
m_checkBox->Enable(m_comboBox->is_compatible_with_printer());
@ -548,7 +548,7 @@ void CaliPageStepGuide::set_steps_string(wxArrayString steps)
}
CaliPagePicture::CaliPagePicture(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style)
CaliPagePicture::CaliPagePicture(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style)
: wxPanel(parent, id, pos, size, style)
{
SetBackgroundColour(wxColour(0xCECECE));
@ -717,7 +717,7 @@ CaliPageActionPanel::CaliPageActionPanel(wxWindow* parent,
m_action_btns.push_back(new CaliPageButton(btn_parent, CaliPageActionType::CALI_ACTION_PREV));
m_action_btns.push_back(new CaliPageButton(btn_parent, CaliPageActionType::CALI_ACTION_NEXT));
}
}
auto top_sizer = new wxBoxSizer(wxHORIZONTAL);

View File

@ -852,7 +852,7 @@ void CalibrationPASavePage::sync_cali_result(MachineObject* obj)
}
void CalibrationPASavePage::show_panels(CalibrationMethod method, const PrinterSeries printer_ser) {
if (printer_ser == PrinterSeries::SERIES_X1) {
if (printer_ser == PrinterSeries::SERIES_X1 || curr_obj->get_printer_arch() == PrinterArch::ARCH_I3) {
if (method == CalibrationMethod::CALI_METHOD_MANUAL) {
m_manual_panel->set_pa_cali_method(curr_obj->manual_pa_cali_method);
m_manual_panel->Show();

View File

@ -101,7 +101,7 @@ void CalibrationPAStartPage::create_page(wxWindow* parent)
m_top_sizer->Add(m_when_content);
m_top_sizer->AddSpacer(PRESET_GAP);
if (wxGetApp().app_config->get_language_code() == "zh-cn") {
if (wxGetApp().app_config->get_language_code() == "zh-cn") {
create_bitmap(parent, "cali_page_before_pa_CN", "cali_page_after_pa_CN");
} else {
create_bitmap(parent, "cali_page_before_pa", "cali_page_after_pa");
@ -151,7 +151,7 @@ void CalibrationPAStartPage::on_device_connected(MachineObject* obj)
m_action_panel->enable_button(CaliPageActionType::CALI_ACTION_AUTO_CALI, true);
m_action_panel->enable_button(CaliPageActionType::CALI_ACTION_MANUAL_CALI, true);
if (obj->get_printer_series() == PrinterSeries::SERIES_X1) {
if (obj->get_printer_series() == PrinterSeries::SERIES_X1 || obj->get_printer_arch() == PrinterArch::ARCH_I3) {
m_action_panel->show_button(CaliPageActionType::CALI_ACTION_MANAGE_RESULT, true);
m_action_panel->show_button(CaliPageActionType::CALI_ACTION_AUTO_CALI, true);
m_action_panel->show_button(CaliPageActionType::CALI_ACTION_MANUAL_CALI, true);
@ -173,7 +173,7 @@ void CalibrationPAStartPage::on_device_connected(MachineObject* obj)
m_action_panel->show_button(CaliPageActionType::CALI_ACTION_AUTO_CALI, false);
}
}
else if (obj->get_printer_series() == PrinterSeries::SERIES_P1P || obj->get_printer_arch() == PrinterArch::ARCH_I3) {
else if (obj->get_printer_series() == PrinterSeries::SERIES_P1P) {
if (obj->cali_version >= 0) {
m_action_panel->show_button(CaliPageActionType::CALI_ACTION_MANAGE_RESULT, true);
m_action_panel->bind_button(CaliPageActionType::CALI_ACTION_MANAGE_RESULT, false);
@ -226,7 +226,7 @@ void CalibrationFlowRateStartPage::create_page(wxWindow* parent)
m_top_sizer->Add(m_when_content);
m_top_sizer->AddSpacer(PRESET_GAP);
if (wxGetApp().app_config->get_language_code() == "zh-cn") {
if (wxGetApp().app_config->get_language_code() == "zh-cn") {
create_bitmap(parent, "cali_page_flow_introduction_CN");
} else {
create_bitmap(parent, "cali_page_flow_introduction");
@ -244,7 +244,7 @@ void CalibrationFlowRateStartPage::create_page(wxWindow* parent)
create_about(parent,
_L("About this calibration"),
_L("Flow Rate Calibration measures the ratio of expected to actual extrusion volumes. The default setting works well in Bambu Lab printers and official filaments as they were pre-calibrated and fine-tuned. For a regular filament, you usually won't need to perform a Flow Rate Calibration unless you still see the listed defects after you have done other calibrations. For more details, please check out the wiki article."));
m_top_sizer->Add(m_about_title);
m_top_sizer->Add(m_about_content);
m_top_sizer->AddSpacer(PRESET_GAP);
@ -254,7 +254,7 @@ void CalibrationFlowRateStartPage::create_page(wxWindow* parent)
auto_cali_title->Wrap(CALIBRATION_START_PAGE_TEXT_MAX_LENGTH);
auto_cali_title->SetMinSize({CALIBRATION_START_PAGE_TEXT_MAX_LENGTH, -1});
auto auto_cali_content = new Label(this,
auto auto_cali_content = new Label(this,
_L("Auto Flow Rate Calibration utilizes Bambu Lab's Micro-Lidar technology, directly measuring the calibration patterns. However, please be advised that the efficacy and accuracy of this method may be compromised with specific types of materials. Particularly, filaments that are transparent or semi-transparent, sparkling-particled, or have a high-reflective finish may not be suitable for this calibration and can produce less-than-desirable results.\
\n\nThe calibration results may vary between each calibration or filament. We are still improving the accuracy and compatibility of this calibration through firmware updates over time.\
\n\nCaution: Flow Rate Calibration is an advanced process, to be attempted only by those who fully understand its purpose and implications. Incorrect usage can lead to sub-par prints or printer damage. Please make sure to carefully read and understand the process before doing it."));