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

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

Inheritance diagram for Slic3r::GUI::ExtrusionCalibration:
Collaboration diagram for Slic3r::GUI::ExtrusionCalibration:

Public Member Functions

 ExtrusionCalibration (wxWindow *parent, wxWindowID id)
 ~ExtrusionCalibration ()
void create ()
void input_value_finish ()
void update ()
bool Show (bool show) override
void Popup ()
void post_select_event ()
void update_machine_obj (MachineObject *obj_)
void set_step (int step_index)
void EndModal (int retCode) override
float scale_factor () const
float prev_scale_factor () const
void set_scale_factor (float v)
void set_prev_scale_factor (float v)
void set_em_unit (int v)
bool force_rescale () const
int em_unit () const
const wxFont & normal_font () const
void enable_force_rescale ()
int ShowModal ()

Static Public Member Functions

static bool check_k_n_validation (wxString k_text, wxString n_text)
static bool check_k_validation (wxString k_text)

Public Attributes

MachineObject * obj { nullptr }
int ams_id { 0 }
int tray_id { 0 }
std::string ams_filament_id
std::string m_filament_type
std::vector< Preset * > user_filaments

Protected Member Functions

void init_bitmaps ()
void on_dpi_changed (const wxRect &suggested_rect) override
void paint (wxPaintEvent &)
void open_bitmap (wxMouseEvent &event)
void on_select_filament (wxCommandEvent &evt)
void on_select_bed_type (wxCommandEvent &evt)
void on_select_nozzle_dia (wxCommandEvent &evt)
void on_click_cali (wxCommandEvent &evt)
void on_click_cancel (wxCommandEvent &evt)
void on_click_save (wxCommandEvent &evt)
void on_click_last (wxCommandEvent &evt)
void on_click_next (wxCommandEvent &evt)
void update_filament_info ()
void update_combobox_filaments ()
wxString get_bed_type_incompatible (bool incompatible)
void show_info (bool show, bool is_error, wxString text)
int get_bed_temp (DynamicPrintConfig *config)
virtual void on_sys_color_changed ()

Protected Attributes

wxPanel * m_step_1_panel
wxPanel * m_step_2_panel
Label * m_filament_preset_title
ComboBox * m_comboBox_filament
ComboBox * m_comboBox_bed_type
ComboBox * m_comboBox_nozzle_dia
TextInput * m_nozzle_temp
TextInput * m_bed_temp
TextInput * m_max_flow_ratio
Button * m_cali_cancel
Button * m_button_cali
Button * m_button_next_step
Label * m_save_cali_result_title
wxStaticText * m_fill_cali_params_tips
wxStaticText * m_info_text
wxStaticText * m_error_text
wxBitmap m_calibration_tips_open_btn_bmp
wxBitmap m_calibration_tips_bmp_zh
wxBitmap m_calibration_tips_bmp_en
wxStaticBitmap * m_calibration_tips_static_bmp
wxStaticText * m_k_param
TextInput * m_k_val
wxStaticText * m_n_param
TextInput * m_n_val
Button * m_button_last_step
Button * m_button_save_result
bool m_is_zh { false }

Private Member Functions

void update_em_unit ()
bool is_new_scale_factor () const
void rescale (const wxRect &suggested_rect)

Private Attributes

float m_scale_factor
int m_em_unit
wxFont m_normal_font
float m_prev_scale_factor
bool m_can_rescale
bool m_force_rescale
int m_new_font_point_size

Detailed Description

Constructor & Destructor Documentation

◆ ExtrusionCalibration()

Slic3r::GUI::ExtrusionCalibration::ExtrusionCalibration ( wxWindow * parent,
wxWindowID id )
39 : DPIDialog(parent, id, _L("Dynamic flow calibration"), wxDefaultPosition, wxDefaultSize, (wxSYSTEM_MENU |
40 wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxCLOSE_BOX | wxCAPTION |wxCLIP_CHILDREN))
41{
42 create();
43 wxGetApp().UpdateDlgDarkUI(this);
44}
#define _L(s)
Definition OBJ.cpp:34
void create()
Definition ExtrusionCalibration.cpp:60

References _L, and create().

Here is the call graph for this function:

◆ ~ExtrusionCalibration()

Slic3r::GUI::ExtrusionCalibration::~ExtrusionCalibration ( )
321{
322 m_comboBox_filament->Disconnect(wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler(ExtrusionCalibration::on_select_filament), NULL, this);
323 m_comboBox_bed_type->Disconnect(wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler(ExtrusionCalibration::on_select_bed_type), NULL, this);
324 m_comboBox_nozzle_dia->Disconnect(wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler(ExtrusionCalibration::on_select_nozzle_dia), NULL, this);
325}
void on_select_filament(wxCommandEvent &evt)
Definition ExtrusionCalibration.cpp:749
ComboBox * m_comboBox_nozzle_dia
Definition ExtrusionCalibration.hpp:123
void on_select_bed_type(wxCommandEvent &evt)
Definition ExtrusionCalibration.cpp:823
void on_select_nozzle_dia(wxCommandEvent &evt)
Definition ExtrusionCalibration.cpp:828
ComboBox * m_comboBox_filament
Definition ExtrusionCalibration.hpp:111
ComboBox * m_comboBox_bed_type
Definition ExtrusionCalibration.hpp:117

References m_comboBox_bed_type, m_comboBox_filament, m_comboBox_nozzle_dia, on_select_bed_type(), on_select_filament(), and on_select_nozzle_dia().

Here is the call graph for this function:

Member Function Documentation

◆ check_k_n_validation()

bool Slic3r::GUI::ExtrusionCalibration::check_k_n_validation ( wxString k_text,
wxString n_text )
static
510{
511 if (k_text.IsEmpty() || n_text.IsEmpty())
512 return false;
513 double k = 0.0;
514 try {
515 k_text.ToDouble(&k);
516 }
517 catch (...) {
518 ;
519 }
520
521 double n = 0.0;
522 try {
523 n_text.ToDouble(&n);
524 }
525 catch (...) {
526 ;
527 }
528 if (k <= MIN_PA_K_VALUE || k >= MAX_PA_K_VALUE)
529 return false;
530 if (n < 0.6 || n > 2.0)
531 return false;
532 return true;
533}
const double MAX_PA_K_VALUE
Definition CalibUtils.cpp:68

References Slic3r::GUI::MAX_PA_K_VALUE.

◆ check_k_validation()

bool Slic3r::GUI::ExtrusionCalibration::check_k_validation ( wxString k_text)
static
493{
494 if (k_text.IsEmpty())
495 return false;
496 double k = 0.0;
497 try {
498 k_text.ToDouble(&k);
499 }
500 catch (...) {
501 ;
502 }
503
504 if (k <= MIN_PA_K_VALUE || k >= MAX_PA_K_VALUE)
505 return false;
506 return true;
507}

References Slic3r::GUI::MAX_PA_K_VALUE.

Referenced by on_click_save(), and Slic3r::GUI::AMSMaterialsSetting::on_select_ok().

Here is the caller graph for this function:

◆ create()

