OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::GUI::FlowRateWizard Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/slic3r/GUI/CalibrationWizard.hpp>

Inheritance diagram for Slic3r::GUI::FlowRateWizard:
Collaboration diagram for Slic3r::GUI::FlowRateWizard:

Public Member Functions

 FlowRateWizard (wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxTAB_TRAVERSAL)
 ~FlowRateWizard ()
void set_cali_method (CalibrationMethod method) override
void on_cali_job_finished (wxString evt_data) override
void cache_coarse_info (MachineObject *obj)
void on_cali_job_finished (wxCommandEvent &event)
CalibrationWizardPageStep * get_curr_step ()
void show_step (CalibrationWizardPageStep *step)
virtual void set_cali_style (CalibrationStyle style)
CalibMode get_calibration_mode ()
bool save_preset (const std::string &old_preset_name, const std::string &new_preset_name, const std::map< std::string, ConfigOption * > &key_values, wxString &message)
bool save_preset_with_index (const std::string &old_preset_name, const std::string &new_preset_name, const std::map< std::string, ConfigIndexValue > &key_values, wxString &message)
virtual void cache_preset_info (MachineObject *obj, float nozzle_dia, BedType bed_type)
virtual void recover_preset_info (MachineObject *obj)
virtual void back_preset_info (MachineObject *obj, bool cali_finish, bool back_cali_flag=true)
void msw_rescale ()
void on_sys_color_changed ()
bool built () const
bool build_step ()

Protected Member Functions

void create_pages ()
void on_cali_action (wxCommandEvent &evt)
void on_cali_start (CaliPresetStage stage=CaliPresetStage::CALI_MANULA_STAGE_NONE, float cali_value=0.0f, FlowRatioCaliSource from_page=FlowRatioCaliSource::FROM_PRESET_PAGE)
void on_cali_save ()
void update (MachineObject *obj) override
void on_device_connected (MachineObject *obj) override
std::map< std::string, ConfigIndexValue > generate_index_key_value (MachineObject *obj, const std::string &key, float value)
void on_cali_go_home ()
void add_page_step (CalibrationWizardPageStep *&step, std::function< CalibrationWizardPage *()> make)
void add_build_step (std::function< void()> step)
void add_build_steps_of (StagedBuild &child)

Protected Attributes

wxScrolledWindow * m_scrolledWindow
wxBoxSizer * m_all_pages_sizer
CalibMode m_mode
CalibrationStyle m_cali_style
CalibrationMethod m_cali_method { CalibrationMethod::CALI_METHOD_MANUAL }
MachineObject * curr_obj { nullptr }
MachineObject * last_obj { nullptr }
CalibrationWizardPageStep * m_curr_step { nullptr }
CalibrationWizardPageStep * start_step { nullptr }
CalibrationWizardPageStep * preset_step { nullptr }
CalibrationWizardPageStep * cali_step { nullptr }
CalibrationWizardPageStep * save_step { nullptr }
CalibrationWizardPageStep * cali_coarse_step { nullptr }
CalibrationWizardPageStep * coarse_save_step { nullptr }
CalibrationWizardPageStep * cali_fine_step { nullptr }
CalibrationWizardPageStep * fine_save_step { nullptr }
std::vector< CalibrationWizardPageStep * > m_page_steps
SecondaryCheckDialog * go_home_dialog = nullptr

Private Member Functions

StagedBuild * unfinished_child () const

Private Attributes

std::vector< std::function< void()> > m_steps
std::vector< StagedBuild * > m_children
size_t m_next_step { 0 }

Detailed Description

Constructor & Destructor Documentation

◆ FlowRateWizard()

Slic3r::GUI::FlowRateWizard::FlowRateWizard ( wxWindow * parent,
wxWindowID id = wxID_ANY,
const wxPoint & pos = wxDefaultPosition,
const wxSize & size = wxDefaultSize,
long style = wxTAB_TRAVERSAL )
1082 : CalibrationWizard(parent, CalibMode::Calib_Flow_Rate, id, pos, size, style)
1083{
1084 create_pages();
1085}
#define style
Definition WipeTowerDialog.cpp:101
CalibrationWizard(wxWindow *parent, CalibMode mode, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxTAB_TRAVERSAL)
Definition CalibrationWizard.cpp:104
void create_pages()
Definition CalibrationWizard.cpp:1087
@ Calib_Flow_Rate
Definition calib.hpp:29

References Slic3r::GUI::CalibrationWizard::CalibrationWizard(), FlowRateWizard(), Slic3r::Calib_Flow_Rate, create_pages(), and style.

Referenced by FlowRateWizard().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~FlowRateWizard()

Slic3r::GUI::FlowRateWizard::~FlowRateWizard ( )
inline
159{};

Member Function Documentation

◆ add_build_step()

void Slic3r::GUI::StagedBuild::add_build_step ( std::function< void()> step)
inlineprotectedinherited
39{ m_steps.push_back(std::move(step)); }
std::vector< std::function< void()> > m_steps
Definition StagedBuild.hpp:57

References m_steps.

Referenced by Slic3r::GUI::StatusBasePanel::StatusBasePanel(), Slic3r::GUI::StatusPanel::StatusPanel(), add_build_steps_of(), Slic3r::GUI::CalibrationWizard::add_page_step(), Slic3r::GUI::StatusBasePanel::create_machine_control_page(), Slic3r::GUI::FlowRateWizard::create_pages(), Slic3r::GUI::PressureAdvanceWizard::create_pages(), Slic3r::GUI::AuxiliaryPanel::init_tabpanel(), and Slic3r::GUI::MonitorPanel::init_tabpanel().

Here is the caller graph for this function:

◆ add_build_steps_of()

void Slic3r::GUI::StagedBuild::add_build_steps_of ( StagedBuild & child)
inlineprotectedinherited
44 {
45 m_children.push_back(&child);
46 for (size_t i = child.m_next_step; i < child.m_steps.size(); ++i)
47 add_build_step([&child] { child.build_step(); });
48 }
std::vector< StagedBuild * > m_children
Definition StagedBuild.hpp:58
void add_build_step(std::function< void()> step)
Definition StagedBuild.hpp:39

References add_build_step(), build_step(), m_children, m_next_step, and m_steps.

Referenced by Slic3r::GUI::ProjectPanel::ProjectPanel(), Slic3r::GUI::CalibrationPanel::init_tabpanel(), and Slic3r::GUI::MonitorPanel::init_tabpanel().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ add_page_step()

void Slic3r::GUI::CalibrationWizard::add_page_step ( CalibrationWizardPageStep *& step,
std::function< CalibrationWizardPage *()> make )
protectedinherited
163{
164 add_build_step([this, &step, make = std::move(make)] {
165 step = new CalibrationWizardPageStep(make());
166 m_all_pages_sizer->Add(step->page, 1, wxEXPAND | wxALL, FromDIP(25));
167 step->page->Hide();
168 });
169}
wxBoxSizer * m_all_pages_sizer
Definition CalibrationWizard.hpp:103
void step(Coord &crd, const Dir d, const long n=1)
Definition MarchingSquares.hpp:213

References Slic3r::GUI::StagedBuild::add_build_step(), and m_all_pages_sizer.

Referenced by Slic3r::GUI::FlowRateWizard::create_pages(), and Slic3r::GUI::PressureAdvanceWizard::create_pages().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ back_preset_info()

void Slic3r::GUI::CalibrationWizard::back_preset_info ( MachineObject * obj,
bool cali_finish,
bool back_cali_flag = true )
virtualinherited
470{
471 if (!obj)
472 return;
473
474 PrinterCaliInfo printer_cali_info;
475 printer_cali_info.dev_id = obj->get_dev_id();
476 printer_cali_info.cali_finished = cali_finish;
477 printer_cali_info.cache_flow_ratio = obj->cache_flow_ratio;
478 printer_cali_info.selected_presets = obj->selected_cali_preset;
479 printer_cali_info.cache_flow_rate_calibration_type = obj->flow_ratio_calibration_type;
480 wxGetApp().app_config->save_printer_cali_infos(printer_cali_info, back_cali_flag);
481}

References Slic3r::PrinterCaliInfo::cache_flow_rate_calibration_type, Slic3r::MachineObject::cache_flow_ratio, Slic3r::PrinterCaliInfo::cache_flow_ratio, Slic3r::PrinterCaliInfo::cali_finished, Slic3r::PrinterCaliInfo::dev_id, Slic3r::MachineObject::flow_ratio_calibration_type, Slic3r::MachineObject::get_dev_id(), Slic3r::MachineObject::selected_cali_preset, and Slic3r::PrinterCaliInfo::selected_presets.

Referenced by Slic3r::GUI::FlowRateWizard::cache_coarse_info(), cache_preset_info(), on_cali_go_home(), Slic3r::GUI::FlowRateWizard::on_cali_save(), Slic3r::GUI::MaxVolumetricSpeedWizard::on_cali_save(), and Slic3r::GUI::PressureAdvanceWizard::on_cali_save().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ build_step()

bool Slic3r::GUI::StagedBuild::build_step ( )
inlineinherited
27 {
28 if (m_next_step < m_steps.size()) {
29 // Copied out, since a step may queue more steps and reallocate m_steps.
30 auto step = std::move(m_steps[m_next_step++]);
31 step();
32 } else if (StagedBuild* child = unfinished_child()) {
33 child->build_step();
34 }
35 return !built();
36 }
size_t m_next_step
Definition StagedBuild.hpp:59
StagedBuild * unfinished_child() const
Definition StagedBuild.hpp:51
bool built() const
Definition StagedBuild.hpp:18

