OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::GUI::PageDiameters Struct Reference

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

Inheritance diagram for Slic3r::GUI::PageDiameters:
Collaboration diagram for Slic3r::GUI::PageDiameters:

Public Member Functions

 PageDiameters (ConfigWizard *parent)
virtual void apply_custom_config (DynamicPrintConfig &config)
template<class T>
T * append (T *thing, int proportion=0, int flag=wxEXPAND|wxTOP|wxBOTTOM, int border=10)
wxStaticText * append_text (wxString text)
void append_spacer (int space)
ConfigWizard::priv * wizard_p () const
virtual void set_run_reason (ConfigWizard::RunReason run_reason)
virtual void on_activate ()

Public Attributes

wxTextCtrl * diam_nozzle
wxTextCtrl * diam_filam
ConfigWizard * parent
const wxString shortname
wxBoxSizer * content
const unsigned indent

Detailed Description

Constructor & Destructor Documentation

◆ PageDiameters()

Slic3r::GUI::PageDiameters::PageDiameters ( ConfigWizard * parent)
1358 : ConfigWizardPage(parent, _L("Filament and Nozzle Diameters"), _L("Print Diameters"), 1)
1359 , diam_nozzle(new DiamTextCtrl(this))
1360 , diam_filam (new DiamTextCtrl(this))
1361{
1362 auto *default_nozzle = print_config_def.get("nozzle_diameter")->get_default_value<ConfigOptionFloats>();
1363 wxString value = double_to_string(default_nozzle != nullptr && default_nozzle->size() > 0 ? default_nozzle->get_at(0) : 0.5);
1364 diam_nozzle->SetValue(value);
1365
1366 auto *default_filam = print_config_def.get("filament_diameter")->get_default_value<ConfigOptionFloats>();
1367 value = double_to_string(default_filam != nullptr && default_filam->size() > 0 ? default_filam->get_at(0) : 3.0);
1368 diam_filam->SetValue(value);
1369
1370 diam_nozzle->Bind(wxEVT_KILL_FOCUS, [this](wxFocusEvent& e) { focus_event(e, diam_nozzle, 0.5); }, diam_nozzle->GetId());
1371 diam_filam ->Bind(wxEVT_KILL_FOCUS, [this](wxFocusEvent& e) { focus_event(e, diam_filam , 3.0); }, diam_filam->GetId());
1372
1373 append_text(_L("Enter the diameter of your printer's hot end nozzle."));
1374
1375 auto *sizer_nozzle = new wxFlexGridSizer(3, 5, 5);
1376 auto *text_nozzle = new wxStaticText(this, wxID_ANY, _L("Nozzle Diameter:"));
1377 auto *unit_nozzle = new wxStaticText(this, wxID_ANY, _L("mm"));
1378 sizer_nozzle->AddGrowableCol(0, 1);
1379 sizer_nozzle->Add(text_nozzle, 0, wxALIGN_CENTRE_VERTICAL);
1380 sizer_nozzle->Add(diam_nozzle);
1381 sizer_nozzle->Add(unit_nozzle, 0, wxALIGN_CENTRE_VERTICAL);
1382 append(sizer_nozzle);
1383
1385
1386 append_text(_L("Enter the diameter of your filament."));
1387 append_text(_L("Good precision is required, so use a caliper and do multiple measurements along the filament, then compute the average."));
1388
1389 auto *sizer_filam = new wxFlexGridSizer(3, 5, 5);
1390 auto *text_filam = new wxStaticText(this, wxID_ANY, _L("Filament Diameter:"));
1391 auto *unit_filam = new wxStaticText(this, wxID_ANY, _L("mm"));
1392 sizer_filam->AddGrowableCol(0, 1);
1393 sizer_filam->Add(text_filam, 0, wxALIGN_CENTRE_VERTICAL);
1394 sizer_filam->Add(diam_filam);
1395 sizer_filam->Add(unit_filam, 0, wxALIGN_CENTRE_VERTICAL);
1396 append(sizer_filam);
1397}
#define _L(s)
Definition OBJ.cpp:34
class WXDLLIMPEXP_FWD_CORE wxStaticText
Definition ProgressDialog.hpp:30
const ConfigOptionDef * get(const t_config_option_key &opt_key) const
Definition Config.hpp:2662
const T * get_default_value() const
Definition Config.hpp:2350
wxString double_to_string(double const value, const int max_precision)
Definition Field.cpp:99
static void focus_event(wxFocusEvent &e, wxTextCtrl *ctrl, double def_value)
Definition ConfigWizard.cpp:1319
@ VERTICAL_SPACING
Definition ConfigWizard_private.hpp:57
const PrintConfigDef print_config_def
Definition PrintConfig.cpp:10099
ConfigOptionFloatsTempl< false > ConfigOptionFloats
Definition Config.hpp:1015
T * append(T *thing, int proportion=0, int flag=wxEXPAND|wxTOP|wxBOTTOM, int border=10)
Definition ConfigWizard_private.hpp:227
ConfigWizard * parent
Definition ConfigWizard_private.hpp:218
void append_spacer(int space)
Definition ConfigWizard.cpp:521
ConfigWizardPage(ConfigWizard *parent, wxString title, wxString shortname, unsigned indent=0)
Definition ConfigWizard.cpp:477
wxStaticText * append_text(wxString text)
Definition ConfigWizard.cpp:512
wxTextCtrl * diam_nozzle
Definition ConfigWizard_private.hpp:459
wxTextCtrl * diam_filam
Definition ConfigWizard_private.hpp:460

