ENH: calibration: filaments compatibility
Change-Id: Ibdbf25905b7f0fff2371247437624ec4645b35ee
This commit is contained in:
parent
0cad88309c
commit
257e2e0bbb
|
@ -509,19 +509,25 @@ std::string AppConfig::load()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (it.key() == "calis") {
|
} else if (it.key() == "calis") {
|
||||||
for (auto &j : it.value()) {
|
for (auto &calis_j : it.value()) {
|
||||||
std::string str = j.dump();
|
|
||||||
PrinterCaliInfo cali_info;
|
PrinterCaliInfo cali_info;
|
||||||
cali_info.dev_id = j["dev_id"].get<std::string>();
|
if (calis_j.contains("dev_id"))
|
||||||
cali_info.mode = CalibMode(j["cali_mode"].get<int>());
|
cali_info.dev_id = calis_j["dev_id"].get<std::string>();
|
||||||
cali_info.state = CalibState(j["cali_state"].get<int>());
|
if (calis_j.contains("cali_mode"))
|
||||||
cali_info.filament_preset = j["preset"].get<std::string>();
|
cali_info.mode = CalibMode(calis_j["cali_mode"].get<int>());
|
||||||
|
if (calis_j.contains("cali_state"))
|
||||||
|
cali_info.state = CalibState(calis_j["cali_state"].get<int>());
|
||||||
|
if (calis_j.contains("preset")) {
|
||||||
|
for (auto cali_it = calis_j["preset"].begin(); cali_it != calis_j["preset"].end(); cali_it++) {
|
||||||
|
int tray_id = cali_it.value()["tray_id"].get<int>();
|
||||||
|
std::string name = cali_it.value()["preset_name"].get<std::string>();
|
||||||
|
cali_info.filament_presets[tray_id] = name;
|
||||||
|
}
|
||||||
|
}
|
||||||
//if (j.contains("nozzle"))
|
//if (j.contains("nozzle"))
|
||||||
//cali_info.nozzle_dia = j["nozzle"].get<float>();
|
//cali_info.nozzle_dia = j["nozzle"].get<float>();
|
||||||
//if (j.contains("bed_type"))
|
//if (j.contains("bed_type"))
|
||||||
//cali_info.bed_type = j["bed_type"].get<int>();
|
//cali_info.bed_type = j["bed_type"].get<int>();
|
||||||
if (j.contains("tray_ids"))
|
|
||||||
cali_info.tray_ids = j["tray_ids"].get<std::vector<int>>();
|
|
||||||
m_printer_cali_infos.emplace_back(cali_info);
|
m_printer_cali_infos.emplace_back(cali_info);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -630,17 +636,19 @@ void AppConfig::save()
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const auto &cali_info : m_printer_cali_infos) {
|
for (const auto &cali_info : m_printer_cali_infos) {
|
||||||
json json;
|
json cali_json;
|
||||||
json["dev_id"] = cali_info.dev_id;
|
cali_json["dev_id"] = cali_info.dev_id;
|
||||||
json["cali_mode"] = int(cali_info.mode);
|
cali_json["cali_mode"] = int(cali_info.mode);
|
||||||
json["cali_state"] = int(cali_info.state);
|
cali_json["cali_state"] = int(cali_info.state);
|
||||||
json["preset"] = cali_info.filament_preset;
|
for (auto filament_preset : cali_info.filament_presets) {
|
||||||
for (int tray_id : cali_info.tray_ids) {
|
json preset_json;
|
||||||
json["tray_ids"].push_back(tray_id);
|
preset_json["tray_id"] = filament_preset.first;
|
||||||
|
preset_json["preset_name"] = filament_preset.second;
|
||||||
|
cali_json["preset"].push_back(preset_json);
|
||||||
}
|
}
|
||||||
//json["nozzle"] = cali_info.nozzle_dia;
|
//json["nozzle"] = cali_info.nozzle_dia;
|
||||||
//json["bed_type"] = cali_info.bed_type;
|
//json["bed_type"] = cali_info.bed_type;
|
||||||
j["calis"].push_back(json);
|
j["calis"].push_back(cali_json);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write the other categories.
|
// Write the other categories.
|
||||||
|
@ -978,10 +986,9 @@ void AppConfig::save_printer_cali_infos(const PrinterCaliInfo &cali_info)
|
||||||
if (iter == m_printer_cali_infos.end()) {
|
if (iter == m_printer_cali_infos.end()) {
|
||||||
m_printer_cali_infos.emplace_back(cali_info);
|
m_printer_cali_infos.emplace_back(cali_info);
|
||||||
} else {
|
} else {
|
||||||
(*iter).filament_preset = cali_info.filament_preset;
|
(*iter).filament_presets = cali_info.filament_presets;
|
||||||
(*iter).mode = cali_info.mode;
|
(*iter).mode = cali_info.mode;
|
||||||
(*iter).state = cali_info.state;
|
(*iter).state = cali_info.state;
|
||||||
(*iter).tray_ids = cali_info.tray_ids;
|
|
||||||
//(*iter).nozzle_dia = cali_info.nozzle_dia;
|
//(*iter).nozzle_dia = cali_info.nozzle_dia;
|
||||||
//(*iter).bed_type = cali_info.bed_type;
|
//(*iter).bed_type = cali_info.bed_type;
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,10 +32,11 @@ struct PrinterCaliInfo
|
||||||
std::string dev_id;
|
std::string dev_id;
|
||||||
CalibMode mode;
|
CalibMode mode;
|
||||||
CalibState state;
|
CalibState state;
|
||||||
std::string filament_preset;
|
//std::string filament_preset;
|
||||||
std::vector<int> tray_ids;
|
//std::vector<int> tray_ids;
|
||||||
float nozzle_dia;
|
std::map<int, std::string> filament_presets;
|
||||||
int bed_type;
|
//float nozzle_dia;
|
||||||
|
//int bed_type;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Calib_Params
|
struct Calib_Params
|
||||||
|
|
|
@ -105,7 +105,7 @@ bool FilamentComboBox::Enable(bool enable) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FilamentComboBox::SetValue(bool value) {
|
void FilamentComboBox::SetValue(bool value, bool send_event) {
|
||||||
if (m_radioBox) {
|
if (m_radioBox) {
|
||||||
if (value == m_radioBox->GetValue()) {
|
if (value == m_radioBox->GetValue()) {
|
||||||
if (m_checkBox) {
|
if (m_checkBox) {
|
||||||
|
@ -121,10 +121,12 @@ void FilamentComboBox::SetValue(bool value) {
|
||||||
m_radioBox->SetValue(value);
|
m_radioBox->SetValue(value);
|
||||||
if (m_checkBox)
|
if (m_checkBox)
|
||||||
m_checkBox->SetValue(value);
|
m_checkBox->SetValue(value);
|
||||||
SimpleEvent e(EVT_CALIBRATION_TRAY_SELECTION_CHANGED);
|
if (send_event) {
|
||||||
e.ResumePropagation(wxEVENT_PROPAGATE_MAX);
|
SimpleEvent e(EVT_CALIBRATION_TRAY_SELECTION_CHANGED);
|
||||||
e.SetEventObject(this);
|
e.ResumePropagation(wxEVENT_PROPAGATE_MAX);
|
||||||
GetEventHandler()->ProcessEvent(e);
|
e.SetEventObject(this);
|
||||||
|
GetEventHandler()->ProcessEvent(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CalibrationWizard::CalibrationWizard(wxWindow* parent, CalibMode mode, wxWindowID id, const wxPoint& pos, const wxSize& size, long style)
|
CalibrationWizard::CalibrationWizard(wxWindow* parent, CalibMode mode, wxWindowID id, const wxPoint& pos, const wxSize& size, long style)
|
||||||
|
@ -254,6 +256,7 @@ CalibrationWizardPage* CalibrationWizard::create_presets_page(bool need_custom_r
|
||||||
m_filament_list_panel = new wxPanel(m_presets_panel);
|
m_filament_list_panel = new wxPanel(m_presets_panel);
|
||||||
auto filament_list_sizer = new wxBoxSizer(wxVERTICAL);
|
auto filament_list_sizer = new wxBoxSizer(wxVERTICAL);
|
||||||
auto filament_list_tips = new wxStaticText(m_filament_list_panel, wxID_ANY, _L("Please select same type of material, because plate temperature might not be compatible with different type of material"), wxDefaultPosition, wxDefaultSize, 0);
|
auto filament_list_tips = new wxStaticText(m_filament_list_panel, wxID_ANY, _L("Please select same type of material, because plate temperature might not be compatible with different type of material"), wxDefaultPosition, wxDefaultSize, 0);
|
||||||
|
filament_list_tips->Hide();
|
||||||
filament_list_tips->SetFont(Label::Body_13);
|
filament_list_tips->SetFont(Label::Body_13);
|
||||||
filament_list_tips->SetForegroundColour(wxColour(145, 145, 145));
|
filament_list_tips->SetForegroundColour(wxColour(145, 145, 145));
|
||||||
filament_list_tips->Wrap(CALIBRATION_TEXT_MAX_LENGTH);
|
filament_list_tips->Wrap(CALIBRATION_TEXT_MAX_LENGTH);
|
||||||
|
@ -420,11 +423,6 @@ CalibrationWizardPage* CalibrationWizard::create_presets_page(bool need_custom_r
|
||||||
|
|
||||||
printing_param_sizer->AddSpacer(FromDIP(10));
|
printing_param_sizer->AddSpacer(FromDIP(10));
|
||||||
|
|
||||||
auto printing_param_text = new wxStaticText(printing_param_panel, wxID_ANY, _L("Printing Parameters"));
|
|
||||||
printing_param_text->SetFont(Label::Head_12);
|
|
||||||
printing_param_text->Wrap(CALIBRATION_TEXT_MAX_LENGTH);
|
|
||||||
printing_param_sizer->Add(printing_param_text, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(20));
|
|
||||||
|
|
||||||
auto info_sizer = new wxFlexGridSizer(0, 3, 0, FromDIP(10));
|
auto info_sizer = new wxFlexGridSizer(0, 3, 0, FromDIP(10));
|
||||||
info_sizer->SetFlexibleDirection(wxBOTH);
|
info_sizer->SetFlexibleDirection(wxBOTH);
|
||||||
info_sizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
|
info_sizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
|
||||||
|
@ -436,14 +434,20 @@ CalibrationWizardPage* CalibrationWizard::create_presets_page(bool need_custom_r
|
||||||
m_nozzle_temp->SetBorderWidth(0);
|
m_nozzle_temp->SetBorderWidth(0);
|
||||||
nozzle_temp_sizer->Add(nozzle_temp_text, 0, wxALIGN_LEFT);
|
nozzle_temp_sizer->Add(nozzle_temp_text, 0, wxALIGN_LEFT);
|
||||||
nozzle_temp_sizer->Add(m_nozzle_temp, 0, wxEXPAND);
|
nozzle_temp_sizer->Add(m_nozzle_temp, 0, wxEXPAND);
|
||||||
|
nozzle_temp_text->Hide();
|
||||||
|
m_nozzle_temp->Hide();
|
||||||
|
|
||||||
auto bed_temp_sizer = new wxBoxSizer(wxVERTICAL);
|
auto bed_temp_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
auto printing_param_text = new wxStaticText(printing_param_panel, wxID_ANY, _L("Printing Parameters"));
|
||||||
|
printing_param_text->SetFont(Label::Head_12);
|
||||||
|
printing_param_text->Wrap(CALIBRATION_TEXT_MAX_LENGTH);
|
||||||
|
bed_temp_sizer->Add(printing_param_text, 0, wxALIGN_CENTER | wxRIGHT, FromDIP(20));
|
||||||
auto bed_temp_text = new wxStaticText(printing_param_panel, wxID_ANY, _L("Bed temperature"));
|
auto bed_temp_text = new wxStaticText(printing_param_panel, wxID_ANY, _L("Bed temperature"));
|
||||||
bed_temp_text->SetFont(Label::Body_12);
|
bed_temp_text->SetFont(Label::Body_12);
|
||||||
m_bed_temp = new TextInput(printing_param_panel, wxEmptyString, _L("\u2103"), "", wxDefaultPosition, CALIBRATION_FROM_TO_INPUT_SIZE, wxTE_READONLY);
|
m_bed_temp = new TextInput(printing_param_panel, wxEmptyString, _L("\u2103"), "", wxDefaultPosition, CALIBRATION_FROM_TO_INPUT_SIZE, wxTE_READONLY);
|
||||||
m_bed_temp->SetBorderWidth(0);
|
m_bed_temp->SetBorderWidth(0);
|
||||||
bed_temp_sizer->Add(bed_temp_text, 0, wxALIGN_LEFT);
|
bed_temp_sizer->Add(bed_temp_text, 0, wxALIGN_CENTER | wxRIGHT, FromDIP(10));
|
||||||
bed_temp_sizer->Add(m_bed_temp, 0, wxEXPAND);
|
bed_temp_sizer->Add(m_bed_temp, 0, wxALIGN_CENTER);
|
||||||
|
|
||||||
auto max_flow_sizer = new wxBoxSizer(wxVERTICAL);
|
auto max_flow_sizer = new wxBoxSizer(wxVERTICAL);
|
||||||
auto max_flow_text = new wxStaticText(printing_param_panel, wxID_ANY, _L("Max volumetric speed"));
|
auto max_flow_text = new wxStaticText(printing_param_panel, wxID_ANY, _L("Max volumetric speed"));
|
||||||
|
@ -452,6 +456,8 @@ CalibrationWizardPage* CalibrationWizard::create_presets_page(bool need_custom_r
|
||||||
m_max_volumetric_speed->SetBorderWidth(0);
|
m_max_volumetric_speed->SetBorderWidth(0);
|
||||||
max_flow_sizer->Add(max_flow_text, 0, wxALIGN_LEFT);
|
max_flow_sizer->Add(max_flow_text, 0, wxALIGN_LEFT);
|
||||||
max_flow_sizer->Add(m_max_volumetric_speed, 0, wxEXPAND);
|
max_flow_sizer->Add(m_max_volumetric_speed, 0, wxEXPAND);
|
||||||
|
max_flow_text->Hide();
|
||||||
|
m_max_volumetric_speed->Hide();
|
||||||
|
|
||||||
m_nozzle_temp->GetTextCtrl()->Bind(wxEVT_SET_FOCUS, [](auto&) {});
|
m_nozzle_temp->GetTextCtrl()->Bind(wxEVT_SET_FOCUS, [](auto&) {});
|
||||||
m_bed_temp->GetTextCtrl()->Bind(wxEVT_SET_FOCUS, [](auto&) {});
|
m_bed_temp->GetTextCtrl()->Bind(wxEVT_SET_FOCUS, [](auto&) {});
|
||||||
|
@ -851,7 +857,7 @@ void CalibrationWizard::on_click_btn_prev(IntEvent& event)
|
||||||
msg_dlg.ShowModal();
|
msg_dlg.ShowModal();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
MessageDialog msg_dlg(nullptr, _L("It will restart to get the results. Do you confirm to recalibrate?"), wxEmptyString, wxICON_WARNING | wxYES | wxNO);
|
MessageDialog msg_dlg(nullptr, _L("It will restart to get the results. Do you confirm to re-calibrate?"), wxEmptyString, wxICON_WARNING | wxYES | wxNO);
|
||||||
auto answer = msg_dlg.ShowModal();
|
auto answer = msg_dlg.ShowModal();
|
||||||
if (answer == wxID_NO)
|
if (answer == wxID_NO)
|
||||||
return;
|
return;
|
||||||
|
@ -867,7 +873,6 @@ void CalibrationWizard::on_click_btn_prev(IntEvent& event)
|
||||||
|
|
||||||
init_presets_selections();
|
init_presets_selections();
|
||||||
change_ams_select_mode();
|
change_ams_select_mode();
|
||||||
wxGetApp().preset_bundle->set_calibrate_printer("");
|
|
||||||
on_update_ams_filament(false);
|
on_update_ams_filament(false);
|
||||||
on_switch_ams(m_ams_item_list[0]->m_amsinfo.ams_id);
|
on_switch_ams(m_ams_item_list[0]->m_amsinfo.ams_id);
|
||||||
for (auto fcb : m_filament_comboBox_list)
|
for (auto fcb : m_filament_comboBox_list)
|
||||||
|
@ -908,7 +913,7 @@ void CalibrationWizard::on_click_btn_next(IntEvent& event)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_printer_preset || !m_filament_preset || !m_print_preset) {
|
if (!m_printer_preset || m_filament_presets.empty() || !m_print_preset) {
|
||||||
wxString tips;
|
wxString tips;
|
||||||
if (!m_printer_preset) {
|
if (!m_printer_preset) {
|
||||||
tips = _L("Please select a printer and nozzle for calibration.");
|
tips = _L("Please select a printer and nozzle for calibration.");
|
||||||
|
@ -973,12 +978,11 @@ void CalibrationWizard::init_printer_calib_info_from_appconfig() {
|
||||||
for (int i = 0; i < infos.size(); i++) {
|
for (int i = 0; i < infos.size(); i++) {
|
||||||
if (m_printer_calib_infos.find(infos[i].dev_id) == m_printer_calib_infos.end()) {
|
if (m_printer_calib_infos.find(infos[i].dev_id) == m_printer_calib_infos.end()) {
|
||||||
m_printer_calib_infos[infos[i].dev_id].dev_id = infos[i].dev_id;
|
m_printer_calib_infos[infos[i].dev_id].dev_id = infos[i].dev_id;
|
||||||
m_printer_calib_infos[infos[i].dev_id].filament_preset = infos[i].filament_preset;
|
m_printer_calib_infos[infos[i].dev_id].filament_presets = infos[i].filament_presets;
|
||||||
m_printer_calib_infos[infos[i].dev_id].mode = infos[i].mode;
|
m_printer_calib_infos[infos[i].dev_id].mode = infos[i].mode;
|
||||||
m_printer_calib_infos[infos[i].dev_id].state = infos[i].state;
|
m_printer_calib_infos[infos[i].dev_id].state = infos[i].state;
|
||||||
//m_printer_calib_infos[infos[i].dev_id].nozzle_dia = infos[i].nozzle_dia;
|
//m_printer_calib_infos[infos[i].dev_id].nozzle_dia = infos[i].nozzle_dia;
|
||||||
//m_printer_calib_infos[infos[i].dev_id].bed_type = infos[i].bed_type;
|
//m_printer_calib_infos[infos[i].dev_id].bed_type = infos[i].bed_type;
|
||||||
m_printer_calib_infos[infos[i].dev_id].tray_ids = infos[i].tray_ids;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -987,11 +991,11 @@ void CalibrationWizard::save_to_printer_calib_info(PageType page_type) {
|
||||||
m_printer_calib_infos[curr_obj->dev_id].dev_id = curr_obj->dev_id;
|
m_printer_calib_infos[curr_obj->dev_id].dev_id = curr_obj->dev_id;
|
||||||
m_printer_calib_infos[curr_obj->dev_id].mode = m_mode;
|
m_printer_calib_infos[curr_obj->dev_id].mode = m_mode;
|
||||||
m_printer_calib_infos[curr_obj->dev_id].state = static_cast<Slic3r::CalibState>(page_type);
|
m_printer_calib_infos[curr_obj->dev_id].state = static_cast<Slic3r::CalibState>(page_type);
|
||||||
if (m_filament_preset)
|
for (auto filament_preset : m_filament_presets) {
|
||||||
m_printer_calib_infos[curr_obj->dev_id].filament_preset = m_filament_preset->name;
|
m_printer_calib_infos[curr_obj->dev_id].filament_presets[filament_preset.first] = filament_preset.second->name;
|
||||||
|
}
|
||||||
//m_printer_calib_infos[curr_obj->dev_id].nozzle_dia = stof(m_comboBox_nozzle_dia->GetValue().ToStdString());
|
//m_printer_calib_infos[curr_obj->dev_id].nozzle_dia = stof(m_comboBox_nozzle_dia->GetValue().ToStdString());
|
||||||
//m_printer_calib_infos[curr_obj->dev_id].bed_type = (int)(m_comboBox_bed_type->GetSelection() + btDefault + 1);
|
//m_printer_calib_infos[curr_obj->dev_id].bed_type = (int)(m_comboBox_bed_type->GetSelection() + btDefault + 1);
|
||||||
m_printer_calib_infos[curr_obj->dev_id].tray_ids = get_selected_tray();
|
|
||||||
wxGetApp().app_config->save_printer_cali_infos(m_printer_calib_infos[curr_obj->dev_id]);
|
wxGetApp().app_config->save_printer_cali_infos(m_printer_calib_infos[curr_obj->dev_id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1088,9 +1092,9 @@ void CalibrationWizard::update_print_progress()
|
||||||
reset_printing_values();
|
reset_printing_values();
|
||||||
#ifdef CALIBRATION_DEBUG
|
#ifdef CALIBRATION_DEBUG
|
||||||
if (m_curr_page->get_page_type() == PageType::Calibration)
|
if (m_curr_page->get_page_type() == PageType::Calibration)
|
||||||
|
#else
|
||||||
|
if (curr_obj->print_status == "FINISH" && m_curr_page->get_page_type() == PageType::Calibration)
|
||||||
#endif
|
#endif
|
||||||
// todo: the printer status is not correct
|
|
||||||
if (/*curr_obj->print_status == "FINISH" &&*/ m_curr_page->get_page_type() == PageType::Calibration)
|
|
||||||
{
|
{
|
||||||
m_button_abort->Enable(false);
|
m_button_abort->Enable(false);
|
||||||
m_button_abort->SetBitmap(m_bitmap_abort_disable.bmp());
|
m_button_abort->SetBitmap(m_bitmap_abort_disable.bmp());
|
||||||
|
@ -1198,7 +1202,8 @@ void CalibrationWizard::on_subtask_abort(wxCommandEvent& event)
|
||||||
if (msg_dlg.ShowModal() == wxID_OK) {
|
if (msg_dlg.ShowModal() == wxID_OK) {
|
||||||
if (curr_obj) curr_obj->command_task_abort();
|
if (curr_obj) curr_obj->command_task_abort();
|
||||||
m_btn_recali->Show();
|
m_btn_recali->Show();
|
||||||
Layout();
|
show_page(get_frist_page());
|
||||||
|
save_to_printer_calib_info(PageType::Start);
|
||||||
}
|
}
|
||||||
//if (abort_dlg == nullptr) {
|
//if (abort_dlg == nullptr) {
|
||||||
// abort_dlg = new SecondaryCheckDialog(this->GetParent(), wxID_ANY, _L("Cancel print"));
|
// abort_dlg = new SecondaryCheckDialog(this->GetParent(), wxID_ANY, _L("Cancel print"));
|
||||||
|
@ -1228,14 +1233,14 @@ std::vector<int> CalibrationWizard::get_selected_tray()
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (get_ams_select_mode() == FilamentSelectMode::FSMCheckBoxMode) {
|
if (get_ams_select_mode() == FilamentSelectMode::FSMCheckBoxMode) {
|
||||||
for (auto fcb : m_filament_comboBox_list) {
|
for (auto& fcb : m_filament_comboBox_list) {
|
||||||
if (fcb->GetCheckBox()->GetValue()) {
|
if (fcb->GetCheckBox()->GetValue()) {
|
||||||
tray_ids.push_back(fcb->get_tray_id());
|
tray_ids.push_back(fcb->get_tray_id());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (get_ams_select_mode() == FilamentSelectMode::FSMRadioMode) {
|
else if (get_ams_select_mode() == FilamentSelectMode::FSMRadioMode) {
|
||||||
for (auto fcb : m_filament_comboBox_list) {
|
for (auto& fcb : m_filament_comboBox_list) {
|
||||||
if (fcb->GetRadioBox()->GetValue()) {
|
if (fcb->GetRadioBox()->GetValue()) {
|
||||||
tray_ids.push_back(fcb->get_tray_id());
|
tray_ids.push_back(fcb->get_tray_id());
|
||||||
}
|
}
|
||||||
|
@ -1259,21 +1264,22 @@ void CalibrationWizard::set_selected_tray(const std::vector<int>& tray_ids)
|
||||||
m_filament_from_ext_spool = false;
|
m_filament_from_ext_spool = false;
|
||||||
for (int tray_id : tray_ids) {
|
for (int tray_id : tray_ids) {
|
||||||
if (get_ams_select_mode() == FilamentSelectMode::FSMCheckBoxMode) {
|
if (get_ams_select_mode() == FilamentSelectMode::FSMCheckBoxMode) {
|
||||||
for (auto fcb : m_filament_comboBox_list) {
|
for (auto& fcb : m_filament_comboBox_list) {
|
||||||
if (fcb->get_tray_id() == tray_id) {
|
if (fcb->get_tray_id() == tray_id) {
|
||||||
fcb->SetValue(true);
|
fcb->SetValue(true, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (get_ams_select_mode() == FilamentSelectMode::FSMRadioMode) {
|
else if (get_ams_select_mode() == FilamentSelectMode::FSMRadioMode) {
|
||||||
for (auto fcb : m_filament_comboBox_list) {
|
for (auto& fcb : m_filament_comboBox_list) {
|
||||||
if (fcb->get_tray_id() == tray_id) {
|
if (fcb->get_tray_id() == tray_id) {
|
||||||
fcb->SetValue(true);
|
fcb->SetValue(true, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
recommend_input_value();
|
||||||
}
|
}
|
||||||
|
|
||||||
FilamentComboBoxList CalibrationWizard::get_selected_filament_comboBox()
|
FilamentComboBoxList CalibrationWizard::get_selected_filament_comboBox()
|
||||||
|
@ -1286,14 +1292,14 @@ FilamentComboBoxList CalibrationWizard::get_selected_filament_comboBox()
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (get_ams_select_mode() == FilamentSelectMode::FSMCheckBoxMode) {
|
if (get_ams_select_mode() == FilamentSelectMode::FSMCheckBoxMode) {
|
||||||
for (auto fcb : m_filament_comboBox_list) {
|
for (auto& fcb : m_filament_comboBox_list) {
|
||||||
if (fcb->GetCheckBox()->GetValue()) {
|
if (fcb->GetCheckBox()->GetValue()) {
|
||||||
fcb_list.push_back(fcb);
|
fcb_list.push_back(fcb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (get_ams_select_mode() == FilamentSelectMode::FSMRadioMode) {
|
else if (get_ams_select_mode() == FilamentSelectMode::FSMRadioMode) {
|
||||||
for (auto fcb : m_filament_comboBox_list) {
|
for (auto& fcb : m_filament_comboBox_list) {
|
||||||
if (fcb->GetRadioBox()->GetValue()) {
|
if (fcb->GetRadioBox()->GetValue()) {
|
||||||
fcb_list.push_back(fcb);
|
fcb_list.push_back(fcb);
|
||||||
}
|
}
|
||||||
|
@ -1399,12 +1405,12 @@ void CalibrationWizard::update_printer() {
|
||||||
if (new_obj != curr_obj) {
|
if (new_obj != curr_obj) {
|
||||||
curr_obj = new_obj;
|
curr_obj = new_obj;
|
||||||
wxGetApp().sidebar().load_ams_list(new_obj->dev_id, new_obj);
|
wxGetApp().sidebar().load_ams_list(new_obj->dev_id, new_obj);
|
||||||
|
wxGetApp().preset_bundle->set_calibrate_printer("");
|
||||||
init_presets_selections();
|
init_presets_selections();
|
||||||
change_ams_select_mode();
|
change_ams_select_mode();
|
||||||
wxGetApp().preset_bundle->set_calibrate_printer("");
|
|
||||||
on_update_ams_filament(false);
|
on_update_ams_filament(false);
|
||||||
on_switch_ams(m_ams_item_list[0]->m_amsinfo.ams_id);
|
on_switch_ams(m_ams_item_list[0]->m_amsinfo.ams_id);
|
||||||
for (auto fcb : m_filament_comboBox_list)
|
for (auto& fcb : m_filament_comboBox_list)
|
||||||
fcb->SetValue(false);
|
fcb->SetValue(false);
|
||||||
m_virtual_tray_comboBox->SetValue(false);
|
m_virtual_tray_comboBox->SetValue(false);
|
||||||
|
|
||||||
|
@ -1417,14 +1423,19 @@ void CalibrationWizard::update_printer() {
|
||||||
if (it != m_printer_calib_infos.end() && it->second.mode == m_mode) {
|
if (it != m_printer_calib_infos.end() && it->second.mode == m_mode) {
|
||||||
PresetBundle* preset_bundle = wxGetApp().preset_bundle;
|
PresetBundle* preset_bundle = wxGetApp().preset_bundle;
|
||||||
if (preset_bundle) {
|
if (preset_bundle) {
|
||||||
for (auto filament_it = preset_bundle->filaments.begin(); filament_it != preset_bundle->filaments.end(); filament_it++) {
|
for (auto filament_preset : m_printer_calib_infos[curr_obj->dev_id].filament_presets) {
|
||||||
if (filament_it->name == m_printer_calib_infos[curr_obj->dev_id].filament_preset) {
|
for (auto filament_it = preset_bundle->filaments.begin(); filament_it != preset_bundle->filaments.end(); filament_it++) {
|
||||||
m_filament_preset = (&*filament_it);
|
if (filament_it->name == filament_preset.second) {
|
||||||
|
m_filament_presets[filament_preset.first] = (&*filament_it);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
set_selected_tray(it->second.tray_ids);
|
std::vector<int> tray_ids;
|
||||||
|
for (auto filament_preset : it->second.filament_presets) {
|
||||||
|
tray_ids.push_back(filament_preset.first);
|
||||||
|
}
|
||||||
|
set_selected_tray(tray_ids);
|
||||||
jump_to_page(static_cast<PageType>(m_printer_calib_infos[curr_obj->dev_id].state));
|
jump_to_page(static_cast<PageType>(m_printer_calib_infos[curr_obj->dev_id].state));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -1502,40 +1513,62 @@ void CalibrationWizard::on_switch_ams(std::string ams_id)
|
||||||
Layout();
|
Layout();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static std::map<std::string, bool> filament_is_high_temp{
|
||||||
|
{"PLA", false},
|
||||||
|
{"PLA-CF", false},
|
||||||
|
//{"PETG", true},
|
||||||
|
{"ABS", true},
|
||||||
|
{"TPU", false},
|
||||||
|
{"PA", true},
|
||||||
|
{"PA-CF", true},
|
||||||
|
{"PET-CF", true},
|
||||||
|
{"PC", true},
|
||||||
|
{"ASA", true},
|
||||||
|
{"HIPS", true}
|
||||||
|
};
|
||||||
|
|
||||||
void CalibrationWizard::on_select_tray(SimpleEvent& evt) {
|
void CalibrationWizard::on_select_tray(SimpleEvent& evt) {
|
||||||
// when set selection of comboBox or select a checkbox/radio will enter
|
// when set selection of comboBox or select a checkbox/radio will enter
|
||||||
|
|
||||||
FilamentComboBoxList fcb_list = get_selected_filament_comboBox();
|
FilamentComboBoxList fcb_list = get_selected_filament_comboBox();
|
||||||
if (fcb_list.empty()) {
|
if (fcb_list.empty()) {
|
||||||
m_filament_preset = nullptr;
|
m_filament_presets.clear();
|
||||||
m_filaments_incompatible_tips->SetLabel("");
|
m_filaments_incompatible_tips->SetLabel("");
|
||||||
m_filaments_incompatible_tips->Hide();
|
m_filaments_incompatible_tips->Hide();
|
||||||
recommend_input_value();
|
recommend_input_value();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// check compatibility
|
||||||
auto first_preset = fcb_list[0]->GetComboBox()->get_selected_preset();
|
bool has_high_temperature_filament = false;
|
||||||
if(!first_preset) {
|
bool has_low_temperature_filament = false;
|
||||||
m_filament_preset = nullptr;
|
wxString hight_temp_filament_type;
|
||||||
recommend_input_value();
|
wxString low_temp_filament_type;
|
||||||
return;
|
for (auto& fcb : fcb_list) {
|
||||||
|
wxString filament_type = fcb->GetComboBox()->get_selected_preset()->alias;
|
||||||
|
for (auto& item : filament_is_high_temp) {
|
||||||
|
if (filament_type.Contains(item.first)) {
|
||||||
|
if (item.second == true) {
|
||||||
|
has_high_temperature_filament = true;
|
||||||
|
hight_temp_filament_type = item.first;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
has_low_temperature_filament = true;
|
||||||
|
low_temp_filament_type = item.first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if (has_high_temperature_filament && has_low_temperature_filament) {
|
||||||
bool all_preset_same = true;
|
m_filament_presets.clear();
|
||||||
for (auto fcb : fcb_list) {
|
wxString tips = wxString::Format(_L("Unable to print %s and %s together. Filaments have large bed temperature difference"), hight_temp_filament_type, low_temp_filament_type);
|
||||||
auto selected_preset = fcb->GetComboBox()->get_selected_preset();
|
|
||||||
if (selected_preset && selected_preset->filament_id != first_preset->filament_id)
|
|
||||||
all_preset_same = false;
|
|
||||||
}
|
|
||||||
if (!all_preset_same) {
|
|
||||||
m_filament_preset = nullptr;
|
|
||||||
wxString tips = wxString(_L("filaments incompatible, please select same type of material"));
|
|
||||||
m_filaments_incompatible_tips->SetLabel(tips);
|
m_filaments_incompatible_tips->SetLabel(tips);
|
||||||
m_filaments_incompatible_tips->Show();
|
m_filaments_incompatible_tips->Show();
|
||||||
Layout();
|
Layout();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
m_filament_preset = const_cast<Preset*>(first_preset);
|
for (auto& fcb : fcb_list) {
|
||||||
|
m_filament_presets[fcb->get_tray_id()] = (const_cast<Preset*>(fcb->GetComboBox()->get_selected_preset()));
|
||||||
|
}
|
||||||
m_filaments_incompatible_tips->SetLabel("");
|
m_filaments_incompatible_tips->SetLabel("");
|
||||||
m_filaments_incompatible_tips->Hide();
|
m_filaments_incompatible_tips->Hide();
|
||||||
Layout();
|
Layout();
|
||||||
|
@ -1618,7 +1651,7 @@ void CalibrationWizard::on_update_ams_filament(bool dialog)
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CalibrationWizard::recommend_input_value() {
|
bool CalibrationWizard::recommend_input_value() {
|
||||||
if (!m_filament_preset){
|
if (m_filament_presets.empty()) {
|
||||||
m_nozzle_temp->GetTextCtrl()->SetValue(wxEmptyString);
|
m_nozzle_temp->GetTextCtrl()->SetValue(wxEmptyString);
|
||||||
m_bed_temp->GetTextCtrl()->SetValue(wxEmptyString);
|
m_bed_temp->GetTextCtrl()->SetValue(wxEmptyString);
|
||||||
m_max_volumetric_speed->GetTextCtrl()->SetValue(wxEmptyString);
|
m_max_volumetric_speed->GetTextCtrl()->SetValue(wxEmptyString);
|
||||||
|
@ -1627,50 +1660,53 @@ bool CalibrationWizard::recommend_input_value() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
PresetBundle* preset_bundle = wxGetApp().preset_bundle;
|
|
||||||
int bed_temp_int = -1;
|
int bed_temp_int = -1;
|
||||||
|
bool bed_temp_compatible = true;
|
||||||
|
PresetBundle* preset_bundle = wxGetApp().preset_bundle;
|
||||||
if (preset_bundle) {
|
if (preset_bundle) {
|
||||||
// update nozzle temperature
|
for (auto& filament_preset : m_filament_presets) {
|
||||||
ConfigOption* opt_nozzle_temp = m_filament_preset->config.option("nozzle_temperature");
|
// update nozzle temperature
|
||||||
if (opt_nozzle_temp) {
|
ConfigOption* opt_nozzle_temp = filament_preset.second->config.option("nozzle_temperature");
|
||||||
ConfigOptionInts* opt_min_ints = dynamic_cast<ConfigOptionInts*>(opt_nozzle_temp);
|
if (opt_nozzle_temp) {
|
||||||
if (opt_min_ints) {
|
ConfigOptionInts* opt_min_ints = dynamic_cast<ConfigOptionInts*>(opt_nozzle_temp);
|
||||||
wxString text_nozzle_temp = wxString::Format("%d", opt_min_ints->get_at(0));
|
if (opt_min_ints) {
|
||||||
m_nozzle_temp->GetTextCtrl()->SetValue(text_nozzle_temp);
|
wxString text_nozzle_temp = wxString::Format("%d", opt_min_ints->get_at(0));
|
||||||
|
m_nozzle_temp->GetTextCtrl()->SetValue(text_nozzle_temp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
// update bed temperature
|
||||||
// update bed temperature
|
bed_temp_int = get_bed_temp(&filament_preset.second->config);
|
||||||
bed_temp_int = get_bed_temp(&m_filament_preset->config);
|
wxString bed_temp_text = wxString::Format("%d", bed_temp_int);
|
||||||
wxString bed_temp_text = wxString::Format("%d", bed_temp_int);
|
m_bed_temp->GetTextCtrl()->SetValue(bed_temp_text);
|
||||||
m_bed_temp->GetTextCtrl()->SetValue(bed_temp_text);
|
// update max flow speed
|
||||||
// update max flow speed
|
ConfigOption* opt_flow_speed = filament_preset.second->config.option("filament_max_volumetric_speed");
|
||||||
ConfigOption* opt_flow_speed = m_filament_preset->config.option("filament_max_volumetric_speed");
|
if (opt_flow_speed) {
|
||||||
if (opt_flow_speed) {
|
ConfigOptionFloats* opt_flow_floats = dynamic_cast<ConfigOptionFloats*>(opt_flow_speed);
|
||||||
ConfigOptionFloats* opt_flow_floats = dynamic_cast<ConfigOptionFloats*>(opt_flow_speed);
|
if (opt_flow_floats) {
|
||||||
if (opt_flow_floats) {
|
wxString flow_val_text = wxString::Format("%0.2f", opt_flow_floats->get_at(0));
|
||||||
wxString flow_val_text = wxString::Format("%0.2f", opt_flow_floats->get_at(0));
|
m_max_volumetric_speed->GetTextCtrl()->SetValue(flow_val_text);
|
||||||
m_max_volumetric_speed->GetTextCtrl()->SetValue(flow_val_text);
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// check compatibility
|
// check compatibility
|
||||||
if (m_bed_temp->GetTextCtrl()->GetValue().compare("0") == 0) {
|
if (m_bed_temp->GetTextCtrl()->GetValue().compare("0") <= 0) {
|
||||||
m_nozzle_temp->GetTextCtrl()->SetValue(wxEmptyString);
|
m_nozzle_temp->GetTextCtrl()->SetValue(wxEmptyString);
|
||||||
m_bed_temp->GetTextCtrl()->SetValue(wxEmptyString);
|
m_bed_temp->GetTextCtrl()->SetValue(wxEmptyString);
|
||||||
m_max_volumetric_speed->GetTextCtrl()->SetValue(wxEmptyString);
|
m_max_volumetric_speed->GetTextCtrl()->SetValue(wxEmptyString);
|
||||||
wxString tips = wxString::Format(_L("%s does not support %s"), m_comboBox_bed_type->GetValue(), m_filament_preset->alias);
|
wxString tips = wxString::Format(_L("%s is not compatible with %s"), m_comboBox_bed_type->GetValue(), filament_preset.second->alias);
|
||||||
m_bed_type_incompatible_tips->SetLabel(tips);
|
m_bed_type_incompatible_tips->SetLabel(tips);
|
||||||
m_bed_type_incompatible_tips->Update();
|
m_bed_type_incompatible_tips->Update();
|
||||||
m_bed_type_incompatible_tips->Show();
|
m_bed_type_incompatible_tips->Show();
|
||||||
Layout();
|
Layout();
|
||||||
return false;
|
bed_temp_compatible = false;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
m_bed_type_incompatible_tips->SetLabel("");
|
m_bed_type_incompatible_tips->SetLabel("");
|
||||||
m_bed_type_incompatible_tips->Hide();
|
m_bed_type_incompatible_tips->Hide();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return bed_temp_compatible;
|
||||||
}
|
}
|
||||||
|
|
||||||
int CalibrationWizard::get_bed_temp(DynamicPrintConfig* config)
|
int CalibrationWizard::get_bed_temp(DynamicPrintConfig* config)
|
||||||
|
@ -1683,16 +1719,16 @@ int CalibrationWizard::get_bed_temp(DynamicPrintConfig* config)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CalibrationWizard::save_presets(const std::string& config_key, ConfigOption* config_value, const std::string& name)
|
bool CalibrationWizard::save_presets(Preset* preset, const std::string& config_key, ConfigOption* config_value, const std::string& name)
|
||||||
{
|
{
|
||||||
auto filament_presets = &wxGetApp().preset_bundle->filaments;
|
auto filament_presets = &wxGetApp().preset_bundle->filaments;
|
||||||
DynamicPrintConfig* filament_config = &m_filament_preset->config;
|
DynamicPrintConfig* filament_config = &preset->config;
|
||||||
|
|
||||||
bool save_to_project = false;
|
bool save_to_project = false;
|
||||||
|
|
||||||
filament_config->set_key_value(config_key, config_value);
|
filament_config->set_key_value(config_key, config_value);
|
||||||
// Save the preset into Slic3r::data_dir / presets / section_name / preset_name.ini
|
// Save the preset into Slic3r::data_dir / presets / section_name / preset_name.ini
|
||||||
filament_presets->save_current_preset(name, false, save_to_project, m_filament_preset);
|
filament_presets->save_current_preset(name, false, save_to_project, preset);
|
||||||
|
|
||||||
Preset* new_preset = filament_presets->find_preset(name, false, true);
|
Preset* new_preset = filament_presets->find_preset(name, false, true);
|
||||||
if (!new_preset) {
|
if (!new_preset) {
|
||||||
|
@ -2088,7 +2124,7 @@ void PressureAdvanceWizard::sync_save_page_data() {
|
||||||
grid_sizer->Add(left_title_sizer);
|
grid_sizer->Add(left_title_sizer);
|
||||||
grid_sizer->AddSpacer(COLUMN_GAP);
|
grid_sizer->AddSpacer(COLUMN_GAP);
|
||||||
|
|
||||||
for (auto fcb : fcb_list) {
|
for (auto& fcb : fcb_list) {
|
||||||
bool result_failed = false;
|
bool result_failed = false;
|
||||||
auto it_result = std::find_if(m_calib_results.begin(), m_calib_results.end(), [fcb](auto& calib_result) {
|
auto it_result = std::find_if(m_calib_results.begin(), m_calib_results.end(), [fcb](auto& calib_result) {
|
||||||
return calib_result.tray_id == fcb->get_tray_id();
|
return calib_result.tray_id == fcb->get_tray_id();
|
||||||
|
@ -2135,7 +2171,7 @@ void PressureAdvanceWizard::sync_save_page_data() {
|
||||||
static std::vector<PACalibResult> filtered_results;
|
static std::vector<PACalibResult> filtered_results;
|
||||||
filtered_results.clear();
|
filtered_results.clear();
|
||||||
for (auto history : m_calib_results_history) {
|
for (auto history : m_calib_results_history) {
|
||||||
if (history.setting_id == m_filament_preset->setting_id) {
|
if (history.setting_id == m_filament_presets[fcb->get_tray_id()]->setting_id) {
|
||||||
filtered_results.push_back(history);
|
filtered_results.push_back(history);
|
||||||
selections.push_back(history.name);
|
selections.push_back(history.name);
|
||||||
}
|
}
|
||||||
|
@ -2261,6 +2297,10 @@ bool PressureAdvanceWizard::start_calibration(std::vector<int> tray_ids)
|
||||||
int bed_temp = -1;
|
int bed_temp = -1;
|
||||||
float max_volumetric_speed = -1;
|
float max_volumetric_speed = -1;
|
||||||
|
|
||||||
|
if (m_nozzle_temp->GetTextCtrl()->GetValue().IsEmpty() ||
|
||||||
|
m_bed_temp->GetTextCtrl()->GetValue().IsEmpty() ||
|
||||||
|
m_max_volumetric_speed->GetTextCtrl()->GetValue().IsEmpty())
|
||||||
|
return false;
|
||||||
nozzle_temp = stoi(m_nozzle_temp->GetTextCtrl()->GetValue().ToStdString());
|
nozzle_temp = stoi(m_nozzle_temp->GetTextCtrl()->GetValue().ToStdString());
|
||||||
bed_temp = stoi(m_bed_temp->GetTextCtrl()->GetValue().ToStdString());
|
bed_temp = stoi(m_bed_temp->GetTextCtrl()->GetValue().ToStdString());
|
||||||
max_volumetric_speed = stof(m_max_volumetric_speed->GetTextCtrl()->GetValue().ToStdString());
|
max_volumetric_speed = stof(m_max_volumetric_speed->GetTextCtrl()->GetValue().ToStdString());
|
||||||
|
@ -2275,11 +2315,13 @@ bool PressureAdvanceWizard::start_calibration(std::vector<int> tray_ids)
|
||||||
m_calib_results.clear();
|
m_calib_results.clear();
|
||||||
X1CCalibInfos calib_infos;
|
X1CCalibInfos calib_infos;
|
||||||
for (int tray_id : tray_ids) {
|
for (int tray_id : tray_ids) {
|
||||||
|
if (m_filament_presets.find(tray_id) == m_filament_presets.end())
|
||||||
|
return false;
|
||||||
X1CCalibInfos::X1CCalibInfo calib_info;
|
X1CCalibInfos::X1CCalibInfo calib_info;
|
||||||
calib_info.tray_id = tray_id;
|
calib_info.tray_id = tray_id;
|
||||||
calib_info.nozzle_diameter = dynamic_cast<ConfigOptionFloats *>(m_printer_preset->config.option("nozzle_diameter"))->get_at(0);
|
calib_info.nozzle_diameter = dynamic_cast<ConfigOptionFloats *>(m_printer_preset->config.option("nozzle_diameter"))->get_at(0);
|
||||||
calib_info.filament_id = m_filament_preset->filament_id;
|
calib_info.filament_id = m_filament_presets[tray_id]->filament_id;
|
||||||
calib_info.setting_id = m_filament_preset->setting_id;
|
calib_info.setting_id = m_filament_presets[tray_id]->setting_id;
|
||||||
calib_info.bed_temp = bed_temp;
|
calib_info.bed_temp = bed_temp;
|
||||||
calib_info.nozzle_temp = nozzle_temp;
|
calib_info.nozzle_temp = nozzle_temp;
|
||||||
calib_info.max_volumetric_speed = max_volumetric_speed;
|
calib_info.max_volumetric_speed = max_volumetric_speed;
|
||||||
|
@ -2297,7 +2339,7 @@ bool PressureAdvanceWizard::start_calibration(std::vector<int> tray_ids)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
curr_obj->command_start_extrusion_cali(tray_ids[0], nozzle_temp, bed_temp, max_volumetric_speed, m_filament_preset->setting_id);
|
curr_obj->command_start_extrusion_cali(tray_ids[0], nozzle_temp, bed_temp, max_volumetric_speed, m_filament_presets.begin()->second->setting_id);
|
||||||
show_page(get_curr_page()->get_next_page());
|
show_page(get_curr_page()->get_next_page());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -2381,8 +2423,8 @@ bool PressureAdvanceWizard::save_calibration_result()
|
||||||
nozzle_temp = stoi(m_nozzle_temp->GetTextCtrl()->GetValue().ToStdString());
|
nozzle_temp = stoi(m_nozzle_temp->GetTextCtrl()->GetValue().ToStdString());
|
||||||
bed_temp = stoi(m_bed_temp->GetTextCtrl()->GetValue().ToStdString());
|
bed_temp = stoi(m_bed_temp->GetTextCtrl()->GetValue().ToStdString());
|
||||||
max_volumetric_speed = stof(m_max_volumetric_speed->GetTextCtrl()->GetValue().ToStdString());
|
max_volumetric_speed = stof(m_max_volumetric_speed->GetTextCtrl()->GetValue().ToStdString());
|
||||||
setting_id = m_filament_preset->setting_id;
|
setting_id = m_filament_presets.begin()->second->setting_id;
|
||||||
name = m_filament_preset->name;
|
name = m_filament_presets.begin()->second->name;
|
||||||
|
|
||||||
// send command
|
// send command
|
||||||
std::vector<int> tray_ids = get_selected_tray();
|
std::vector<int> tray_ids = get_selected_tray();
|
||||||
|
@ -2467,8 +2509,8 @@ FlowRateWizard::FlowRateWizard(wxWindow* parent, wxWindowID id, const wxPoint& p
|
||||||
}
|
}
|
||||||
|
|
||||||
void FlowRateWizard::set_save_name() {
|
void FlowRateWizard::set_save_name() {
|
||||||
if (m_filament_preset) {
|
if (m_filament_presets.size() > 0) {
|
||||||
m_save_name = m_filament_preset->alias + "-Calibrated";
|
m_save_name = m_filament_presets.begin()->second->alias + "-Calibrated";
|
||||||
}
|
}
|
||||||
else { m_save_name = ""; }
|
else { m_save_name = ""; }
|
||||||
if (!is_high_end_type(curr_obj)) {
|
if (!is_high_end_type(curr_obj)) {
|
||||||
|
@ -2656,16 +2698,16 @@ void FlowRateWizard::create_low_end_pages() {
|
||||||
show_page(m_curr_page);
|
show_page(m_curr_page);
|
||||||
|
|
||||||
m_optimal_block_coarse->Bind(wxEVT_COMBOBOX, [this](auto& e) {
|
m_optimal_block_coarse->Bind(wxEVT_COMBOBOX, [this](auto& e) {
|
||||||
if (m_filament_preset) {
|
if (m_filament_presets.begin()->second) {
|
||||||
DynamicPrintConfig& filament_config = m_filament_preset->config;
|
DynamicPrintConfig& filament_config = m_filament_presets.begin()->second->config;
|
||||||
auto curr_flow_ratio = filament_config.option<ConfigOptionFloats>("filament_flow_ratio")->get_at(0);
|
auto curr_flow_ratio = filament_config.option<ConfigOptionFloats>("filament_flow_ratio")->get_at(0);
|
||||||
m_coarse_calc_result = curr_flow_ratio * (100.0f + stof(m_optimal_block_coarse->GetValue().ToStdString())) / 100.0f;
|
m_coarse_calc_result = curr_flow_ratio * (100.0f + stof(m_optimal_block_coarse->GetValue().ToStdString())) / 100.0f;
|
||||||
m_coarse_calc_result_text->SetLabel(wxString::Format(_L("flow ratio : %s "), std::to_string(m_coarse_calc_result)));
|
m_coarse_calc_result_text->SetLabel(wxString::Format(_L("flow ratio : %s "), std::to_string(m_coarse_calc_result)));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
m_optimal_block_fine->Bind(wxEVT_COMBOBOX, [this](auto& e) {
|
m_optimal_block_fine->Bind(wxEVT_COMBOBOX, [this](auto& e) {
|
||||||
if (m_filament_preset) {
|
if (m_filament_presets.begin()->second) {
|
||||||
DynamicPrintConfig& filament_config = m_filament_preset->config;
|
DynamicPrintConfig& filament_config = m_filament_presets.begin()->second->config;
|
||||||
auto curr_flow_ratio = filament_config.option<ConfigOptionFloats>("filament_flow_ratio")->get_at(0);
|
auto curr_flow_ratio = filament_config.option<ConfigOptionFloats>("filament_flow_ratio")->get_at(0);
|
||||||
m_fine_calc_result = curr_flow_ratio * (100.0f + stof(m_optimal_block_fine->GetValue().ToStdString())) / 100.0f;
|
m_fine_calc_result = curr_flow_ratio * (100.0f + stof(m_optimal_block_fine->GetValue().ToStdString())) / 100.0f;
|
||||||
m_fine_calc_result_text->SetLabel(wxString::Format(_L("flow ratio : %s "), std::to_string(m_fine_calc_result)));
|
m_fine_calc_result_text->SetLabel(wxString::Format(_L("flow ratio : %s "), std::to_string(m_fine_calc_result)));
|
||||||
|
@ -2874,7 +2916,7 @@ void FlowRateWizard::sync_save_page_data() {
|
||||||
grid_sizer->AddSpacer(COLUMN_GAP);
|
grid_sizer->AddSpacer(COLUMN_GAP);
|
||||||
|
|
||||||
FilamentComboBoxList fcb_list = get_selected_filament_comboBox();
|
FilamentComboBoxList fcb_list = get_selected_filament_comboBox();
|
||||||
for (auto fcb : fcb_list) {
|
for (auto& fcb : fcb_list) {
|
||||||
bool result_failed = false;
|
bool result_failed = false;
|
||||||
auto it_result = std::find_if(m_calib_results.begin(), m_calib_results.end(), [fcb](auto& calib_result) {
|
auto it_result = std::find_if(m_calib_results.begin(), m_calib_results.end(), [fcb](auto& calib_result) {
|
||||||
return calib_result.tray_id == fcb->get_tray_id();
|
return calib_result.tray_id == fcb->get_tray_id();
|
||||||
|
@ -2909,7 +2951,7 @@ void FlowRateWizard::sync_save_page_data() {
|
||||||
save_name_input->GetTextCtrl()->Bind(wxEVT_TEXT_ENTER, [this, fcb, save_name_input](auto& e) {
|
save_name_input->GetTextCtrl()->Bind(wxEVT_TEXT_ENTER, [this, fcb, save_name_input](auto& e) {
|
||||||
m_high_end_save_names[fcb->get_tray_id()] = save_name_input->GetTextCtrl()->GetValue().ToStdString();
|
m_high_end_save_names[fcb->get_tray_id()] = save_name_input->GetTextCtrl()->GetValue().ToStdString();
|
||||||
e.Skip();
|
e.Skip();
|
||||||
});
|
});
|
||||||
save_name_input->GetTextCtrl()->Bind(wxEVT_KILL_FOCUS, [this, fcb, save_name_input](auto& e) {
|
save_name_input->GetTextCtrl()->Bind(wxEVT_KILL_FOCUS, [this, fcb, save_name_input](auto& e) {
|
||||||
m_high_end_save_names[fcb->get_tray_id()] = save_name_input->GetTextCtrl()->GetValue().ToStdString();
|
m_high_end_save_names[fcb->get_tray_id()] = save_name_input->GetTextCtrl()->GetValue().ToStdString();
|
||||||
});
|
});
|
||||||
|
@ -2995,6 +3037,10 @@ bool FlowRateWizard::start_calibration(std::vector<int> tray_ids)
|
||||||
int bed_temp = -1;
|
int bed_temp = -1;
|
||||||
float max_volumetric_speed = -1;
|
float max_volumetric_speed = -1;
|
||||||
|
|
||||||
|
if (m_nozzle_temp->GetTextCtrl()->GetValue().IsEmpty() ||
|
||||||
|
m_bed_temp->GetTextCtrl()->GetValue().IsEmpty() ||
|
||||||
|
m_max_volumetric_speed->GetTextCtrl()->GetValue().IsEmpty())
|
||||||
|
return false;
|
||||||
nozzle_temp = stoi(m_nozzle_temp->GetTextCtrl()->GetValue().ToStdString());
|
nozzle_temp = stoi(m_nozzle_temp->GetTextCtrl()->GetValue().ToStdString());
|
||||||
bed_temp = stoi(m_bed_temp->GetTextCtrl()->GetValue().ToStdString());
|
bed_temp = stoi(m_bed_temp->GetTextCtrl()->GetValue().ToStdString());
|
||||||
max_volumetric_speed = stof(m_max_volumetric_speed->GetTextCtrl()->GetValue().ToStdString());
|
max_volumetric_speed = stof(m_max_volumetric_speed->GetTextCtrl()->GetValue().ToStdString());
|
||||||
|
@ -3009,15 +3055,17 @@ bool FlowRateWizard::start_calibration(std::vector<int> tray_ids)
|
||||||
m_calib_results.clear();
|
m_calib_results.clear();
|
||||||
X1CCalibInfos calib_infos;
|
X1CCalibInfos calib_infos;
|
||||||
for (int tray_id : tray_ids) {
|
for (int tray_id : tray_ids) {
|
||||||
|
if (m_filament_presets.find(tray_id) == m_filament_presets.end())
|
||||||
|
return false;
|
||||||
X1CCalibInfos::X1CCalibInfo calib_info;
|
X1CCalibInfos::X1CCalibInfo calib_info;
|
||||||
calib_info.tray_id = tray_id;
|
calib_info.tray_id = tray_id;
|
||||||
calib_info.nozzle_diameter = dynamic_cast<ConfigOptionFloats *>(m_printer_preset->config.option("nozzle_diameter"))->get_at(0);
|
calib_info.nozzle_diameter = dynamic_cast<ConfigOptionFloats *>(m_printer_preset->config.option("nozzle_diameter"))->get_at(0);
|
||||||
calib_info.filament_id = m_filament_preset->filament_id;
|
calib_info.filament_id = m_filament_presets.at(tray_id)->filament_id;
|
||||||
calib_info.setting_id = m_filament_preset->setting_id;
|
calib_info.setting_id = m_filament_presets.at(tray_id)->setting_id;
|
||||||
calib_info.bed_temp = bed_temp;
|
calib_info.bed_temp = bed_temp;
|
||||||
calib_info.nozzle_temp = nozzle_temp;
|
calib_info.nozzle_temp = nozzle_temp;
|
||||||
calib_info.max_volumetric_speed = max_volumetric_speed;
|
calib_info.max_volumetric_speed = max_volumetric_speed;
|
||||||
calib_info.flow_rate = m_filament_preset->config.option<ConfigOptionFloats>("filament_flow_ratio")->get_at(0);
|
calib_info.flow_rate = m_filament_presets.at(tray_id)->config.option<ConfigOptionFloats>("filament_flow_ratio")->get_at(0);
|
||||||
calib_infos.calib_datas.push_back(calib_info);
|
calib_infos.calib_datas.push_back(calib_info);
|
||||||
}
|
}
|
||||||
std::string error_message;
|
std::string error_message;
|
||||||
|
@ -3052,7 +3100,7 @@ bool FlowRateWizard::start_calibration(std::vector<int> tray_ids)
|
||||||
calib_info.process_bar = m_send_progress_bar;
|
calib_info.process_bar = m_send_progress_bar;
|
||||||
calib_info.bed_type = BedType(m_comboBox_bed_type->GetSelection() + btDefault + 1);
|
calib_info.bed_type = BedType(m_comboBox_bed_type->GetSelection() + btDefault + 1);
|
||||||
calib_info.printer_prest = m_printer_preset;
|
calib_info.printer_prest = m_printer_preset;
|
||||||
calib_info.filament_prest = m_filament_preset;
|
calib_info.filament_prest = m_filament_presets.begin()->second;
|
||||||
calib_info.print_prest = m_print_preset;
|
calib_info.print_prest = m_print_preset;
|
||||||
|
|
||||||
std::string error_message;
|
std::string error_message;
|
||||||
|
@ -3074,12 +3122,12 @@ bool FlowRateWizard::start_calibration(std::vector<int> tray_ids)
|
||||||
bool FlowRateWizard::save_calibration_result()
|
bool FlowRateWizard::save_calibration_result()
|
||||||
{
|
{
|
||||||
if (is_high_end_type(curr_obj)) {
|
if (is_high_end_type(curr_obj)) {
|
||||||
DynamicPrintConfig& filament_config = m_filament_preset->config;
|
|
||||||
for (int i = 0; i < m_calib_results.size(); i++) {
|
for (int i = 0; i < m_calib_results.size(); i++) {
|
||||||
|
DynamicPrintConfig& filament_config = m_filament_presets[m_calib_results[i].tray_id]->config; //todo access overflow
|
||||||
// todo if names are same, will be covered
|
// todo if names are same, will be covered
|
||||||
auto it = m_high_end_save_names.find(m_calib_results[i].tray_id);
|
auto it = m_high_end_save_names.find(m_calib_results[i].tray_id);
|
||||||
if (it != m_high_end_save_names.end() && !it->second.empty()) {
|
if (it != m_high_end_save_names.end() && !it->second.empty()) {
|
||||||
save_presets("filament_flow_ratio", new ConfigOptionFloats{ m_calib_results[i].flow_ratio }, it->second);
|
save_presets(m_filament_presets.at(m_calib_results[i].tray_id), "filament_flow_ratio", new ConfigOptionFloats{ m_calib_results[i].flow_ratio }, it->second);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3115,8 +3163,7 @@ bool FlowRateWizard::save_calibration_result()
|
||||||
msg_dlg.ShowModal();
|
msg_dlg.ShowModal();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
DynamicPrintConfig& filament_config = m_filament_preset->config;
|
save_presets(m_filament_presets.begin()->second, "filament_flow_ratio", new ConfigOptionFloats{ result_value }, m_save_name);
|
||||||
save_presets("filament_flow_ratio", new ConfigOptionFloats{ result_value }, m_save_name);
|
|
||||||
reset_reuse_panels();
|
reset_reuse_panels();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -3144,6 +3191,7 @@ void FlowRateWizard::reset_print_panel_to_page(CalibrationWizardPage* page, wxBo
|
||||||
void FlowRateWizard::reset_send_progress_to_page(CalibrationWizardPage* page, wxBoxSizer* sizer)
|
void FlowRateWizard::reset_send_progress_to_page(CalibrationWizardPage* page, wxBoxSizer* sizer)
|
||||||
{
|
{
|
||||||
m_send_progress_panel->Reparent(page);
|
m_send_progress_panel->Reparent(page);
|
||||||
|
sizer->Insert(1, m_send_progress_panel, 0, wxALIGN_CENTER, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FlowRateWizard::on_fine_tune(wxCommandEvent& e) {
|
void FlowRateWizard::on_fine_tune(wxCommandEvent& e) {
|
||||||
|
@ -3153,7 +3201,7 @@ void FlowRateWizard::on_fine_tune(wxCommandEvent& e) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
DynamicPrintConfig& filament_config = m_filament_preset->config;
|
DynamicPrintConfig& filament_config = m_filament_presets.begin()->second->config;
|
||||||
filament_config.set_key_value("filament_flow_ratio", new ConfigOptionFloats{ m_coarse_calc_result });
|
filament_config.set_key_value("filament_flow_ratio", new ConfigOptionFloats{ m_coarse_calc_result });
|
||||||
|
|
||||||
reset_send_progress_to_page(m_low_end_page3, m_low_end_page3->get_btn_hsizer());
|
reset_send_progress_to_page(m_low_end_page3, m_low_end_page3->get_btn_hsizer());
|
||||||
|
@ -3187,8 +3235,8 @@ MaxVolumetricSpeedWizard::MaxVolumetricSpeedWizard(wxWindow* parent, wxWindowID
|
||||||
}
|
}
|
||||||
|
|
||||||
void MaxVolumetricSpeedWizard::set_save_name() {
|
void MaxVolumetricSpeedWizard::set_save_name() {
|
||||||
if (m_filament_preset) {
|
if (m_filament_presets.begin()->second) {
|
||||||
m_save_name = m_filament_preset->alias + "-Calibrated";
|
m_save_name = m_filament_presets.begin()->second->alias + "-Calibrated";
|
||||||
}
|
}
|
||||||
else { m_save_name = ""; }
|
else { m_save_name = ""; }
|
||||||
m_save_name_input->GetTextCtrl()->SetValue(m_save_name);
|
m_save_name_input->GetTextCtrl()->SetValue(m_save_name);
|
||||||
|
@ -3369,7 +3417,7 @@ bool MaxVolumetricSpeedWizard::start_calibration(std::vector<int> tray_ids)
|
||||||
calib_info.process_bar = m_send_progress_bar;
|
calib_info.process_bar = m_send_progress_bar;
|
||||||
calib_info.bed_type = BedType(m_comboBox_bed_type->GetSelection() + btDefault + 1);
|
calib_info.bed_type = BedType(m_comboBox_bed_type->GetSelection() + btDefault + 1);
|
||||||
calib_info.printer_prest = m_printer_preset;
|
calib_info.printer_prest = m_printer_preset;
|
||||||
calib_info.filament_prest = m_filament_preset;
|
calib_info.filament_prest = m_filament_presets.begin()->second;
|
||||||
calib_info.print_prest = m_print_preset;
|
calib_info.print_prest = m_print_preset;
|
||||||
|
|
||||||
std::string error_message;
|
std::string error_message;
|
||||||
|
@ -3398,7 +3446,7 @@ bool MaxVolumetricSpeedWizard::save_calibration_result()
|
||||||
msg_dlg.ShowModal();
|
msg_dlg.ShowModal();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
save_presets("filament_max_volumetric_speed", new ConfigOptionFloats{ max_volumetric_speed }, m_save_name);
|
save_presets(m_filament_presets.begin()->second, "filament_max_volumetric_speed", new ConfigOptionFloats{ max_volumetric_speed }, m_save_name);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3431,8 +3479,8 @@ TemperatureWizard::TemperatureWizard(wxWindow* parent, wxWindowID id, const wxPo
|
||||||
}
|
}
|
||||||
|
|
||||||
void TemperatureWizard::set_save_name() {
|
void TemperatureWizard::set_save_name() {
|
||||||
if (m_filament_preset) {
|
if (m_filament_presets.begin()->second) {
|
||||||
m_save_name = m_filament_preset->alias + "-Calibrated";
|
m_save_name = m_filament_presets.begin()->second->alias + "-Calibrated";
|
||||||
}
|
}
|
||||||
else { m_save_name = ""; }
|
else { m_save_name = ""; }
|
||||||
m_save_name_input->GetTextCtrl()->SetValue(m_save_name);
|
m_save_name_input->GetTextCtrl()->SetValue(m_save_name);
|
||||||
|
@ -3603,7 +3651,7 @@ bool TemperatureWizard::start_calibration(std::vector<int> tray_ids)
|
||||||
calib_info.process_bar = m_send_progress_bar;
|
calib_info.process_bar = m_send_progress_bar;
|
||||||
calib_info.bed_type = BedType(m_comboBox_bed_type->GetSelection() + btDefault + 1);
|
calib_info.bed_type = BedType(m_comboBox_bed_type->GetSelection() + btDefault + 1);
|
||||||
calib_info.printer_prest = m_printer_preset;
|
calib_info.printer_prest = m_printer_preset;
|
||||||
calib_info.filament_prest = m_filament_preset;
|
calib_info.filament_prest = m_filament_presets.begin()->second;
|
||||||
calib_info.print_prest = m_print_preset;
|
calib_info.print_prest = m_print_preset;
|
||||||
|
|
||||||
std::string error_message;
|
std::string error_message;
|
||||||
|
@ -3631,7 +3679,7 @@ bool TemperatureWizard::save_calibration_result()
|
||||||
msg_dlg.ShowModal();
|
msg_dlg.ShowModal();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
save_presets("nozzle_temperature", new ConfigOptionInts(1, temp), m_save_name);
|
save_presets(m_filament_presets.begin()->second, "nozzle_temperature", new ConfigOptionInts(1, temp), m_save_name);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3643,7 +3691,7 @@ bool TemperatureWizard::recommend_input_value()
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
wxString filament_name = m_filament_preset->alias;
|
wxString filament_name = m_filament_presets.begin()->second->alias;
|
||||||
|
|
||||||
int start, end;
|
int start, end;
|
||||||
if (filament_name.Contains("ABS") || filament_name.Contains("ASA")) {//todo supplement
|
if (filament_name.Contains("ABS") || filament_name.Contains("ASA")) {//todo supplement
|
||||||
|
@ -3695,8 +3743,8 @@ RetractionWizard::RetractionWizard(wxWindow* parent, wxWindowID id, const wxPoin
|
||||||
}
|
}
|
||||||
|
|
||||||
void RetractionWizard::set_save_name() {
|
void RetractionWizard::set_save_name() {
|
||||||
if (m_filament_preset) {
|
if (m_filament_presets.begin()->second) {
|
||||||
m_save_name = m_filament_preset->alias + "-Calibrated";
|
m_save_name = m_filament_presets.begin()->second->alias + "-Calibrated";
|
||||||
}
|
}
|
||||||
else { m_save_name = ""; }
|
else { m_save_name = ""; }
|
||||||
m_save_name_input->GetTextCtrl()->SetValue(m_save_name);
|
m_save_name_input->GetTextCtrl()->SetValue(m_save_name);
|
||||||
|
@ -3866,7 +3914,7 @@ bool RetractionWizard::start_calibration(std::vector<int> tray_ids)
|
||||||
calib_info.process_bar = m_send_progress_bar;
|
calib_info.process_bar = m_send_progress_bar;
|
||||||
calib_info.bed_type = BedType(m_comboBox_bed_type->GetSelection() + btDefault + 1);
|
calib_info.bed_type = BedType(m_comboBox_bed_type->GetSelection() + btDefault + 1);
|
||||||
calib_info.printer_prest = m_printer_preset;
|
calib_info.printer_prest = m_printer_preset;
|
||||||
calib_info.filament_prest = m_filament_preset;
|
calib_info.filament_prest = m_filament_presets.begin()->second;
|
||||||
calib_info.print_prest = m_print_preset;
|
calib_info.print_prest = m_print_preset;
|
||||||
|
|
||||||
std::string error_message;
|
std::string error_message;
|
||||||
|
@ -3894,7 +3942,7 @@ bool RetractionWizard::save_calibration_result()
|
||||||
msg_dlg.ShowModal();
|
msg_dlg.ShowModal();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
save_presets("retraction_length", new ConfigOptionFloats{ length }, m_save_name);
|
save_presets(m_filament_presets.begin()->second, "retraction_length", new ConfigOptionFloats{ length }, m_save_name);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ public:
|
||||||
void SetRadioBox(wxRadioButton* btn) { m_radioBox = btn; }
|
void SetRadioBox(wxRadioButton* btn) { m_radioBox = btn; }
|
||||||
virtual bool Show(bool show = true);
|
virtual bool Show(bool show = true);
|
||||||
virtual bool Enable(bool enable);
|
virtual bool Enable(bool enable);
|
||||||
virtual void SetValue(bool value);
|
virtual void SetValue(bool value, bool send_event = true);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
int m_tray_id;
|
int m_tray_id;
|
||||||
|
@ -129,7 +129,8 @@ protected:
|
||||||
ComboBox* m_comboBox_bed_type;
|
ComboBox* m_comboBox_bed_type;
|
||||||
ComboBox* m_comboBox_process;
|
ComboBox* m_comboBox_process;
|
||||||
Preset* m_printer_preset{nullptr};
|
Preset* m_printer_preset{nullptr};
|
||||||
Preset* m_filament_preset{ nullptr };
|
//Preset* m_filament_preset{ nullptr };
|
||||||
|
std::map<int, Preset*> m_filament_presets;
|
||||||
Preset* m_print_preset{ nullptr };
|
Preset* m_print_preset{ nullptr };
|
||||||
wxStaticText* m_from_text;
|
wxStaticText* m_from_text;
|
||||||
wxStaticText* m_to_text;
|
wxStaticText* m_to_text;
|
||||||
|
@ -190,7 +191,7 @@ protected:
|
||||||
void reset_printing_values();
|
void reset_printing_values();
|
||||||
|
|
||||||
// save
|
// save
|
||||||
bool save_presets(const std::string& config_key, ConfigOption* config_value, const std::string& name);
|
bool save_presets(Preset* preset, const std::string& config_key, ConfigOption* config_value, const std::string& name);
|
||||||
|
|
||||||
// event handlers
|
// event handlers
|
||||||
void on_select_nozzle(wxCommandEvent& evt);
|
void on_select_nozzle(wxCommandEvent& evt);
|
||||||
|
|
Loading…
Reference in New Issue