References built(), m_next_step, m_steps, and unfinished_child().

Referenced by add_build_steps_of().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ built()

bool Slic3r::GUI::StagedBuild::built ( ) const
inlineinherited
19 {
20 return m_next_step == m_steps.size() &&
21 std::all_of(m_children.begin(), m_children.end(), [](const StagedBuild* child) { return child->built(); });
22 }

References m_children, m_next_step, and m_steps.

Referenced by Slic3r::GUI::StatusPanel::~StatusPanel(), build_step(), Slic3r::GUI::CalibrationPanel::show_status(), Slic3r::GUI::MonitorPanel::show_status(), Slic3r::GUI::CalibrationPanel::update_all(), and Slic3r::GUI::MonitorPanel::update_all().

Here is the caller graph for this function:

◆ cache_coarse_info()

void Slic3r::GUI::FlowRateWizard::cache_coarse_info ( MachineObject * obj)
1615{
1616 if (!obj) return;
1617
1618 CalibrationFlowCoarseSavePage *coarse_page = (static_cast<CalibrationFlowCoarseSavePage *>(coarse_save_step->page));
1619 if (!coarse_page)
1620 return;
1621
1622 wxString out_name;
1623 coarse_page->get_result(&obj->cache_flow_ratio, &out_name);
1624
1625 back_preset_info(obj, false);
1626}
CalibrationWizardPageStep * coarse_save_step
Definition CalibrationWizard.hpp:119
virtual void back_preset_info(MachineObject *obj, bool cali_finish, bool back_cali_flag=true)
Definition CalibrationWizard.cpp:469

References Slic3r::GUI::CalibrationWizard::back_preset_info(), Slic3r::MachineObject::cache_flow_ratio, Slic3r::GUI::CalibrationWizard::coarse_save_step, and Slic3r::GUI::CalibrationFlowCoarseSavePage::get_result().

Referenced by on_cali_start().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cache_preset_info()

void Slic3r::GUI::CalibrationWizard::cache_preset_info ( MachineObject * obj,
float nozzle_dia,
BedType bed_type )
virtualinherited
418{
419 if (!obj) return;
420
421 CalibrationPresetPage* preset_page = (static_cast<CalibrationPresetPage*>(preset_step->page));
422
423 std::map<int, Preset*> selected_filaments = preset_page->get_selected_filaments();
424
425 obj->selected_cali_preset.clear();
426 for (auto& item : selected_filaments) {
427 CaliPresetInfo result;
428 result.tray_id = item.first;
429 result.nozzle_diameter = nozzle_dia;
430 result.bed_type = bed_type;
431 result.filament_id = item.second->filament_id;
432 result.setting_id = item.second->setting_id;
433 result.name = item.second->name;
434
435 if (obj->is_multi_extruders()) {
436 int ams_id, slot_id, tray_id;
437 get_tray_ams_and_slot_id(curr_obj, result.tray_id, ams_id, slot_id, tray_id);
438 result.extruder_id = preset_page->get_extruder_id_by_tray_id(result.tray_id);
439 result.nozzle_diameter = preset_page->get_nozzle_diameter(result.extruder_id);
440 }
441 else {
442 result.extruder_id = 0;
443 }
444 result.nozzle_volume_type = preset_page->get_nozzle_volume_type(result.extruder_id);
445
446 obj->selected_cali_preset.push_back(result);
447 }
448
449 CaliPresetStage stage;
450 preset_page->get_cali_stage(stage, obj->cache_flow_ratio);
451
452 back_preset_info(obj, false);
453}
MachineObject * curr_obj
Definition CalibrationWizard.hpp:108
CalibrationWizardPageStep * preset_step
Definition CalibrationWizard.hpp:114
void get_tray_ams_and_slot_id(MachineObject *obj, int in_tray_id, int &ams_id, int &slot_id, int &tray_id)
Definition CalibUtils.cpp:231
CaliPresetStage
Definition CalibrationWizardPresetPage.hpp:32

References back_preset_info(), Slic3r::CaliPresetInfo::bed_type, Slic3r::MachineObject::cache_flow_ratio, curr_obj, Slic3r::CaliPresetInfo::extruder_id, Slic3r::CaliPresetInfo::filament_id, Slic3r::GUI::CalibrationPresetPage::get_cali_stage(), Slic3r::GUI::CalibrationPresetPage::get_extruder_id_by_tray_id(), Slic3r::GUI::CalibrationPresetPage::get_nozzle_diameter(), Slic3r::GUI::CalibrationPresetPage::get_nozzle_volume_type(), Slic3r::GUI::CalibrationPresetPage::get_selected_filaments(), Slic3r::GUI::get_tray_ams_and_slot_id(), Slic3r::MachineObject::is_multi_extruders(), Slic3r::CaliPresetInfo::name, Slic3r::CaliPresetInfo::nozzle_diameter, Slic3r::CaliPresetInfo::nozzle_volume_type, preset_step, Slic3r::MachineObject::selected_cali_preset, Slic3r::CaliPresetInfo::setting_id, and Slic3r::CaliPresetInfo::tray_id.

Referenced by Slic3r::GUI::FlowRateWizard::on_cali_start(), Slic3r::GUI::MaxVolumetricSpeedWizard::on_cali_start(), and Slic3r::GUI::PressureAdvanceWizard::on_cali_start().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ create_pages()

void Slic3r::GUI::FlowRateWizard::create_pages ( )
protected
1088{
1089 add_page_step(start_step, [this] { return new CalibrationFlowRateStartPage(m_scrolledWindow); });
1090 add_page_step(preset_step, [this] { return new CalibrationPresetPage(m_scrolledWindow, m_mode, false); });
1091
1092 // manual
1093 add_page_step(cali_coarse_step, [this] { return new CalibrationCaliPage(m_scrolledWindow, m_mode, CaliPageType::CALI_PAGE_CALI); });
1094 add_page_step(coarse_save_step, [this] { return new CalibrationFlowCoarseSavePage(m_scrolledWindow); });
1095 add_page_step(cali_fine_step, [this] { return new CalibrationCaliPage(m_scrolledWindow, m_mode, CaliPageType::CALI_PAGE_FINE_CALI); });
1096 add_page_step(fine_save_step, [this] { return new CalibrationFlowFineSavePage(m_scrolledWindow); });
1097
1098 // auto
1099 add_page_step(cali_step, [this] { return new CalibrationCaliPage(m_scrolledWindow, m_mode); });
1100 add_page_step(save_step, [this] { return new CalibrationFlowX1SavePage(m_scrolledWindow); });
1101
1102 add_build_step([this] {
1103 m_page_steps.push_back(start_step);
1104 m_page_steps.push_back(preset_step);
1105 m_page_steps.push_back(cali_coarse_step);
1106 m_page_steps.push_back(coarse_save_step);
1107 m_page_steps.push_back(cali_fine_step);
1108 m_page_steps.push_back(fine_save_step);
1109
1110 //m_page_steps.push_back(cali_step);
1111 //m_page_steps.push_back(save_step);
1112
1113 for (int i = 0; i < m_page_steps.size() - 1; i++) {
1114 m_page_steps[i]->chain(m_page_steps[i + 1]);
1115 }
1116
1117 for (int i = 0; i < m_page_steps.size(); i++) {
1118 m_page_steps[i]->page->Bind(EVT_CALI_ACTION, &FlowRateWizard::on_cali_action, this);
1119 }
1120
1121 cali_step->page->Bind(EVT_CALI_ACTION, &FlowRateWizard::on_cali_action, this);
1122 save_step->page->Bind(EVT_CALI_ACTION, &FlowRateWizard::on_cali_action, this);
1123
1124 if (!m_page_steps.empty())
1125 show_step(m_page_steps.front());
1126
1128 });
1129}
void add_page_step(CalibrationWizardPageStep *&step, std::function< CalibrationWizardPage *()> make)
Definition CalibrationWizard.cpp:162
CalibrationWizardPageStep * cali_coarse_step
Definition CalibrationWizard.hpp:118
CalibMode m_mode
Definition CalibrationWizard.hpp:105
CalibrationWizardPageStep * cali_step
Definition CalibrationWizard.hpp:115
CalibrationWizardPageStep * start_step
Definition CalibrationWizard.hpp:113
CalibrationWizardPageStep * cali_fine_step
Definition CalibrationWizard.hpp:120
wxScrolledWindow * m_scrolledWindow
Definition CalibrationWizard.hpp:102
void show_step(CalibrationWizardPageStep *step)
Definition CalibrationWizard.cpp:177
std::vector< CalibrationWizardPageStep * > m_page_steps
Definition CalibrationWizard.hpp:124
CalibrationWizardPageStep * fine_save_step
Definition CalibrationWizard.hpp:121
CalibrationWizardPageStep * save_step
Definition CalibrationWizard.hpp:116
void set_cali_method(CalibrationMethod method) override
Definition CalibrationWizard.cpp:1556
void on_cali_action(wxCommandEvent &evt)
Definition CalibrationWizard.cpp:1131
@ CALI_METHOD_MANUAL
Definition CalibrationWizardPage.hpp:64
@ CALI_PAGE_FINE_CALI
Definition CalibrationWizardPage.hpp:86
@ CALI_PAGE_CALI
Definition CalibrationWizardPage.hpp:84