References Slic3r::GUI::ConfigWizardPage::ConfigWizardPage(), _L, Slic3r::GUI::ConfigWizardPage::append(), Slic3r::GUI::ConfigWizardPage::append_spacer(), Slic3r::GUI::ConfigWizardPage::append_text(), diam_filam, diam_nozzle, Slic3r::GUI::double_to_string(), Slic3r::GUI::focus_event(), Slic3r::GUI::ConfigWizardPage::parent, Slic3r::print_config_def, Slic3r::GUI::VERTICAL_SPACING, and wxStaticText.

Here is the call graph for this function:

Member Function Documentation

◆ append()

template<class T>
T * Slic3r::GUI::ConfigWizardPage::append ( T * thing,
int proportion = 0,
int flag = wxEXPAND|wxTOP|wxBOTTOM,
int border = 10 )
inlineinherited
228 {
229 content->Add(thing, proportion, flag, border);
230 return thing;
231 }
wxBoxSizer * content
Definition ConfigWizard_private.hpp:220

References content.

Referenced by Slic3r::GUI::PageBedShape::PageBedShape(), Slic3r::GUI::PageCustom::PageCustom(), Slic3r::GUI::PageDiameters::PageDiameters(), Slic3r::GUI::PageFirmware::PageFirmware(), Slic3r::GUI::PageMaterials::PageMaterials(), Slic3r::GUI::PagePrinters::PagePrinters(), Slic3r::GUI::PageTemperatures::PageTemperatures(), Slic3r::GUI::PageWelcome::PageWelcome(), and append_text().

Here is the caller graph for this function:

◆ append_spacer()

void Slic3r::GUI::ConfigWizardPage::append_spacer ( int space)
inherited
522{
523 // FIXME: scaling
524 content->AddSpacer(space);
525}

References content.

Referenced by Slic3r::GUI::PageDiameters::PageDiameters(), Slic3r::GUI::PageMaterials::PageMaterials(), and Slic3r::GUI::PageTemperatures::PageTemperatures().

Here is the caller graph for this function:

◆ append_text()

