From c09a8dbf2e59f814571dc270ff6517fe9a89719e Mon Sep 17 00:00:00 2001 From: QIDI TECH <893239786@qq.com> Date: Fri, 29 Dec 2023 16:52:37 +0800 Subject: [PATCH] Add bed exclude area --- src/libslic3r/Preset.cpp | 4 + src/libslic3r/Print.cpp | 2 + src/libslic3r/PrintConfig.cpp | 8 +- src/libslic3r/PrintConfig.hpp | 2 + src/slic3r/GUI/BedShapeDialog.cpp | 111 ++++++++++++++++++++++-- src/slic3r/GUI/BedShapeDialog.hpp | 26 ++++-- src/slic3r/GUI/ConfigWizard.cpp | 9 +- src/slic3r/GUI/GUI.cpp | 3 +- src/slic3r/GUI/OptionsGroup.cpp | 3 +- src/slic3r/GUI/Tab.cpp | 8 ++ src/slic3r/GUI/UnsavedChangesDialog.cpp | 5 ++ src/slic3r/GUI/UpdateDialogs.cpp | 20 ++--- src/slic3r/GUI/WifiConfigDialog.cpp | 4 +- 13 files changed, 179 insertions(+), 26 deletions(-) diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 8a9dbc5..725949e 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -528,6 +528,8 @@ static std::vector s_Preset_printer_options { "default_print_profile", "inherits", "remaining_times", "silent_mode", "machine_limits_usage", "thumbnails", "thumbnails_format", +//Y20 + "bed_exclude_area", //Y16 "chamber_temperature", "auxiliary_fan", "chamber_fan" }; @@ -1338,6 +1340,8 @@ static const std::set independent_from_extruder_number_options = { "filament_ramming_parameters", "gcode_substitutions", "post_process", +//Y20 + "bed_exclude_area", }; bool PresetCollection::is_independent_from_extruder_number_option(const std::string& opt_key) diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index e017dcd..bb46532 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -60,6 +60,8 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n "autoemit_temperature_commands", "avoid_crossing_perimeters", "avoid_crossing_perimeters_max_detour", + //Y20 + "bed_exclude_area", "bed_shape", "bed_temperature", "before_layer_gcode", diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index a404943..fd8cfaa 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -271,6 +271,12 @@ void PrintConfigDef::init_common_params() def->mode = comAdvanced; def->set_default_value(new ConfigOptionPoints{ Vec2d(0, 0), Vec2d(200, 0), Vec2d(200, 200), Vec2d(0, 200) }); + //Y20 + def = this->add("bed_exclude_area", coPoints); + def->label = L("Bed exclude area"); + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionPoints{ Vec2d(0, 0) }); + def = this->add("bed_custom_texture", coString); def->label = L("Bed custom texture"); def->mode = comAdvanced; @@ -2589,7 +2595,7 @@ void PrintConfigDef::init_fff_params() def = this->add("small_perimeter_speed", coFloatOrPercent); def->label = L("Small perimeters"); def->category = L("Speed"); - def->tooltip = L("This separate setting will affect the speed of perimeters having radius <= 6.5mm " + def->tooltip = L("This separate setting will affect the speed of perimeters having radius <= 4mm " "(usually holes). If expressed as percentage (for example: 80%) it will be calculated " "on the perimeters speed setting above. Set to zero for auto."); def->sidetext = L("mm/s or %"); diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 624ffb9..9480c44 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -788,6 +788,8 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE( ((ConfigOptionBool, avoid_crossing_perimeters)) ((ConfigOptionFloatOrPercent, avoid_crossing_perimeters_max_detour)) ((ConfigOptionPoints, bed_shape)) + //Y20 + ((ConfigOptionPoints, bed_exclude_area)) ((ConfigOptionInts, bed_temperature)) //Y16 ((ConfigOptionBool, chamber_temperature)) diff --git a/src/slic3r/GUI/BedShapeDialog.cpp b/src/slic3r/GUI/BedShapeDialog.cpp index a342ce4..9ba2ef0 100644 --- a/src/slic3r/GUI/BedShapeDialog.cpp +++ b/src/slic3r/GUI/BedShapeDialog.cpp @@ -31,6 +31,9 @@ static std::string get_option_label(BedShape::Parameter param) case BedShape::Parameter::RectSize : return L("Size"); case BedShape::Parameter::RectOrigin: return L("Origin"); case BedShape::Parameter::Diameter : return L("Diameter"); + //Y20 + case BedShape::Parameter::ExcludeMax: return L("Max"); + case BedShape::Parameter::ExcludeMin: return L("Min"); default: assert(false); return {}; } } @@ -66,6 +69,25 @@ void BedShape::append_option_line(ConfigOptionsGroupShp optgroup, Parameter para def.tooltip = L("Diameter of the print bed. It is assumed that origin (0,0) is located in the center."); key = "diameter"; break; + //Y20 + case Parameter::ExcludeMax: + def.type = coPoints; + def.set_default_value(new ConfigOptionPoints{ Vec2d(0, 0) }); + def.min = 0; + def.max = 1200; + def.label = get_option_label(param); + def.tooltip = L("Max point in X and Y of the exclude area."); + key = "exclude_area_max"; + break; + case Parameter::ExcludeMin: + def.type = coPoints; + def.set_default_value(new ConfigOptionPoints{ Vec2d(0, 0) }); + def.min = 0; + def.max = 1200; + def.label = get_option_label(param); + def.tooltip = L("Min point in X and Y of the exclude area."); + key = "exclude_area_min"; + break; default: assert(false); } @@ -127,16 +149,23 @@ void BedShape::apply_optgroup_values(ConfigOptionsGroupShp optgroup) optgroup->set_value("rect_origin" , to_2d(-1 * m_build_volume.bounding_volume().min)); } } +//Y20 +void BedShape::apply_exclude_values(ConfigOptionsGroupShp optgroup) +{ + optgroup->set_value("exclude_area_max" , to_2d(m_build_volume.bounding_volume().max)); + optgroup->set_value("exclude_area_min" , to_2d(m_build_volume.bounding_volume().min)); +} BedShapeDialog::BedShapeDialog(wxWindow* parent) : DPIDialog(parent, wxID_ANY, _(L("Bed Shape")), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) {} - -void BedShapeDialog::build_dialog(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture, const ConfigOptionString& custom_model) +//Y20 +void BedShapeDialog::build_dialog(const ConfigOptionPoints& default_pt, const ConfigOptionPoints& exclude_area, const ConfigOptionString& custom_texture, const ConfigOptionString& custom_model) { SetFont(wxGetApp().normal_font()); m_panel = new BedShapePanel(this); - m_panel->build_panel(default_pt, custom_texture, custom_model); + //Y20 + m_panel->build_panel(default_pt, exclude_area, custom_texture, custom_model); auto main_sizer = new wxBoxSizer(wxVERTICAL); main_sizer->Add(m_panel, 1, wxEXPAND); @@ -174,11 +203,13 @@ void BedShapeDialog::on_dpi_changed(const wxRect &suggested_rect) const std::string BedShapePanel::NONE = "None"; const std::string BedShapePanel::EMPTY_STRING = ""; - -void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture, const ConfigOptionString& custom_model) +//Y20 +void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt, const ConfigOptionPoints& exclude_area, const ConfigOptionString& custom_texture, const ConfigOptionString& custom_model) { wxGetApp().UpdateDarkUI(this); m_shape = default_pt.values; + //Y20 + m_exclude_area = exclude_area.values; m_custom_texture = custom_texture.value.empty() ? NONE : custom_texture.value; m_custom_model = custom_model.value.empty() ? NONE : custom_model.value; @@ -223,6 +254,8 @@ void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt, const Conf optgroup->append_line(line); activate_options_page(optgroup); +//Y20 + wxPanel* exclude_panel = init_exclude_panel(); wxPanel* texture_panel = init_texture_panel(); wxPanel* model_panel = init_model_panel(); @@ -235,6 +268,8 @@ void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt, const Conf wxSizer* left_sizer = new wxBoxSizer(wxVERTICAL); left_sizer->Add(sbsizer, 0, wxEXPAND); +//Y20 + left_sizer->Add(exclude_panel, 0, wxEXPAND); left_sizer->Add(texture_panel, 1, wxEXPAND); left_sizer->Add(model_panel, 1, wxEXPAND); @@ -245,6 +280,8 @@ void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt, const Conf SetSizerAndFit(top_sizer); set_shape(default_pt); + //Y20 + set_exclude_area(exclude_area); update_preview(); } @@ -273,6 +310,28 @@ void BedShapePanel::activate_options_page(ConfigOptionsGroupShp options_group) options_group->parent()->SetSizerAndFit(options_group->sizer); } +//Y20 +wxPanel* BedShapePanel::init_exclude_panel() +{ + wxPanel* panel = new wxPanel(this); + wxGetApp().UpdateDarkUI(panel, true); + exclude_optgroup = std::make_shared(panel, _L("Exclude area")); + + exclude_optgroup->label_width = 10; + exclude_optgroup->m_on_change = [this](t_config_option_key opt_key, boost::any value) { + update_shape(); + }; + + BedShape::append_option_line(exclude_optgroup, BedShape::Parameter::ExcludeMax); + BedShape::append_option_line(exclude_optgroup, BedShape::Parameter::ExcludeMin); + + exclude_optgroup->activate(); + + panel->SetSizerAndFit(exclude_optgroup->sizer); + + return panel; +} + wxPanel* BedShapePanel::init_texture_panel() { wxPanel* panel = new wxPanel(this); @@ -437,6 +496,13 @@ void BedShapePanel::set_shape(const ConfigOptionPoints& points) update_shape(); } +//Y20 +void BedShapePanel::set_exclude_area(const ConfigOptionPoints& points) +{ + BedShape exclude(points); + exclude.apply_exclude_values(exclude_optgroup); + update_shape(); +} void BedShapePanel::update_preview() { @@ -508,6 +574,41 @@ void BedShapePanel::update_shape() break; } +//Y20 + Vec2d exclude_max(Vec2d::Zero()); + Vec2d exclude_min(Vec2d::Zero()); + + try { exclude_max = boost::any_cast(exclude_optgroup->get_value("exclude_area_max")); } + catch (const std::exception& /* e */) { return; } + + try { exclude_min = boost::any_cast(exclude_optgroup->get_value("exclude_area_min")); } + catch (const std::exception & /* e */) { return; } + + auto e_x = exclude_max(0); + auto e_y = exclude_max(1); + // empty strings or '-' or other things + //if (e_x == 0 || e_y == 0) return; + //double e_x0 = 0.0; + //double e_y0 = 0.0; + //double e_x1 = e_x; + //double e_y1 = e_y; + + auto e_dx = exclude_min(0); + auto e_dy = exclude_min(1); + + //e_x0 -= e_dx; + //e_x1 -= e_dx; + //e_y0 -= e_dy; + //e_y1 -= e_dy; + //m_exclude_area = { Vec2d(e_x0, e_y0), + // Vec2d(e_x1, e_y0), + // Vec2d(e_x1, e_y1), + // Vec2d(e_x0, e_y1) }; + m_exclude_area = { Vec2d(e_dx, e_dy), + Vec2d(e_x, e_dy), + Vec2d(e_x, e_y), + Vec2d(e_dx, e_y) }; + update_preview(); } diff --git a/src/slic3r/GUI/BedShapeDialog.hpp b/src/slic3r/GUI/BedShapeDialog.hpp index 2c828a5..144cbcc 100644 --- a/src/slic3r/GUI/BedShapeDialog.hpp +++ b/src/slic3r/GUI/BedShapeDialog.hpp @@ -30,7 +30,10 @@ struct BedShape enum class Parameter { RectSize, RectOrigin, - Diameter + Diameter, + //Y20 + ExcludeMax, + ExcludeMin }; BedShape(const ConfigOptionPoints& points); @@ -44,6 +47,8 @@ struct BedShape wxString get_full_name_with_params(); void apply_optgroup_values(ConfigOptionsGroupShp optgroup); + //Y20 + void apply_exclude_values(ConfigOptionsGroupShp optgroup); private: BuildVolume m_build_volume; @@ -57,25 +62,34 @@ class BedShapePanel : public wxPanel Bed_2D* m_canvas; std::vector m_shape; std::vector m_loaded_shape; + //Y20 + std::vector m_exclude_area; std::string m_custom_texture; std::string m_custom_model; public: BedShapePanel(wxWindow* parent) : wxPanel(parent, wxID_ANY), m_custom_texture(NONE), m_custom_model(NONE) {} - - void build_panel(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture, const ConfigOptionString& custom_model); +//Y20 + void build_panel(const ConfigOptionPoints& default_pt, const ConfigOptionPoints& exclude_area, const ConfigOptionString& custom_texture, const ConfigOptionString& custom_model); // Returns the resulting bed shape polygon. This value will be stored to the ini file. const std::vector& get_shape() const { return m_shape; } + //Y20 + const std::vector& get_exclude_area() const { return m_exclude_area; } const std::string& get_custom_texture() const { return (m_custom_texture != NONE) ? m_custom_texture : EMPTY_STRING; } const std::string& get_custom_model() const { return (m_custom_model != NONE) ? m_custom_model : EMPTY_STRING; } private: ConfigOptionsGroupShp init_shape_options_page(const wxString& title); void activate_options_page(ConfigOptionsGroupShp options_group); +//Y20 + wxPanel* init_exclude_panel(); + ConfigOptionsGroupShp exclude_optgroup; wxPanel* init_texture_panel(); wxPanel* init_model_panel(); void set_shape(const ConfigOptionPoints& points); +//Y20 + void set_exclude_area(const ConfigOptionPoints& points); void update_preview(); void update_shape(); void load_stl(); @@ -93,10 +107,12 @@ class BedShapeDialog : public DPIDialog BedShapePanel* m_panel; public: BedShapeDialog(wxWindow* parent); - - void build_dialog(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture, const ConfigOptionString& custom_model); +//Y20 + void build_dialog(const ConfigOptionPoints& default_pt, const ConfigOptionPoints& exclude_area, const ConfigOptionString& custom_texture, const ConfigOptionString& custom_model); const std::vector& get_shape() const { return m_panel->get_shape(); } +//Y20 + const std::vector& get_exclude_area() const { return m_panel->get_exclude_area(); } const std::string& get_custom_texture() const { return m_panel->get_custom_texture(); } const std::string& get_custom_model() const { return m_panel->get_custom_model(); } diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index 137a40f..9932d1e 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -1828,6 +1828,8 @@ PageBedShape::PageBedShape(ConfigWizard *parent) append_text(_L("Set the shape of your printer's bed.")); shape_panel->build_panel(*wizard_p()->custom_config->option("bed_shape"), + //Y20 + *wizard_p()->custom_config->option("bed_exclude_area"), *wizard_p()->custom_config->option("bed_custom_texture"), *wizard_p()->custom_config->option("bed_custom_model")); @@ -1837,9 +1839,13 @@ PageBedShape::PageBedShape(ConfigWizard *parent) void PageBedShape::apply_custom_config(DynamicPrintConfig &config) { const std::vector& points = shape_panel->get_shape(); + //Y20 + const std::vector& exclude_area = shape_panel->get_exclude_area(); const std::string& custom_texture = shape_panel->get_custom_texture(); const std::string& custom_model = shape_panel->get_custom_model(); config.set_key_value("bed_shape", new ConfigOptionPoints(points)); + //Y20 + config.set_key_value("bed_exclude_area", new ConfigOptionPoints(exclude_area)); config.set_key_value("bed_custom_texture", new ConfigOptionString(custom_texture)); config.set_key_value("bed_custom_model", new ConfigOptionString(custom_model)); } @@ -3310,7 +3316,8 @@ ConfigWizard::ConfigWizard(wxWindow *parent) p->load_vendors(); p->custom_config.reset(DynamicPrintConfig::new_from_defaults_keys({ - "gcode_flavor", "bed_shape", "bed_custom_texture", "bed_custom_model", "nozzle_diameter", "filament_diameter", "temperature", "bed_temperature", +//Y20 + "gcode_flavor", "bed_shape", "bed_exclude_area", "bed_custom_texture", "bed_custom_model", "nozzle_diameter", "filament_diameter", "temperature", "bed_temperature", })); p->index = new ConfigWizardIndex(this); diff --git a/src/slic3r/GUI/GUI.cpp b/src/slic3r/GUI/GUI.cpp index f88b380..ceae4db 100644 --- a/src/slic3r/GUI/GUI.cpp +++ b/src/slic3r/GUI/GUI.cpp @@ -203,7 +203,8 @@ void change_opt_value(DynamicPrintConfig& config, const t_config_option_key& opt } break; case coPoints:{ - if (opt_key == "bed_shape") { + //Y20 + if (opt_key == "bed_shape" || opt_key == "bed_exclude_area") { config.option(opt_key)->values = boost::any_cast>(value); break; } diff --git a/src/slic3r/GUI/OptionsGroup.cpp b/src/slic3r/GUI/OptionsGroup.cpp index a4fd5c2..5e16ff1 100644 --- a/src/slic3r/GUI/OptionsGroup.cpp +++ b/src/slic3r/GUI/OptionsGroup.cpp @@ -953,7 +953,8 @@ boost::any ConfigOptionsGroup::get_config_value(const DynamicPrintConfig& config ret = config.option(opt_key)->getInt(); break; case coPoints: - if (opt_key == "bed_shape") +//Y20 + if (opt_key == "bed_shape" || opt_key == "bed_exclude_area") ret = config.option(opt_key)->values; else ret = config.option(opt_key)->get_at(idx); diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 45160d1..4e14a13 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -4963,15 +4963,21 @@ wxSizer* TabPrinter::create_bed_shape_widget(wxWindow* parent) { BedShapeDialog dlg(this); dlg.build_dialog(*m_config->option("bed_shape"), + //Y20 + *m_config->option("bed_exclude_area"), *m_config->option("bed_custom_texture"), *m_config->option("bed_custom_model")); if (dlg.ShowModal() == wxID_OK) { const std::vector& shape = dlg.get_shape(); + //Y20 + const std::vector& exclude_area = dlg.get_exclude_area(); const std::string& custom_texture = dlg.get_custom_texture(); const std::string& custom_model = dlg.get_custom_model(); if (!shape.empty()) { load_key_value("bed_shape", shape); + //Y20 + load_key_value("bed_exclude_area", exclude_area); load_key_value("bed_custom_texture", custom_texture); load_key_value("bed_custom_model", custom_model); update_changed_ui(); @@ -4984,6 +4990,8 @@ wxSizer* TabPrinter::create_bed_shape_widget(wxWindow* parent) { Search::OptionsSearcher& searcher = wxGetApp().sidebar().get_searcher(); const Search::GroupAndCategory& gc = searcher.get_group_and_category("bed_shape"); + //Y20 + searcher.add_key("bed_exclude_area", m_type, gc.group, gc.category); searcher.add_key("bed_custom_texture", m_type, gc.group, gc.category); searcher.add_key("bed_custom_model", m_type, gc.group, gc.category); } diff --git a/src/slic3r/GUI/UnsavedChangesDialog.cpp b/src/slic3r/GUI/UnsavedChangesDialog.cpp index 6b6a04e..77fd63b 100644 --- a/src/slic3r/GUI/UnsavedChangesDialog.cpp +++ b/src/slic3r/GUI/UnsavedChangesDialog.cpp @@ -1203,6 +1203,11 @@ static wxString get_string_value(std::string opt_key, const DynamicPrintConfig& BedShape shape(*config.option(opt_key)); return shape.get_full_name_with_params(); } + //Y20 + if (opt_key == "bed_exclude_area") { + BedShape shape(*config.option(opt_key)); + return shape.get_full_name_with_params(); + } Vec2d val = config.opt(opt_key)->get_at(opt_idx); return from_u8((boost::format("[%1%]") % ConfigOptionPoint(val).serialize()).str()); diff --git a/src/slic3r/GUI/UpdateDialogs.cpp b/src/slic3r/GUI/UpdateDialogs.cpp index fbf3896..7700c75 100644 --- a/src/slic3r/GUI/UpdateDialogs.cpp +++ b/src/slic3r/GUI/UpdateDialogs.cpp @@ -32,11 +32,11 @@ namespace Slic3r { namespace GUI { -static const char* URL_CHANGELOG = "https://files.qidi3d.com/?latest=slicer-stable&lng=%1%"; +static const char* URL_CHANGELOG = "https://github.com/QIDITECH/QIDISlicer/releases/tag/V%1%"; static const char* URL_DOWNLOAD = "https://www.qidi3d.com/slicerweb&lng=%1%"; -static const char* URL_DEV = "https://github.com/qidi3d/QIDISlicer/releases/tag/version_%1%"; +static const char* URL_DEV = "https://github.com/QIDITECH/QIDISlicer/releases/tag/version_%1%"; -static const std::string CONFIG_UPDATE_WIKI_URL("https://github.com/qidi3d/QIDISlicer/wiki/Slic3r-PE-1.40-configuration-update"); +static const std::string CONFIG_UPDATE_WIKI_URL("https://github.com/QIDITECH/QIDISlicer"); // MsgUpdateSlic3r @@ -478,15 +478,15 @@ MsgDataLegacy::MsgDataLegacy() : text->Wrap(CONTENT_WIDTH * wxGetApp().em_unit()); content_sizer->Add(text); content_sizer->AddSpacer(VERT_SPACING); - - auto *text2 = new wxStaticText(this, wxID_ANY, _(L("For more information please visit our wiki page:"))); - static const wxString url("https://github.com/qidi3d/QIDISlicer/wiki/Slic3r-PE-1.40-configuration-update"); +//Y19 + //auto *text2 = new wxStaticText(this, wxID_ANY, _(L("For more information please visit our wiki page:"))); + //static const wxString url("https://github.com/QIDITECH/QIDISlicer"); // The wiki page name is intentionally not localized: // TRN %s = QIDISlicer - auto *link = new wxHyperlinkCtrl(this, wxID_ANY, format_wxstr(_L("%s 1.40 configuration update"), SLIC3R_APP_NAME), CONFIG_UPDATE_WIKI_URL); - content_sizer->Add(text2); - content_sizer->Add(link); - content_sizer->AddSpacer(VERT_SPACING); + //auto *link = new wxHyperlinkCtrl(this, wxID_ANY, format_wxstr(_L("%s configuration update"), SLIC3R_APP_NAME), CONFIG_UPDATE_WIKI_URL); + //content_sizer->Add(text2); + //content_sizer->Add(link); + //content_sizer->AddSpacer(VERT_SPACING); finalize(); } diff --git a/src/slic3r/GUI/WifiConfigDialog.cpp b/src/slic3r/GUI/WifiConfigDialog.cpp index 6b088d8..c465ecc 100644 --- a/src/slic3r/GUI/WifiConfigDialog.cpp +++ b/src/slic3r/GUI/WifiConfigDialog.cpp @@ -34,11 +34,11 @@ WifiConfigDialog::WifiConfigDialog(wxWindow* parent, std::string& file_path, Rem panel->SetSizer(vsizer); // TRN Wifi config dialog explanation line 1. - wxStaticText* explain_label1 = new wxStaticText(panel, wxID_ANY, _L("Generate a file to be loaded by a Prusa printer to configure its Wi-Fi connection.")); + wxStaticText* explain_label1 = new wxStaticText(panel, wxID_ANY, _L("Generate a file to be loaded by a printer to configure its Wi-Fi connection.")); // TRN Wifi config dialog explanation line 2. wxStaticText* explain_label2 = new wxStaticText(panel, wxID_ANY, GUI::format_wxstr(_L("Write this file on the USB flash drive. Its name will be %1%."), WIFI_CONFIGFILE_NAME)); // TRN Wifi config dialog explanation line 3. - wxStaticText* explain_label3 = new wxStaticText(panel, wxID_ANY, _L("Your Prusa printer should load this file automatically.")); + wxStaticText* explain_label3 = new wxStaticText(panel, wxID_ANY, _L("Your printer should load this file automatically.")); // TRN Wifi config dialog explanation line 4. wxStaticText* explain_label4 = new wxStaticText(panel, wxID_ANY, _L("Note: This file will contain the SSID and password in plain text."));