References Slic3r::GUI::StagedBuild::add_build_step(), Slic3r::GUI::CalibrationWizard::add_page_step(), Slic3r::GUI::CalibrationWizard::cali_coarse_step, Slic3r::GUI::CalibrationWizard::cali_fine_step, Slic3r::GUI::CALI_METHOD_MANUAL, Slic3r::GUI::CALI_PAGE_CALI, Slic3r::GUI::CALI_PAGE_FINE_CALI, Slic3r::GUI::CalibrationWizard::cali_step, Slic3r::GUI::CalibrationWizard::coarse_save_step, Slic3r::GUI::CalibrationWizard::fine_save_step, Slic3r::GUI::CalibrationWizard::m_mode, Slic3r::GUI::CalibrationWizard::m_page_steps, Slic3r::GUI::CalibrationWizard::m_scrolledWindow, on_cali_action(), Slic3r::GUI::CalibrationWizard::preset_step, Slic3r::GUI::CalibrationWizard::save_step, set_cali_method(), Slic3r::GUI::CalibrationWizard::show_step(), and Slic3r::GUI::CalibrationWizard::start_step.

Referenced by FlowRateWizard().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ generate_index_key_value()

std::map< std::string, ConfigIndexValue > Slic3r::GUI::FlowRateWizard::generate_index_key_value ( MachineObject * obj,
const std::string & key,
float value )
protected
1535{
1536 std::map<std::string, ConfigIndexValue> key_value_map;
1537 if (!obj)
1538 return key_value_map;
1539
1540 std::map<int, TrayInfo> selected_filaments = get_cached_selected_filament_for_multi_extruder(obj);
1541 int index = 0;
1542 if (!selected_filaments.empty()) {
1543 TrayInfo tray_info = selected_filaments.begin()->second;
1544 // todo multi_extruder: get_extruder_type from obj
1546 index = get_index_for_extruder_parameter(tray_info.preset->config, "filament_flow_ratio", tray_info.extruder_id, extruder_type, tray_info.nozzle_volume_type);
1547 ConfigIndexValue config_value;
1548 config_value.index = index;
1549 config_value.value = value;
1550 key_value_map.insert(std::make_pair("filament_flow_ratio", config_value));
1551 }
1552
1553 return key_value_map;
1554}
std::map< int, TrayInfo > get_cached_selected_filament_for_multi_extruder(MachineObject *obj)
Definition CalibrationWizard.cpp:72
ExtruderType
Definition PrintConfig.hpp:612
@ etDirectDrive
Definition PrintConfig.hpp:613
int get_index_for_extruder_parameter(const DynamicPrintConfig &config, const std::string &opt_key, int cur_extruder_id, ExtruderType extruder_type, NozzleVolumeType nozzle_volume_type)
Definition ParameterUtils.cpp:51

References Slic3r::Preset::config, Slic3r::etDirectDrive, Slic3r::GUI::TrayInfo::extruder_id, Slic3r::GUI::get_cached_selected_filament_for_multi_extruder(), Slic3r::get_index_for_extruder_parameter(), Slic3r::GUI::ConfigIndexValue::index, Slic3r::GUI::TrayInfo::nozzle_volume_type, Slic3r::GUI::TrayInfo::preset, and Slic3r::GUI::ConfigIndexValue::value.

Referenced by on_cali_save(), and on_cali_start().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_calibration_mode()

CalibMode Slic3r::GUI::CalibrationWizard::get_calibration_mode ( )
inlineinherited
82{ return m_mode; }

References m_mode.

◆ get_curr_step()

CalibrationWizardPageStep * Slic3r::GUI::CalibrationWizard::get_curr_step ( )
inlineinherited
68{ return m_curr_step; }
CalibrationWizardPageStep * m_curr_step
Definition CalibrationWizard.hpp:111

References m_curr_step.

Referenced by on_cali_go_home().

Here is the caller graph for this function:

◆ msw_rescale()

void Slic3r::GUI::CalibrationWizard::msw_rescale ( )
inherited
484{
485 for (int i = 0; i < m_page_steps.size(); i++) {
486 if (m_page_steps[i]->page)
487 m_page_steps[i]->page->msw_rescale();
488 }
489}

References m_page_steps.

◆ on_cali_action()

void Slic3r::GUI::FlowRateWizard::on_cali_action ( wxCommandEvent & evt)
protected
1132{
1133 CaliPageActionType action = static_cast<CaliPageActionType>(evt.GetInt());
1135 ;
1136 }
1138 preset_step->page->set_cali_filament_mode(CalibrationFilamentMode::CALI_MODEL_SINGLE);
1140 preset_step->page->on_device_connected(curr_obj);
1141 show_step(m_curr_step->next);
1142 }
1143 else if (action == CaliPageActionType::CALI_ACTION_AUTO_CALI) {
1145 preset_step->page->set_cali_filament_mode(fila_mode);
1147 preset_step->page->on_device_connected(curr_obj);
1148 show_step(m_curr_step->next);
1149 }
1150 else if (action == CaliPageActionType::CALI_ACTION_NEXT) {
1151 show_step(m_curr_step->next);
1152 }
1153 else if (action == CaliPageActionType::CALI_ACTION_CALI_NEXT) {
1154 show_step(m_curr_step->next);
1155 }
1156 else if (action == CaliPageActionType::CALI_ACTION_PREV) {
1157 show_step(m_curr_step->prev);
1158 }
1159 else if (action == CaliPageActionType::CALI_ACTION_CALI) {
1161 on_cali_start();
1162 }
1165 float cali_value = 0.0f;
1166 static_cast<CalibrationPresetPage*>(preset_step->page)->get_cali_stage(stage, cali_value);
1169 // set next step page
1171 }
1172 // automatically jump to next step when print job is sending finished.
1173 }
1174 else {
1175 on_cali_start();
1176 }
1177 }
1180 float new_flow_ratio = 0.0f;
1181 wxString temp_name = ""; // unused
1182 auto coarse_save_page = static_cast<CalibrationFlowCoarseSavePage*>(m_curr_step->page);
1183 if (!coarse_save_page->get_result(&new_flow_ratio, &temp_name)) {
1184 return;
1185 }
1187 // automatically jump to next step when print job is sending finished.
1188 }
1189 }
1190 else if (action == CaliPageActionType::CALI_ACTION_FLOW_SAVE) {
1191 on_cali_save();
1192 }
1194 auto coarse_save_page = static_cast<CalibrationFlowCoarseSavePage*>(coarse_save_step->page);
1195 if (coarse_save_page->is_skip_fine_calibration()) {
1196 on_cali_save();
1197 }
1198 }
1200 on_cali_save();
1201 }
1202 else if (action == CaliPageActionType::CALI_ACTION_GO_HOME) {
1204 }
1205}
CalibrationMethod m_cali_method
Definition CalibrationWizard.hpp:107
void on_cali_go_home()
Definition CalibrationWizard.cpp:499
void on_cali_save()
Definition CalibrationWizard.cpp:1403
void on_cali_start(CaliPresetStage stage=CaliPresetStage::CALI_MANULA_STAGE_NONE, float cali_value=0.0f, FlowRatioCaliSource from_page=FlowRatioCaliSource::FROM_PRESET_PAGE)
Definition CalibrationWizard.cpp:1207
@ CALI_METHOD_AUTO
Definition CalibrationWizardPage.hpp:65
CalibrationFilamentMode get_cali_filament_mode(MachineObject *obj, CalibMode mode)
Definition CalibrationWizardPage.cpp:86
@ FROM_COARSE_PAGE
Definition CalibrationWizardPresetPage.hpp:40
@ FROM_PRESET_PAGE
Definition CalibrationWizardPresetPage.hpp:39
@ CALI_MANULA_STAGE_NONE
Definition CalibrationWizardPresetPage.hpp:33
@ CALI_MANUAL_STAGE_2
Definition CalibrationWizardPresetPage.hpp:35
CaliPageActionType
Definition CalibrationWizardPage.hpp:222
@ CALI_ACTION_NEXT
Definition CalibrationWizardPage.hpp:231
@ CALI_ACTION_FLOW_FINE_SAVE
Definition CalibrationWizardPage.hpp:236
@ CALI_ACTION_AUTO_CALI
Definition CalibrationWizardPage.hpp:225
@ CALI_ACTION_PREV
Definition CalibrationWizardPage.hpp:230
@ CALI_ACTION_MANUAL_CALI
Definition CalibrationWizardPage.hpp:224
@ CALI_ACTION_MANAGE_RESULT
Definition CalibrationWizardPage.hpp:223
@ CALI_ACTION_GO_HOME
Definition CalibrationWizardPage.hpp:238
@ CALI_ACTION_CALI_NEXT
Definition CalibrationWizardPage.hpp:232
@ CALI_ACTION_FLOW_COARSE_SAVE
Definition CalibrationWizardPage.hpp:235
@ CALI_ACTION_CALI
Definition CalibrationWizardPage.hpp:227
@ CALI_ACTION_FLOW_SAVE
Definition CalibrationWizardPage.hpp:234
@ CALI_ACTION_FLOW_CALI_STAGE_2
Definition CalibrationWizardPage.hpp:228
CalibrationFilamentMode
Definition CalibrationWizardPage.hpp:56
@ CALI_MODEL_SINGLE
Definition CalibrationWizardPage.hpp:58