wxStaticText * Slic3r::GUI::ConfigWizardPage::append_text ( wxString text)
inherited
513{
514 auto *widget = new wxStaticText(this, wxID_ANY, text, wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
515 widget->Wrap(WRAP_WIDTH);
516 widget->SetMinSize(wxSize(WRAP_WIDTH, -1));
517 append(widget);
518 return widget;
519}
@ WRAP_WIDTH
Definition ConfigWizard_private.hpp:50

References append(), Slic3r::GUI::WRAP_WIDTH, and wxStaticText.

Referenced by Slic3r::GUI::PageBedShape::PageBedShape(), Slic3r::GUI::PageDiameters::PageDiameters(), Slic3r::GUI::PageFirmware::PageFirmware(), Slic3r::GUI::PageTemperatures::PageTemperatures(), and Slic3r::GUI::PageWelcome::PageWelcome().

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

◆ apply_custom_config()

void Slic3r::GUI::PageDiameters::apply_custom_config ( DynamicPrintConfig & config)
virtual

Reimplemented from Slic3r::GUI::ConfigWizardPage.

1400{
1401 double val = 0.0;
1402 diam_nozzle->GetValue().ToDouble(&val);
1403 auto *opt_nozzle = new ConfigOptionFloats(1, val);
1404 config.set_key_value("nozzle_diameter", opt_nozzle);
1405
1406 val = 0.0;
1407 diam_filam->GetValue().ToDouble(&val);
1408 auto * opt_filam = new ConfigOptionFloats(1, val);
1409 config.set_key_value("filament_diameter", opt_filam);
1410
1411 auto set_extrusion_width = [&config, opt_nozzle](const char *key, double dmr) {
1412 char buf[64]; // locales don't matter here (sprintf/atof)
1413 sprintf(buf, "%.2lf", dmr * opt_nozzle->values.front() / 0.4);
1414 config.set_key_value(key, new ConfigOptionFloatOrPercent(atof(buf),false));
1415 };
1416
1417 set_extrusion_width("support_line_width", 0.35);
1418 set_extrusion_width("top_surface_line_width", 0.40);
1419 set_extrusion_width("initial_layer_line_width", 0.42);
1420
1421 set_extrusion_width("line_width", 0.45);
1422 set_extrusion_width("inner_wall_line_width", 0.45);
1423 set_extrusion_width("outer_wall_line_width", 0.45);
1424 set_extrusion_width("sparse_infill_line_width", 0.45);
1425 set_extrusion_width("internal_solid_infill_line_width", 0.45);
1426}

References diam_filam, diam_nozzle, and Slic3r::DynamicConfig::set_key_value().

Here is the call graph for this function:

◆ on_activate()

virtual void Slic3r::GUI::ConfigWizardPage::on_activate ( )
inlinevirtualinherited

Reimplemented in Slic3r::GUI::PageMaterials.

240{}

◆ set_run_reason()

virtual void Slic3r::GUI::ConfigWizardPage::set_run_reason ( ConfigWizard::RunReason run_reason)
inlinevirtualinherited

◆ wizard_p()

ConfigWizard::priv * Slic3r::GUI::ConfigWizardPage::wizard_p ( ) const
inlineinherited
236{ return parent->p.get(); }

References parent.

Referenced by Slic3r::GUI::PageBedShape::PageBedShape(), Slic3r::GUI::PageCustom::PageCustom(), Slic3r::GUI::PagePrinters::PagePrinters(), Slic3r::GUI::PageMaterials::on_activate(), Slic3r::GUI::PageMaterials::select_material(), and Slic3r::GUI::PageMaterials::update_lists().

Here is the caller graph for this function:

Member Data Documentation

◆ content

wxBoxSizer* Slic3r::GUI::ConfigWizardPage::content
inherited

◆ diam_filam

wxTextCtrl* Slic3r::GUI::PageDiameters::diam_filam

◆ diam_nozzle

wxTextCtrl* Slic3r::GUI::PageDiameters::diam_nozzle

◆ indent

const unsigned Slic3r::GUI::ConfigWizardPage::indent
inherited

◆ parent

◆ shortname


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