void Slic3r::GUI::ExtrusionCalibration::create ( )
61{
63 SetBackgroundColour(*wxWHITE);
64 wxBoxSizer* sizer_main = new wxBoxSizer(wxVERTICAL);
65 m_step_1_panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
66 m_step_1_panel->SetBackgroundColour(*wxWHITE);
67 wxBoxSizer* step_1_sizer = new wxBoxSizer(wxVERTICAL);
68
69 m_step_1_panel->SetSizer(step_1_sizer);
70
71 step_1_sizer->Add(0, EXTRUSION_CALIBRATION_WIDGET_GAP, 0, 0);
72
73 // filament title
74 wxString intro_text = _L("The nozzle temp and max volumetric speed will affect the calibration results. Please fill in the same values as the actual printing. They can be auto-filled by selecting a filament preset.");
75 m_filament_preset_title = new Label(m_step_1_panel, intro_text);
78 m_filament_preset_title->Wrap(this->GetSize().x);
79 step_1_sizer->Add(m_filament_preset_title, 0, wxEXPAND);
80
81 step_1_sizer->AddSpacer(FromDIP(12));
82
83 auto select_sizer = new wxBoxSizer(wxVERTICAL);
84
85 auto nozzle_dia_sel_text = new wxStaticText(m_step_1_panel, wxID_ANY, _L("Nozzle Diameter"), wxDefaultPosition, wxDefaultSize, 0);
86 select_sizer->Add(nozzle_dia_sel_text, 0, wxALIGN_LEFT);
87 select_sizer->AddSpacer(FromDIP(4));
88
89
90#ifdef __APPLE__
91 m_comboBox_nozzle_dia = new wxComboBox(m_step_1_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, EXTRUSION_CALIBRATION_BED_COMBOX, 0, nullptr, wxCB_READONLY);
92#else
93 m_comboBox_nozzle_dia = new ComboBox(m_step_1_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, EXTRUSION_CALIBRATION_BED_COMBOX, 0, nullptr, wxCB_READONLY);
94#endif
95 m_comboBox_nozzle_dia->AppendString(wxString::Format("%1.1f", 0.2));
96 m_comboBox_nozzle_dia->AppendString(wxString::Format("%1.1f", 0.4));
97 m_comboBox_nozzle_dia->AppendString(wxString::Format("%1.1f", 0.6));
98 m_comboBox_nozzle_dia->AppendString(wxString::Format("%1.1f", 0.8));
99
100 select_sizer->Add(m_comboBox_nozzle_dia, 0, wxEXPAND);
101 select_sizer->Add(0, EXTRUSION_CALIBRATION_WIDGET_GAP, 0, 0);
102
103 auto filament_sel_text = new wxStaticText(m_step_1_panel, wxID_ANY, _L("Filament"), wxDefaultPosition, wxDefaultSize, 0);
104 select_sizer->Add(filament_sel_text, 0, wxALIGN_LEFT);
105 select_sizer->AddSpacer(FromDIP(4));
106#ifdef __APPLE__
107 m_comboBox_filament = new wxComboBox(m_step_1_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, EXTRUSION_CALIBRATION_BED_COMBOX, 0, nullptr, wxCB_READONLY);
108#else
109 m_comboBox_filament = new ComboBox(m_step_1_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, EXTRUSION_CALIBRATION_BED_COMBOX, 0, nullptr, wxCB_READONLY);
110#endif
111 select_sizer->Add(m_comboBox_filament, 0, wxEXPAND);
112 select_sizer->Add(0, EXTRUSION_CALIBRATION_WIDGET_GAP, 0, 0);
113
114 auto bed_type_sel_text = new wxStaticText(m_step_1_panel, wxID_ANY, _L("Plate Type"), wxDefaultPosition, wxDefaultSize, 0);
115 select_sizer->Add(bed_type_sel_text, 0, wxALIGN_LEFT);
116 select_sizer->AddSpacer(FromDIP(4));
117
118#ifdef __APPLE__
119 m_comboBox_bed_type = new wxComboBox(m_step_1_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, EXTRUSION_CALIBRATION_BED_COMBOX, 0, nullptr, wxCB_READONLY);
120#else
121 m_comboBox_bed_type = new ComboBox(m_step_1_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, EXTRUSION_CALIBRATION_BED_COMBOX, 0, nullptr, wxCB_READONLY);
122#endif
123 select_sizer->Add(m_comboBox_bed_type, 0, wxEXPAND);
124
125 // get bed type
126 const ConfigOptionDef* bed_type_def = print_config_def.get("curr_bed_type");
127 if (bed_type_def && bed_type_def->enum_keys_map) {
128 for (auto item : *bed_type_def->enum_keys_map) {
129 if (item.first == "Default Plate")
130 continue;
131 m_comboBox_bed_type->AppendString(_L(item.first));
132 }
133 }
134
135 step_1_sizer->Add(select_sizer, 0, wxEXPAND);
136
137 // static line
138 step_1_sizer->Add(0, EXTRUSION_CALIBRATION_WIDGET_GAP, 0, 0);
139 wxPanel* static_line = new wxPanel(m_step_1_panel, wxID_ANY, wxDefaultPosition, { -1, FromDIP(1) });
140 static_line->SetBackgroundColour(EXTRUSION_CALIBRATION_GREY300);
141 step_1_sizer->Add(static_line, 0, wxEXPAND);
142 step_1_sizer->Add(0, EXTRUSION_CALIBRATION_WIDGET_GAP, 0, 0);
143
144 // filament info
145 auto info_sizer = new wxFlexGridSizer(0, 3, 0, FromDIP(16));
146 info_sizer->SetFlexibleDirection(wxBOTH);
147 info_sizer->SetNonFlexibleGrowMode(wxFLEX_GROWMODE_SPECIFIED);
148
149 auto nozzle_temp_sizer = new wxBoxSizer(wxVERTICAL);
150 auto nozzle_temp_text = new wxStaticText(m_step_1_panel, wxID_ANY, _L("Nozzle temperature"));
151 auto max_input_width = std::max(std::max(std::max(wxWindow::GetTextExtent(_L("Nozzle temperature")).x,
152 wxWindow::GetTextExtent(_L("Bed Temperature")).x),
153 wxWindow::GetTextExtent(_L("Max volumetric speed")).x),
155 m_nozzle_temp = new TextInput(m_step_1_panel, wxEmptyString, _L("\u2103" /* °C */), "", wxDefaultPosition, { max_input_width, EXTRUSION_CALIBRATION_INPUT_SIZE.y }, wxTE_READONLY);
156 nozzle_temp_sizer->Add(nozzle_temp_text, 0, wxALIGN_LEFT);
157 nozzle_temp_sizer->AddSpacer(FromDIP(4));
158 nozzle_temp_sizer->Add(m_nozzle_temp, 0, wxEXPAND);
159
160 auto bed_temp_sizer = new wxBoxSizer(wxVERTICAL);
161 auto bed_temp_text = new wxStaticText(m_step_1_panel, wxID_ANY, _L("Bed temperature"));
162 m_bed_temp = new TextInput(m_step_1_panel, wxEmptyString, _L("\u2103" /* °C */), "", wxDefaultPosition, { max_input_width, EXTRUSION_CALIBRATION_INPUT_SIZE.y }, wxTE_READONLY);
163 bed_temp_sizer->Add(bed_temp_text, 0, wxALIGN_LEFT);
164 bed_temp_sizer->AddSpacer(FromDIP(4));
165 bed_temp_sizer->Add(m_bed_temp, 0, wxEXPAND);
166
167 auto max_flow_sizer = new wxBoxSizer(wxVERTICAL);
168 auto max_flow_text = new wxStaticText(m_step_1_panel, wxID_ANY, _L("Max volumetric speed"));
169 m_max_flow_ratio = new TextInput(m_step_1_panel, wxEmptyString, _L("mm³"), "", wxDefaultPosition, { max_input_width, EXTRUSION_CALIBRATION_INPUT_SIZE.y }, wxTE_READONLY);
170 max_flow_sizer->Add(max_flow_text, 0, wxALIGN_LEFT);
171 max_flow_sizer->AddSpacer(FromDIP(4));
172 max_flow_sizer->Add(m_max_flow_ratio, 0, wxEXPAND);
173
174 info_sizer->Add(nozzle_temp_sizer);
175 info_sizer->Add(bed_temp_sizer);
176 info_sizer->Add(max_flow_sizer);
177
178 step_1_sizer->Add(info_sizer, 0, wxEXPAND);
179
180 // static line
181 step_1_sizer->Add(0, EXTRUSION_CALIBRATION_WIDGET_GAP, 0, 0);
182 wxPanel* static_line2 = new wxPanel(m_step_1_panel, wxID_ANY, wxDefaultPosition, { -1, FromDIP(1) });
183 static_line2->SetBackgroundColour(EXTRUSION_CALIBRATION_GREY300);
184 step_1_sizer->Add(static_line2, 0, wxEXPAND);
185 step_1_sizer->Add(0, EXTRUSION_CALIBRATION_WIDGET_GAP, 0, 0);
186
187 auto cali_sizer = new wxBoxSizer(wxHORIZONTAL);
188
189 m_info_text = new wxStaticText(m_step_1_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END);
190 m_info_text->SetFont(Label::Body_12);
191 m_info_text->Hide();
192
193 m_error_text = new wxStaticText(m_step_1_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END);
195 m_error_text->SetForegroundColour(wxColour(208, 27, 27));
196 m_error_text->Hide();
197
198 m_button_cali = new Button(m_step_1_panel, _L("Start"));
200 m_button_cali->Bind(wxEVT_BUTTON, &ExtrusionCalibration::on_click_cali, this);
201
202 m_cali_cancel = new Button(m_step_1_panel, _L("Cancel"));
204 m_cali_cancel->Hide();
205 m_cali_cancel->Bind(wxEVT_BUTTON, &ExtrusionCalibration::on_click_cancel, this);
206
207 m_button_next_step = new Button(m_step_1_panel, _L("Next"));
210 m_button_next_step->Hide();
211
212 cali_sizer->Add(m_info_text, 10, wxALIGN_LEFT | wxRIGHT | wxALIGN_CENTRE_VERTICAL, FromDIP(10));
213 cali_sizer->Add(m_error_text, 10, wxALIGN_LEFT | wxRIGHT | wxALIGN_CENTRE_VERTICAL, FromDIP(10));
214 cali_sizer->AddStretchSpacer();
215 cali_sizer->Add(m_button_cali, 0, wxRIGHT | wxALIGN_CENTRE_VERTICAL, FromDIP(10));
216 cali_sizer->Add(m_cali_cancel, 0, wxRIGHT | wxALIGN_CENTRE_VERTICAL, FromDIP(10));
217 cali_sizer->Add(m_button_next_step, 0, wxRIGHT | wxALIGN_CENTRE_VERTICAL, FromDIP(10));
218
219 step_1_sizer->Add(cali_sizer, 0, wxEXPAND);
220 step_1_sizer->Add(0, EXTRUSION_CALIBRATION_WIDGET_GAP, 0, 0);
221
222
223 m_step_2_panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
224 m_step_2_panel->SetBackgroundColour(*wxWHITE);
225 wxBoxSizer* step_2_sizer = new wxBoxSizer(wxVERTICAL);
226 m_step_2_panel->SetSizer(step_2_sizer);
227
228 step_2_sizer->Add(0, EXTRUSION_CALIBRATION_WIDGET_GAP, 0, 0);
229
230 // save result title and tips
231 wxBoxSizer* save_result_sizer = new wxBoxSizer(wxHORIZONTAL);
232 wxString fill_intro_text = _L("Calibration completed. Please find the most uniform extrusion line on your hot bed like the picture below, and fill the value on its left side into the factor K input box.");
233 m_save_cali_result_title = new Label(m_step_2_panel, fill_intro_text);
236 m_save_cali_result_title->Wrap(this->GetSize().x);
237 save_result_sizer->Add(m_save_cali_result_title, 0, wxEXPAND);
238 step_2_sizer->Add(save_result_sizer, 0, wxEXPAND);
239 step_2_sizer->Add(0, EXTRUSION_CALIBRATION_WIDGET_GAP, 0, 0);
240
241 auto content_sizer = new wxBoxSizer(wxHORIZONTAL);
242 m_calibration_tips_static_bmp = new wxStaticBitmap(m_step_2_panel, wxID_ANY, wxNullBitmap, wxDefaultPosition, EXTRUSION_CALIBRATION_BMP_SIZE, 0);
244 content_sizer->Add(m_calibration_tips_static_bmp, 1, wxEXPAND | wxSHAPED);
245 content_sizer->Add(EXTRUSION_CALIBRATION_WIDGET_GAP, 0, 0, 0);
246 // k/n input value
247 auto kn_sizer = new wxBoxSizer(wxVERTICAL);
248 auto k_val_text = new wxStaticText(m_step_2_panel, wxID_ANY, _L("Factor K"), wxDefaultPosition, wxDefaultSize, 0);
249 m_k_val = new TextInput(m_step_2_panel, wxEmptyString, "", "", wxDefaultPosition, wxDefaultSize);
250 auto n_val_text = new wxStaticText(m_step_2_panel, wxID_ANY, _L("Factor N"), wxDefaultPosition, wxDefaultSize, 0);
251 m_n_val = new TextInput(m_step_2_panel, wxEmptyString, "", "", wxDefaultPosition, wxDefaultSize);
252
253 // hide n
254 n_val_text->Hide();
255 m_n_val->Hide();
256 kn_sizer->Add(k_val_text, 0, wxALIGN_CENTER_VERTICAL);
257 kn_sizer->Add(m_k_val, 0, wxEXPAND);
258 kn_sizer->Add(0, EXTRUSION_CALIBRATION_WIDGET_GAP, 0, 0);
259 kn_sizer->Add(n_val_text, 0, wxALIGN_CENTER_VERTICAL);
260 kn_sizer->Add(m_n_val, 0, wxEXPAND);
261
262 // save button
263 m_button_save_result = new Button(m_step_2_panel, _L("Save"));
266
267 m_button_last_step = new Button(m_step_2_panel, _L_CONTEXT("Back", "Navigation")); // Back for english
270
271
272 kn_sizer->AddStretchSpacer();
273 kn_sizer->Add(m_button_last_step, 0);
274 kn_sizer->AddSpacer(FromDIP(10));
275 kn_sizer->Add(m_button_save_result, 0);
276
277 content_sizer->Add(kn_sizer, 0, wxEXPAND);
278
279 step_2_sizer->Add(content_sizer, 0, wxEXPAND);
280 step_2_sizer->Add(0, EXTRUSION_CALIBRATION_WIDGET_GAP, 0, 0);
281
282 sizer_main->Add(m_step_1_panel, 1, wxEXPAND);
283 sizer_main->Add(m_step_2_panel, 1, wxEXPAND);
284
285 wxBoxSizer* top_sizer = new wxBoxSizer(wxHORIZONTAL);
286 top_sizer->Add(FromDIP(24), 0);
287 top_sizer->Add(sizer_main, 1, wxEXPAND);
288 top_sizer->Add(FromDIP(24), 0);
289 SetSizerAndFit(top_sizer);
290
291 // set default nozzle
292 m_comboBox_nozzle_dia->SetSelection(1);
293 // set a default bed type
294 m_comboBox_bed_type->SetSelection(0);
295 // set to step 1
296 set_step(1);
297
298 Layout();
299
300 m_k_val->GetTextCtrl()->Bind(wxEVT_TEXT_ENTER, [this](wxCommandEvent& e) {
302 e.Skip();
303 });
304
305 m_n_val->GetTextCtrl()->Bind(wxEVT_TEXT_ENTER, [this](wxCommandEvent& e) {
307 e.Skip();
308 });
309
310
312
314
315 m_comboBox_filament->Connect(wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler(ExtrusionCalibration::on_select_filament), NULL, this);
316 m_comboBox_bed_type->Connect(wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler(ExtrusionCalibration::on_select_bed_type), NULL, this);
317 m_comboBox_nozzle_dia->Connect(wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler(ExtrusionCalibration::on_select_nozzle_dia), NULL, this);
318}
@ Confirm
Definition Button.hpp:25
@ Regular
Definition Button.hpp:24
@ Choice
Definition Button.hpp:33
#define EXTRUSION_CALIBRATION_INPUT_SIZE
Definition ExtrusionCalibration.hpp:41
#define EXTRUSION_CALIBRATION_GREY800
Definition ExtrusionCalibration.hpp:30
#define EXTRUSION_CALIBRATION_GREY300
Definition ExtrusionCalibration.hpp:32
#define EXTRUSION_CALIBRATION_BED_COMBOX
Definition ExtrusionCalibration.hpp:39
#define EXTRUSION_CALIBRATION_WIDGET_GAP
Definition ExtrusionCalibration.hpp:36
#define EXTRUSION_CALIBRATION_BMP_SIZE
Definition ExtrusionCalibration.hpp:42
class WXDLLIMPEXP_FWD_CORE wxStaticText
Definition ProgressDialog.hpp:30
static wxFont Body_12
Definition Label.hpp:55
const ConfigOptionDef * get(const t_config_option_key &opt_key) const
Definition Config.hpp:2662
void on_click_save(wxCommandEvent &evt)
Definition ExtrusionCalibration.cpp:535
Button * m_button_cali
Definition ExtrusionCalibration.hpp:130
void input_value_finish()
Definition ExtrusionCalibration.cpp:371
Button * m_cali_cancel
Definition ExtrusionCalibration.hpp:129
void init_bitmaps()
Definition ExtrusionCalibration.cpp:46
Button * m_button_last_step
Definition ExtrusionCalibration.hpp:146
wxStaticText * m_info_text
Definition ExtrusionCalibration.hpp:134
TextInput * m_nozzle_temp
Definition ExtrusionCalibration.hpp:126
void on_click_next(wxCommandEvent &evt)
Definition ExtrusionCalibration.cpp:602
TextInput * m_bed_temp
Definition ExtrusionCalibration.hpp:127
Button * m_button_save_result
Definition ExtrusionCalibration.hpp:147
void set_step(int step_index)
Definition ExtrusionCalibration.cpp:731
wxStaticText * m_error_text
Definition ExtrusionCalibration.hpp:135
TextInput * m_n_val
Definition ExtrusionCalibration.hpp:145
TextInput * m_max_flow_ratio
Definition ExtrusionCalibration.hpp:128
void on_click_cancel(wxCommandEvent &evt)
Definition ExtrusionCalibration.cpp:484
TextInput * m_k_val
Definition ExtrusionCalibration.hpp:143
Label * m_save_cali_result_title
Definition ExtrusionCalibration.hpp:132
void paint(wxPaintEvent &)
Definition ExtrusionCalibration.cpp:327
void on_click_last(wxCommandEvent &evt)
Definition ExtrusionCalibration.cpp:597
wxStaticBitmap * m_calibration_tips_static_bmp
Definition ExtrusionCalibration.hpp:140
void open_bitmap(wxMouseEvent &event)
Definition ExtrusionCalibration.cpp:351
void on_click_cali(wxCommandEvent &evt)
Definition ExtrusionCalibration.cpp:442
wxPanel * m_step_2_panel
Definition ExtrusionCalibration.hpp:103
wxPanel * m_step_1_panel
Definition ExtrusionCalibration.hpp:102
Label * m_filament_preset_title
Definition ExtrusionCalibration.hpp:106
Button * m_button_next_step
Definition ExtrusionCalibration.hpp:131
const PrintConfigDef print_config_def
Definition PrintConfig.cpp:10099
#define _L_CONTEXT(s, ctx)
Definition I18N.hpp:15

References _L, _L_CONTEXT, Label::Body_12, Choice, Confirm, Slic3r::ConfigOptionDef::enum_keys_map, EXTRUSION_CALIBRATION_BED_COMBOX, EXTRUSION_CALIBRATION_BMP_SIZE, EXTRUSION_CALIBRATION_GREY300, EXTRUSION_CALIBRATION_GREY800, EXTRUSION_CALIBRATION_INPUT_SIZE, EXTRUSION_CALIBRATION_WIDGET_GAP, init_bitmaps(), input_value_finish(), m_bed_temp, m_button_cali, m_button_last_step, m_button_next_step, m_button_save_result, m_cali_cancel, m_calibration_tips_static_bmp, m_comboBox_bed_type, m_comboBox_filament, m_comboBox_nozzle_dia, m_error_text, m_filament_preset_title, m_info_text, m_k_val, m_max_flow_ratio, m_n_val, m_nozzle_temp, m_save_cali_result_title, m_step_1_panel, m_step_2_panel, on_click_cali(), on_click_cancel(), on_click_last(), on_click_next(), on_click_save(), on_select_bed_type(), on_select_filament(), on_select_nozzle_dia(), open_bitmap(), paint(), Slic3r::print_config_def, Regular, set_step(), and wxStaticText.

Referenced by ExtrusionCalibration().

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

◆ em_unit()

int Slic3r::GUI::DPIAware< wxDialog >::em_unit ( ) const
inlineinherited
203{ return m_em_unit; }
Definition GUI_Utils.hpp:107

Referenced by Slic3r::GUI::AuxiliaryDialog::AuxiliaryDialog(), Slic3r::GUI::CopyrightsDialog::CopyrightsDialog(), Slic3r::GUI::DesignTextDialog::DesignTextDialog(), Slic3r::GUI::EditGCodeDialog::EditGCodeDialog(), Slic3r::GUI::FileArchiveDialog::FileArchiveDialog(), Slic3r::GUI::MsgNoUpdates::MsgNoUpdates(), Slic3r::GUI::MsgUpdateForced::MsgUpdateForced(), Slic3r::GUI::OAuthDialog::OAuthDialog(), Slic3r::GUI::ParamsDialog::ParamsDialog(), Slic3r::GUI::PhysicalPrinterDialog::PhysicalPrinterDialog(), Slic3r::GUI::SettingsDialog::SettingsDialog(), anonymous_namespace{3DPrinterOS.cpp}::TokenAuthDialog::TokenAuthDialog(), anonymous_namespace{3DPrinterOS.cpp}::UploadOptionsDialog::UploadOptionsDialog(), Slic3r::GUI::PublishSettingsDialog::add_row_ui(), Slic3r::GUI::DiffPresetDialog::complete_dialog_creation(), Slic3r::GUI::DiffPresetDialog::create_edit_sizer(), Slic3r::GUI::DiffPresetDialog::create_presets_sizer(), Slic3r::GUI::DiffPresetDialog::create_tree(), Slic3r::GUI::ElegooPrintHostSendDialog::init(), Slic3r::GUI::FlashforgePrintHostSendDialog::init(), Slic3r::GUI::PrintHostSendDialog::init(), Slic3r::GUI::AboutDialog::on_dpi_changed(), Slic3r::GUI::AuxiliaryDialog::on_dpi_changed(), Slic3r::GUI::BedShapeDialog::on_dpi_changed(), Slic3r::GUI::ConfigWizard::on_dpi_changed(), Slic3r::GUI::CopyrightsDialog::on_dpi_changed(), Slic3r::GUI::DiffPresetDialog::on_dpi_changed(), Slic3r::GUI::EditGCodeDialog::on_dpi_changed(), Slic3r::GUI::FileArchiveDialog::on_dpi_changed(), Slic3r::GUI::OAuthDialog::on_dpi_changed(), Slic3r::GUI::ObjectTableDialog::on_dpi_changed(), Slic3r::GUI::ParamsDialog::on_dpi_changed(), Slic3r::GUI::PhysicalPrinterDialog::on_dpi_changed(), Slic3r::GUI::PrintHostQueueDialog::on_dpi_changed(), Slic3r::GUI::PurgeModeDialog::on_dpi_changed(), Slic3r::GUI::SavePresetDialog::on_dpi_changed(), Slic3r::GUI::SendSystemInfoDialog::on_dpi_changed(), Slic3r::GUI::SettingsDialog::on_dpi_changed(), and Slic3r::GUI::UnsavedChangesDialog::on_dpi_changed().

Here is the caller graph for this function:

◆ enable_force_rescale()

void Slic3r::GUI::DPIAware< wxDialog >::enable_force_rescale ( )
inlineinherited
206{ m_force_rescale = true; }

◆ EndModal()

void Slic3r::GUI::DPIDialog::EndModal ( int retCode)
inlineoverrideinherited
306 {
307 if (!dialogStack.empty() && dialogStack.front() != this) {
308 // This is a bug in wxWidgets
309 // when the dialog is not top modal dialog, EndModal() just hide dialog without quit
310 // the modal event loop. And the modal event loop blocks us from bottom widgets.
311 // Solution: let user click it manually or close outside. FIXME
312 BOOST_LOG_TRIVIAL(warning) << "DPIAware::EndModal Error: dialogStack is not empty, but top dialog is not this one. retCode=" << retCode;
313 return;
314 }
315
316 return wxDialog::EndModal(retCode);
317 }
std::deque< wxDialog * > dialogStack
Definition GUI_Utils.cpp:549

References Slic3r::GUI::dialogStack.

Referenced by Slic3r::GUI::CloneDialog::CloneDialog(), Slic3r::GUI::ConfigWizard::ConfigWizard(), Slic3r::GUI::CreatePresetSuccessfulDialog::CreatePresetSuccessfulDialog(), Slic3r::GUI::DeleteConfirmDialog::DeleteConfirmDialog(), Slic3r::GUI::DesignVariableDialog::DesignVariableDialog(), Slic3r::GUI::anonymous_namespace{PrintHostDialogs.cpp}::FlashforgeSlotDialog::FlashforgeSlotDialog(), Slic3r::GUI::GuideFrame::GuideFrame(), Slic3r::GUI::InputIpAddressDialog::InputIpAddressDialog(), Slic3r::GUI::ManualNozzleCountDialog::ManualNozzleCountDialog(), Slic3r::GUI::MsgUpdateConfig::MsgUpdateConfig(), Slic3r::GUI::MsgUpdateForced::MsgUpdateForced(), Slic3r::GUI::MultiChoiceDialog::MultiChoiceDialog(), Slic3r::GUI::NetworkErrorDialog::NetworkErrorDialog(), Slic3r::GUI::NetworkPluginRestartDialog::NetworkPluginRestartDialog(), Slic3r::GUI::PartSkipConfirmDialog::PartSkipConfirmDialog(), Slic3r::GUI::PhysicalPrinterDialog::PhysicalPrinterDialog(), Slic3r::GUI::PlateNameEditDialog::PlateNameEditDialog(), Slic3r::GUI::PlateSettingsDialog::PlateSettingsDialog(), Slic3r::GUI::PublishSettingsDialog::PublishSettingsDialog(), Slic3r::GUI::SelectMachineDialog::SelectMachineDialog(), Slic3r::GUI::SendFailedConfirm::SendFailedConfirm(), Slic3r::GUI::SendSystemInfoDialog::SendSystemInfoDialog(), Slic3r::GUI::ShortcutCaptureDialog::ShortcutCaptureDialog(), Slic3r::GUI::SingleChoiceDialog::SingleChoiceDialog(), StepMeshDialog::StepMeshDialog(), Slic3r::GUI::SyncAmsInfoDialog::SyncAmsInfoDialog(), anonymous_namespace{3DPrinterOS.cpp}::TokenAuthDialog::TokenAuthDialog(), Slic3r::GUI::UpdatePluginDialog::UpdatePluginDialog(), Slic3r::GUI::UpdateVersionDialog::UpdateVersionDialog(), Slic3r::GUI::wgtDeviceNozzleRackUpgradeDlg::wgtDeviceNozzleRackUpgradeDlg(), Slic3r::GUI::SavePresetDialog::accept(), Slic3r::GUI::MsgDialog::add_button(), Slic3r::GUI::TipsDialog::add_button(), Slic3r::GUI::FilamentPickerDialog::BindEvents(), Slic3r::GUI::PluginPickerDialog::build_capability_ui(), Slic3r::GUI::BedShapeDialog::build_dialog(), Slic3r::GUI::PluginPickerDialog::build_ui(), Slic3r::GUI::UnsavedChangesDialog::close(), Slic3r::GUI::FileArchiveDialog::create_btn_sizer(), Slic3r::GUI::ColorDecomposeDialog::create_button_panel(), Slic3r::GUI::MixedFilamentDialog::create_button_panel(), Slic3r::GUI::CreateFilamentPresetDialog::create_dialog_buttons(), Slic3r::GUI::CreatePresetForPrinterDialog::create_dialog_buttons(), Slic3r::GUI::EditFilamentPresetDialog::create_dialog_buttons(), Slic3r::GUI::ExportConfigsDialog::create_dialog_buttons(), Slic3r::GUI::PreferencesDialog::create_item_language_combobox(), Slic3r::GUI::PreferencesDialog::create_item_region_combobox(), Slic3r::GUI::PreferencesDialog::create_items(), Slic3r::GUI::CreatePrinterPresetDialog::create_page1_dialog_buttons(), Slic3r::GUI::CreatePrinterPresetDialog::create_page2_dialog_buttons(), Slic3r::GUI::ExportConfigsDialog::data_init(), Slic3r::GUI::WebDialog::destroy_silently(), Slic3r::GUI::EditFilamentPresetDialog::edit_preset(), Slic3r::GUI::ConnectPrinterDialog::end_modal(), Slic3r::GUI::PrintHostSendDialog::EndModal(), Slic3r::GUI::ColorPickerDialog::finish(), Slic3r::GUI::WebDialog::finish(), Slic3r::GUI::Newer3mfVersionDialog::get_btn_sizer(), Slic3r::GUI::ScoreDialog::get_button_sizer(), Slic3r::GUI::WebViewHostDialog::handle_common_script_command(), Slic3r::GUI::ExportPresetBundleDialog::InitExportData(), Slic3r::GUI::SelectMachineDialog::navigate_to_timelapse_page(), Slic3r::GUI::BindMachineDialog::on_bind_success(), Slic3r::GUI::ConnectPrinterDialog::on_button_confirm(), Slic3r::GUI::RecenterDialog::on_button_confirm(), Slic3r::GUI::BindMachineDialog::on_cancel(), Slic3r::GUI::EditCalibrationHistoryDialog::on_cancel(), Slic3r::GUI::InputIpAddressDialog::on_cancel(), Slic3r::GUI::NewCalibrationHistoryDialog::on_cancel(), Slic3r::GUI::OAuthDialog::on_cancel(), Slic3r::GUI::PingCodeBindDialog::on_cancel(), Slic3r::GUI::SelectMachineDialog::on_cancel(), Slic3r::GUI::SendToPrinterDialog::on_cancel(), Slic3r::GUI::SyncAmsInfoDialog::on_cancel(), Slic3r::GUI::UnBindMachineDialog::on_cancel(), Slic3r::GUI::WebDialog::on_close_window(), Slic3r::GUI::NetworkPluginDownloadDialog::on_dont_ask(), Slic3r::GUI::NetworkPluginDownloadDialog::on_download(), Slic3r::GUI::EditDevNameDialog::on_edit_name(), Slic3r::GUI::ConfirmBeforeSendDialog::on_hide(), Slic3r::GUI::PrivacyUpdateDialog::on_hide(), Slic3r::GUI::ShortcutCaptureDialog::on_key(), Slic3r::GUI::TextureImportDialog::on_ok_clicked(), Slic3r::GUI::FileArchiveDialog::on_open_button(), Slic3r::GUI::NetworkPluginDownloadDialog::on_remind_later(), Slic3r::GUI::ProjectDropDialog::on_select_cancel(), Slic3r::GUI::SavePresetDialog::on_select_cancel(), Slic3r::GUI::ProjectDropDialog::on_select_ok(), Slic3r::GUI::SendMultiMachinePage::on_send(), Slic3r::GUI::NetworkPluginDownloadDialog::on_skip(), Slic3r::GUI::TextureImportDialog::on_skip_clicked(), Slic3r::GUI::NetworkPluginDownloadDialog::on_skip_version(), Slic3r::GUI::Cornering_Test_Dlg::on_start(), Slic3r::GUI::FlowRateCalibrationDialog::on_start(), Slic3r::GUI::Input_Shaping_Damp_Test_Dlg::on_start(), Slic3r::GUI::Input_Shaping_Freq_Test_Dlg::on_start(), Slic3r::GUI::MaxVolumetricSpeed_Test_Dlg::on_start(), Slic3r::GUI::PA_Calibration_Dlg::on_start(), Slic3r::GUI::Retraction_Test_Dlg::on_start(), Slic3r::GUI::Temp_Calibration_Dlg::on_start(), Slic3r::GUI::VFA_Test_Dlg::on_start(), Slic3r::GUI::CalibrationDialog::on_start_calibration(), Slic3r::GUI::UnBindMachineDialog::on_unbind_printer(), Slic3r::GUI::PartSkipDialog::OnApplyDialog(), anonymous_namespace{3DPrinterOS.cpp}::TokenAuthDialog::OnCancel(), Slic3r::GUI::AboutDialog::onCloseDialog(), Slic3r::GUI::CopyrightsDialog::onCloseDialog(), Slic3r::GUI::MultiNozzleSyncDialog::OnRackStatusReadingFinished(), Slic3r::GUI::GuideFrame::OnScriptMessage(), Slic3r::GUI::InputIpAddressDialog::OnTimer(), Slic3r::GUI::KBShortcutsDialog::open_mouse_preferences(), Slic3r::GUI::TroubleshootDialog::PackAll(), Slic3r::GUI::TroubleshootDialog::RebuildSystemProfiles(), Slic3r::GUI::SpeedDialWebDialog::run_action(), Slic3r::GUI::OAuthDialog::Show(), Slic3r::GUI::MultiNozzleSyncDialog::UpdateButton(), and Slic3r::GUI::CreatePrinterPresetDialog::validate_input_valid().

◆ force_rescale()

bool Slic3r::GUI::DPIAware< wxDialog >::force_rescale ( ) const
inlineinherited
201{ return m_force_rescale; }

◆ get_bed_temp()

int Slic3r::GUI::ExtrusionCalibration::get_bed_temp ( DynamicPrintConfig * config)
protected
814{
816 const ConfigOptionInts* opt_bed_temp_ints = config->option<ConfigOptionInts>(get_bed_temp_key(curr_bed_type));
817 if (opt_bed_temp_ints) {
818 return opt_bed_temp_ints->get_at(0);
819 }
820 return -1;
821}
static std::string get_bed_temp_key(const BedType type)
Definition PrintConfig.hpp:732
BedType
Definition PrintConfig.hpp:507
@ btDefault
Definition PrintConfig.hpp:508
ConfigOptionIntsTempl< false > ConfigOptionInts
Definition Config.hpp:1154
zaa_minimize_perimeter_height curr_bed_type((ConfigOptionInts, cool_plate_temp))((ConfigOptionInts

References Slic3r::btDefault, Slic3r::curr_bed_type(), Slic3r::ConfigOptionVector< int >::get_at(), Slic3r::get_bed_temp_key(), m_comboBox_bed_type, and Slic3r::ConfigBase::option().

Referenced by on_click_cali(), on_click_save(), and update_filament_info().

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

◆ get_bed_type_incompatible()

wxString Slic3r::GUI::ExtrusionCalibration::get_bed_type_incompatible ( bool incompatible)
protected
689{
690 if (incompatible) {
691 m_button_cali->Enable();
692 return wxEmptyString;
693 }
694 else {
695 m_button_cali->Disable();
696 std::string filament_alias = "";
697 PresetBundle* preset_bundle = wxGetApp().preset_bundle;
698 if (preset_bundle) {
699 for (auto filament_it = preset_bundle->filaments.begin(); filament_it != preset_bundle->filaments.end(); filament_it++) {
700 wxString filament_name = wxString::FromUTF8(filament_it->name);
701 if (filament_name.compare(m_comboBox_filament->GetValue()) == 0) {
702 filament_alias = filament_it->alias;
703 }
704 }
705 }
706 wxString tips = wxString::Format(_L("%s does not support %s"), m_comboBox_bed_type->GetValue(), filament_alias);
707 return tips;
708 }
709}

References _L, Slic3r::PresetCollection::begin(), Slic3r::PresetCollection::end(), Slic3r::PresetBundle::filaments, m_button_cali, m_comboBox_bed_type, and m_comboBox_filament.

Referenced by update().

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

◆ init_bitmaps()

void Slic3r::GUI::ExtrusionCalibration::init_bitmaps ( )
protected
47{
48 auto lan = wxGetApp().app_config->get_language_code();
49 if (lan == "zh-cn") {
50 m_is_zh = true;
51 m_calibration_tips_bmp_zh = create_scaled_bitmap("extrusion_calibration_tips_zh", nullptr, 256);
52 }
53 else{
54 m_is_zh = false;
55 m_calibration_tips_bmp_en = create_scaled_bitmap("extrusion_calibration_tips_en", nullptr, 256);
56 }
57 m_calibration_tips_open_btn_bmp = create_scaled_bitmap("extrusion_calibrati_open_button", nullptr, 16);
58}
wxBitmap m_calibration_tips_bmp_en
Definition ExtrusionCalibration.hpp:139
bool m_is_zh
Definition ExtrusionCalibration.hpp:149
wxBitmap m_calibration_tips_bmp_zh
Definition ExtrusionCalibration.hpp:138
wxBitmap m_calibration_tips_open_btn_bmp
Definition ExtrusionCalibration.hpp:137
wxBitmap create_scaled_bitmap(const std::string &bmp_name_in, wxWindow *win, const int px_cnt, const bool grayscale, const std::string &new_color, const bool menu_bitmap, const bool resize, const bool bitmap2, const std::vector< std::string > &array_new_color)
Definition wxExtensions.cpp:448

References create_scaled_bitmap(), m_calibration_tips_bmp_en, m_calibration_tips_bmp_zh, m_calibration_tips_open_btn_bmp, and m_is_zh.

Referenced by create().

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

◆ input_value_finish()

void Slic3r::GUI::ExtrusionCalibration::input_value_finish ( )
372{
373 ;
374}

Referenced by create().

Here is the caller graph for this function:

◆ is_new_scale_factor()

bool Slic3r::GUI::DPIAware< wxDialog >::is_new_scale_factor ( ) const
inlineprivateinherited
262{ return fabs(m_scale_factor - m_prev_scale_factor) > 0.001; }

◆ normal_font()

◆ on_click_cali()

void Slic3r::GUI::ExtrusionCalibration::on_click_cali ( wxCommandEvent & evt)
protected
443{
444 if (obj) {
445 int nozzle_temp = -1;
446 int bed_temp = -1;
447 float max_volumetric_speed = -1;
448
449 PresetBundle* preset_bundle = wxGetApp().preset_bundle;
450 if (preset_bundle) {
451 for (auto it = preset_bundle->filaments.begin(); it != preset_bundle->filaments.end(); it++) {
452 wxString filament_name = wxString::FromUTF8(it->name);
453 if (filament_name.compare(m_comboBox_filament->GetValue()) == 0) {
454 try {
455 bed_temp = get_bed_temp(&it->config);
456 const ConfigOptionInts* nozzle_temp_opt = it->config.option<ConfigOptionInts>("nozzle_temperature");
457 const ConfigOptionFloats* speed_opt = it->config.option<ConfigOptionFloats>("filament_max_volumetric_speed");
458 if (nozzle_temp_opt && speed_opt) {
459 nozzle_temp = nozzle_temp_opt->get_at(0);
460 max_volumetric_speed = speed_opt->get_at(0);
461 if (bed_temp >= 0 && nozzle_temp >= 0 && max_volumetric_speed >= 0) {
462 int curr_tray_id = ams_id * 4 + tray_id;
464 curr_tray_id = tray_id;
465 obj->command_start_extrusion_cali(curr_tray_id, nozzle_temp, bed_temp, max_volumetric_speed, it->setting_id);
466 return;
467 }
468 } else {
469 BOOST_LOG_TRIVIAL(error) << "cali parameters is invalid";
470 }
471 } catch(...) {
472 ;
473 }
474 }
475 }
476 } else {
477 BOOST_LOG_TRIVIAL(error) << "extrusion_cali: preset_bundle is nullptr";
478 }
479 } else {
480 BOOST_LOG_TRIVIAL(error) << "cali obj parameters is invalid";
481 }
482}
#define VIRTUAL_TRAY_MAIN_ID
Definition DevDefs.h:89
MachineObject * obj
Definition ExtrusionCalibration.hpp:71
int get_bed_temp(DynamicPrintConfig *config)
Definition ExtrusionCalibration.cpp:813
int ams_id
Definition ExtrusionCalibration.hpp:72
int tray_id
Definition ExtrusionCalibration.hpp:73
ConfigOptionFloatsTempl< false > ConfigOptionFloats
Definition Config.hpp:1015

References ams_id, Slic3r::PresetCollection::begin(), Slic3r::PresetCollection::end(), Slic3r::PresetBundle::filaments, Slic3r::ConfigOptionVector< int >::get_at(), get_bed_temp(), m_comboBox_filament, obj, tray_id, and VIRTUAL_TRAY_MAIN_ID.

Referenced by create().

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

◆ on_click_cancel()

void Slic3r::GUI::ExtrusionCalibration::on_click_cancel ( wxCommandEvent & evt)
protected
485{
486 if (obj) {
487 BOOST_LOG_TRIVIAL(info) << "extrusion_cali: stop";
488 obj->command_stop_extrusion_cali();
489 }
490}

References obj.

Referenced by create().

Here is the caller graph for this function:

◆ on_click_last()

void Slic3r::GUI::ExtrusionCalibration::on_click_last ( wxCommandEvent & evt)
protected
598{
599 set_step(1);
600}

References set_step().

Referenced by create().

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

◆ on_click_next()

void Slic3r::GUI::ExtrusionCalibration::on_click_next ( wxCommandEvent & evt)
protected
603{
604 set_step(2);
605}

References set_step().

Referenced by create().

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

◆ on_click_save()

void Slic3r::GUI::ExtrusionCalibration::on_click_save ( wxCommandEvent & evt)
protected
536{
537 wxString k_text = m_k_val->GetTextCtrl()->GetValue();
538 wxString n_text = m_n_val->GetTextCtrl()->GetValue();
540 wxString k_tips = wxString::Format(_L("Please input a valid value (K in %.1f~%.1f)"), MIN_PA_K_VALUE, MAX_PA_K_VALUE);
541 wxString kn_tips = wxString::Format(_L("Please input a valid value (K in %.1f~%.1f, N in %.1f~%.1f)"), MIN_PA_K_VALUE, MAX_PA_K_VALUE, 0.6, 2.0);
542 MessageDialog msg_dlg(nullptr, k_tips, wxEmptyString, wxICON_WARNING | wxOK);
543 msg_dlg.ShowModal();
544 return;
545 }
546
547 double k = 0.0;
548 try {
549 k_text.ToDouble(&k);
550 }
551 catch (...) {
552 ;
553 }
554
555 double n = 0.0;
556 try {
557 n_text.ToDouble(&n);
558 }
559 catch (...) {
560 ;
561 }
562
563 // set values
564 int nozzle_temp = -1;
565 int bed_temp = -1;
566 float max_volumetric_speed = -1;
567 std::string setting_id;
568 std::string name;
569 PresetBundle* preset_bundle = wxGetApp().preset_bundle;
570 if (preset_bundle) {
571 for (auto it = preset_bundle->filaments.begin(); it != preset_bundle->filaments.end(); it++) {
572 wxString filament_name = wxString::FromUTF8(it->name);
573 if (filament_name.compare(m_comboBox_filament->GetValue()) == 0) {
574 if (obj) {
575 bed_temp = get_bed_temp(&it->config);
576 const ConfigOptionInts* nozzle_temp_opt = it->config.option<ConfigOptionInts>("nozzle_temperature");
577 const ConfigOptionFloats* speed_opt = it->config.option<ConfigOptionFloats>("filament_max_volumetric_speed");
578 if (nozzle_temp_opt && speed_opt) {
579 nozzle_temp = nozzle_temp_opt->get_at(0);
580 max_volumetric_speed = speed_opt->get_at(0);
581 }
582 setting_id = it->setting_id;
583 name = it->name;
584 }
585 }
586 }
587 }
588
589 // send command
590 int curr_tray_id = ams_id * 4 + tray_id;
592 curr_tray_id = tray_id;
593 obj->command_extrusion_cali_set(curr_tray_id, setting_id, name, k, n, bed_temp, nozzle_temp, max_volumetric_speed);
594 Close();
595}
static bool check_k_validation(wxString k_text)
Definition ExtrusionCalibration.cpp:492
const double MIN_PA_K_VALUE
Definition CalibUtils.cpp:67

References _L, ams_id, Slic3r::PresetCollection::begin(), check_k_validation(), Slic3r::PresetCollection::end(), Slic3r::PresetBundle::filaments, Slic3r::ConfigOptionVector< int >::get_at(), get_bed_temp(), m_comboBox_filament, m_k_val, m_n_val, Slic3r::GUI::MAX_PA_K_VALUE, Slic3r::GUI::MIN_PA_K_VALUE, obj, Slic3r::GUI::DPIAware< P >::ShowModal(), tray_id, and VIRTUAL_TRAY_MAIN_ID.

Referenced by create().

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

◆ on_dpi_changed()

void Slic3r::GUI::ExtrusionCalibration::on_dpi_changed ( const wxRect & suggested_rect)
overrideprotectedvirtual

Implements Slic3r::GUI::DPIAware< wxDialog >.

833{ this->Refresh(); }

◆ on_select_bed_type()

void Slic3r::GUI::ExtrusionCalibration::on_select_bed_type ( wxCommandEvent & evt)
protected
824{
826}
void update_filament_info()
Definition ExtrusionCalibration.cpp:763

References update_filament_info().

Referenced by ~ExtrusionCalibration(), and create().

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

◆ on_select_filament()

void Slic3r::GUI::ExtrusionCalibration::on_select_filament ( wxCommandEvent & evt)
protected
750{
751 m_filament_type = "";
753
754 // set a default value for input values
755 if (m_k_val->GetTextCtrl()->GetValue().IsEmpty()) {
756 m_k_val->GetTextCtrl()->SetValue("0");
757 }
758 if (m_n_val->GetTextCtrl()->GetValue().IsEmpty()) {
759 m_n_val->GetTextCtrl()->SetValue("0");
760 }
761}
std::string m_filament_type
Definition ExtrusionCalibration.hpp:76

References m_filament_type, m_k_val, m_n_val, and update_filament_info().

Referenced by ~ExtrusionCalibration(), and create().

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

◆ on_select_nozzle_dia()

void Slic3r::GUI::ExtrusionCalibration::on_select_nozzle_dia ( wxCommandEvent & evt)
protected
829{
831}
void update_combobox_filaments()
Definition ExtrusionCalibration.cpp:616

References update_combobox_filaments().

Referenced by ~ExtrusionCalibration(), and create().

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

◆ on_sys_color_changed()

◆ open_bitmap()

void Slic3r::GUI::ExtrusionCalibration::open_bitmap ( wxMouseEvent & event)
protected
351 {
352 auto pos = event.GetPosition();
353 auto size = m_calibration_tips_static_bmp->GetSize();
354 if (pos.x > size.x - EXTRUSION_CALIBRATION_BMP_TIP_BAR.y && pos.y > 0 &&
355 pos.x < size.x && pos.y < EXTRUSION_CALIBRATION_BMP_TIP_BAR.y) {
356 auto* popup = new wxDialog(this, wxID_ANY, "", wxDefaultPosition, wxDefaultSize);
357 auto bmp_sizer = new wxBoxSizer(wxVERTICAL);
358 wxStaticBitmap* zoomed_bitmap = new wxStaticBitmap(popup, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0);
359 zoomed_bitmap->SetBitmap(create_scaled_bitmap(m_is_zh ? "extrusion_calibration_tips_zh" : "extrusion_calibration_tips_en", nullptr, 720));
360 bmp_sizer->Add(zoomed_bitmap, 1, wxEXPAND);
361 popup->SetSizer(bmp_sizer);
362 popup->Layout();
363 popup->Fit();
364 popup->CenterOnParent();
365 wxGetApp().UpdateDlgDarkUI(popup);
366 popup->ShowModal();
367 }
368 return;
369}
#define EXTRUSION_CALIBRATION_BMP_TIP_BAR
Definition ExtrusionCalibration.hpp:43
Vec3d pos(const Pt &p)
Definition ReprojectPointsOnMesh.hpp:16

References create_scaled_bitmap(), EXTRUSION_CALIBRATION_BMP_TIP_BAR, m_calibration_tips_static_bmp, m_is_zh, and Slic3r::GUI::wxMouseEvent.

Referenced by create().

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

◆ paint()

void Slic3r::GUI::ExtrusionCalibration::paint ( wxPaintEvent & )
protected
327 {
328 auto size = m_calibration_tips_static_bmp->GetSize();
329 wxPaintDC dc(m_calibration_tips_static_bmp);
330 wxGCDC gcdc(dc);
331
332 dc.DrawBitmap(m_is_zh ? m_calibration_tips_bmp_zh : m_calibration_tips_bmp_en, wxPoint(0, 0));
333
334 gcdc.SetPen(wxColour(0, 0, 0, 61));
335 gcdc.SetBrush(wxColour(0, 0, 0, 61));
336 gcdc.DrawRectangle(wxPoint(0, 0), EXTRUSION_CALIBRATION_BMP_TIP_BAR);
337
338 dc.SetBrush(*wxTRANSPARENT_BRUSH);
340 wxPoint open_btn_pos = wxPoint(size.x - pos_offset - EXTRUSION_CALIBRATION_BMP_BTN_SIZE.x, pos_offset);
341 dc.DrawBitmap(m_calibration_tips_open_btn_bmp, open_btn_pos);
342
343 gcdc.SetFont(Label::Head_14);
344 gcdc.SetTextForeground(wxColour(255, 255, 255, 224));
345 wxSize text_size = wxWindow::GetTextExtent(_L("Example"));
346 gcdc.DrawText(_L("Example"), { (EXTRUSION_CALIBRATION_BMP_TIP_BAR.x - text_size.x) / 2, (EXTRUSION_CALIBRATION_BMP_TIP_BAR.y - text_size.y) / 2});
347
348 return;
349}
#define EXTRUSION_CALIBRATION_BMP_BTN_SIZE
Definition ExtrusionCalibration.hpp:44
static wxFont Head_14
Definition Label.hpp:45

References _L, EXTRUSION_CALIBRATION_BMP_BTN_SIZE, EXTRUSION_CALIBRATION_BMP_TIP_BAR, Label::Head_14, m_calibration_tips_bmp_en, m_calibration_tips_bmp_zh, m_calibration_tips_open_btn_bmp, m_calibration_tips_static_bmp, and m_is_zh.

Referenced by create().

Here is the caller graph for this function:

◆ Popup()

void Slic3r::GUI::ExtrusionCalibration::Popup ( )
712{
714
716
717 set_step(1);
718
719 update();
720 Layout();
721 Fit();
722 wxGetApp().UpdateDlgDarkUI(this);
723 ShowModal();
724}
#define EXTRUSION_CALIBRATION_DIALOG_SIZE
Definition ExtrusionCalibration.hpp:37
int ShowModal()
Definition GUI_Utils.hpp:216
void update()
Definition ExtrusionCalibration.cpp:405

References EXTRUSION_CALIBRATION_DIALOG_SIZE, set_step(), Slic3r::GUI::DPIAware< wxDialog >::ShowModal(), update(), and update_combobox_filaments().

Here is the call graph for this function:

◆ post_select_event()

void Slic3r::GUI::ExtrusionCalibration::post_select_event ( )
725 {
726 wxCommandEvent event(wxEVT_COMBOBOX);
727 event.SetEventObject(m_comboBox_filament);
728 wxPostEvent(m_comboBox_filament, event);
729}

References m_comboBox_filament.

Referenced by update_combobox_filaments().

Here is the caller graph for this function:

◆ prev_scale_factor()

float Slic3r::GUI::DPIAware< wxDialog >::prev_scale_factor ( ) const
inlineinherited
196{ return m_prev_scale_factor; }

◆ rescale()

void Slic3r::GUI::DPIAware< wxDialog >::rescale ( const wxRect & suggested_rect)
inlineprivateinherited
265 {
266 this->Freeze();
267
268 m_force_rescale = false;
269
270 // set normal application font as a current window font
271 m_normal_font = this->GetFont();
272
274
275 // rescale missed controls sizes and images
277
278 this->Layout();
279 this->Thaw();
280
281 // reset previous scale factor from current scale factor value
283 }
virtual void on_dpi_changed(const wxRect &suggested_rect)=0
void update_em_unit()
Definition GUI_Utils.hpp:249

◆ scale_factor()

float Slic3r::GUI::DPIAware< wxDialog >::scale_factor ( ) const
inlineinherited
195{ return m_scale_factor; }

◆ set_em_unit()

void Slic3r::GUI::DPIAware< wxDialog >::set_em_unit ( int v)
inlineinherited
200{ m_em_unit = v; }

◆ set_prev_scale_factor()

void Slic3r::GUI::DPIAware< wxDialog >::set_prev_scale_factor ( float v)
inlineinherited

◆ set_scale_factor()

void Slic3r::GUI::DPIAware< wxDialog >::set_scale_factor ( float v)
inlineinherited
198{ m_scale_factor = v; }

◆ set_step()

void Slic3r::GUI::ExtrusionCalibration::set_step ( int step_index)
732{
733 if (step_index == 2) {
734 wxString title_text = wxString::Format("%s - %s 2/2", _L("Dynamic flow calibration"), _L("Step"));
735 SetTitle(title_text);
736 m_step_1_panel->Hide();
737 m_step_2_panel->Show();
738 } else {
739 wxString title_text = wxString::Format("%s - %s 1/2", _L("Dynamic flow calibration"), _L("Step"));
740 SetTitle(title_text);
741 m_step_1_panel->Show();
742 m_step_2_panel->Hide();
743 }
744 this->SetMinSize(EXTRUSION_CALIBRATION_DIALOG_SIZE);
745 Layout();
746 Fit();
747}

References _L, EXTRUSION_CALIBRATION_DIALOG_SIZE, m_step_1_panel, and m_step_2_panel.

Referenced by create(), on_click_last(), on_click_next(), and Popup().

Here is the caller graph for this function:

◆ Show()

bool Slic3r::GUI::ExtrusionCalibration::Show ( bool show)
override
608{
609 if (show) {
610 m_k_val->GetTextCtrl()->SetSize(wxSize(-1, FromDIP(20)));
611 m_n_val->GetTextCtrl()->SetSize(wxSize(-1, FromDIP(20)));
612 }
613 return DPIDialog::Show(show);
614}

References m_k_val, and m_n_val.

◆ show_info()

void Slic3r::GUI::ExtrusionCalibration::show_info ( bool show,
bool is_error,
wxString text )
protected
377{
378 if (show && is_error) {
379 m_error_text->Show();
380 if (m_error_text->GetLabelText().compare(text) != 0)
381 m_error_text->SetLabelText(text);
382 m_info_text->Hide();
383 }
384 else if (show && !is_error) {
385 m_info_text->Show();
386 if (m_info_text->GetLabelText().compare(text) != 0)
387 m_info_text->SetLabelText(text);
388 m_error_text->Hide();
389 }
390 else {
391 if (is_error) {
392 m_info_text->Hide();
393 m_error_text->Show();
394 if (m_error_text->GetLabelText().compare(text) != 0)
395 m_error_text->SetLabelText(text);
396 } else {
397 m_info_text->Show();
398 if (m_info_text->GetLabelText().compare(text) != 0)
399 m_info_text->SetLabelText(text);
400 m_error_text->Hide();
401 }
402 }
403}

References m_error_text, and m_info_text.

Referenced by update().

Here is the caller graph for this function:

◆ ShowModal()

◆ update()

void Slic3r::GUI::ExtrusionCalibration::update ( )
406{
407 if (obj) {
408 if (obj->is_in_extrusion_cali()) {
409 show_info(true, false, wxString::Format(_L("Calibrating... %d%%"), obj->mc_print_percent));
410 m_cali_cancel->Show();
411 m_cali_cancel->Enable();
412 m_button_cali->Hide();
413 m_button_next_step->Hide();
414 } else if (obj->is_extrusion_cali_finished()) {
415 if (m_bed_temp->GetTextCtrl()->GetValue().compare("0") == 0) {
416 wxString tips = get_bed_type_incompatible(false);
417 show_info(true, true, tips);
418 }
419 else {
421 show_info(true, false, _L("Calibration completed"));
422 }
423 m_cali_cancel->Hide();
424 m_button_cali->Show();
425 m_button_next_step->Show();
426 } else {
427 if (m_bed_temp->GetTextCtrl()->GetValue().compare("0") == 0) {
428 wxString tips = get_bed_type_incompatible(false);
429 show_info(true, true, tips);
430 } else {
432 show_info(true, false, wxEmptyString);
433 }
434 m_cali_cancel->Hide();
435 m_button_cali->Show();
436 m_button_next_step->Hide();
437 }
438 Layout();
439 }
440}
void show_info(bool show, bool is_error, wxString text)
Definition ExtrusionCalibration.cpp:376
wxString get_bed_type_incompatible(bool incompatible)
Definition ExtrusionCalibration.cpp:688

References _L, get_bed_type_incompatible(), m_bed_temp, m_button_cali, m_button_next_step, m_cali_cancel, obj, and show_info().

Referenced by Popup().

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

◆ update_combobox_filaments()

void Slic3r::GUI::ExtrusionCalibration::update_combobox_filaments ( )
protected
617{
618 m_comboBox_filament->SetValue(wxEmptyString);
619 user_filaments.clear();
620 int selection_idx = -1;
621 int filament_index = -1;
622 int curr_selection = -1;
623 wxArrayString filament_items;
624 PresetBundle* preset_bundle = wxGetApp().preset_bundle;
625 if (preset_bundle && obj) {
626 BOOST_LOG_TRIVIAL(trace) << "system_preset_bundle filament number=" << preset_bundle->filaments.size();
627 double nozzle_value = 0.4;
628 m_comboBox_nozzle_dia->GetValue().ToDouble(&nozzle_value);
629
630 std::vector<PresetWithVendorProfile> printer_profiles;
631 for (auto printer_it = preset_bundle->printers.begin(); printer_it != preset_bundle->printers.end(); printer_it++) {
632 // only use system printer preset
633 if (!printer_it->is_system) continue;
634
635 std::string model_id = printer_it->get_current_printer_type(preset_bundle);
636 ConfigOption* printer_nozzle_opt = printer_it->config.option("nozzle_diameter");
637 ConfigOptionFloats* printer_nozzle_vals = nullptr;
638 if (printer_nozzle_opt)
639 printer_nozzle_vals = dynamic_cast<ConfigOptionFloats*>(printer_nozzle_opt);
640 if (!model_id.empty() && model_id.compare(obj->printer_type) == 0
641 && printer_nozzle_vals
642 && abs(printer_nozzle_vals->get_at(0) - nozzle_value) < 1e-3) {
643 printer_profiles.push_back(preset_bundle->printers.get_preset_with_vendor_profile(*printer_it));
644 BOOST_LOG_TRIVIAL(trace) << "extrusion_cali: printer_model = " << model_id;
645 } else {
646 BOOST_LOG_TRIVIAL(error) << "extrusion_cali: printer_model = " << model_id;
647 }
648 }
649
650 // Unlike the AMS dialogs this one offers every matching preset by full name rather than one
651 // root preset per alias, so it filters the collection itself instead of calling
652 // PresetBundle::get_filament_presets_for_machine().
653 for (auto filament_it = preset_bundle->filaments.begin(); filament_it != preset_bundle->filaments.end(); filament_it++) {
654 const PresetWithVendorProfile filament = preset_bundle->filaments.get_preset_with_vendor_profile(*filament_it);
655 if (std::none_of(printer_profiles.begin(), printer_profiles.end(),
656 [&filament](const PresetWithVendorProfile &printer) { return is_compatible_with_printer(filament, printer); }))
657 continue;
658
659 user_filaments.push_back(&(*filament_it));
660
661 // set default filament id
662 filament_index++;
663 if (filament_it->is_system
664 && !ams_filament_id.empty()
665 && filament_it->filament_id == ams_filament_id
666 ) {
667 curr_selection = filament_index;
668 }
669
670 if (filament_it->name == obj->extrusion_cali_filament_name && !obj->extrusion_cali_filament_name.empty())
671 {
672 curr_selection = filament_index;
673 }
674
675 filament_items.Add(wxString::FromUTF8(filament_it->name));
676 }
677 m_comboBox_filament->Set(filament_items);
678 m_comboBox_filament->SetSelection(curr_selection);
680 }
681
682 if (m_comboBox_filament->GetValue().IsEmpty())
683 m_button_cali->Disable();
684 else
685 m_button_cali->Enable();
686}
void post_select_event()
Definition ExtrusionCalibration.cpp:725
std::vector< Preset * > user_filaments
Definition ExtrusionCalibration.hpp:78
std::string ams_filament_id
Definition ExtrusionCalibration.hpp:75
void trace(unsigned int level, const char *message)
Definition utils.cpp:247

References ams_filament_id, Slic3r::PresetCollection::begin(), Slic3r::PresetCollection::end(), Slic3r::PresetBundle::filaments, Slic3r::ConfigOptionVector< double >::get_at(), Slic3r::PresetCollection::get_preset_with_vendor_profile(), m_button_cali, m_comboBox_filament, m_comboBox_nozzle_dia, obj, post_select_event(), Slic3r::PresetBundle::printers, Slic3r::PresetCollection::size(), Slic3r::trace(), and user_filaments.

Referenced by on_select_nozzle_dia(), and Popup().

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

◆ update_em_unit()

void Slic3r::GUI::DPIAware< wxDialog >::update_em_unit ( )
inlineprivateinherited
250 {
251 // Linux specific issue : get_dpi_for_window(this) still doesn't responce to the Display's scale in new wxWidgets(3.1.3).
252 // So, calculate the m_em_unit value from the font size, as before
253#if !defined(__WXGTK__)
255#else
256 // initialize default width_unit according to the width of the one symbol ("m") of the currently active font of this window.
257 m_em_unit = std::max<size_t>(10, this->GetTextExtent("m").x - 1);
258#endif // __WXGTK__
259 }

◆ update_filament_info()

void Slic3r::GUI::ExtrusionCalibration::update_filament_info ( )
protected
764{
765 if (m_comboBox_filament->GetValue().IsEmpty()) {
766 m_nozzle_temp->GetTextCtrl()->SetValue(wxEmptyString);
767 m_bed_temp->GetTextCtrl()->SetValue(wxEmptyString);
768 m_max_flow_ratio->GetTextCtrl()->SetValue(wxEmptyString);
769 return;
770 }
771
772 PresetBundle* preset_bundle = wxGetApp().preset_bundle;
773 int bed_temp_int = -1;
774 if (preset_bundle) {
775 for (auto filament_it = preset_bundle->filaments.begin(); filament_it != preset_bundle->filaments.end(); filament_it++) {
776 wxString filament_name = wxString::FromUTF8(filament_it->name);
777 if (filament_name.compare(m_comboBox_filament->GetValue()) == 0) {
778 m_filament_type = filament_it->name;
779
780 if (obj) {
781 obj->extrusion_cali_filament_name = filament_it->name;
782 BOOST_LOG_TRIVIAL(info) << "set extrusion cali filament name = " << obj->extrusion_cali_filament_name;
783 }
784
785 // update nozzle temperature
786 ConfigOption* opt_nozzle_temp = filament_it->config.option("nozzle_temperature");
787 if (opt_nozzle_temp) {
788 ConfigOptionInts* opt_min_ints = dynamic_cast<ConfigOptionInts*>(opt_nozzle_temp);
789 if (opt_min_ints) {
790 wxString text_nozzle_temp = wxString::Format("%d", opt_min_ints->get_at(0));
791 m_nozzle_temp->GetTextCtrl()->SetValue(text_nozzle_temp);
792 }
793 }
794 // update bed temperature
795 bed_temp_int = get_bed_temp(&filament_it->config);
796 wxString bed_temp_text = wxString::Format("%d", bed_temp_int);
797 m_bed_temp->GetTextCtrl()->SetValue(bed_temp_text);
798
799 // update max flow speed
800 ConfigOption* opt_flow_speed = filament_it->config.option("filament_max_volumetric_speed");
801 if (opt_flow_speed) {
802 ConfigOptionFloats* opt_flow_floats = dynamic_cast<ConfigOptionFloats*>(opt_flow_speed);
803 if (opt_flow_floats) {
804 wxString flow_val_text = wxString::Format("%0.2f", opt_flow_floats->get_at(0));
805 m_max_flow_ratio->GetTextCtrl()->SetValue(flow_val_text);
806 }
807 }
808 }
809 }
810 }
811}

References Slic3r::PresetCollection::begin(), Slic3r::PresetCollection::end(), Slic3r::PresetBundle::filaments, Slic3r::ConfigOptionVector< double >::get_at(), Slic3r::ConfigOptionVector< int >::get_at(), get_bed_temp(), m_bed_temp, m_comboBox_filament, m_filament_type, m_max_flow_ratio, m_nozzle_temp, and obj.

Referenced by on_select_bed_type(), and on_select_filament().

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

◆ update_machine_obj()

void Slic3r::GUI::ExtrusionCalibration::update_machine_obj ( MachineObject * obj_)
inline
63{ obj = obj_; };

References obj.

Member Data Documentation

◆ ams_filament_id

std::string Slic3r::GUI::ExtrusionCalibration::ams_filament_id

◆ ams_id

int Slic3r::GUI::ExtrusionCalibration::ams_id { 0 }
72{ 0 }; /* 0 ~ 3 */

Referenced by on_click_cali(), and on_click_save().

◆ m_bed_temp

TextInput* Slic3r::GUI::ExtrusionCalibration::m_bed_temp
protected

◆ m_button_cali

Button* Slic3r::GUI::ExtrusionCalibration::m_button_cali
protected

◆ m_button_last_step

Button* Slic3r::GUI::ExtrusionCalibration::m_button_last_step
protected

Referenced by create().

◆ m_button_next_step

Button* Slic3r::GUI::ExtrusionCalibration::m_button_next_step
protected

Referenced by create(), and update().

◆ m_button_save_result

Button* Slic3r::GUI::ExtrusionCalibration::m_button_save_result
protected

Referenced by create().

◆ m_cali_cancel

Button* Slic3r::GUI::ExtrusionCalibration::m_cali_cancel
protected

Referenced by create(), and update().

◆ m_calibration_tips_bmp_en

wxBitmap Slic3r::GUI::ExtrusionCalibration::m_calibration_tips_bmp_en
protected

Referenced by init_bitmaps(), and paint().

◆ m_calibration_tips_bmp_zh

wxBitmap Slic3r::GUI::ExtrusionCalibration::m_calibration_tips_bmp_zh
protected

Referenced by init_bitmaps(), and paint().

◆ m_calibration_tips_open_btn_bmp

wxBitmap Slic3r::GUI::ExtrusionCalibration::m_calibration_tips_open_btn_bmp
protected

Referenced by init_bitmaps(), and paint().

◆ m_calibration_tips_static_bmp

wxStaticBitmap* Slic3r::GUI::ExtrusionCalibration::m_calibration_tips_static_bmp
protected

Referenced by create(), open_bitmap(), and paint().

◆ m_can_rescale

bool Slic3r::GUI::DPIAware< wxDialog >::m_can_rescale
privateinherited
235{ true };

◆ m_comboBox_bed_type

ComboBox* Slic3r::GUI::ExtrusionCalibration::m_comboBox_bed_type
protected

◆ m_comboBox_filament

◆ m_comboBox_nozzle_dia

ComboBox* Slic3r::GUI::ExtrusionCalibration::m_comboBox_nozzle_dia
protected

◆ m_em_unit

int Slic3r::GUI::DPIAware< wxDialog >::m_em_unit
privateinherited

◆ m_error_text

wxStaticText* Slic3r::GUI::ExtrusionCalibration::m_error_text
protected

Referenced by create(), and show_info().

◆ m_filament_preset_title

Label* Slic3r::GUI::ExtrusionCalibration::m_filament_preset_title
protected

Referenced by create().

◆ m_filament_type

std::string Slic3r::GUI::ExtrusionCalibration::m_filament_type

◆ m_fill_cali_params_tips

wxStaticText* Slic3r::GUI::ExtrusionCalibration::m_fill_cali_params_tips
protected

◆ m_force_rescale

bool Slic3r::GUI::DPIAware< wxDialog >::m_force_rescale
privateinherited
236{ false };

◆ m_info_text

wxStaticText* Slic3r::GUI::ExtrusionCalibration::m_info_text
protected

Referenced by create(), and show_info().

◆ m_is_zh

bool Slic3r::GUI::ExtrusionCalibration::m_is_zh { false }
protected
149{ false };

Referenced by init_bitmaps(), open_bitmap(), and paint().

◆ m_k_param

wxStaticText* Slic3r::GUI::ExtrusionCalibration::m_k_param
protected

◆ m_k_val

TextInput* Slic3r::GUI::ExtrusionCalibration::m_k_val
protected

◆ m_max_flow_ratio

TextInput* Slic3r::GUI::ExtrusionCalibration::m_max_flow_ratio
protected

Referenced by create(), and update_filament_info().

◆ m_n_param

wxStaticText* Slic3r::GUI::ExtrusionCalibration::m_n_param
protected

◆ m_n_val

TextInput* Slic3r::GUI::ExtrusionCalibration::m_n_val
protected

◆ m_new_font_point_size

int Slic3r::GUI::DPIAware< wxDialog >::m_new_font_point_size
privateinherited

◆ m_normal_font

wxFont Slic3r::GUI::DPIAware< wxDialog >::m_normal_font
privateinherited

◆ m_nozzle_temp

TextInput* Slic3r::GUI::ExtrusionCalibration::m_nozzle_temp
protected

Referenced by create(), and update_filament_info().

◆ m_prev_scale_factor

float Slic3r::GUI::DPIAware< wxDialog >::m_prev_scale_factor
privateinherited

◆ m_save_cali_result_title

Label* Slic3r::GUI::ExtrusionCalibration::m_save_cali_result_title
protected

Referenced by create().

◆ m_scale_factor

float Slic3r::GUI::DPIAware< wxDialog >::m_scale_factor
privateinherited

◆ m_step_1_panel

wxPanel* Slic3r::GUI::ExtrusionCalibration::m_step_1_panel
protected

Referenced by create(), and set_step().

◆ m_step_2_panel

wxPanel* Slic3r::GUI::ExtrusionCalibration::m_step_2_panel
protected

Referenced by create(), and set_step().

◆ obj

◆ tray_id

int Slic3r::GUI::ExtrusionCalibration::tray_id { 0 }
73{ 0 }; /* 0 ~ 3 | 254 for virtual tray id*/

Referenced by on_click_cali(), and on_click_save().

◆ user_filaments

std::vector<Preset*> Slic3r::GUI::ExtrusionCalibration::user_filaments

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