References Slic3r::GUI::CALI_ACTION_AUTO_CALI, Slic3r::GUI::CALI_ACTION_CALI, Slic3r::GUI::CALI_ACTION_CALI_NEXT, Slic3r::GUI::CALI_ACTION_FLOW_CALI_STAGE_2, Slic3r::GUI::CALI_ACTION_FLOW_COARSE_SAVE, Slic3r::GUI::CALI_ACTION_FLOW_FINE_SAVE, Slic3r::GUI::CALI_ACTION_FLOW_SAVE, Slic3r::GUI::CALI_ACTION_GO_HOME, Slic3r::GUI::CALI_ACTION_MANAGE_RESULT, Slic3r::GUI::CALI_ACTION_MANUAL_CALI, Slic3r::GUI::CALI_ACTION_NEXT, Slic3r::GUI::CALI_ACTION_PREV, Slic3r::GUI::CalibrationWizard::cali_fine_step, Slic3r::GUI::CALI_MANUAL_STAGE_2, Slic3r::GUI::CALI_MANULA_STAGE_NONE, Slic3r::GUI::CALI_METHOD_AUTO, Slic3r::GUI::CALI_METHOD_MANUAL, Slic3r::GUI::CALI_MODEL_SINGLE, Slic3r::GUI::CalibrationWizard::coarse_save_step, Slic3r::GUI::CalibrationWizard::curr_obj, Slic3r::GUI::FROM_COARSE_PAGE, Slic3r::GUI::FROM_PRESET_PAGE, Slic3r::GUI::get_cali_filament_mode(), Slic3r::GUI::CalibrationWizard::m_cali_method, Slic3r::GUI::CalibrationWizard::m_curr_step, Slic3r::GUI::CalibrationWizard::m_mode, Slic3r::GUI::CalibrationWizard::on_cali_go_home(), on_cali_save(), on_cali_start(), Slic3r::GUI::CalibrationWizard::preset_step, set_cali_method(), and Slic3r::GUI::CalibrationWizard::show_step().

Referenced by create_pages().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_cali_go_home()

void Slic3r::GUI::CalibrationWizard::on_cali_go_home ( )
protectedinherited
500{
501 // can go home? confirm to continue
502 CalibrationMethod method;
503 int cali_stage = 0;
504 CalibMode obj_cali_mode = get_obj_calibration_mode(curr_obj, method, cali_stage);
505
506 bool double_confirm = false;
508 if (page_type == CaliPageType::CALI_PAGE_COARSE_SAVE ||
512 page_type == CaliPageType::CALI_PAGE_PA_SAVE) {
513 double_confirm = true;
514 }
515 if (obj_cali_mode == m_mode && curr_obj && (curr_obj->is_in_printing() || double_confirm)) {
516 if (go_home_dialog == nullptr)
517 go_home_dialog = new SecondaryCheckDialog(this, wxID_ANY, _L("Confirm"));
518
519 go_home_dialog->Bind(EVT_SECONDARY_CHECK_CONFIRM, [this](wxCommandEvent &e) {
520 if (curr_obj) {
521 curr_obj->command_task_abort();
522 } else {
523 assert(false);
524 }
525 if (!m_page_steps.empty()) {
527 show_step(m_page_steps.front());
528 }
529 });
530
531 go_home_dialog->update_text(_L("Are you sure to cancel the current calibration and return to the home page?"));
532 go_home_dialog->on_show();
533 } else {
534 if (!m_page_steps.empty()) {
535 back_preset_info(curr_obj, true, obj_cali_mode == m_mode);
536 show_step(m_page_steps.front());
537 }
538 }
539}
#define _L(s)
Definition OBJ.cpp:34
CalibrationWizardPage * page
Definition CalibrationWizard.hpp:40
CaliPageType get_page_type()
Definition CalibrationWizardPage.hpp:306
SecondaryCheckDialog * go_home_dialog
Definition CalibrationWizard.hpp:126
CalibrationWizardPageStep * get_curr_step()
Definition CalibrationWizard.hpp:68
CalibrationMethod
Definition CalibrationWizardPage.hpp:63
CaliPageType
Definition CalibrationWizardPage.hpp:81
@ CALI_PAGE_FINE_SAVE
Definition CalibrationWizardPage.hpp:87
@ CALI_PAGE_COARSE_SAVE
Definition CalibrationWizardPage.hpp:85
@ CALI_PAGE_FLOW_SAVE
Definition CalibrationWizardPage.hpp:89
@ CALI_PAGE_COMMON_SAVE
Definition CalibrationWizardPage.hpp:90
@ CALI_PAGE_PA_SAVE
Definition CalibrationWizardPage.hpp:88
CalibMode get_obj_calibration_mode(const MachineObject *obj)
Definition CalibrationWizardPage.cpp:108
CalibMode
Definition calib.hpp:23

References _L, back_preset_info(), Slic3r::GUI::CALI_PAGE_COARSE_SAVE, Slic3r::GUI::CALI_PAGE_COMMON_SAVE, Slic3r::GUI::CALI_PAGE_FINE_SAVE, Slic3r::GUI::CALI_PAGE_FLOW_SAVE, Slic3r::GUI::CALI_PAGE_PA_SAVE, curr_obj, get_curr_step(), Slic3r::GUI::get_obj_calibration_mode(), Slic3r::GUI::CalibrationWizardPage::get_page_type(), go_home_dialog, m_mode, m_page_steps, Slic3r::GUI::CalibrationWizardPageStep::page, and show_step().

Referenced by Slic3r::GUI::FlowRateWizard::on_cali_action(), Slic3r::GUI::MaxVolumetricSpeedWizard::on_cali_action(), and Slic3r::GUI::PressureAdvanceWizard::on_cali_action().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_cali_job_finished() [1/2]

void Slic3r::GUI::CalibrationWizard::on_cali_job_finished ( wxCommandEvent & event)
inherited
172{
173 this->on_cali_job_finished(event.GetString());
174 event.Skip();
175}
void on_cali_job_finished(wxCommandEvent &event)
Definition CalibrationWizard.cpp:171

References on_cali_job_finished().

Referenced by CalibrationWizard(), and on_cali_job_finished().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_cali_job_finished() [2/2]

void Slic3r::GUI::FlowRateWizard::on_cali_job_finished ( wxString evt_data)
overridevirtual

Reimplemented from Slic3r::GUI::CalibrationWizard.

1590{
1591 int cali_stage = 0;
1592 CalibMode obj_cali_mode = CalibUtils::get_calib_mode_by_name(evt_data.ToStdString(), cali_stage);
1593
1594 if (obj_cali_mode == m_mode) {
1595 if (cali_stage == 1) {
1598 // change ui, hide
1599 static_cast<CalibrationPresetPage*>(preset_step->page)->on_cali_finished_job();
1600 }
1601 else if (cali_stage == 2) {
1602 if (m_curr_step != cali_fine_step) {
1604 }
1605 // change ui, hide
1606 static_cast<CalibrationPresetPage*>(preset_step->page)->on_cali_finished_job();
1607 static_cast<CalibrationFlowCoarseSavePage*>(coarse_save_step->page)->on_cali_finished_job();
1608 }
1609 else
1611 }
1612}
static CalibMode get_calib_mode_by_name(const std::string name, int &cali_stage)
Definition CalibUtils.cpp:395

References Slic3r::GUI::CalibrationWizard::cali_coarse_step, Slic3r::GUI::CalibrationWizard::cali_fine_step, Slic3r::GUI::CalibrationWizard::coarse_save_step, Slic3r::GUI::CalibUtils::get_calib_mode_by_name(), Slic3r::GUI::CalibrationWizard::m_curr_step, Slic3r::GUI::CalibrationWizard::m_mode, Slic3r::GUI::CalibrationWizard::preset_step, and Slic3r::GUI::CalibrationWizard::show_step().

Here is the call graph for this function:

◆ on_cali_save()

void Slic3r::GUI::FlowRateWizard::on_cali_save ( )
protected
1404{
1405 if (curr_obj) {
1407 std::vector<std::pair<wxString, float>> new_results;
1408 auto save_page = static_cast<CalibrationFlowX1SavePage*>(save_step->page);
1409 if (!save_page->get_result(new_results)) {
1410 return;
1411 }
1412 if (save_page->is_all_failed()) {
1413 MessageDialog msg_dlg(nullptr, _L("The failed test result has been dropped."), wxEmptyString, wxOK);
1414 msg_dlg.ShowModal();
1417 return;
1418 }
1419
1420 std::string old_preset_name;
1421 CalibrationPresetPage* preset_page = (static_cast<CalibrationPresetPage*>(preset_step->page));
1422 std::map<int, Preset*> selected_filaments = get_cached_selected_filament(curr_obj);
1423 if (!selected_filaments.empty()) {
1424 old_preset_name = selected_filaments.begin()->second->name;
1425 }
1426 for (int i = 0; i < new_results.size(); i++) {
1427 std::map<std::string, ConfigOption*> key_value_map;
1428 key_value_map.insert(std::make_pair("filament_flow_ratio", new ConfigOptionFloatsNullable{ new_results[i].second }));
1429 wxString message;
1430 if (!save_preset(old_preset_name, into_u8(new_results[i].first), key_value_map, message)) {
1431 MessageDialog error_msg_dlg(nullptr, message, wxEmptyString, wxICON_WARNING | wxOK);
1432 error_msg_dlg.ShowModal();
1433 return;
1434 }
1435 }
1436
1437 MessageDialog msg_dlg(nullptr, _L("Flow rate calibration result has been saved to preset."), wxEmptyString, wxOK);
1438 msg_dlg.ShowModal();
1439 }
1441 float new_flow_ratio = 0.0f;
1442 wxString new_preset_name = "";
1443 if(m_curr_step->page->get_page_type() == CaliPageType::CALI_PAGE_COARSE_SAVE)
1444 {
1445 auto coarse_save_page = static_cast<CalibrationFlowCoarseSavePage*>(m_curr_step->page);
1446 if (!coarse_save_page->get_result(&new_flow_ratio, &new_preset_name)) {
1447 BOOST_LOG_TRIVIAL(info) << "flow_rate_cali: get coarse result failed";
1448 return;
1449 }
1450 }
1451 else if (m_curr_step->page->get_page_type() == CaliPageType::CALI_PAGE_FINE_SAVE)
1452 {
1453 auto fine_save_page = static_cast<CalibrationFlowFineSavePage*>(m_curr_step->page);
1454 if (!fine_save_page->get_result(&new_flow_ratio, &new_preset_name)) {
1455 BOOST_LOG_TRIVIAL(info) << "flow_rate_cali: get fine result failed";
1456 return;
1457 }
1458 }
1459 else {
1460 BOOST_LOG_TRIVIAL(info) << "flow_rate_cali: get result failed, not get result";
1461 return;
1462 }
1463
1464 if (!CalibUtils::validate_input_name(new_preset_name))
1465 return;
1466
1467 std::string old_preset_name;
1468 CalibrationPresetPage* preset_page = (static_cast<CalibrationPresetPage*>(preset_step->page));
1469 std::map<int, TrayInfo> selected_filaments = get_cached_selected_filament_for_multi_extruder(curr_obj);
1470 std::map<std::string, ConfigIndexValue> key_value_map = generate_index_key_value(curr_obj, "filament_flow_ratio", new_flow_ratio);
1471
1472 if (!selected_filaments.empty()) {
1473 old_preset_name = selected_filaments.begin()->second.preset->name;
1474 }
1475
1476 wxString message;
1477 if (!save_preset_with_index(old_preset_name, into_u8(new_preset_name), key_value_map, message)) {
1478 MessageDialog error_msg_dlg(nullptr, message, wxEmptyString, wxICON_WARNING | wxOK);
1479 error_msg_dlg.ShowModal();
1480 return;
1481 }
1482
1483 MessageDialog msg_dlg(nullptr, _L("Flow rate calibration result has been saved to preset."), wxEmptyString, wxOK);
1484 msg_dlg.ShowModal();
1485 }
1486 else {
1487 assert(false);
1488 }
1489 }
1492}
static bool validate_input_name(wxString name)
Definition CalibUtils.cpp:434
bool save_preset(const std::string &old_preset_name, const std::string &new_preset_name, const std::map< std::string, ConfigOption * > &key_values, wxString &message)
Definition CalibrationWizard.cpp:259
bool save_preset_with_index(const std::string &old_preset_name, const std::string &new_preset_name, const std::map< std::string, ConfigIndexValue > &key_values, wxString &message)
Definition CalibrationWizard.cpp:335
std::map< std::string, ConfigIndexValue > generate_index_key_value(MachineObject *obj, const std::string &key, float value)
Definition CalibrationWizard.cpp:1534
std::string into_u8(const wxString &str)
Definition GUI.cpp:549
std::map< int, Preset * > get_cached_selected_filament(MachineObject *obj)
Definition CalibrationWizard.cpp:51
ConfigOptionFloatsTempl< true > ConfigOptionFloatsNullable
Definition Config.hpp:1016

References _L, Slic3r::GUI::CalibrationWizard::back_preset_info(), Slic3r::GUI::CALI_METHOD_AUTO, Slic3r::GUI::CALI_METHOD_MANUAL, Slic3r::GUI::CALI_PAGE_COARSE_SAVE, Slic3r::GUI::CALI_PAGE_FINE_SAVE, Slic3r::GUI::CalibrationWizard::curr_obj, generate_index_key_value(), Slic3r::GUI::get_cached_selected_filament(), Slic3r::GUI::get_cached_selected_filament_for_multi_extruder(), Slic3r::GUI::into_u8(), Slic3r::GUI::CalibrationWizard::m_cali_method, Slic3r::GUI::CalibrationWizard::m_curr_step, Slic3r::GUI::CalibrationWizard::preset_step, Slic3r::GUI::CalibrationWizard::save_preset(), Slic3r::GUI::CalibrationWizard::save_preset_with_index(), Slic3r::GUI::CalibrationWizard::save_step, Slic3r::GUI::CalibrationWizard::show_step(), Slic3r::GUI::DPIAware< P >::ShowModal(), Slic3r::GUI::CalibrationWizard::start_step, and Slic3r::GUI::CalibUtils::validate_input_name().

Referenced by on_cali_action().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_cali_start()

void Slic3r::GUI::FlowRateWizard::on_cali_start ( CaliPresetStage stage = CaliPresetStage::CALI_MANULA_STAGE_NONE,
float cali_value = 0.0f,
FlowRatioCaliSource from_page = FlowRatioCaliSource::FROM_PRESET_PAGE )
protected
1208{
1209 if (!curr_obj) return;
1210
1211 //clean flow rate result
1212 curr_obj->reset_flow_rate_cali_result();
1213
1214 float nozzle_dia = 0.4;
1215 std::string setting_id;
1216 BedType plate_type = BedType::btDefault;
1217
1218 CalibrationPresetPage* preset_page = (static_cast<CalibrationPresetPage*>(preset_step->page));
1219
1220 preset_page->get_preset_info(nozzle_dia, plate_type);
1221
1222 std::map<int, Preset*> selected_filaments = preset_page->get_selected_filaments();
1223 if (from_page == FlowRatioCaliSource::FROM_PRESET_PAGE) {
1224 if (selected_filaments.empty()) {
1225 MessageDialog msg_dlg(nullptr, _L("Please select filament to calibrate."), wxEmptyString, wxICON_WARNING | wxOK);
1226 msg_dlg.ShowModal();
1227 return;
1228 }
1229 CalibrationWizard::cache_preset_info(curr_obj, nozzle_dia, plate_type);
1230 }
1231 else if (from_page == FlowRatioCaliSource::FROM_COARSE_PAGE) {
1232 selected_filaments = get_cached_selected_filament(curr_obj);
1233 if (selected_filaments.empty()) {
1234 MessageDialog msg_dlg(nullptr, _L("Please select filament to calibrate."), wxEmptyString, wxICON_WARNING | wxOK);
1235 msg_dlg.ShowModal();
1236 return;
1237 }
1239 }
1240
1242 X1CCalibInfos calib_infos;
1243 for (auto& item : selected_filaments) {
1244 int nozzle_temp = -1;
1245 int bed_temp = -1;
1246 float max_volumetric_speed = -1;
1247
1248 if (!get_preset_info(item.second->config, plate_type, nozzle_temp, bed_temp, max_volumetric_speed)) {
1249 BOOST_LOG_TRIVIAL(error) << "CaliPreset: get preset info error";
1250 }
1251
1252 X1CCalibInfos::X1CCalibInfo calib_info;
1253 calib_info.tray_id = item.first;
1254 get_tray_ams_and_slot_id(curr_obj, item.first, calib_info.ams_id, calib_info.slot_id, calib_info.tray_id);
1255 calib_info.extruder_id = preset_page->get_extruder_id_by_tray_id(item.first);
1256 calib_info.extruder_type = preset_page->get_extruder_type(calib_info.extruder_id);
1257 calib_info.nozzle_volume_type = preset_page->get_nozzle_volume_type(calib_info.extruder_id);
1258 calib_info.nozzle_diameter = preset_page->get_nozzle_diameter(calib_info.extruder_id);
1259 calib_info.filament_id = item.second->filament_id;
1260 calib_info.setting_id = item.second->setting_id;
1261 calib_info.bed_temp = bed_temp;
1262 calib_info.nozzle_temp = nozzle_temp;
1263 calib_info.max_volumetric_speed = max_volumetric_speed;
1264 float flow_ratio = 0.98;
1265 if (get_flow_ratio(item.second->config, flow_ratio))
1266 calib_info.flow_rate = flow_ratio;
1267 calib_infos.calib_datas.push_back(calib_info);
1268 }
1269 calib_infos.cali_mode = CalibMode::Calib_Flow_Rate;
1270
1271 wxString wx_err_string;
1272 CalibUtils::calib_flowrate_X1C(calib_infos, wx_err_string);
1273 if (!wx_err_string.empty()) {
1274 MessageDialog msg_dlg(nullptr, wx_err_string, wxEmptyString, wxICON_WARNING | wxOK);
1275 msg_dlg.ShowModal();
1276 return;
1277 }
1278 show_step(m_curr_step->next);
1279
1280 CalibrationCaliPage *cali_page = (static_cast<CalibrationCaliPage *>(cali_step->page));
1281 cali_page->clear_last_job_status();
1282 }
1284 CalibrationFlowCoarseSavePage* coarse_page = (static_cast<CalibrationFlowCoarseSavePage*>(coarse_save_step->page));
1285 CalibInfo calib_info;
1286 calib_info.dev_id = curr_obj->get_dev_id();
1287 Preset* temp_filament_preset = nullptr;
1288 int cali_stage = -1;
1289 wxString wx_err_string;
1290
1291 // Recover to coarse and start fine print, should recover the selected_filaments
1292 CalibrationMethod temp_method;
1293 int temp_cali_tage = 0;
1294 CalibMode obj_cali_mode = get_obj_calibration_mode(curr_obj, temp_method, temp_cali_tage);
1295 if (selected_filaments.empty() && stage == CaliPresetStage::CALI_MANUAL_STAGE_2 && obj_cali_mode == CalibMode::Calib_Flow_Rate) {
1296 if (!curr_obj->selected_cali_preset.empty()) {
1297 int selected_tray_id = curr_obj->selected_cali_preset.front().tray_id;
1298 PresetCollection *filament_presets = &wxGetApp().preset_bundle->filaments;
1299 Preset* preset = filament_presets->find_preset(curr_obj->selected_cali_preset.front().name);
1300 plate_type = curr_obj->selected_cali_preset.front().bed_type;
1301 if (preset) {
1302 selected_filaments.insert(std::make_pair(selected_tray_id, preset));
1303 }
1304 }
1305 }
1306
1307 if (!selected_filaments.empty()) {
1308 int selected_tray_id = 0;
1309 get_tray_ams_and_slot_id(curr_obj, selected_filaments.begin()->first, calib_info.ams_id, calib_info.slot_id, selected_tray_id);
1310 calib_info.select_ams = std::to_string(selected_tray_id);
1311 calib_info.extruder_id = preset_page->get_extruder_id_by_tray_id(selected_filaments.begin()->first);
1312 if (from_page == FlowRatioCaliSource::FROM_COARSE_PAGE) {
1313 // The fine pass must run on the extruder the coarse pass used. The cache records it;
1314 // the preset page's selection may have changed or been reset since.
1316 const auto it = cached.find(selected_filaments.begin()->first);
1317 if (it != cached.end())
1318 calib_info.extruder_id = it->second.extruder_id;
1319 }
1320 calib_info.extruder_type = preset_page->get_extruder_type(calib_info.extruder_id);
1321 calib_info.nozzle_volume_type = preset_page->get_nozzle_volume_type(calib_info.extruder_id);
1322 calib_info.nozzle_diameter = preset_page->get_nozzle_diameter(calib_info.extruder_id);
1323 Preset* preset = selected_filaments.begin()->second;
1324 temp_filament_preset = new Preset(preset->type, preset->name + "_temp");
1325 temp_filament_preset->config = preset->config;
1326 if (preset->type == Preset::TYPE_FILAMENT)
1327 temp_filament_preset->filament_id = preset->filament_id;
1328
1329 calib_info.bed_type = plate_type;
1330 calib_info.printer_prest = preset_page->get_printer_preset(curr_obj, preset_page->get_nozzle_diameter(calib_info.extruder_id));
1331 calib_info.print_prest = preset_page->get_print_preset();
1332 calib_info.params.mode = CalibMode::Calib_Flow_Rate;
1333
1335 cali_stage = 1;
1336 calib_info.process_bar = preset_page->get_sending_progress_bar();
1337 }
1338 else if (stage == CaliPresetStage::CALI_MANUAL_STAGE_2) {
1339 cali_stage = 2;
1340 auto flow_ratio_values = temp_filament_preset->config.option<ConfigOptionFloatsNullable>("filament_flow_ratio")->values;
1341 std::map<std::string, ConfigIndexValue> key_value_map = generate_index_key_value(curr_obj, "filament_flow_ratio", cali_value);
1342 if (!key_value_map.empty()) {
1343 flow_ratio_values[key_value_map.begin()->second.index] = key_value_map.begin()->second.value;
1344 }
1345
1346 temp_filament_preset->config.set_key_value("filament_flow_ratio", new ConfigOptionFloatsNullable{flow_ratio_values});
1347 if (from_page == FlowRatioCaliSource::FROM_PRESET_PAGE) {
1348 calib_info.process_bar = preset_page->get_sending_progress_bar();
1349 }
1350 else if (from_page == FlowRatioCaliSource::FROM_COARSE_PAGE) {
1351 calib_info.process_bar = coarse_page->get_sending_progress_bar();
1352 }
1353 }
1354 calib_info.filament_prest = temp_filament_preset;
1355
1356 std::map<int, DynamicPrintConfig> filament_list = preset_page->get_filament_ams_list();
1357 calib_info.filament_color = filament_list[selected_filaments.begin()->first].opt_string("filament_colour", 0u);
1358
1359 if (cali_stage > 0) {
1360 if (!CalibUtils::calib_flowrate(cali_stage, calib_info, wx_err_string)) {
1361 if (!wx_err_string.empty()) {
1362 MessageDialog msg_dlg(nullptr, wx_err_string, wxEmptyString, wxICON_WARNING | wxOK);
1363 msg_dlg.ShowModal();
1364 }
1365 return;
1366 }
1367 }
1368 else {
1369 wx_err_string = _L("Internal Error") + wxString(": Invalid calibration stage");
1370 }
1371 } else {
1372 wx_err_string = _L("Please select at least one filament for calibration");
1373 }
1374
1375 if (!wx_err_string.empty()) {
1376 MessageDialog msg_dlg(nullptr, wx_err_string, wxEmptyString, wxICON_WARNING | wxOK);
1377 msg_dlg.ShowModal();
1378 return;
1379 }
1380 if (temp_filament_preset)
1381 delete temp_filament_preset;
1382
1383 if (cali_stage == 1) {
1384 CalibrationCaliPage *cali_coarse_page = (static_cast<CalibrationCaliPage *>(cali_coarse_step->page));
1385 cali_coarse_page->clear_last_job_status();
1386 preset_page->on_cali_start_job();
1387 }
1388 else if (cali_stage == 2) {
1389 CalibrationCaliPage *cali_fine_page = (static_cast<CalibrationCaliPage *>(cali_fine_step->page));
1390 cali_fine_page->clear_last_job_status();
1391 if (from_page == FlowRatioCaliSource::FROM_PRESET_PAGE) {
1392 preset_page->on_cali_start_job();
1393 }
1394 else if (from_page == FlowRatioCaliSource::FROM_COARSE_PAGE) {
1395 coarse_page->on_cali_start_job();
1396 }
1397 }
1398 } else {
1399 assert(false);
1400 }
1401}
static void calib_flowrate_X1C(const X1CCalibInfos &calib_infos, wxString &error_message)
Definition CalibUtils.cpp:673
static bool calib_flowrate(int pass, const CalibInfo &calib_info, wxString &error_message)
Definition CalibUtils.cpp:720
virtual void cache_preset_info(MachineObject *obj, float nozzle_dia, BedType bed_type)
Definition CalibrationWizard.cpp:417
void cache_coarse_info(MachineObject *obj)
Definition CalibrationWizard.cpp:1614
@ TYPE_FILAMENT
Definition Preset.hpp:248
static bool get_preset_info(const DynamicConfig &config, const BedType plate_type, int &nozzle_temp, int &bed_temp, float &max_volumetric_speed)
Definition CalibrationWizard.cpp:675
static bool get_flow_ratio(const DynamicConfig &config, float &flow_ratio)
Definition CalibrationWizard.cpp:691
@ CALI_MANUAL_STAGE_1
Definition CalibrationWizardPresetPage.hpp:34
BedType
Definition PrintConfig.hpp:507
@ btDefault
Definition PrintConfig.hpp:508
@ Preset
Definition calib.hpp:39

References _L, Slic3r::GUI::CalibInfo::ams_id, Slic3r::X1CCalibInfos::X1CCalibInfo::ams_id, Slic3r::X1CCalibInfos::X1CCalibInfo::bed_temp, Slic3r::GUI::CalibInfo::bed_type, Slic3r::btDefault, cache_coarse_info(), Slic3r::GUI::CalibrationWizard::cache_preset_info(), Slic3r::GUI::CalibrationWizard::cali_coarse_step, Slic3r::GUI::CalibrationWizard::cali_fine_step, Slic3r::GUI::CALI_MANUAL_STAGE_1, Slic3r::GUI::CALI_MANUAL_STAGE_2, Slic3r::GUI::CALI_METHOD_AUTO, Slic3r::GUI::CALI_METHOD_MANUAL, Slic3r::X1CCalibInfos::cali_mode, Slic3r::GUI::CalibrationWizard::cali_step, Slic3r::X1CCalibInfos::calib_datas, Slic3r::Calib_Flow_Rate, Slic3r::GUI::CalibUtils::calib_flowrate(), Slic3r::GUI::CalibUtils::calib_flowrate_X1C(), Slic3r::GUI::CalibrationCaliPage::clear_last_job_status(), Slic3r::GUI::CalibrationWizard::coarse_save_step, Slic3r::Preset::config, Slic3r::GUI::CalibrationWizard::curr_obj, Slic3r::GUI::CalibInfo::dev_id, Slic3r::GUI::CalibInfo::extruder_id, Slic3r::X1CCalibInfos::X1CCalibInfo::extruder_id, Slic3r::GUI::CalibInfo::extruder_type, Slic3r::X1CCalibInfos::X1CCalibInfo::extruder_type, Slic3r::GUI::CalibInfo::filament_color, Slic3r::Preset::filament_id, Slic3r::X1CCalibInfos::X1CCalibInfo::filament_id, Slic3r::GUI::CalibInfo::filament_prest, Slic3r::PresetCollection::find_preset(), Slic3r::X1CCalibInfos::X1CCalibInfo::flow_rate, Slic3r::GUI::FROM_COARSE_PAGE, Slic3r::GUI::FROM_PRESET_PAGE, generate_index_key_value(), Slic3r::GUI::get_cached_selected_filament(), Slic3r::GUI::get_cached_selected_filament_for_multi_extruder(), Slic3r::GUI::CalibrationPresetPage::get_extruder_id_by_tray_id(), Slic3r::GUI::CalibrationPresetPage::get_extruder_type(), Slic3r::GUI::CalibrationPresetPage::get_filament_ams_list(), Slic3r::GUI::get_flow_ratio(), Slic3r::GUI::CalibrationPresetPage::get_nozzle_diameter(), Slic3r::GUI::CalibrationPresetPage::get_nozzle_volume_type(), Slic3r::GUI::get_obj_calibration_mode(), Slic3r::GUI::CalibrationPresetPage::get_preset_info(), Slic3r::GUI::get_preset_info(), Slic3r::GUI::CalibrationPresetPage::get_print_preset(), Slic3r::GUI::CalibrationPresetPage::get_printer_preset(), Slic3r::GUI::CalibrationPresetPage::get_selected_filaments(), Slic3r::GUI::CalibrationFlowCoarseSavePage::get_sending_progress_bar(), Slic3r::GUI::CalibrationPresetPage::get_sending_progress_bar(), Slic3r::GUI::get_tray_ams_and_slot_id(), Slic3r::GUI::CalibrationWizard::m_cali_method, Slic3r::GUI::CalibrationWizard::m_curr_step, Slic3r::X1CCalibInfos::X1CCalibInfo::max_volumetric_speed, Slic3r::Calib_Params::mode, Slic3r::Preset::name, Slic3r::GUI::CalibInfo::nozzle_diameter, Slic3r::X1CCalibInfos::X1CCalibInfo::nozzle_diameter, Slic3r::X1CCalibInfos::X1CCalibInfo::nozzle_temp, Slic3r::GUI::CalibInfo::nozzle_volume_type, Slic3r::X1CCalibInfos::X1CCalibInfo::nozzle_volume_type, Slic3r::GUI::CalibrationFlowCoarseSavePage::on_cali_start_job(), Slic3r::GUI::CalibrationPresetPage::on_cali_start_job(), Slic3r::ConfigBase::option(), Slic3r::GUI::CalibInfo::params, Slic3r::Preset, Slic3r::GUI::CalibrationWizard::preset_step, Slic3r::GUI::CalibInfo::print_prest, Slic3r::GUI::CalibInfo::printer_prest, Slic3r::GUI::CalibInfo::process_bar, Slic3r::GUI::CalibInfo::select_ams, Slic3r::DynamicConfig::set_key_value(), Slic3r::X1CCalibInfos::X1CCalibInfo::setting_id, Slic3r::GUI::CalibrationWizard::show_step(), Slic3r::GUI::DPIAware< P >::ShowModal(), Slic3r::GUI::CalibInfo::slot_id, Slic3r::X1CCalibInfos::X1CCalibInfo::slot_id, Slic3r::X1CCalibInfos::X1CCalibInfo::tray_id, Slic3r::Preset::type, and Slic3r::Preset::TYPE_FILAMENT.

Referenced by on_cali_action().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ on_device_connected()

void Slic3r::GUI::FlowRateWizard::on_device_connected ( MachineObject * obj)
overrideprotectedvirtual

Reimplemented from Slic3r::GUI::CalibrationWizard.

1500{
1502
1503 CalibrationMethod method;
1504 int cali_stage = 0;
1505 CalibMode obj_cali_mode = get_obj_calibration_mode(obj, method, cali_stage);
1506
1507 // show cali step when obj is in pa calibration
1508 if (obj) {
1509 this->set_cali_method(method);
1510 if (obj_cali_mode == m_mode) {
1511 if (!obj->cali_finished && (obj->is_in_printing() || obj->is_printing_finished())) {
1513 if (cali_stage == 1) {
1516 }
1517 else if (cali_stage == 2) {
1518 if (m_curr_step != cali_fine_step) {
1520 }
1521 }
1522 else
1524 }
1525 else if (method == CalibrationMethod::CALI_METHOD_AUTO) {
1526 if (m_curr_step != cali_step)
1528 }
1529 }
1530 }
1531 }
1532}
virtual void on_device_connected(MachineObject *obj)
Definition CalibrationWizard.cpp:218

References Slic3r::GUI::CalibrationWizard::cali_coarse_step, Slic3r::GUI::CalibrationWizard::cali_fine_step, Slic3r::MachineObject::cali_finished, Slic3r::GUI::CALI_METHOD_AUTO, Slic3r::GUI::CALI_METHOD_MANUAL, Slic3r::GUI::CalibrationWizard::cali_step, Slic3r::GUI::get_obj_calibration_mode(), Slic3r::MachineObject::is_in_printing(), Slic3r::MachineObject::is_printing_finished(), Slic3r::GUI::CalibrationWizard::m_curr_step, Slic3r::GUI::CalibrationWizard::m_mode, Slic3r::GUI::CalibrationWizard::on_device_connected(), set_cali_method(), and Slic3r::GUI::CalibrationWizard::show_step().

Here is the call graph for this function:

◆ on_sys_color_changed()

void Slic3r::GUI::CalibrationWizard::on_sys_color_changed ( )
inherited
492{
493 for (int i = 0; i < m_page_steps.size(); i++) {
494 if (m_page_steps[i]->page)
495 m_page_steps[i]->page->on_sys_color_changed();
496 }
497}

References m_page_steps.

◆ recover_preset_info()

void Slic3r::GUI::CalibrationWizard::recover_preset_info ( MachineObject * obj)
virtualinherited
456{
457 std::vector<PrinterCaliInfo> back_infos = wxGetApp().app_config->get_printer_cali_infos();
458 for (const auto& back_info : back_infos) {
459 if (obj && (obj->get_dev_id() == back_info.dev_id) ) {
460 obj->set_dev_id(back_info.dev_id);
461 obj->cali_finished = back_info.cali_finished;
462 obj->cache_flow_ratio = back_info.cache_flow_ratio;
463 obj->selected_cali_preset = back_info.selected_presets;
464 obj->flow_ratio_calibration_type = back_info.cache_flow_rate_calibration_type;
465 }
466 }
467}

References Slic3r::MachineObject::cache_flow_ratio, Slic3r::MachineObject::cali_finished, Slic3r::MachineObject::flow_ratio_calibration_type, Slic3r::MachineObject::get_dev_id(), Slic3r::MachineObject::selected_cali_preset, and Slic3r::MachineObject::set_dev_id().

Referenced by on_device_connected().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ save_preset()

bool Slic3r::GUI::CalibrationWizard::save_preset ( const std::string & old_preset_name,
const std::string & new_preset_name,
const std::map< std::string, ConfigOption * > & key_values,
wxString & message )
inherited
260{
261 if (new_preset_name.empty()) {
262 message = _L("The name cannot be empty.");
263 return false;
264 }
265
266 PresetCollection *filament_presets = &wxGetApp().preset_bundle->filaments;
267 Preset* preset = filament_presets->find_preset(old_preset_name);
268 if (!preset) {
269 message = wxString::Format(_L("The selected preset: %s was not found."), old_preset_name);
270 return false;
271 }
272
273 Preset temp_preset = *preset;
274
275 std::string new_name = filament_presets->get_preset_name_by_alias(new_preset_name);
276 bool exist_preset = false;
277 // If name is current, get the editing preset
278 Preset *new_preset = filament_presets->find_preset(new_name);
279 if (new_preset) {
280 if (new_preset->is_system) {
281 message = _L("The name cannot be the same as the system preset name.");
282 return false;
283 }
284
285 if (new_preset != preset) {
286 message = _L("The name is the same as another existing preset name");
287 return false;
288 }
289 if (new_preset != &filament_presets->get_edited_preset()) new_preset = &temp_preset;
290 exist_preset = true;
291 } else {
292 new_preset = &temp_preset;
293 }
294
295 for (auto item : key_values) {
296 new_preset->config.set_key_value(item.first, item.second);
297 }
298
299 // Save the preset into Slic3r::data_dir / presets / section_name / preset_name.ini
300 filament_presets->save_current_preset(new_name, false, false, new_preset);
301
302 // BBS create new settings
303 new_preset = filament_presets->find_preset(new_name, false, true);
304 // Preset* preset = &m_presets.preset(it - m_presets.begin(), true);
305 if (!new_preset) {
306 BOOST_LOG_TRIVIAL(info) << "create new preset failed";
307 message = _L("create new preset failed.");
308 return false;
309 }
310
311 // set sync_info for sync service
312 if (exist_preset) {
313 new_preset->sync_info = "update";
314 BOOST_LOG_TRIVIAL(info) << "sync_preset: update preset = " << new_preset->name;
315 } else {
316 new_preset->sync_info = "create";
317 if (wxGetApp().is_user_login()) new_preset->user_id = wxGetApp().getAgent()->get_user_id();
318 BOOST_LOG_TRIVIAL(info) << "sync_preset: create preset = " << new_preset->name;
319 }
320 new_preset->save_info();
321
322 // Mark the print & filament enabled if they are compatible with the currently selected preset.
323 // If saving the preset changes compatibility with other presets, keep the now incompatible dependent presets selected, however with a "red flag" icon showing that they are
324 // no more compatible.
325 wxGetApp().preset_bundle->update_compatible(PresetSelectCompatibleType::Never);
326
327 // BBS if create a new prset name, preset changed from preset name to new preset name
328 if (!exist_preset) { wxGetApp().plater()->sidebar().update_presets_from_to(Preset::Type::TYPE_FILAMENT, old_preset_name, new_preset->name); }
329
330 // todo: zhimin
331 // wxGetApp().mainframe->update_filament_tab_ui();
332 return true;
333}
@ Never
Definition Preset.hpp:523

References _L, Slic3r::Preset::config, Slic3r::PresetCollection::find_preset(), Slic3r::PresetCollection::get_edited_preset(), Slic3r::PresetCollection::get_preset_name_by_alias(), Slic3r::Preset::is_system, Slic3r::Preset::name, Slic3r::Never, Slic3r::PresetCollection::save_current_preset(), Slic3r::Preset::save_info(), Slic3r::DynamicConfig::set_key_value(), Slic3r::Preset::sync_info, Slic3r::Preset::TYPE_FILAMENT, and Slic3r::Preset::user_id.

Referenced by Slic3r::GUI::FlowRateWizard::on_cali_save(), and Slic3r::GUI::MaxVolumetricSpeedWizard::on_cali_save().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ save_preset_with_index()

bool Slic3r::GUI::CalibrationWizard::save_preset_with_index ( const std::string & old_preset_name,
const std::string & new_preset_name,
const std::map< std::string, ConfigIndexValue > & key_values,
wxString & message )
inherited
336{
337 if (new_preset_name.empty()) {
338 message = _L("The name cannot be empty.");
339 return false;
340 }
341
342 PresetCollection *filament_presets = &wxGetApp().preset_bundle->filaments;
343 Preset *preset = filament_presets->find_preset(old_preset_name);
344 if (!preset) {
345 message = wxString::Format(_L("The selected preset: %s was not found."), old_preset_name);
346 return false;
347 }
348
349 Preset temp_preset = *preset;
350
351 std::string new_name = filament_presets->get_preset_name_by_alias(new_preset_name);
352 bool exist_preset = false;
353 // If name is current, get the editing preset
354 Preset *new_preset = filament_presets->find_preset(new_name);
355 if (new_preset) {
356 if (new_preset->is_system) {
357 message = _L("The name cannot be the same as the system preset name.");
358 return false;
359 }
360
361 if (new_preset != preset) {
362 message = _L("The name is the same as another existing preset name");
363 return false;
364 }
365 if (new_preset != &filament_presets->get_edited_preset())
366 new_preset = &temp_preset;
367 exist_preset = true;
368 } else {
369 new_preset = &temp_preset;
370 }
371
372 for (auto item : key_values) {
373 auto config_opt = new_preset->config.option<ConfigOptionFloatsNullable>(item.first);
374 if (config_opt) {
375 auto& config_value = config_opt->values;
376 config_value[item.second.index] = item.second.value;
377 }
378 else {
379 message = wxString::Format(_L("Could not find parameter: %s."), item.first);
380 }
381 }
382
383 // Save the preset into Slic3r::data_dir / presets / section_name / preset_name.ini
384 filament_presets->save_current_preset(new_name, false, false, new_preset);
385
386 // BBS create new settings
387 new_preset = filament_presets->find_preset(new_name, false, true);
388 // Preset* preset = &m_presets.preset(it - m_presets.begin(), true);
389 if (!new_preset) {
390 BOOST_LOG_TRIVIAL(info) << "create new preset failed";
391 message = _L("create new preset failed.");
392 return false;
393 }
394
395 // set sync_info for sync service
396 if (exist_preset) {
397 new_preset->sync_info = "update";
398 BOOST_LOG_TRIVIAL(info) << "sync_preset: update preset = " << new_preset->name;
399 } else {
400 new_preset->sync_info = "create";
401 if (wxGetApp().is_user_login()) new_preset->user_id = wxGetApp().getAgent()->get_user_id();
402 BOOST_LOG_TRIVIAL(info) << "sync_preset: create preset = " << new_preset->name;
403 }
404 new_preset->save_info();
405
406 // Mark the print & filament enabled if they are compatible with the currently selected preset.
407 // If saving the preset changes compatibility with other presets, keep the now incompatible dependent presets selected, however with a "red flag" icon showing that they are
408 // no more compatible.
409 wxGetApp().preset_bundle->update_compatible(PresetSelectCompatibleType::Never);
410
411 // BBS if create a new prset name, preset changed from preset name to new preset name
412 if (!exist_preset) { wxGetApp().plater()->sidebar().update_presets_from_to(Preset::Type::TYPE_FILAMENT, old_preset_name, new_preset->name); }
413
414 return true;
415}

References _L, Slic3r::Preset::config, Slic3r::PresetCollection::find_preset(), Slic3r::PresetCollection::get_edited_preset(), Slic3r::PresetCollection::get_preset_name_by_alias(), Slic3r::Preset::is_system, Slic3r::Preset::name, Slic3r::Never, Slic3r::ConfigBase::option(), Slic3r::PresetCollection::save_current_preset(), Slic3r::Preset::save_info(), Slic3r::Preset::sync_info, Slic3r::Preset::TYPE_FILAMENT, and Slic3r::Preset::user_id.

Referenced by Slic3r::GUI::FlowRateWizard::on_cali_save().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_cali_method()

void Slic3r::GUI::FlowRateWizard::set_cali_method ( CalibrationMethod method)
overridevirtual

Reimplemented from Slic3r::GUI::CalibrationWizard.

1557{
1558 m_cali_method = method;
1560 m_page_steps.clear();
1561 m_page_steps.push_back(start_step);
1562 m_page_steps.push_back(preset_step);
1563 m_page_steps.push_back(cali_step);
1564 m_page_steps.push_back(save_step);
1565
1566 for (int i = 0; i < m_page_steps.size() - 1; i++) {
1567 m_page_steps[i]->chain(m_page_steps[i + 1]);
1568 }
1569 }
1570 else if (method == CalibrationMethod::CALI_METHOD_MANUAL) {
1571 m_page_steps.clear();
1572 m_page_steps.push_back(start_step);
1573 m_page_steps.push_back(preset_step);
1574 m_page_steps.push_back(cali_coarse_step);
1575 m_page_steps.push_back(coarse_save_step);
1576 m_page_steps.push_back(cali_fine_step);
1577 m_page_steps.push_back(fine_save_step);
1578
1579 for (int i = 0; i < m_page_steps.size() - 1; i++) {
1580 m_page_steps[i]->chain(m_page_steps[i + 1]);
1581 }
1582 }
1583 else {
1584 assert(false);
1585 }
1587}
virtual void set_cali_method(CalibrationMethod method)
Definition CalibrationWizard.cpp:250
@ CALI_METHOD_NEW_AUTO
Definition CalibrationWizardPage.hpp:66

References Slic3r::GUI::CalibrationWizard::cali_coarse_step, Slic3r::GUI::CalibrationWizard::cali_fine_step, Slic3r::GUI::CALI_METHOD_AUTO, Slic3r::GUI::CALI_METHOD_MANUAL, Slic3r::GUI::CALI_METHOD_NEW_AUTO, Slic3r::GUI::CalibrationWizard::cali_step, Slic3r::GUI::CalibrationWizard::coarse_save_step, Slic3r::GUI::CalibrationWizard::fine_save_step, Slic3r::GUI::CalibrationWizard::m_cali_method, Slic3r::GUI::CalibrationWizard::m_page_steps, Slic3r::GUI::CalibrationWizard::preset_step, Slic3r::GUI::CalibrationWizard::save_step, Slic3r::GUI::CalibrationWizard::set_cali_method(), and Slic3r::GUI::CalibrationWizard::start_step.

Referenced by create_pages(), on_cali_action(), and on_device_connected().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_cali_style()

virtual void Slic3r::GUI::CalibrationWizard::set_cali_style ( CalibrationStyle style)
inlinevirtualinherited
76 {
78 }
CalibrationStyle m_cali_style
Definition CalibrationWizard.hpp:106

References m_cali_style, and style.

◆ show_step()

◆ unfinished_child()

StagedBuild * Slic3r::GUI::StagedBuild::unfinished_child ( ) const
inlineprivateinherited
52 {
53 auto it = std::find_if(m_children.begin(), m_children.end(), [](const StagedBuild* child) { return !child->built(); });
54 return it == m_children.end() ? nullptr : *it;
55 }

References m_children.

Referenced by build_step().

Here is the caller graph for this function:

◆ update()

void Slic3r::GUI::FlowRateWizard::update ( MachineObject * obj)
overrideprotectedvirtual

Reimplemented from Slic3r::GUI::CalibrationWizard.

1495{
1497}
virtual void update(MachineObject *obj)
Definition CalibrationWizard.cpp:195

References Slic3r::GUI::CalibrationWizard::update().

Here is the call graph for this function:

Member Data Documentation

◆ cali_coarse_step

◆ cali_fine_step

◆ cali_step

◆ coarse_save_step

◆ curr_obj

◆ fine_save_step

CalibrationWizardPageStep* Slic3r::GUI::CalibrationWizard::fine_save_step { nullptr }
protectedinherited

◆ go_home_dialog

SecondaryCheckDialog* Slic3r::GUI::CalibrationWizard::go_home_dialog = nullptr
protectedinherited

Referenced by on_cali_go_home().

◆ last_obj

MachineObject* Slic3r::GUI::CalibrationWizard::last_obj { nullptr }
protectedinherited
109{ nullptr };

◆ m_all_pages_sizer

wxBoxSizer* Slic3r::GUI::CalibrationWizard::m_all_pages_sizer
protectedinherited

◆ m_cali_method

◆ m_cali_style

CalibrationStyle Slic3r::GUI::CalibrationWizard::m_cali_style
protectedinherited

Referenced by set_cali_style().

◆ m_children

std::vector<StagedBuild*> Slic3r::GUI::StagedBuild::m_children
privateinherited

◆ m_curr_step

◆ m_mode

◆ m_next_step

size_t Slic3r::GUI::StagedBuild::m_next_step { 0 }
privateinherited
59{ 0 };

Referenced by add_build_steps_of(), build_step(), and built().

◆ m_page_steps

◆ m_scrolledWindow

wxScrolledWindow* Slic3r::GUI::CalibrationWizard::m_scrolledWindow
protectedinherited

◆ m_steps

std::vector<std::function<void()> > Slic3r::GUI::StagedBuild::m_steps
privateinherited

◆ preset_step

◆ save_step

◆ start_step


The documentation for this class was generated from the following files: