From 632eff6a3a47959f61053b53cc3da693cb244f12 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Sun, 2 Mar 2025 23:20:16 +0800 Subject: [PATCH 1/6] Fix filament combox disappearing (#8649) Make sure frozen filament combox is thawed --- src/slic3r/GUI/PresetComboBoxes.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp index 2f5aed9f08..d7eb66e6fc 100644 --- a/src/slic3r/GUI/PresetComboBoxes.cpp +++ b/src/slic3r/GUI/PresetComboBoxes.cpp @@ -946,6 +946,7 @@ void PlaterPresetComboBox::update() selected_filament_preset = m_collection->find_preset(m_preset_bundle->filament_presets[m_filament_idx]); if (!selected_filament_preset) { //can not find this filament, should be caused by project embedded presets, will be updated later + Thaw(); return; } //assert(selected_filament_preset); From d9f4e6b8bab2a4a2f46d7b8aba2468375c1cff00 Mon Sep 17 00:00:00 2001 From: yw4z Date: Mon, 3 Mar 2025 06:13:51 +0300 Subject: [PATCH 2/6] Sidebar margin & spacing fixes (#6238) * fix alignments for tab and sidebar icons * minimize code changes * minimize code changes * minimize code changes * Align config label with group title * minimize changes * Update Plater.cpp * Update spacing after titlebar text and comments * Update Plater.cpp * Update OG_CustomCtrl.cpp * Use class to control values from one place * fix error * Update Plater.cpp * update --- src/slic3r/GUI/OG_CustomCtrl.cpp | 2 +- src/slic3r/GUI/ParamsPanel.cpp | 10 ++--- src/slic3r/GUI/Plater.cpp | 64 ++++++++++++++++++-------------- src/slic3r/GUI/Plater.hpp | 11 +++++- src/slic3r/GUI/Tab.cpp | 24 ++++++------ 5 files changed, 64 insertions(+), 47 deletions(-) diff --git a/src/slic3r/GUI/OG_CustomCtrl.cpp b/src/slic3r/GUI/OG_CustomCtrl.cpp index bfeb550d3d..2d85b27e5e 100644 --- a/src/slic3r/GUI/OG_CustomCtrl.cpp +++ b/src/slic3r/GUI/OG_CustomCtrl.cpp @@ -328,7 +328,7 @@ void OG_CustomCtrl::OnPaint(wxPaintEvent&) wxPaintDC dc(this); - wxCoord h_pos = get_title_width() * m_em_unit; + wxCoord h_pos = get_title_width() * m_em_unit + 4; // ORCA Align label with group title. StaticLine.cpp uses 18px for icon 5px for spacing. Spacing doesnt scales on messureSize() wxCoord v_pos = 0; // BBS: new layout if (!GetLabel().IsEmpty()) { diff --git a/src/slic3r/GUI/ParamsPanel.cpp b/src/slic3r/GUI/ParamsPanel.cpp index 629537420d..4435519a42 100644 --- a/src/slic3r/GUI/ParamsPanel.cpp +++ b/src/slic3r/GUI/ParamsPanel.cpp @@ -360,9 +360,9 @@ void ParamsPanel::create_layout() if (m_top_panel) { m_mode_sizer = new wxBoxSizer( wxHORIZONTAL ); - m_mode_sizer->AddSpacer(FromDIP(11)); + m_mode_sizer->AddSpacer(FromDIP(SidebarProps::TitlebarMargin())); m_mode_sizer->Add(m_process_icon, 0, wxALIGN_CENTER); - m_mode_sizer->AddSpacer(FromDIP(11)); + m_mode_sizer->AddSpacer(FromDIP(SidebarProps::ElementSpacing())); m_mode_sizer->Add( m_title_label, 0, wxALIGN_CENTER ); m_mode_sizer->AddStretchSpacer(2); m_mode_sizer->Add(m_mode_region, 0, wxALIGN_CENTER); @@ -370,14 +370,14 @@ void ParamsPanel::create_layout() m_mode_sizer->Add(m_tips_arrow, 0, wxALIGN_CENTER); m_mode_sizer->AddStretchSpacer(8); m_mode_sizer->Add( m_title_view, 0, wxALIGN_CENTER ); - m_mode_sizer->AddSpacer(FromDIP(2)); + m_mode_sizer->AddSpacer(FromDIP(SidebarProps::ElementSpacing())); m_mode_sizer->Add(m_mode_view, 0, wxALIGN_CENTER); m_mode_sizer->AddStretchSpacer(2); m_mode_sizer->Add(m_setting_btn, 0, wxALIGN_CENTER); - m_mode_sizer->AddSpacer(FromDIP(2)); + m_mode_sizer->AddSpacer(FromDIP(SidebarProps::IconSpacing())); m_mode_sizer->Add(m_compare_btn, 0, wxALIGN_CENTER); - m_mode_sizer->AddSpacer(FromDIP(8)); + m_mode_sizer->AddSpacer(FromDIP(SidebarProps::TitlebarMargin())); //m_mode_sizer->Add( m_search_btn, 0, wxALIGN_CENTER ); //m_mode_sizer->AddSpacer(16); m_mode_sizer->SetMinSize(-1, FromDIP(30)); diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 5a68b1a45a..9f8c5270a2 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -313,6 +313,11 @@ enum class ActionButtonType : int { abSendGCode }; +int SidebarProps::TitlebarMargin() { return 8; } // Use as side margins on titlebar. Has less margin on sides to create separation with its content +int SidebarProps::ContentMargin() { return 12; } // Use as side margins contents of title +int SidebarProps::IconSpacing() { return 10; } // Use on main elements +int SidebarProps::ElementSpacing() { return 5; } // Use if elements has relation between them like edit button for combo box etc. + struct Sidebar::priv { Plater *plater; @@ -714,11 +719,12 @@ Sidebar::Sidebar(Plater *parent) }); wxBoxSizer* h_sizer_title = new wxBoxSizer(wxHORIZONTAL); - h_sizer_title->Add(p->m_printer_icon, 0, wxALIGN_CENTRE | wxLEFT | wxRIGHT, em); + h_sizer_title->Add(p->m_printer_icon, 0, wxALIGN_CENTRE | wxLEFT, FromDIP(SidebarProps::TitlebarMargin())); + h_sizer_title->AddSpacer(FromDIP(SidebarProps::ElementSpacing())); h_sizer_title->Add(p->m_text_printer_settings, 0, wxALIGN_CENTER); h_sizer_title->AddStretchSpacer(); h_sizer_title->Add(p->m_printer_setting, 0, wxALIGN_CENTER); - h_sizer_title->Add(15 * em / 10, 0, 0, 0, 0); + h_sizer_title->AddSpacer(FromDIP(SidebarProps::TitlebarMargin())); h_sizer_title->SetMinSize(-1, 3 * em); p->m_panel_printer_title->SetSizer(h_sizer_title); @@ -775,11 +781,10 @@ Sidebar::Sidebar(Plater *parent) wxBoxSizer* hsizer_printer = new wxBoxSizer(wxHORIZONTAL); vsizer_printer->AddSpacer(FromDIP(16)); - hsizer_printer->Add(combo_printer, 1, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(3)); - hsizer_printer->Add(edit_btn, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(3)); - hsizer_printer->Add(FromDIP(8), 0, 0, 0, 0); - hsizer_printer->Add(connection_btn, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(3)); - hsizer_printer->Add(FromDIP(8), 0, 0, 0, 0); + hsizer_printer->Add(combo_printer, 1, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(SidebarProps::ContentMargin())); + hsizer_printer->Add(edit_btn, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(SidebarProps::ElementSpacing())); + hsizer_printer->Add(connection_btn, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(SidebarProps::IconSpacing())); + hsizer_printer->AddSpacer(FromDIP(SidebarProps::ContentMargin())); vsizer_printer->Add(hsizer_printer, 0, wxEXPAND, 0); // Bed type selection @@ -825,8 +830,9 @@ Sidebar::Sidebar(Plater *parent) int bed_type_idx = bed_type_value - 1; m_bed_type_list->Select(bed_type_idx); - bed_type_sizer->Add(bed_type_title, 0, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL, FromDIP(10)); - bed_type_sizer->Add(m_bed_type_list, 1, wxLEFT | wxRIGHT | wxEXPAND, FromDIP(10)); + bed_type_sizer->Add(bed_type_title, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(SidebarProps::ContentMargin())); + bed_type_sizer->Add(m_bed_type_list, 1, wxLEFT | wxEXPAND, FromDIP(SidebarProps::ElementSpacing())); + bed_type_sizer->AddSpacer(FromDIP(SidebarProps::ContentMargin())); vsizer_printer->Add(bed_type_sizer, 0, wxEXPAND | wxTOP, FromDIP(5)); vsizer_printer->AddSpacer(FromDIP(16)); @@ -865,7 +871,8 @@ Sidebar::Sidebar(Plater *parent) bSizer39 = new wxBoxSizer( wxHORIZONTAL ); p->m_filament_icon = new ScalableButton(p->m_panel_filament_title, wxID_ANY, "filament"); p->m_staticText_filament_settings = new Label(p->m_panel_filament_title, _L("Filament"), LB_PROPAGATE_MOUSE_EVENT); - bSizer39->Add(p->m_filament_icon, 0, wxALIGN_CENTER | wxLEFT | wxRIGHT, FromDIP(10)); + bSizer39->Add(p->m_filament_icon, 0, wxALIGN_CENTER | wxLEFT, FromDIP(SidebarProps::TitlebarMargin())); + bSizer39->AddSpacer(FromDIP(SidebarProps::ElementSpacing())); bSizer39->Add( p->m_staticText_filament_settings, 0, wxALIGN_CENTER ); bSizer39->Add(FromDIP(10), 0, 0, 0, 0); bSizer39->SetMinSize(-1, FromDIP(30)); @@ -937,7 +944,6 @@ Sidebar::Sidebar(Plater *parent) bSizer39->Add(p->m_flushing_volume_btn, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(5)); bSizer39->Hide(p->m_flushing_volume_btn); - bSizer39->Add(FromDIP(10), 0, 0, 0, 0 ); ScalableButton* add_btn = new ScalableButton(p->m_panel_filament_title, wxID_ANY, "add_filament"); add_btn->SetToolTip(_L("Add one filament")); @@ -981,10 +987,9 @@ Sidebar::Sidebar(Plater *parent) }); p->m_bpButton_del_filament = del_btn; - bSizer39->Add(del_btn, 0, wxALIGN_CENTER_VERTICAL, FromDIP(5)); - bSizer39->Add(FromDIP(10), 0, 0, 0, 0); - bSizer39->Add(add_btn, 0, wxALIGN_CENTER | wxALL, FromDIP(5)); // ORCA Moved add button after delete button to prevent add button position change when remove icon automatically hidden - bSizer39->Add(FromDIP(20), 0, 0, 0, 0); + bSizer39->Add(del_btn, 0, wxALIGN_CENTER | wxLEFT, FromDIP(SidebarProps::IconSpacing())); + bSizer39->Add(add_btn, 0, wxALIGN_CENTER | wxLEFT, FromDIP(SidebarProps::IconSpacing())); // ORCA Moved add button after delete button to prevent add button position change when remove icon automatically hidden + bSizer39->AddSpacer(FromDIP(20)); if (p->combos_filament.size() <= 1) { // ORCA Fix Flushing button and Delete filament button not hidden on launch while only 1 filament exist bSizer39->Hide(p->m_flushing_volume_btn); @@ -999,8 +1004,8 @@ Sidebar::Sidebar(Plater *parent) }); p->m_bpButton_ams_filament = ams_btn; - bSizer39->Add(ams_btn, 0, wxALIGN_CENTER|wxALL, FromDIP(5)); - bSizer39->Add(FromDIP(10), 0, 0, 0, 0 ); + bSizer39->Add(ams_btn, 0, wxALIGN_CENTER | wxLEFT, FromDIP(SidebarProps::IconSpacing())); + //bSizer39->Add(FromDIP(10), 0, 0, 0, 0 ); ScalableButton* set_btn = new ScalableButton(p->m_panel_filament_title, wxID_ANY, "settings"); set_btn->SetToolTip(_L("Set filaments to use")); @@ -1012,8 +1017,8 @@ Sidebar::Sidebar(Plater *parent) }); p->m_bpButton_set_filament = set_btn; - bSizer39->Add(set_btn, 0, wxALIGN_CENTER); - bSizer39->Add(FromDIP(15), 0, 0, 0, 0); + bSizer39->Add(set_btn, 0, wxALIGN_CENTER | wxLEFT, FromDIP(SidebarProps::IconSpacing())); + bSizer39->AddSpacer(FromDIP(SidebarProps::TitlebarMargin())); // add filament content p->m_panel_filament_content = new wxPanel( p->scrolled, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); @@ -1033,10 +1038,10 @@ Sidebar::Sidebar(Plater *parent) p->combos_filament[0] = new PlaterPresetComboBox(p->m_panel_filament_content, Preset::TYPE_FILAMENT); auto combo_and_btn_sizer = new wxBoxSizer(wxHORIZONTAL); // BBS: filament double columns - combo_and_btn_sizer->Add(FromDIP(8), 0, 0, 0, 0); + combo_and_btn_sizer->AddSpacer(FromDIP(SidebarProps::ContentMargin())); if (p->combos_filament[0]->clr_picker) { p->combos_filament[0]->clr_picker->SetLabel("1"); - combo_and_btn_sizer->Add(p->combos_filament[0]->clr_picker, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, FromDIP(3)); + combo_and_btn_sizer->Add(p->combos_filament[0]->clr_picker, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT,FromDIP(SidebarProps::ElementSpacing()) - FromDIP(2)); // ElementSpacing - 2 (from combo box)) } combo_and_btn_sizer->Add(p->combos_filament[0], 1, wxALL | wxEXPAND, FromDIP(2))->SetMinSize({-1, FromDIP(30) }); @@ -1052,8 +1057,8 @@ Sidebar::Sidebar(Plater *parent) }); combobox->edit_btn = edit_btn; - combo_and_btn_sizer->Add(edit_btn, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(3)); - combo_and_btn_sizer->Add(FromDIP(8), 0, 0, 0, 0); + combo_and_btn_sizer->Add(edit_btn, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(SidebarProps::ElementSpacing()) - FromDIP(2)); // ElementSpacing - 2 (from combo box)) + combo_and_btn_sizer->AddSpacer(FromDIP(SidebarProps::ContentMargin())); p->combos_filament[0]->set_filament_idx(0); p->sizer_filaments->GetItem((size_t)0)->GetSizer()->Add(combo_and_btn_sizer, 1, wxEXPAND); @@ -1164,10 +1169,13 @@ void Sidebar::init_filament_combo(PlaterPresetComboBox **combo, const int filame auto combo_and_btn_sizer = new wxBoxSizer(wxHORIZONTAL); // BBS: filament double columns - int em = wxGetApp().em_unit(); - combo_and_btn_sizer->Add(FromDIP(8), 0, 0, 0, 0 ); + + // int em = wxGetApp().em_unit(); + if ((filament_idx % 2) == 0) // Dont add right column item. this one create equal spacing on left, right & middle + combo_and_btn_sizer->AddSpacer(FromDIP((filament_idx % 2) == 0 ? 12 : 3)); // Content Margin + (*combo)->clr_picker->SetLabel(wxString::Format("%d", filament_idx + 1)); - combo_and_btn_sizer->Add((*combo)->clr_picker, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, FromDIP(3)); + combo_and_btn_sizer->Add((*combo)->clr_picker, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, FromDIP(SidebarProps::ElementSpacing()) - FromDIP(2)); // ElementSpacing - 2 (from combo box)) combo_and_btn_sizer->Add(*combo, 1, wxALL | wxEXPAND, FromDIP(2))->SetMinSize({-1, FromDIP(30)}); /* BBS hide del_btn @@ -1196,9 +1204,9 @@ void Sidebar::init_filament_combo(PlaterPresetComboBox **combo, const int filame }); combobox->edit_btn = edit_btn; - combo_and_btn_sizer->Add(edit_btn, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(3)); + combo_and_btn_sizer->Add(edit_btn, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(SidebarProps::ElementSpacing()) - FromDIP(2)); // ElementSpacing - 2 (from combo box)) - combo_and_btn_sizer->Add(FromDIP(8), 0, 0, 0, 0); + combo_and_btn_sizer->AddSpacer(FromDIP(SidebarProps::ContentMargin())); // BBS: filament double columns auto side = filament_idx % 2; diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index 4086a15771..dfa7728712 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -107,6 +107,15 @@ using ColorEvent = Event; wxDECLARE_EVENT(EVT_ADD_CUSTOM_FILAMENT, ColorEvent); const wxString DEFAULT_PROJECT_NAME = "Untitled"; +class SidebarProps +{ +public: + static int TitlebarMargin(); + static int ContentMargin(); + static int IconSpacing(); + static int ElementSpacing(); +}; + class Sidebar : public wxPanel { ConfigOptionMode m_mode; @@ -833,4 +842,4 @@ std::vector get_min_flush_volumes(const DynamicPrintConfig& full_config); } // namespace GUI } // namespace Slic3r -#endif +#endif \ No newline at end of file diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 6ed31dd223..d7452465c2 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -358,25 +358,25 @@ void Tab::create_preset_tab() m_main_sizer = new wxBoxSizer( wxVERTICAL ); m_top_sizer = new wxBoxSizer( wxHORIZONTAL ); - m_top_sizer->Add(m_undo_btn, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, 5); + m_top_sizer->Add(m_undo_btn, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(SidebarProps::ContentMargin())); // BBS: model config if (m_presets_choice) { m_presets_choice->Reparent(m_top_panel); - m_top_sizer->Add(m_presets_choice, 1, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL, 8); + m_top_sizer->Add(m_presets_choice, 1, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(SidebarProps::ElementSpacing())); } else { - m_top_sizer->AddSpacer(10); + m_top_sizer->AddSpacer(FromDIP(SidebarProps::ElementSpacing())); m_top_sizer->AddStretchSpacer(1); } const float scale_factor = /*wxGetApp().*/em_unit(this)*0.1;// GetContentScaleFactor(); #ifndef DISABLE_UNDO_SYS - m_top_sizer->Add( m_undo_to_sys_btn, 0, wxALIGN_CENTER_VERTICAL); - m_top_sizer->AddSpacer(8); + m_top_sizer->Add(m_undo_to_sys_btn, 0, wxALIGN_CENTER_VERTICAL); + m_top_sizer->AddSpacer(FromDIP(SidebarProps::IconSpacing())); #endif - m_top_sizer->Add( m_btn_save_preset, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, 8 ); - m_top_sizer->Add( m_btn_delete_preset, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, 8 ); - m_top_sizer->Add( m_btn_search, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, 8 ); - m_top_sizer->Add( m_search_item, 1, wxALIGN_CENTER_VERTICAL | wxRIGHT , 8 ); + m_top_sizer->Add(m_btn_save_preset, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(SidebarProps::IconSpacing())); + m_top_sizer->Add(m_btn_delete_preset, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(SidebarProps::IconSpacing())); + m_top_sizer->Add(m_btn_search, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(SidebarProps::IconSpacing())); + m_top_sizer->Add(m_search_item, 1, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(SidebarProps::ContentMargin())); if (dynamic_cast(this) == nullptr) { m_static_title = new Label(m_top_panel, Label::Body_12, _L("Advance")); @@ -385,13 +385,13 @@ void Tab::create_preset_tab() m_static_title->Bind(wxEVT_LEFT_UP, [this](auto& e) { restore_last_select_item(); }); - m_top_sizer->Add( m_static_title, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, 8 ); + m_top_sizer->Add(m_static_title, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(SidebarProps::IconSpacing())); m_mode_view = new SwitchButton(m_top_panel, wxID_ABOUT); - m_top_sizer->AddSpacer(4); + m_top_sizer->AddSpacer(FromDIP(SidebarProps::ElementSpacing())); m_top_sizer->Add( m_mode_view, 0, wxALIGN_CENTER_VERTICAL); } - m_top_sizer->AddSpacer(10); + m_top_sizer->AddSpacer(FromDIP(SidebarProps::ContentMargin())); m_top_sizer->SetMinSize(-1, 3 * m_em_unit); m_top_panel->SetSizer(m_top_sizer); From e11a12198341e633b16868c4fbad25616110c3ff Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 3 Mar 2025 13:22:23 +0100 Subject: [PATCH 3/6] Add missing French translations (#8651) Added French translations --- localization/i18n/fr/OrcaSlicer_fr.po | 143 +++++++++++++++----------- 1 file changed, 84 insertions(+), 59 deletions(-) diff --git a/localization/i18n/fr/OrcaSlicer_fr.po b/localization/i18n/fr/OrcaSlicer_fr.po index dd75570de1..2b7c434707 100644 --- a/localization/i18n/fr/OrcaSlicer_fr.po +++ b/localization/i18n/fr/OrcaSlicer_fr.po @@ -6538,8 +6538,8 @@ msgstr "Importer la géométrie uniquement" msgid "" "This option can be changed later in preferences, under 'Load Behaviour'." msgstr "" -"Cette option peut être modifiée ultérieurement dans les préférences, sous « " -"Comportement du chargement »." +"Cette option peut être modifiée ultérieurement dans les préférences, sous " +"« Comportement du chargement »." msgid "Only one G-code file can be opened at the same time." msgstr "Un seul fichier G-code peut être ouvert à la fois." @@ -7919,8 +7919,8 @@ msgstr "" msgid "" "When recording timelapse without toolhead, it is recommended to add a " "\"Timelapse Wipe Tower\" \n" -"by right-click the empty position of build plate and choose \"Add Primitive" -"\"->\"Timelapse Wipe Tower\"." +"by right-click the empty position of build plate and choose \"Add " +"Primitive\"->\"Timelapse Wipe Tower\"." msgstr "" "Lorsque vous enregistrez un timelapse sans tête d’outil, il est recommandé " "d’ajouter une \"Tour d’essuyage timelapse\".\n" @@ -8175,9 +8175,9 @@ msgid "" "Bed temperature when cool plate is installed. Value 0 means the filament " "does not support to print on the Cool Plate" msgstr "" -"Il s'agit de la température du plateau lorsque le plateau froid (\"Cool plate" -"\") est installé. Une valeur à 0 signifie que ce filament ne peut pas être " -"imprimé sur le plateau froid." +"Il s'agit de la température du plateau lorsque le plateau froid (\"Cool " +"plate\") est installé. Une valeur à 0 signifie que ce filament ne peut pas " +"être imprimé sur le plateau froid." msgid "Textured Cool plate" msgstr "Plaque Cool plate texturée" @@ -12497,10 +12497,10 @@ msgstr "Ventilateur à pleine vitesse à la couche" msgid "" "Fan speed will be ramped up linearly from zero at layer " -"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer" -"\". \"full_fan_speed_layer\" will be ignored if lower than " -"\"close_fan_the_first_x_layers\", in which case the fan will be running at " -"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." +"\"close_fan_the_first_x_layers\" to maximum at layer " +"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " +"than \"close_fan_the_first_x_layers\", in which case the fan will be running " +"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." msgstr "" "La vitesse du ventilateur augmentera de manière linéaire à partir de zéro à " "la couche \"close_fan_the_first_x_layers\" jusqu’au maximum à la couche " @@ -13029,7 +13029,7 @@ msgid "Inherits profile" msgstr "Hérite du profil" msgid "Name of parent profile" -msgstr "" +msgstr "Nom du profil parent" msgid "Interface shells" msgstr "Coque des interfaces" @@ -14426,7 +14426,7 @@ msgstr "" "diamètre de la buse." msgid "Spiral starting flow ratio" -msgstr "" +msgstr "Rapport de débit de départ de la spirale" #, fuzzy, c-format, boost-format msgid "" @@ -14442,7 +14442,7 @@ msgstr "" "spirale." msgid "Spiral finishing flow ratio" -msgstr "" +msgstr "Taux de débit de la finition en spirale" #, fuzzy, c-format, boost-format msgid "" @@ -14601,8 +14601,8 @@ msgid "" "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to " "close all holes in the model." msgstr "" -"Utilisez « Pair-impair » pour les modèles d'avion 3DLabPrint. Utilisez « " -"Fermer les trous » pour fermer tous les trous du modèle." +"Utilisez « Pair-impair » pour les modèles d'avion 3DLabPrint. Utilisez " +"« Fermer les trous » pour fermer tous les trous du modèle." msgid "Regular" msgstr "Standard" @@ -15019,6 +15019,8 @@ msgid "" "This setting specifies the count of support walls in the range of [0,2]. 0 " "means auto." msgstr "" +"Ce paramètre spécifie le nombre de parois de support dans l’intervalle " +"[0,2]. 0 signifie auto." msgid "Tree support with infill" msgstr "Support arborescent avec remplissage" @@ -15035,8 +15037,8 @@ msgstr "Activer le contrôle de la température" msgid "" "Enable this option for automated chamber temperature control. This option " -"activates the emitting of an M191 command before the \"machine_start_gcode" -"\"\n" +"activates the emitting of an M191 command before the " +"\"machine_start_gcode\"\n" " which sets the chamber temperature and waits until it is reached. In " "addition, it emits an M141 command at the end of the print to turn off the " "chamber heater, if present. \n" @@ -15479,8 +15481,8 @@ msgid "" "Wipe tower is only compatible with relative mode. It is recommended on most " "printers. Default is checked" msgstr "" -"L’extrusion relative est recommandée lors de l’utilisation de l’option « " -"label_objects ». Certains extrudeurs fonctionnent mieux avec cette option " +"L’extrusion relative est recommandée lors de l’utilisation de l’option " +"« label_objects ». Certains extrudeurs fonctionnent mieux avec cette option " "non verrouillée (mode d’extrusion absolu). La tour d’essuyage n’est " "compatible qu’avec le mode relatif. Il est recommandé sur la plupart des " "imprimantes. L’option par défaut est cochée" @@ -15674,13 +15676,13 @@ msgid "Export STL" msgstr "Exporter STL" msgid "Export the objects as single STL." -msgstr "" +msgstr "Exporter les objets en tant que STL unique." msgid "Export multiple STLs" -msgstr "" +msgstr "Exporter plusieurs STL" msgid "Export the objects as multiple STLs to directory" -msgstr "" +msgstr "Exporter les objets sous forme de STLs multiples dans un répertoire" msgid "Slice" msgstr "Découper" @@ -15699,12 +15701,13 @@ msgstr "" "Mettez à jour les valeurs de configuration 3mf à la version la plus récente." msgid "downward machines check" -msgstr "" +msgstr "contrôle des machines descendantes" msgid "" "check whether current machine downward compatible with the machines in the " "list" msgstr "" +"vérifier si la machine actuelle est compatible avec les machines de la liste" msgid "Load default filaments" msgstr "Charger les filaments par défaut" @@ -15836,10 +15839,10 @@ msgid "Skip some objects in this print" msgstr "Ignorer certains objets de cette impression" msgid "Clone Objects" -msgstr "" +msgstr "Cloner des objets" msgid "Clone objects in the load list" -msgstr "" +msgstr "Cloner des objets dans la liste de chargement" msgid "load uptodate process/machine settings when using uptodate" msgstr "" @@ -15855,27 +15858,37 @@ msgstr "" msgid "load uptodate filament settings when using uptodate" msgstr "" +"charger les réglages du filament actualisés lors de l’utilisation d’un " +"filament actualisé" msgid "" "load uptodate filament settings from the specified file when using uptodate" msgstr "" +"charger les paramètres de filament actualisés à partir du fichier spécifié " +"lors de l’utilisation de l’actualisation" msgid "" "if enabled, check whether current machine downward compatible with the " "machines in the list" msgstr "" +"si l’option est activée, vérifier si la machine actuelle est compatible avec " +"les machines de la liste." msgid "downward machines settings" -msgstr "" +msgstr "réglages des machines descendantes" msgid "the machine settings list need to do downward checking" msgstr "" +"la liste des paramètres de la machine doit faire l’objet d’une vérification " +"descendante" msgid "Load assemble list" -msgstr "" +msgstr "Charger la liste d’assemblage" msgid "Load assemble object list from config file" msgstr "" +"Chargement de la liste des objets assemblés à partir du fichier de " +"configuration" msgid "Data directory" msgstr "Répertoire de données" @@ -15906,10 +15919,12 @@ msgstr "" "avertissement, 3 :info, 4 :débogage, 5 :trace\n" msgid "Enable timeplapse for print" -msgstr "" +msgstr "Activer le timelapse pour l’impression" msgid "If enabled, this slicing will be considered using timelapse" msgstr "" +"Si cette option est activée, cette découpe sera prise en charge en utilisant " +"un timelapse" msgid "Load custom gcode" msgstr "Charger un G-code personnalisé" @@ -15918,63 +15933,71 @@ msgid "Load custom gcode from json" msgstr "Charger un G-code personnalisé à partir de json" msgid "Load filament ids" -msgstr "" +msgstr "Chargement des identifiants de filaments" msgid "Load filament ids for each object" -msgstr "" +msgstr "Chargement des identifiants de filaments pour chaque objet" msgid "Allow multiple color on one plate" -msgstr "" +msgstr "Permettre l’utilisation de plusieurs couleurs sur une même plaque" msgid "If enabled, the arrange will allow multiple color on one plate" msgstr "" +"Si cette option est activée, l’arrangement permettra d’utiliser plusieurs " +"couleurs sur une même plaque." msgid "Allow rotatations when arrange" -msgstr "" +msgstr "Autoriser des rotations dans le cadre d’un réagencement" msgid "If enabled, the arrange will allow rotations when place object" msgstr "" +"Si cette option est activée, l’arrangement autorisera les rotations lors du " +"placement de l’objet." msgid "Avoid extrusion calibrate region when doing arrange" -msgstr "" +msgstr "Éviter la région d’étalonnage de l’extrusion lors de l’arrangement" msgid "" "If enabled, the arrange will avoid extrusion calibrate region when place " "object" msgstr "" +"Si cette option est activée, l’arrangement évitera la région d’étalonnage de " +"l’extrusion lorsqu’il placera l’objet." msgid "Skip modified gcodes in 3mf" -msgstr "" +msgstr "Ignorer les gcodes modifiés dans le 3mf" msgid "Skip the modified gcodes in 3mf from Printer or filament Presets" msgstr "" +"Sauter les gcodes modifiés dans le 3mf à partir des préréglages de " +"l’imprimante ou du filament" msgid "MakerLab name" -msgstr "" +msgstr "Nom dans MakerLab" msgid "MakerLab name to generate this 3mf" -msgstr "" +msgstr "Nom de MakerLab pour générer ce 3mf" msgid "MakerLab version" -msgstr "" +msgstr "Version de MakerLab" msgid "MakerLab version to generate this 3mf" -msgstr "" +msgstr "Version de MakerLab pour générer ce 3mf" msgid "metadata name list" -msgstr "" +msgstr "liste de noms de métadonnées" msgid "metadata name list added into 3mf" -msgstr "" +msgstr "liste de noms de métadonnées ajoutée dans le 3mf" msgid "metadata value list" -msgstr "" +msgstr "liste des valeurs des métadonnées" msgid "metadata value list added into 3mf" -msgstr "" +msgstr "liste des valeurs de métadonnées ajoutée au 3mf" msgid "Allow 3mf with newer version to be sliced" -msgstr "" +msgstr "Autoriser la découpe de 3mf avec une version plus récente" msgid "Current z-hop" msgstr "Saut en z actuel" @@ -17396,8 +17419,8 @@ msgstr "" "Voulez-vous le réécrire ?" msgid "" -"We would rename the presets as \"Vendor Type Serial @printer you selected" -"\". \n" +"We would rename the presets as \"Vendor Type Serial @printer you " +"selected\". \n" "To add preset for more printers, Please go to printer selection" msgstr "" "Nous renommerions les préréglages en « Vendor Type Serial @printer you " @@ -18380,42 +18403,44 @@ msgid "Head diameter" msgstr "Diamètre de la tête" msgid "Max angle" -msgstr "" +msgstr "Angle maximal" msgid "Detection radius" -msgstr "" +msgstr "Rayon de détection" msgid "Remove selected points" msgstr "Retirer les points sélectionnés" msgid "Remove all" -msgstr "" +msgstr "Supprimer tout" msgid "Auto-generate points" msgstr "Générer automatiquement les points" msgid "Add a brim ear" -msgstr "" +msgstr "Ajouter une bordure à oreilles" msgid "Delete a brim ear" -msgstr "" +msgstr "Supprimer une bordure à oreilles" msgid "Adjust section view" -msgstr "" +msgstr "Ajuster la vue de section" msgid "" "Warning: The brim type is not set to \"painted\",the brim ears will not take " "effect !" msgstr "" +"Attention : Si le type de bord n’est pas réglé sur « peint », les bordures " +"en oreilles ne seront pas prises en compte !" msgid "Set the brim type to \"painted\"" -msgstr "" +msgstr "Régler le type de bordure sur « peint »" msgid " invalid brim ears" -msgstr "" +msgstr " bordure à oreilles invalide" msgid "Brim Ears" -msgstr "" +msgstr "Bordure à oreilles" msgid "Please select single object." msgstr "Please select single object." @@ -19352,8 +19377,8 @@ msgstr "" #~ "modèle. Réglez le « seuil d’une paroi » dans les paramètres avancés ci-" #~ "dessous pour ajuster la sensibilité de ce qui est considéré comme une " #~ "surface supérieure. Le « seuil d’une paroi » n’est visible que si ce " -#~ "paramètre est supérieur à la valeur par défaut de 0,5 ou si l’option « " -#~ "surfaces supérieures à une paroi » est activée." +#~ "paramètre est supérieur à la valeur par défaut de 0,5 ou si l’option " +#~ "« surfaces supérieures à une paroi » est activée." #, c-format, boost-format #~ msgid "" @@ -20240,8 +20265,8 @@ msgstr "" #~ "thickness (top+bottom solid layers)" #~ msgstr "" #~ "Ajoutez du remplissage solide à proximité des surfaces inclinées pour " -#~ "garantir l'épaisseur verticale de la coque (couches solides supérieure" -#~ "+inférieure)." +#~ "garantir l'épaisseur verticale de la coque (couches solides " +#~ "supérieure+inférieure)." #~ msgid "Further reduce solid infill on walls (beta)" #~ msgstr "Réduire davantage le remplissage solide des parois (expérimental)" From c81b743d31214ccb5d85d2beacc59672687ddc38 Mon Sep 17 00:00:00 2001 From: Andy Date: Mon, 3 Mar 2025 19:28:54 +0700 Subject: [PATCH 4/6] Russian translation update (#8645) The next update: General improvement of translation, correction of errors. --- localization/i18n/ru/OrcaSlicer_ru.po | 1723 +++++++++++-------------- 1 file changed, 747 insertions(+), 976 deletions(-) diff --git a/localization/i18n/ru/OrcaSlicer_ru.po b/localization/i18n/ru/OrcaSlicer_ru.po index fcdc529f1c..800bbc53cb 100644 --- a/localization/i18n/ru/OrcaSlicer_ru.po +++ b/localization/i18n/ru/OrcaSlicer_ru.po @@ -5,18 +5,18 @@ # msgid "" msgstr "" -"Project-Id-Version: OrcaSlicer V2.2.0 Official Release\n" +"Project-Id-Version: OrcaSlicer v2.3.0-beta\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-03-01 17:37+0800\n" -"PO-Revision-Date: 2024-09-25 22:36+0700\n" +"PO-Revision-Date: 2025-03-02 17:17+0700\n" "Last-Translator: \n" "Language-Team: Andylg \n" "Language: ru_RU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" -"%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" "X-Generator: Poedit 3.5\n" msgid "Supports Painting" @@ -196,10 +196,10 @@ msgid "Gizmo-Move" msgstr "Гизмо перемещения" msgid "Rotate" -msgstr "Поворот" +msgstr "Вращение" msgid "Gizmo-Rotate" -msgstr "Гизмо поворота" +msgstr "Гизмо вращения" msgid "Optimize orientation" msgstr "Оптимизация положения модели" @@ -416,8 +416,7 @@ msgstr "Удалить соединение из выбранного" msgid "Select all connectors" msgstr "Выбрать все соединения" -# Разный перевод одного слова -Одно название действия Разрезать в другой в -# Правке -> Вырезать +# Разный перевод одного слова -Одно название действия Разрезать в другой в Правке -> Вырезать msgid "Cut" msgstr "Разрезать" @@ -601,7 +600,7 @@ msgid "%d triangles" msgstr "Треугольников: %d" msgid "Show wireframe" -msgstr "Показывать каркас" +msgstr "Показать каркас" #, boost-format msgid "%1%" @@ -1310,7 +1309,6 @@ msgstr "Выбрать элемент" msgid "Select point" msgstr "Выбрать точку" -# ?????? В двух местах - в одном месте действие в другом кнопка, как быть? msgid "Delete" msgstr "Удалить" @@ -1321,7 +1319,7 @@ msgid "Esc" msgstr "Esc" msgid "Cancel a feature until exit" -msgstr "Отмените функцию до выхода" +msgstr "Отменить выбор до выхода" msgid "Measure" msgstr "Измерения" @@ -1360,15 +1358,15 @@ msgid "" "Select 2 faces on objects and \n" " make objects assemble together." msgstr "" -"Выберите на модели 2 грани \n" -" и соедините модели вместе." +"Выберите 2 грани - по одной на каждой \n" +"модели, чтобы совместить их по этим граням." msgid "" "Select 2 points or circles on objects and \n" " specify distance between them." msgstr "" "Выберите 2 точки или окружности на моделях \n" -" и укажите расстояние между ними." +"и укажите расстояние между ними." msgid "Face" msgstr "Грань" @@ -1387,13 +1385,14 @@ msgstr "" "элемент 2 стал элементом 1." msgid "Warning:please select Plane's feature." -msgstr "Предупреждение: выберите плоскость." +msgstr "Внимание: выберите плоскость." msgid "Warning:please select Point's or Circle's feature." -msgstr "Предупреждение: выберите точку или окружность." +msgstr "Внимание: выберите точку или окружность." +# ????? выберите две разные сетки, выберите две различные 3D-сетки (объекты), msgid "Warning:please select two different mesh." -msgstr "Предупреждение: выберите две разные сетки." +msgstr "Внимание: выберите требуемый элемент на втором объекте." msgid "Copy to clipboard" msgstr "Скопировать в буфер обмена" @@ -1414,7 +1413,7 @@ msgid "Parallel" msgstr "Параллельно" msgid "Center coincidence" -msgstr "Совпадение центров" +msgstr "Совместить центры" msgid "Featue 1" msgstr "Элемент 1" @@ -1427,6 +1426,8 @@ msgstr "Вращение вокруг центра:" msgid "Parallel distance:" msgstr "" +"Расстояние между \n" +"параллельными гранями:" msgid "Flip by Face 2" msgstr "Перевернуть грань 2" @@ -1445,7 +1446,7 @@ msgid "%1% was replaced with %2%" msgstr "%1% было заменено на %2%" msgid "The configuration may be generated by a newer version of OrcaSlicer." -msgstr "Возможно, эта конфигурация создана в более новой версии OrcaSlicer." +msgstr "Возможно, этот профиль создан в более новой версии OrcaSlicer." msgid "Some values have been replaced. Please check them:" msgstr "Некоторые значения были заменены. Пожалуйста, проверьте их:" @@ -1462,15 +1463,13 @@ msgid "Machine" msgstr "Принтер" msgid "Configuration package was loaded, but some values were not recognized." -msgstr "" -"Пакет конфигурации был загружен, но некоторые значения не были распознаны." +msgstr "Пакет профилей был загружен, но некоторые значения не были распознаны." #, boost-format msgid "" "Configuration file \"%1%\" was loaded, but some values were not recognized." msgstr "" -"Файл конфигурации \"%1%\" был загружен, но некоторые значения не были " -"распознаны." +"Файл профиля \"%1%\" был загружен, но некоторые значения не были распознаны." msgid "" "OrcaSlicer will terminate because of running out of memory.It may be a bug. " @@ -1547,7 +1546,7 @@ msgid "The Orca Slicer needs an upgrade" msgstr "Orca Slice нуждается в обновлении." msgid "This is the newest version." -msgstr "У вас стоит самая последняя версия." +msgstr "У вас стоит последняя версия программы." msgid "Info" msgstr "Информация" @@ -1724,7 +1723,7 @@ msgid "Fuzzy Skin" msgstr "Нечёткая оболочка" msgid "Extruders" -msgstr "Экструдеры" +msgstr "Количество экструдеров" msgid "Extrusion Width" msgstr "Ширина экструзии" @@ -2515,11 +2514,11 @@ msgstr "Автодозаправка" msgid "AMS not connected" msgstr "АСПП не подключена" -# ??? кнопка в интерфейсе? Extrude - Выдавить - Load +# кнопка в интерфейсе? Extrude - Выдавить - Load msgid "Load" msgstr "Выдавить" -# ??? кнопка в интерфейсе? retract - Втянуть - Unload (Выгрузить, Вырузка) +# кнопка в интерфейсе? retract - Втянуть - Unload (Выгрузить, Выгрузка) msgid "Unload" msgstr "Втянуть" @@ -2584,7 +2583,7 @@ msgid "" "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "load or unload filaments." msgstr "" -"Выберите слот АСПП, затем нажмите кнопку «Загрузить» или «Выгрузить» для " +"Выберите слот АСПП, затем нажмите кнопку «Выдавить» или «Втянуть» для " "автоматической загрузки или выгрузки прутка." msgid "Edit" @@ -3152,8 +3151,6 @@ msgstr "ВЛАЖНЫЙ" msgid "AMS Settings" msgstr "Настройки АСПП" -# ??? Обновление при вставке материала, Обновлять данные о материале при -# вставке msgid "Insertion update" msgstr "Обновлять данные при вставке материала" @@ -3179,8 +3176,6 @@ msgstr "" "информацию о ней, оставляя поле пустым, чтобы пользователь мог ввести данные " "о ней вручную." -# ??? Обновление при включении принтера, Обновлять данные о материале при -# включении принтера msgid "Power on update" msgstr "Обновлять данные при включении принтера" @@ -3452,7 +3447,7 @@ msgid "Idle" msgstr "Простой" msgid "Printing" -msgstr "Печать" +msgstr "Идёт печать" msgid "Upgrading" msgstr "Обновление" @@ -3538,11 +3533,11 @@ msgstr "Неправильные данные файла печати. Пожа msgid "There is no device available to send printing." msgstr "Отсутствует устройство для отправки на печать." -# ??? для начала печати необходимо, чтобы хотя бы один принтер был активен? +# ??? для начала печати необходимо, чтобы хотя бы один принтер был активен? Убедитесь, что хотя бы один принтер включён msgid "The number of printers in use simultaneously cannot be equal to 0." msgstr "" -"Необходимость наличия хотя бы одного работающего принтера для выполнения " -"задач печати." +"Необходимо наличия хотя бы одного работающего принтера для выполнения задач " +"печати." msgid "Use External Spool" msgstr "Исп. внешнюю катушку" @@ -3796,8 +3791,8 @@ msgid "" "Alternate extra wall does't work well when ensure vertical shell thickness " "is set to All. " msgstr "" -"Чередующаяся дополнительная стенка не работает, если для \"Обеспечивать " -"верт. толщину оболочки\" установлено значение «Везде»." +"Чередующаяся дополнительная стенка не работает, если для «Сохранение толщины " +"вертикальной оболочки» установлено значение «Везде»." msgid "" "Change these settings automatically? \n" @@ -3806,7 +3801,7 @@ msgid "" "No - Don't use alternate extra wall" msgstr "" "Изменить эти настройки автоматически?\n" -"Да - Изменить в «Обеспечивать верт. толщину оболочки» на значение " +"Да - Изменить в «Сохранение толщины вертикальной оболочки» на значение " "«Умеренное» и включить чередующуюся дополнительную стенку\n" "Нет - Отказаться от использования чередующейся дополнительной стенки" @@ -3959,7 +3954,6 @@ msgstr "Калибровка шума двигателя" msgid "Paused due to AMS lost" msgstr "Печать приостановлена из-за потери связи с АСПП" -# ??? Печать приостановлена из-за низкой скорости вентилятора радиатора головы msgid "Paused due to low speed of the heat break fan" msgstr "" "Печать приостановлена из-за низкой скорости вентилятора обдува радиатора " @@ -4620,7 +4614,7 @@ msgstr "Автозапись мониторинга" msgid "Go Live" msgstr "Запустить трансляцию" -# ??? Повторить попытку просмотра , Попробовать перезапустить видеотрансляцию +# ??? Повторить попытку просмотра msgid "Liveview Retry" msgstr "Перезапустить видеотрансляцию" @@ -4737,7 +4731,7 @@ msgid "Show Tip of the Day" msgstr "Показать полезный совет" msgid "Check for Update" -msgstr "Проверка обновления" +msgstr "Проверка обновления программы" msgid "Open Network Test" msgstr "Проверка сети" @@ -4824,19 +4818,19 @@ msgid "Save current project as" msgstr "Сохранить текущий проект как" msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF" -msgstr "Импортировать 3MF/STL/STEP/SVG/OBJ/AMF" +msgstr "Импорт 3MF/STL/STEP/SVG/OBJ/AMF" msgid "Load a model" msgstr "Загрузка модели" msgid "Import Zip Archive" -msgstr "Импортировать ZIP-архив" +msgstr "Импорт ZIP-архив" msgid "Load models contained within a zip archive" msgstr "Загрузка моделей, содержащихся в ZIP-архиве" msgid "Import Configs" -msgstr "Импортировать конфигурацию" +msgstr "Импорт профилей" msgid "Load configs" msgstr "Загрузка настроек" @@ -4869,7 +4863,7 @@ msgid "Export current plate as G-code" msgstr "Экспортировать текущие модели со стола в G-код" msgid "Export Preset Bundle" -msgstr "Экспорт пакетов конфигурации" +msgstr "Экспорт пакета профилей" msgid "Export current configuration to files" msgstr "Экспортировать текущую конфигурацию в файл" @@ -4974,7 +4968,6 @@ msgstr "Показать &нависания" msgid "Show object overhang highlight in 3D scene" msgstr "Подсвечивать нависания у модели в окне подготовки" -# ??? Показать контур выбранного msgid "Show Selected Outline (beta)" msgstr "Показать контур выбранной модели" @@ -5090,7 +5083,7 @@ msgstr "Файл с именем %s уже существует. Перезап #, c-format, boost-format msgid "A config exists with the same name: %s, do you want to override it." -msgstr "Конфигурация с именем %s уже существует. Перезаписать её?" +msgstr "Профиль с именем %s уже существует. Перезаписать его?" msgid "Overwrite file" msgstr "Перезаписать файл" @@ -5107,12 +5100,12 @@ msgstr "Выберите папку" #, c-format, boost-format msgid "There is %d config exported. (Only non-system configs)" msgid_plural "There are %d configs exported. (Only non-system configs)" -msgstr[0] "Экспортирована %d конфигурация (только не системная)." -msgstr[1] "Экспортировано %d конфигурации (только не системные)." -msgstr[2] "Экспортировано %d конфигураций (только не системные)." +msgstr[0] "Экспортирован %d профиль (только не системный)." +msgstr[1] "Экспортировано %d профиля (только не системные)." +msgstr[2] "Экспортировано %d профилей (только не системные)." msgid "Export result" -msgstr "Результат экспортирования" +msgstr "Результат экспорта" msgid "Select profile to load:" msgstr "Выберите профиль для загрузки:" @@ -5121,9 +5114,9 @@ msgstr "Выберите профиль для загрузки:" msgid "There is %d config imported. (Only non-system and compatible configs)" msgid_plural "" "There are %d configs imported. (Only non-system and compatible configs)" -msgstr[0] "Импортирована %d конфигурация (только не системная и совместимая)." -msgstr[1] "Импортировано %d конфигурации (только не системные и совместимые)." -msgstr[2] "Импортировано %d конфигураций (только не системные и совместимые)." +msgstr[0] "Импортирован %d профиль (только не системный и совместимый)." +msgstr[1] "Импортировано %d профиля (только не системные и совместимые)." +msgstr[2] "Импортировано %d профилей (только не системные и совместимые)." msgid "" "\n" @@ -5135,7 +5128,7 @@ msgstr "" "соответствующий принтер." msgid "Import result" -msgstr "Импортировать результат" +msgstr "Результат импорта" msgid "File is missing" msgstr "Файл отсутствует" @@ -5193,8 +5186,7 @@ msgstr "" "попытку." # ??? Видеотрансляция, Трансляция с видеокамеры -# ??? Прямая трансляция для локальной сети отключена. Пожалуйста, включите её -# с экрана принтера. +# ??? Прямая трансляция для локальной сети отключена. Пожалуйста, включите её с экрана принтера. msgid "" "LAN Only Liveview is off. Please turn on the liveview on printer screen." msgstr "" @@ -5212,8 +5204,7 @@ msgstr "" "Не удалось установить соединение. Пожалуйста, проверьте сеть и повторите " "попытку" -# ??? Проверить влезает ли теперь. Или ещё короче - Проверьте сеть и повторите -# попытку. Если не помогло, перезагрузите или обновите принтер. +# ??? Проверить влезает ли теперь. Или ещё короче - Проверьте сеть и повторите попытку. Если не помогло, перезагрузите или обновите принтер. msgid "" "Please check the network and try again, You can restart or update the " "printer if the issue persists." @@ -5221,15 +5212,14 @@ msgstr "" "Проверьте сеть и повторите попытку. Если не помогло, попробуйте " "перезагрузить или обновить принтер." -# ??? Принтер разлогинился и не может подключиться msgid "The printer has been logged out and cannot connect." msgstr "Принтер вышел из системы и не может подключиться." +# ??? видеотрансляция остановлена msgid "Video Stopped." msgstr "Трансляция с камеры остановлена." -# ??? Сбой подключения к локальной сети (не удалось запустить просмотр в -# реальном времени +# ??? Сбой подключения к локальной сети (не удалось запустить просмотр в реальном времени msgid "LAN Connection Failed (Failed to start liveview)" msgstr "" "Сбой подключения к локальной сети (не удалось запустить видеотрансляцию)" @@ -5489,7 +5479,7 @@ msgid "Layer: N/A" msgstr "Слой: Н/Д" msgid "Clear" -msgstr "Очистить" +msgstr "Сбросить" msgid "" "You have completed printing the mall model, \n" @@ -5818,13 +5808,14 @@ msgid "How to use LAN only mode" msgstr "Как использовать режим «Только LAN»" msgid "Don't show this dialog again" -msgstr "Больше не показывать" +msgstr "Не показывать снова" msgid "3D Mouse disconnected." msgstr "3D-мышь отключена." +# Теперь профиль может быть обновлён msgid "Configuration can update now." -msgstr "Конфигурация может быть обновлена сейчас." +msgstr "Теперь профиль можно обновить." msgid "Detail." msgstr "Подробности." @@ -5845,7 +5836,7 @@ msgid "Details" msgstr "Подробности" msgid "New printer config available." -msgstr "Доступна новая конфигурация принтера." +msgstr "Доступен новый профиль принтера." msgid "Wiki" msgstr "Вики-сайт" @@ -6116,7 +6107,7 @@ msgid "Add one filament" msgstr "Добавить пластиковую нить" msgid "Remove last filament" -msgstr "Удалить предыдущую добавленную пластиковую нить" +msgstr "Удалить последнюю добавленную пластиковую нить" msgid "Synchronize filament list from AMS" msgstr "Синхронизировать список материалов из АСПП" @@ -6515,7 +6506,7 @@ msgid "The selected file" msgstr "В выбранном файле" msgid "does not contain valid gcode." -msgstr "G-кода содержатся недопустимые данные." +msgstr "не содержится правильного G-кода." msgid "Error occurs while loading G-code file" msgstr "Ошибка при загрузке файла G-кода" @@ -6548,7 +6539,7 @@ msgstr "Импортировать только геометрию" msgid "" "This option can be changed later in preferences, under 'Load Behaviour'." -msgstr "" +msgstr "Поведение при открытии можно изменить позже в настройках приложения." msgid "Only one G-code file can be opened at the same time." msgstr "Одновременно можно открыть только один файл G-кода." @@ -6601,7 +6592,7 @@ msgid "" "Unable to perform boolean operation on model meshes. Only positive parts " "will be kept. You may fix the meshes and try again." msgstr "" -"Невозможно выполнить булеву операцию над сетками модели. Будут сохранены " +"Невозможно выполнить булевую операцию над сетками модели. Будут сохранены " "только положительные части. Попробуйте починить сетку модели и попробовать " "снова." @@ -6612,7 +6603,7 @@ msgstr "Причина: часть \"%1%\" пустая." # ??? не формирует объем, не имеет замкнутой геометрии #, boost-format msgid "Reason: part \"%1%\" does not bound a volume." -msgstr "Причина: часть \"%1%\" не формирует замкнутый объём." +msgstr "Причина: часть \"%1%\" не формирует замкнутый объём." #, boost-format msgid "Reason: part \"%1%\" has self intersection." @@ -6626,7 +6617,7 @@ msgid "" "Unable to perform boolean operation on model meshes. Only positive parts " "will be exported." msgstr "" -"Невозможно выполнить булеву операцию над сетками модели. Будут " +"Невозможно выполнить булевую операцию над сетками модели. Будут " "экспортированы только положительные части." msgid "" @@ -6942,8 +6933,9 @@ msgid "" "If enabled, Orca will remember and switch filament/process configuration for " "each printer automatically." msgstr "" -"Если включено, программа автоматически запоминает и переключает конфигурацию " -"материала/процесса печати для каждого принтера." +"Если включено, программа будет запоминать связь выбранного профиля принтера " +"с профилем пластиковой нити и процессом печати, выставленными вами в " +"последний раз." msgid "Multi-device Management(Take effect after restarting Orca)." msgstr "Управление несколькими принтерами (требуется перезапуск программы)" @@ -6971,13 +6963,17 @@ msgid "User Sync" msgstr "Синхронизация пользовательских данных." msgid "Update built-in Presets automatically." -msgstr "Обновлять встроенные профили автоматически" +msgstr "Автоматически обновлять системные профили" msgid "System Sync" msgstr "Синхронизация системных данных." +# ??? Сбросить мой выбор действия для профилей, Сбросить запрос о несохранённых изменениях для профиля при закрытии программы, Сбросить выбор, который я сделал при запросе о несохранённых изменениях в профиле. msgid "Clear my choice on the unsaved presets." -msgstr "Очистить мой выбор от несохранённых профилей." +msgstr "" +"Сбросить мой выбор, сделанный \n" +"при запросе о несохранённых \n" +"изменениях в профиле." msgid "Associate files to OrcaSlicer" msgstr "Сопоставление типов файлов с OrcaSlicer" @@ -7013,22 +7009,27 @@ msgid "Associate URLs to OrcaSlicer" msgstr "Ассоциировать URL-адреса с OrcaSlicer" msgid "Load All" -msgstr "" +msgstr "Загружать всё" msgid "Ask When Relevant" -msgstr "" +msgstr "Спрашивать, когда уместно" msgid "Always Ask" -msgstr "" +msgstr "Спрашивать всегда" msgid "Load Geometry Only" -msgstr "" +msgstr "Загружать только геометрию" +# нее влезает Поведение при открытии msgid "Load Behaviour" msgstr "" +"Поведение \n" +"при открытии" msgid "Should printer/filament/process settings be loaded when opening a .3mf?" msgstr "" +"Выбор того, следует ли при открытии 3mf проекта загружать настройки " +"принтера, прутка и процесса." msgid "Maximum recent projects" msgstr "Максимальное количество недавних проектов" @@ -7037,8 +7038,12 @@ msgid "Maximum count of recent projects" msgstr "" "Максимальное количество проектов, отображаемое в списке недавних проектов." +# ??? Сбросить мой выбор действия для проектов, Сбросить запрос о несохранённых изменениях для проекта при закрытии программы msgid "Clear my choice on the unsaved projects." -msgstr "Очистить мой выбор от несохранённых проектов." +msgstr "" +"Сбросить мой выбор, сделанный \n" +"при запросе о несохранённых \n" +"изменениях в проекте." msgid "No warnings when loading 3MF with modified G-codes" msgstr "Отключить предупреждения при загрузке 3MF с модифицированным G-кодом" @@ -7205,8 +7210,7 @@ msgstr "Создать принтер" msgid "The selected preset is null!" msgstr "Выбранный профиль пуст!" -# ?????? В двух местах - в одном месте кнопка в другом Конечный слой. В -# V2.2.0beta2 пока не исправлено +# ?????? В двух местах - в одном месте кнопка в другом Конечный слой. В V2.2.0beta2 пока не исправлено msgid "End" msgstr "End" @@ -7431,13 +7435,12 @@ msgstr "Время синхронизации информации об устр msgid "Cannot send the print job when the printer is updating firmware" msgstr "" -"Невозможно отправить задание на печать, при обновлении прошивки принтера." +"При обновлении прошивки принтера невозможно отправить задание на печать." msgid "" "The printer is executing instructions. Please restart printing after it ends" msgstr "" -"Принтер выполняет инструкции. Пожалуйста, перезапустите печать после их " -"завершения." +"Принтер выполняет команды. После их выполнения перезапустите процесс печати." msgid "The printer is busy on other print job" msgstr "Принтер занят другим заданием" @@ -7897,8 +7900,8 @@ msgstr "" msgid "" "When recording timelapse without toolhead, it is recommended to add a " "\"Timelapse Wipe Tower\" \n" -"by right-click the empty position of build plate and choose \"Add Primitive" -"\"->\"Timelapse Wipe Tower\"." +"by right-click the empty position of build plate and choose \"Add " +"Primitive\"->\"Timelapse Wipe Tower\"." msgstr "" "При записи таймлапса без видимости головы рекомендуется добавить «Черновая " "башня таймлапса». \n" @@ -7956,6 +7959,7 @@ msgstr "Для этого укажите новое имя для профиля msgid "Additional information:" msgstr "Дополнительная информация:" +# Поставщик????? msgid "vendor" msgstr "производитель" @@ -8051,8 +8055,9 @@ msgstr "Пруток для поддержки" msgid "Tree supports" msgstr "Древовидная поддержка" +# ММ печать msgid "Multimaterial" -msgstr "ММ принтер" +msgstr "Экструдер ММ" msgid "Prime tower" msgstr "Черновая башня" @@ -8139,12 +8144,14 @@ msgid "Nozzle temperature when printing" msgstr "Температура сопла при печати" msgid "Cool Plate (SuperTack)" -msgstr "" +msgstr "Не нагрев. пластина (SuperTack)" msgid "" "Bed temperature when cool plate is installed. Value 0 means the filament " "does not support to print on the Cool Plate SuperTack" msgstr "" +"Температура стола при установленной не нагреваемой пластине. 0 означает, что " +"пластиковая нить не поддерживает печать на этой печатной пластине." msgid "Cool Plate" msgstr "Не нагреваемая пластина" @@ -8156,8 +8163,6 @@ msgstr "" "Температура стола при установленной не нагреваемой пластине. 0 означает, что " "пластиковая нить не поддерживает печать на этой печатной пластине." -# ??????? Текстурированная не нагреваемая пластина Bambu, Текстурированная -# пластина Bambu msgid "Textured Cool plate" msgstr "Не нагреваемая текстур. пластина Bambu" @@ -8246,11 +8251,9 @@ msgstr "Вспомогательный вентилятор модели" msgid "Exhaust fan" msgstr "Вытяжной вентилятор" -# ??? Скорость во время печати msgid "During print" msgstr "Скорость вентилятора во время печати" -# ??? Скорость после завершения печати msgid "Complete print" msgstr "Скорость вентилятора после завершения печати" @@ -8354,12 +8357,13 @@ msgstr "Максимальные ускорения" msgid "Jerk limitation" msgstr "Максимальные рывки" -# ????2 msgid "Single extruder multi-material setup" -msgstr "Характеристики одноэкструдерного мультиматериального принтера" +msgstr "Параметры одиночного ММ экструдера" msgid "Number of extruders of the printer." -msgstr "Количество экструдеров у принтера." +msgstr "" +"По факту количество подающих механизмов (фидеров) у принтера вне " +"зависимости, используют они одно общее, или несколько раздельных хотэндов." msgid "" "Single Extruder Multi Material is selected, \n" @@ -8367,7 +8371,7 @@ msgid "" "Do you want to change the diameter for all extruders to first extruder " "nozzle diameter value?" msgstr "" -"Выбран одноэкструдерный мультиматериальный принтер, \n" +"Выбран одиночный мультиматериальный экструдер, \n" "поэтому все экструдеры должны иметь одинаковый диаметр.\n" "Изменить диаметр всех экструдеров на значение диаметра сопла первого " "экструдера?" @@ -8379,20 +8383,20 @@ msgid "Wipe tower" msgstr "Черновая башня" msgid "Single extruder multi-material parameters" -msgstr "Параметры одноэкструдерного мультиматериального принтера" +msgstr "Параметры одиночного мультиматериального экструдера" msgid "" "This is a single extruder multi-material printer, diameters of all extruders " "will be set to the new value. Do you want to proceed?" msgstr "" -"Это одноэкструдерный мультиматериальный принтер, диаметры всех экструдеров " -"будут установлены на новое значение. Продолжить?" +"Это принтер с одиночным мультиматериальным экструдером, диаметры всех " +"экструдеров будут установлены на новое значение. Продолжить?" msgid "Layer height limits" msgstr "Ограничение высоты слоя" msgid "Z-Hop" -msgstr "" +msgstr "Подъём оси Z" msgid "Retraction when switching material" msgstr "Откат при смене материала" @@ -8477,7 +8481,7 @@ msgid "Unsaved Changes" msgstr "Несохранённые изменения" msgid "Transfer or discard changes" -msgstr "Отклонить или сохранить изменения" +msgstr "Выбор действия при изменённых параметрах профиля" msgid "Old Value" msgstr "Старое значение" @@ -8557,7 +8561,7 @@ msgid "" "You can save or discard the preset values you have modified." msgstr "" "\n" -"Вы можете сохранить или сбросить изменённые вами значения профиля." +"Вы можете сохранить сделанные изменения или отказаться от их сохранения." msgid "" "\n" @@ -8565,8 +8569,8 @@ msgid "" "transfer the values you have modified to the new preset." msgstr "" "\n" -"Вы можете сохранить или сбросить изменённые вами значения профиля, или " -"перенести их в новый профиль." +"Вы можете сохранить сделанные изменения или отказаться от их сохранения. Или " +"же перенести их в новый выбранный профиль." msgid "You have previously modified your settings." msgstr "Ранее вы изменили свои настройки." @@ -8577,8 +8581,8 @@ msgid "" "the modified values to the new project" msgstr "" "\n" -"Вы можете сбросить изменённые вами значения профиля, или перенести их в " -"новый проект." +"Вы можете отказаться от сохранения изменений сделанных в профиле или же " +"перенести их в новый выбранный профиль." msgid "Extruders count" msgstr "Количество экструдеров" @@ -8658,43 +8662,43 @@ msgid "A new version is available" msgstr "Доступна новая версия" msgid "Configuration update" -msgstr "Обновление конфигурации" +msgstr "Обновление профиля" msgid "A new configuration package available, Do you want to install it?" -msgstr "Доступен новый пакет конфигурации. Установить его?" +msgstr "Доступен новый пакет профилей. Установить его?" msgid "Description:" msgstr "Описание:" msgid "Configuration incompatible" -msgstr "Несовместимая конфигурация" +msgstr "Несовместимый профиль" msgid "the configuration package is incompatible with current application." -msgstr "пакет конфигурации несовместим с текущим приложением." +msgstr "пакет профилей несовместим с текущим приложением." #, c-format, boost-format msgid "" "The configuration package is incompatible with current application.\n" "%s will update the configuration package, Otherwise it won't be able to start" msgstr "" -"Пакет конфигурации несовместим с текущим приложением.\n" -"%s обновит пакет конфигурации, иначе он не сможет запуститься." +"Пакет профилей несовместим с текущим приложением.\n" +"%s обновит пакет профилей, иначе он не сможет запуститься." #, c-format, boost-format msgid "Exit %s" msgstr "Выйти из %s" msgid "the Configuration package is incompatible with current APP." -msgstr "пакет конфигурации несовместим с текущим приложением." +msgstr "пакет профилей несовместим с текущим приложением." msgid "Configuration updates" -msgstr "Обновления конфигурации" +msgstr "Обновление профилей" msgid "No updates available." msgstr "Обновления отсутствуют." msgid "The configuration is up to date." -msgstr "Текущая конфигурация не требует обновления." +msgstr "Обновление профилей отсутствует. " msgid "Obj file Import color" msgstr "Импорт цветного obj-файла" @@ -8720,15 +8724,13 @@ msgid "Color match" msgstr "Подбор цвета" msgid "Approximate color matching." -msgstr "Приблизительный подбор по цвету прутков." +msgstr "Приблизительный подбор по цвету ваших прутков." # ??? msgid "Append" msgstr "Добавить" -# ?????? Добавить используемый экструдер после существующих экструдеров, -# Добавьте новый экструдер после существующих экструдеров, Добавить экструдер -# с расходным материалом после существующих экструдеров. +# ?????? Добавить сменный экструдер после существующих экструдеров, Добавить используемый экструдер после существующих экструдеров, Добавьте новый экструдер после существующих экструдеров, Добавить экструдер с расходным материалом после существующих экструдеров. msgid "Add consumable extruder after existing extruders." msgstr "" "Добавить экструдер с расходными материалами после существующих экструдеров." @@ -8873,8 +8875,9 @@ msgid "" "Using a BambuSource from a different install, video play may not work " "correctly! Press Yes to fix it." msgstr "" -"Используя компоненты BambuSource из другого инсталлятора воспроизведение " -"видео может работать некорректно! Нажмите «Да», чтобы исправить это." +"При использовании компонентов BambuSource из другого инсталлятора, " +"воспроизведение видео может работать некорректно! Нажмите «Да», чтобы " +"исправить это." msgid "" "Your system is missing H.264 codecs for GStreamer, which are required to " @@ -8895,11 +8898,10 @@ msgid "Login" msgstr "Войти" msgid "The configuration package is changed in previous Config Guide" -msgstr "" -"Пакет конфигурации был изменён при предыдущем запуске мастера настройки." +msgstr "Пакет профилей был изменён при предыдущем запуске мастера настройки." msgid "Configuration package changed" -msgstr "Пакет конфигурации изменён" +msgstr "Пакет профилей изменён" msgid "Toolbar" msgstr "Панель инструментов" @@ -9063,7 +9065,7 @@ msgid "Gizmo scale" msgstr "Гизмо масштаба" msgid "Gizmo rotate" -msgstr "Гизмо поворота" +msgstr "Гизмо вращения" msgid "Gizmo cut" msgstr "Гизмо разреза" @@ -9099,13 +9101,13 @@ msgid "⌘+Mouse wheel" msgstr "⌘+Колесо мыши" msgid "Support/Color Painting: adjust pen radius" -msgstr "Рисование поддержки/Шва/Покраски: регулировка радиуса кисти" +msgstr "Рисование поддержек/Шва/Покраски: регулировка радиуса кисти" msgid "⌥+Mouse wheel" msgstr "⌥+Колесо мыши" msgid "Support/Color Painting: adjust section position" -msgstr "Рисование поддержки/Шва/Покраски: регулировка положения сечения" +msgstr "Рисование поддержек/Шва/Покраски: регулировка положения сечения" msgid "Ctrl+Mouse wheel" msgstr "Ctrl+Колесо мыши" @@ -9229,7 +9231,7 @@ msgstr "Загрузить" msgid "Filament Loaded, Resume" msgstr "Пруток загружен, Повторить" -# ??? Просмотр камеры, Посмотреть, Открыть прямую трансляцию +# ??? Просмотр камеры, Посмотреть, Открыть прямую трансляцию, Открыть камеру msgid "View Liveview" msgstr "Открыть видеотрансляцию" @@ -9242,6 +9244,8 @@ msgstr "Подключение к принтеру с помощью IP-адре msgid "" "Step 1. Please confirm Orca Slicer and your printer are in the same LAN." msgstr "" +"1) Пожалуйста, убедитесь, что Orca Slicer и ваш принтер находятся в одной " +"локальной сети." msgid "" "Step 2. If the IP and Access Code below are different from the actual values " @@ -9255,7 +9259,7 @@ msgid "" "found in the device information on the printer screen." msgstr "" "3) Найдите и введите серийный номер принтера (его можно найти в информации " -"об устройстве на экране принтера).ы" +"об устройстве на экране принтера)." msgid "IP" msgstr "IP" @@ -9267,16 +9271,16 @@ msgid "Printer model" msgstr "Модель принтера" msgid "Printer name" -msgstr "" +msgstr "Имя принтера" msgid "Where to find your printer's IP and Access Code?" msgstr "Где найти IP-адрес и код доступа к вашему принтеру?" msgid "Connect" -msgstr "Подключиться" +msgstr "Подключить" msgid "Manual Setup" -msgstr "" +msgstr "Ручная настройка" msgid "connecting..." msgstr "подключение..." @@ -9420,10 +9424,10 @@ msgstr "Не удалось скопировать файл %1% в %2%: %3%" msgid "Need to check the unsaved changes before configuration updates." msgstr "" -"Перед обновлением конфигурации необходимо проверить несохранённые изменения." +"Перед обновлением профилей необходимо проверить несохранённые изменения." msgid "Configuration package: " -msgstr "Пакет конфигурации: " +msgstr "Пакет профилей: " msgid " updated to " msgstr " обновлён до " @@ -10171,6 +10175,8 @@ msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " "support to print on the Cool Plate SuperTack" msgstr "" +"Температура стола для первого слоя. 0 означает, что пластиковая нить не " +"поддерживает печать на этой печатной пластине." msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " @@ -10228,8 +10234,7 @@ msgstr "Последовательность печати первого сло msgid "Other layers print sequence" msgstr "Последовательность печати других слоёв" -# ??? Количество слоёв при последовательной печати остальных слоёв, Количество -# других слоёв в последовательной печати +# ??? Количество слоёв при последовательной печати остальных слоёв, Количество других слоёв в последовательной печати msgid "The number of other layers print sequence" msgstr "Количество других слоёв при последовательной печати" @@ -10275,7 +10280,7 @@ msgstr "" msgid "Apply gap fill" msgstr "Заполнять щели" -# ??? Чет все сумбурно описано в анг. версии как-то +# ??? msgid "" "Enables gap fill for the selected solid surfaces. The minimum gap length " "that will be filled can be controlled from the filter out tiny gaps option " @@ -10333,7 +10338,7 @@ msgid "Nowhere" msgstr "Нигде" msgid "Force cooling for overhangs and bridges" -msgstr "" +msgstr "Принудительный обдув нависаний и мостов" msgid "" "Enable this option to allow adjustment of the part cooling fan speed for " @@ -10341,10 +10346,15 @@ msgid "" "speed specifically for these features can improve overall print quality and " "reduce warping." msgstr "" +"Включите, чтобы можно было настроить скорость вентилятора охлаждения моделей " +"для нависаний, внутренних и внешних мостов. Настройка скорости вентилятора " +"для этих элементов может повысить общее качество печати и снизить коробление " +"нависаний и мостов." msgid "Overhangs and external bridges fan speed" -msgstr "" +msgstr "Скорость вентилятора для нависаний и внешних мостов" +# ???? Обратите внимание, эта скорость вентилятора не может быть ниже минимального значения, указанного в настройках выше. Если слой печатается слишком быстро (меньше минимального времени слоя), скорость вентилятора автоматически повысится до максимально допустимого значения. msgid "" "Use this part cooling fan speed when printing bridges or overhang walls with " "an overhang threshold that exceeds the value set in the 'Overhangs cooling " @@ -10356,10 +10366,21 @@ msgid "" "speed threshold set above. It is also adjusted upwards up to the maximum fan " "speed threshold when the minimum layer time threshold is not met." msgstr "" +"Данная настройка регулирует скорость вентилятора обдува модели только для " +"участков, где угол нависания превышает значение, заданное в параметре «Порог " +"включения обдува на нависаниях». Увеличение скорости вентилятора для таких " +"участков улучшает качество их печати.\n" +"\n" +"Обратите внимание: эта скорость не может быть ниже значения «Порог " +"минимальной скорости вентилятора», заданного выше. Если слой печатается " +"слишком быстро (меньше минимального времени слоя), скорость вентилятора " +"автоматически повысится до значения «Порог максимальной скорости " +"вентилятора»." msgid "Overhang cooling activation threshold" -msgstr "" +msgstr "Порог включения обдува на нависаниях" +# ??? скорость вентилятора для нависающих элементов #, no-c-format, no-boost-format msgid "" "When the overhang exceeds this specified threshold, force the cooling fan to " @@ -10368,9 +10389,15 @@ msgid "" "by the layer beneath it. Setting this value to 0% forces the cooling fan to " "run for all outer walls, regardless of the overhang degree." msgstr "" +"Когда величина нависающего элемента превышает указанное пороговое значение, " +"принудительно включается вентилятор охлаждения модели со скоростью, " +"указанной ниже в параметре «Скорость вентилятора для нависаний и внешних " +"мостов». Значение указывается в процентах и показывает, какая часть ширины " +"линии не поддерживается слоем снизу. Если установить значение 0%, вентилятор " +"будет работать для всех внешних стенок, независимо от угла нависания." msgid "External bridge infill direction" -msgstr "" +msgstr "Угол печати внутренних мостов" #, no-c-format, no-boost-format msgid "" @@ -10378,12 +10405,12 @@ msgid "" "calculated automatically. Otherwise the provided angle will be used for " "external bridges. Use 180°for zero angle." msgstr "" -"Переопределение угла печати мостов. Если задано 0, угол печати мостов " -"рассчитывается автоматически. В противном случае заданный угол будет " -"использоваться для наружных мостов. Для нулевого угла установите 180°." +"Переопределение угла печати внутренних мостов. Если задано 0, угол печати " +"мостов рассчитывается автоматически. В противном случае будет использоваться " +"угол для внешних мостов. Для нулевого угла установите 180°." msgid "Internal bridge infill direction" -msgstr "" +msgstr "Угол печати внешних мостов" msgid "" "Internal bridging angle override. If left to zero, the bridging angle will " @@ -10393,9 +10420,15 @@ msgid "" "It is recommended to leave it at 0 unless there is a specific model need not " "to." msgstr "" +"Переопределение угла печати внутренних мостов. Если задано 0, угол печати " +"мостов рассчитывается автоматически. В противном случае будет использоваться " +"угол для внутренних мостов. Для нулевого угла установите 180°.\n" +"\n" +"Рекомендуется использовать значение 0, если для конкретной модели не " +"требуется какое-то иное значение." msgid "External bridge density" -msgstr "" +msgstr "Плотность внешних мостов" msgid "" "Controls the density (spacing) of external bridge lines. 100% means solid " @@ -10405,10 +10438,17 @@ msgid "" "space for air to circulate around the extruded bridge, improving its cooling " "speed." msgstr "" +"Этот параметр управляет плотностью (расстоянием между линиями) внешних " +"мостов. 100% означает сплошной мост. По умолчанию - 100%.\n" +"\n" +"Снижение плотности внешних мостов может повысить их надёжность, так как " +"увеличивается пространство для циркуляции воздуха вокруг напечатанных линий " +"моста, что улучшает его охлаждение." msgid "Internal bridge density" -msgstr "" +msgstr "Плотность внутренних мостов" +# ??? top surface pillowing msgid "" "Controls the density (spacing) of internal bridge lines. 100% means solid " "bridge. Default is 100%.\n" @@ -10421,6 +10461,18 @@ msgid "" "bridge over infill option, further improving internal bridging structure " "before solid infill is extruded." msgstr "" +"Этот параметр управляет плотностью (расстоянием между линиями) внутренних " +"мостов. 100% означает сплошной мост. По умолчанию - 100%.\n" +"\n" +"Снижение плотности внутренних мостов может помочь уменьшить дефекты печати " +"верхней поверхности (например, эффекта «дырявой подушки») и повысить " +"надёжность внутренних мостов. Это достигается за счёт увеличения " +"пространства для циркуляции воздуха вокруг напечатанных линий, что ускоряет " +"их охлаждение.\n" +"\n" +"Эта настройка особенно эффективна в сочетании со вторым слоем внутреннего " +"моста над заполнением, что дополнительно улучшает структуру внутренних " +"мостов перед нанесением сплошного слоя." msgid "Bridge flow ratio" msgstr "Коэффициент потока мостов" @@ -10507,6 +10559,8 @@ msgid "" "Improve shell precision by adjusting outer wall spacing. This also improves " "layer consistency." msgstr "" +"Повышение точности оболочки за счёт регулировки расстояния между внешними " +"стенками. Это также позволяет уменьшить расслоение слоёв." msgid "Only one wall on top surfaces" msgstr "Только один периметр на верхней поверхности" @@ -10560,7 +10614,8 @@ msgid "" "bridges cannot be anchored. " msgstr "" "Создание дополнительных дорожек по периметру над крутыми нависаниями и " -"участками, где мосты не могут быть закреплены. " +"участками, где мосты не могут быть закреплены. Это повышает вероятность " +"успешной печати сложных участков без поддержки." # ??? Реверс на чётных слоях нависаний msgid "Reverse on even" @@ -10627,7 +10682,8 @@ msgid "" msgstr "" "Эта опция создаёт мосты для отверстий с зенковкой, позволяя печатать их без " "поддержки. \n" -"Доступные режимы:\n" +"\n" +"Опции:\n" "1. Нет (т.е. отключено)\n" "2. Частичный мост (мост будет построен только над частью неподдерживаемой " "области)\n" @@ -10824,9 +10880,14 @@ msgid "" "profile. If this expression evaluates to true, this profile is considered " "compatible with the active printer profile." msgstr "" -"Логическое выражение, использующее значения конфигурации активного профиля " -"принтера. Если это выражение имеет значение true, этот профиль считается " -"совместимым с активным профилем принтера." +"Логическое выражение, с помощью которого можно настраивать совместимость " +"профилей принтеров с текущим профилем пластиковой нити. Если это выражение " +"имеет значение true, этот профиль считается совместимым с активным профилем " +"принтера.\n" +"\n" +"Например, если хотите, чтобы текущий профиль пластиковой нити был совместим " +"только с профилями принтера, у которых диаметр сопла более 0.4 мм, то " +"напишите: 'nozzle_diameter[0]>0.4'." msgid "Compatible process profiles" msgstr "Совместимые профили процессов" @@ -10839,9 +10900,14 @@ msgid "" "profile. If this expression evaluates to true, this profile is considered " "compatible with the active print profile." msgstr "" -"Логическое выражение, использующее значения конфигурации активного профиля " -"печати. Если это выражение имеет значение true, этот профиль считается " -"совместимым с активным профилем принтера." +"Логическое выражение, с помощью которого можно настраивать совместимость " +"профилей печати с текущим профилем пластиковой нити. Если это выражение " +"имеет значение true, этот профиль считается совместимым с активным профилем " +"принтера.\n" +"\n" +"Например, если хотите, чтобы текущий профиль пластиковой нити был совместим " +"только с профилями печати, у которых указана высота слоя более 0.2 мм, то " +"напишите: 'layer_height>0.2'." msgid "Print sequence, layer by layer or object by object" msgstr "Выбор последовательности печати моделей - одновременно или по очереди." @@ -10944,7 +11010,7 @@ msgstr "" "печатать без поддержки, если он не очень длинный." msgid "Thick external bridges" -msgstr "" +msgstr "Толстые внешние мосты" msgid "" "If enabled, bridges are more reliable, can bridge longer distances, but may " @@ -10968,8 +11034,9 @@ msgstr "" "диаметров рекомендуется отключить эту опцию." msgid "Extra bridge layers (beta)" -msgstr "" +msgstr "Дополнительный слой для мостов (beta)" +# ??? Внутренние мосты учитываются в подсчёте слоёв верхней оболочки модели. msgid "" "This option enables the generation of an extra bridge layer over internal " "and/or external bridges.\n" @@ -11003,22 +11070,53 @@ msgid "" "4. Apply to all - generates second bridge layers for both internal and " "external-facing bridges\n" msgstr "" +"Эта опция включает создание дополнительного слоя моста над внутренними и/или " +"внешними мостами.\n" +"\n" +"Дополнительный слой улучшает внешний вид и надёжность мостов, что, в свою " +"очередь, улучшает качество печати последующего сплошного заполнения. Это " +"особенно полезно для быстрых принтеров, где скорости печати мостов и " +"сплошного заполнения значительно различаются. Также это уменьшает " +"вероятность возникновения такого дефекта, как эффект «дырявой подушки» на " +"верхних поверхностях, и снижает риск отслоения внешнего моста от " +"периметров.\n" +"\n" +"Рекомендуется установить значение хотя бы на «Для внешних мостов», если нет " +"специфических проблем с моделью.\n" +"\n" +"Опции:\n" +"1. Отключено - дополнительный слой не генерируется. Это значение установлено " +"по умолчанию для обеспечения совместимости.\n" +"2. Для внешних мостов - дополнительный слой добавляется только для внешних " +"мостов. Обратите внимание, что небольшие мосты, которые короче или уже " +"установленного вами количества периметров, будут пропущены, так как второй " +"слой для них не принесёт пользы. Второй слой будет экструдирован параллельно " +"первому слою моста для усиления прочности.\n" +"3. Для внутренних мостов - дополнительный слой добавляется только для " +"внутренних мостов над разреженным заполнением. Обратите внимание, что " +"внутренние мосты учитываются в общем количестве верхних слоёв модели. Второй " +"слой будет экструдирован максимально перпендикулярно первому. Если в " +"изолированной области слоя есть мосты, направленные под разными углами, в " +"качестве ориентира будет выбран угол последней области.\n" +"4. Для всех мостов - дополнительный слой генерируется как для внутренних, " +"так и для внешних мостов.\n" msgid "Disabled" msgstr "Отключено" msgid "External bridge only" -msgstr "" +msgstr "Для внешних мостов" msgid "Internal bridge only" -msgstr "" +msgstr "Для внутренних мостов" msgid "Apply to all" -msgstr "" +msgstr "Для всех мостов" msgid "Filter out small internal bridges" -msgstr "" +msgstr "Отфильтровать небольшие внутренние мосты (beta)" +# ???? msgid "" "This option can help reduce pillowing on top surfaces in heavily slanted or " "curved models.\n" @@ -11048,6 +11146,31 @@ msgid "" "overhang. This option is useful for heavily slanted top surface models; " "however, in most cases, it creates too many unnecessary bridges." msgstr "" +"Эта опция может помочь уменьшить образование эффекта «дырявой подушки» на " +"верхних сильно наклонных поверхностях или изогнутых моделях.\n" +"\n" +"По умолчанию, маленькие внутренние мосты отфильтровываются, а внутреннее " +"сплошное заполнение печатается непосредственно поверх разреженного " +"заполнения. В большинстве случаев это хорошо работает, ускоряя печать без " +"особого ущерба для качества верхней поверхности. Однако, на сильно наклонных " +"поверхностях или изогнутых моделях, особенно при низкой плотности " +"заполнения, это может привести к скручиванию неподдерживаемого сплошного " +"заполнения и образованию эффекта «дырявой подушки».\n" +"\n" +"Отключение позволит печатать слой внутреннего моста над слабо поддерживаемым " +"внутренним сплошным заполнением. Приведённые ниже параметры управляют " +"степенью фильтрации, т.е. количеством создаваемых внутренних мостов.\n" +"\n" +"Фильтрация включена по умолчанию и хорошо работает в большинстве случаев.\n" +"\n" +"Ограниченная фильтрация - создаёт внутренние мосты на сильно наклонных " +"поверхностях, при этом избегая создания ненужных внутренних мостов. Это " +"хорошо работает на большинстве сложных моделях.\n" +"\n" +"Без фильтрации - мосты создаются над каждым потенциально внутреннем " +"нависании. Этот вариант полезен для моделей с сильно наклонной верхней " +"поверхностью. Однако в большинстве случаев этот вариант создаёт слишком " +"много ненужных мостов." msgid "Filter" msgstr "Фильтровать" @@ -11091,8 +11214,9 @@ msgstr "" "Команды в G-коде, которые выполняются при окончании печатью этой пластиковой " "нитью." +# ??? Контроль толщины вертикальной оболочки msgid "Ensure vertical shell thickness" -msgstr "Обеспечивать верт. толщину оболочки" +msgstr "Сохранение толщины вертикальной оболочки" msgid "" "Add solid infill near sloping surfaces to guarantee the vertical shell " @@ -11104,8 +11228,8 @@ msgid "" "All: Add solid infill for all suitable sloping surfaces\n" "Default value is All." msgstr "" -"Добавление сплошного заполнения вблизи наклонных поверхностей для " -"обеспечения вертикальной толщины оболочки (верхний+нижний сплошные слои).\n" +"Добавление сплошного концентрического заполнения вблизи наклонных " +"поверхностей для того чтобы гарантировать заданную толщину оболочки.\n" "\n" "Нет - сплошное заполнение нигде не будет добавляться. Внимание: если ваша " "модель имеет наклонные поверхности, подумайте стоит ли выбирать эту опцию.\n" @@ -11192,10 +11316,10 @@ msgid "" "example: 80%) it will be calculated on the outer wall speed setting above. " "Set to zero for auto." msgstr "" -"Этот параметр влияет на скорость печати периметров, имеющих радиус <= " -"значению порога маленьких периметров (обычно это отверстия). Если задано в " -"процентах, параметр вычисляется относительно скорости печати внешнего " -"периметра указанного выше. Установите 0 для автонастройки." +"Этот параметр влияет на скорость печати периметров, имеющих радиус примерно " +"равный значению порога маленьких периметров (обычно это отверстия). Если " +"задано в процентах, параметр вычисляется относительно скорости печати " +"внешнего периметра указанного выше. Установите 0 для автонастройки." msgid "Small perimeters threshold" msgstr "Порог маленьких периметров" @@ -11389,8 +11513,9 @@ msgstr "" "максимальные точки. OrcaSlicer следит за тем, чтобы значения " "adaptive_bed_mesh_min/adaptive_bed_mesh_max не превышают эти минимальные/" "максимальные значения. Эту информацию можно получить у производителя " -"принтера. По умолчанию установлено значение (99999, 99999), которое означает " -"отсутствие ограничений, что позволяет проводить зондирование по всему столу." +"принтера. По умолчанию установлено значение (-99999, -99999), которое " +"означает отсутствие ограничений, что позволяет проводить зондирование по " +"всему столу." msgid "Probe point distance" msgstr "Расстояние между точками зондирования" @@ -11438,8 +11563,7 @@ msgstr "" "При небольшом переливе или недоливе на поверхности, корректировка этого " "параметра поможет получить хорошую гладкую поверхность." -# ???1 Конечная величина потока модели - это введённое здесь значение, -# умноженное на коэффициент потока прутка. +# ???1 Конечная величина потока модели - это введённое здесь значение, умноженное на коэффициент потока прутка. msgid "" "The material may have volumetric change after switching between molten state " "and crystalline state. This setting changes all extrusion flow of this " @@ -11755,7 +11879,6 @@ msgstr "" msgid "Pellet flow coefficient" msgstr "Коэф. потока гранул" -# ??????? PI это π? msgid "" "Pellet flow coefficient is empirically derived and allows for volume " "calculation for pellet printers.\n" @@ -11786,7 +11909,7 @@ msgid "" msgstr "" "Введите процент усадки пластиковой нити, которую получит она после " "охлаждения (пишите 94%, если вы намерили 94 мм, вместо 100 мм). Для " -"компенсации усадки деталь будет отмасштабированна по оси XY. При этом " +"компенсации усадки деталь будет отмасштабирована по оси XY. При этом " "учитывается только пластиковая нить, используемая для печати внешнего " "периметра.\n" "Убедитесь, что между моделями достаточно места, так как эта компенсация " @@ -11803,7 +11926,7 @@ msgid "" msgstr "" "Введите процент усадки пластиковой нити, которую получит она после " "охлаждения (пишите 94%, если вы намерили 94 мм, вместо 100 мм). Для " -"компенсации усадки деталь будет отмасштабированна по оси Z." +"компенсации усадки деталь будет отмасштабирована по оси Z." msgid "Loading speed" msgstr "Скорость загрузки" @@ -11853,7 +11976,7 @@ msgid "" "Filament is cooled by being moved back and forth in the cooling tubes. " "Specify desired number of these moves." msgstr "" -"Пруток охлаждается в охлаждающих трубках путём перемещения назад и вперёд. " +"Пруток охлаждается в охлаждающей трубке путём перемещения назад и вперёд. " "Укажите желаемое количество таких движений." msgid "Stamping loading speed" @@ -11862,9 +11985,9 @@ msgstr "Скорость загрузки при утрамбовке" msgid "Speed used for stamping." msgstr "Скорость, используемая для утрамбовки." +# длинно Расстояние от места формования конца, измеренное от центра охлаждающей трубки msgid "Stamping distance measured from the center of the cooling tube" -msgstr "" -"Расстояние от места формования конца, измеренное от центра охлаждающей трубки" +msgstr "Расстояние утрамбовки" msgid "" "If set to nonzero value, filament is moved toward the nozzle between the " @@ -12054,7 +12177,7 @@ msgid "Grid" msgstr "Сетка" msgid "2D Lattice" -msgstr "" +msgstr "2D решётка" msgid "Line" msgstr "Линии" @@ -12087,26 +12210,30 @@ msgid "Cross Hatch" msgstr "Перекрестная решётка" msgid "Quarter Cubic" -msgstr "" +msgstr "Четверть куба" msgid "Lattice angle 1" -msgstr "" +msgstr "Угол №1 (2D решётка)" msgid "" "The angle of the first set of 2D lattice elements in the Z direction. Zero " "is vertical." msgstr "" +"Угол наклона первой линии для шаблона заполнения «2D решётка» относительно " +"вертикальной оси Z (0 - вертикально)." msgid "Lattice angle 2" -msgstr "" +msgstr "Угол №2 (2D решётка)" msgid "" "The angle of the second set of 2D lattice elements in the Z direction. Zero " "is vertical." msgstr "" +"Угол наклона второй линии для шаблона заполнения «2D решётка» относительно " +"вертикальной оси Z (0 - вертикально)." msgid "Sparse infill anchor length" -msgstr "Длина привязок разреженного заполнения" +msgstr "Длина привязки разреженного заполнения" msgid "" "Connect an infill line to an internal perimeter with a short segment of an " @@ -12120,27 +12247,22 @@ msgid "" "Set this parameter to zero to disable anchoring perimeters connected to a " "single infill line." msgstr "" -"Соединять линию заполнения с внутренним периметром с помощью короткого " -"отрезка дополнительного периметра (привязок). Если выражено в процентах, то " -"она вычисляется по ширине экструзии заполнения. Программа пытается соединить " -"две ближайшие линии заполнения с коротким отрезком периметра. Если не " -"найдено такого отрезка периметра короче «Максимальной длины привязок " -"разреженного заполнения» (anchor_length_max), то линия заполнения " -"соединяется с отрезком периметра только с одной стороны, а длина отрезка " -"периметра ограничена этим параметром, но не больше «Максимальной длины " -"привязок разреженного заполнения» (anchor_length_max).\n" -"Установите этот параметр равным нулю для отключения привязок периметров, " -"соединённых с одной линии заполнения." +"Привязка - это короткий отрезок, который добавляется вдоль внутреннего " +"периметра и соединяет линии разреженного заполнения с этим периметром. Если " +"параметр задан в процентах, длина привязки рассчитывается относительно " +"ширины линии заполнения. Установите значение равным 0, чтобы запретить " +"открытые привязки." msgid "0 (no open anchors)" -msgstr "0 (нет открытых привязок)" +msgstr "0 (без открытых привязок)" msgid "1000 (unlimited)" msgstr "1000 (неограниченно)" msgid "Maximum length of the infill anchor" -msgstr "Максимальная длина привязок разреженного заполнения" +msgstr "Макс. длина привязки разреженного заполнения" +# ???? непонятно If set to 0, the old algorithm for infill connection will be used, it should create the same result as with 1000 & 0. msgid "" "Connect an infill line to an internal perimeter with a short segment of an " "additional perimeter. If expressed as percentage (example: 15%) it is " @@ -12153,14 +12275,11 @@ msgid "" "If set to 0, the old algorithm for infill connection will be used, it should " "create the same result as with 1000 & 0." msgstr "" -"Соединять линию заполнения с внутренним периметром с помощью короткого " -"отрезка дополнительного периметра (привязок). Если выражено в процентах, то " -"она вычисляется по ширине экструзии заполнения. Slic3r пытается соединить " -"две ближайшие линии заполнения с коротким отрезком периметра. Если не " -"найдено такого отрезка периметра короче этого параметра, линия заполнения " -"соединяется с отрезком периметра только с одной стороны, а длина отрезка " -"периметра ограничена значением «Длина привязок разреженного " -"заполнения» (infill_anchor), но не больше этого параметра.\n" +"Слайсер пытается соединить две ближайшие привязки. Если расстояние между " +"ними больше, чем указано в этом параметре, то соединение не произойдет. " +"Чтобы они всегда соединялись, выберите «Не ограничено». Параметр может задан " +"в процентах от ширины линий заполнения. Установите значение равным 0, чтобы " +"полностью отключить привязки. \n" "Если установить 0, то будет использоваться старый алгоритм для соединения " "заполнения, который даёт такой же результат, как и при значениях 1000 и 0." @@ -12231,8 +12350,7 @@ msgstr "" "Параметр предназначен для ограничения влияния экстремальных переходов от " "ускорения к замедлению, типичных для коротких зигзагообразных перемещений." -# ??? Ускорение к замедлению, Ускорение торможения, Скорость торможения, -# Скорость торможения перед поворотом, Соотношение ускорения к замедлению +# ??? Ускорение к замедлению, Ускорение торможения, Скорость торможения, Скорость торможения перед поворотом, Соотношение ускорения к замедлению msgid "accel_to_decel" msgstr "Ограничение ускорение зигзагов" @@ -12316,17 +12434,25 @@ msgstr "Полная скорость вентилятора на слое" msgid "" "Fan speed will be ramped up linearly from zero at layer " -"\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer" -"\". \"full_fan_speed_layer\" will be ignored if lower than " -"\"close_fan_the_first_x_layers\", in which case the fan will be running at " -"maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." +"\"close_fan_the_first_x_layers\" to maximum at layer " +"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " +"than \"close_fan_the_first_x_layers\", in which case the fan will be running " +"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." msgstr "" -"Скорость вентилятора будет нарастать линейно от нуля на слое " -"\"close_fan_the_first_x_layers\" до максимума на слое \"full_fan_speed_layer" -"\". Значение \"full_fan_speed_layer\" будет игнорироваться, если оно меньше " -"значения \"close_fan_the_first_x_layers\", в этом случае вентилятор будет " -"работать на максимально допустимой скорости на слое " -"\"close_fan_the_first_x_layers\" + 1." +"Скорость вентилятора будет линейно увеличиваться от нуля со слоя заданным " +"параметром «Не включать вентилятор на первых» до заданной максимальной " +"скорости вращения вентилятора на слое заданным параметром «Полная скорость " +"вентилятора на слое». Значение «Полная скорость вентилятора на слое» будет " +"игнорироваться, если оно меньше значения «Не включать вентилятор на первых», " +"в этом случае вентилятор будет работать на максимально допустимой скорости " +"на слое заданном в «Не включать вентилятор на первых» + 1.\n" +"\n" +"Допустим, вы указали «Не включать вентилятор на первых» 2-ух слоях, а " +"«Полная скорость вентилятора на слое» должна сработать на 5-ом слое. Тогда " +"на первых 2-ух слоях вентилятор будет полностью выключен. На 5-ом слое он " +"начнёт работать так, как указано в настройках максимальной скорости вращения " +"вентилятора. Промежуточные же значения скорости вращения вентилятора на 3-ем " +"и 4-ом слоях будут линейно изменятся." msgid "layer" msgstr "слой" @@ -12334,6 +12460,7 @@ msgstr "слой" msgid "Support interface fan speed" msgstr "Скорость вентилятора на связующем слое" +# ????? Установите значение -1, чтобы запретить переопределять этот параметр.???? msgid "" "This part cooling fan speed is applied when printing support interfaces. " "Setting this parameter to a higher than regular speed reduces the layer " @@ -12342,9 +12469,17 @@ msgid "" "Set to -1 to disable it.\n" "This setting is overridden by disable_fan_first_layers." msgstr "" +"Скорость вращения вентилятора при печати связующих слоёв поддержки. " +"Увеличение этой скорости уменьшает сцепление между поддержками и основной " +"деталью, что облегчает их отделение.\n" +"\n" +"Чтобы отключить, установите значение -1.\n" +"Установите значение -1, чтобы запретить переопределять этот параметр.\n" +"Если включена опция «Не включать вентилятор на первых» слоях, то она " +"перекрывает эту настройку." msgid "Internal bridges fan speed" -msgstr "" +msgstr "Скорость вентилятора для мостов" msgid "" "The part cooling fan speed used for all internal bridges. Set to -1 to use " @@ -12354,6 +12489,12 @@ msgid "" "can help reduce part warping due to excessive cooling applied over a large " "surface for a prolonged period of time." msgstr "" +"Скорость вращения вентилятора при печати внутренних мостов.\n" +"При значении -1 будут использоваться настройки вентилятора для нависающих " +"элементов.\n" +"Снижение скорости вентилятора для внутренних мостов по сравнению с обычной " +"скоростью может помочь уменьшить деформацию детали, вызванную чрезмерным " +"охлаждением большой поверхности в течение длительного времени." msgid "" "Randomly jitter while printing the wall, so that the surface has a rough " @@ -12402,8 +12543,12 @@ msgid "Whether to apply fuzzy skin on the first layer" msgstr "Применять ли нечёткую оболочку к первому слою." msgid "Fuzzy skin noise type" -msgstr "" +msgstr "Тип нечёткой оболочки" +# Перлин +# Волны +# Гребни +# Ячейки msgid "" "Noise type to use for fuzzy skin generation.\n" "Classic: Classic uniform random noise.\n" @@ -12414,45 +12559,73 @@ msgid "" "Voronoi: Divides the surface into voronoi cells, and displaces each one by a " "random amount. Creates a patchwork texture." msgstr "" +"Тип шума, используемый для генерации нечёткой оболочки:\n" +"\n" +"Классический - классический алгоритм равномерного случайного шума.\n" +"Шум Перлина - алгоритм структурированного шума, создающий пространственно " +"когерентный шум и обеспечивающий более однородную текстуру.\n" +"Волнообразный - разновидность шума Перлина, которая имеет более волнистый " +"или облачный вид.\n" +"Гребенчатый - гребнеобразный шум с резкими, зазубренными элементами, " +"создающий текстуру, напоминающую мрамор.\n" +"Шум Вороного - делит поверхность на ячейки Вороного и смещает каждую из них " +"на случайную величину, создавая текстуру, напоминающую лоскутное одеяло." msgid "Classic" msgstr "Классический" msgid "Perlin" -msgstr "" +msgstr "Шум Перлина" +# ??? Шум волн msgid "Billow" -msgstr "" +msgstr "Волнообразный" msgid "Ridged Multifractal" -msgstr "" +msgstr "Гребенчатый" msgid "Voronoi" -msgstr "" +msgstr "Шум Вороного" +# Размер шероховатости msgid "Fuzzy skin feature size" -msgstr "" +msgstr "Размер элемента нечёткой оболочки" +# 0.5 мм - Мелкая рябь +# 2 мм - Крупные волны msgid "" "The base size of the coherent noise features, in mm. Higher values will " "result in larger features." msgstr "" +"Параметр определяет базовый размер элемента когерентного шума в миллиметрах. " +"Более высокое значение увеличивает размер этого элемента." +# уровень детализации шума Перлина msgid "Fuzzy Skin Noise Octaves" -msgstr "" +msgstr "Количество октав нечёткой оболочки" +# Чем больше октав, тем сложнее и «естественнее» выглядит шероховатость. +# Октавы - это количество кривых Перлина, которые отвечают за неоднородность шума. msgid "" "The number of octaves of coherent noise to use. Higher values increase the " "detail of the noise, but also increase computation time." msgstr "" +"Количество октав когерентного шума, которые отвечают за его неоднородность. " +"Более высокие значения повышают детализацию шума, но увеличивают время " +"вычисления." +# Интенсивность затухания шума нечёткой оболочки msgid "Fuzzy skin noise persistence" -msgstr "" +msgstr "Затухание шума нечёткой оболочки" +# 0.2 - Мягкий шум (преобладают крупные волны). +# 0.8 - Резкий шум (мелкие детали усиливают «рваность»). msgid "" "The decay rate for higher octaves of the coherent noise. Lower values will " "result in smoother noise." msgstr "" +"Скорость затухания для более высоких октав когерентного шума. Более низкие " +"значения приведут к сглаживанию шума." # Или пробелы оставить??? msgid "Filter out tiny gaps" @@ -12596,8 +12769,8 @@ msgid "" "Enable this option if machine has auxiliary part cooling fan. G-code " "command: M106 P2 S(0-255)." msgstr "" -"Если в принтере имеет вспомогательный вентилятор для охлаждения моделей, " -"можете включить эту опцию. \n" +"Если в принтере имеет вспомогательный вентилятор для охлаждения моделей " +"(обычно это боковой вентилятор), можете включить эту опцию. \n" "G-код команда: M106 P2 S(0-255)." msgid "" @@ -12698,11 +12871,9 @@ msgstr "Поддержка нескольких типов столов" msgid "Enable this option if you want to use multiple bed types" msgstr "Включите, если хотите использовать несколько типов столов." -# ?????? Название моделей msgid "Label objects" msgstr "Помечать модели" -# ?????? msgid "" "Enable this to add comments into the G-Code labeling print moves with what " "object they belong to, which is useful for the Octoprint CancelObject " @@ -12714,9 +12885,8 @@ msgstr "" "\n" "Включите эту опцию, чтобы добавить комментарии в G-код с указанием того, к " "какой модели он принадлежит, что полезно для плагина Octoprint CancelObject. " -"Эта настройка не совместима с настройкой «Одноэкструдерный " -"мультиматериальный принтер» и «Очистка в модель» / «Очистка в заполнение " -"модели»." +"Эта настройка не совместима с настройкой «Одиночный мультиматериальный " +"экструдер» и «Очистка в модель» / «Очистка в заполнение модели»." msgid "Exclude objects" msgstr "Исключение моделей" @@ -12752,7 +12922,6 @@ msgstr "" msgid "Infill combination - Max layer height" msgstr "Максимальная высота слоя (КЗ)" -# ??? maximize sparse infill strength msgid "" "Maximum layer height for the combined sparse infill. \n" "\n" @@ -12827,9 +12996,6 @@ msgstr "Скорость заполнения" msgid "Inherits profile" msgstr "Наследует профиль" -msgid "Name of parent profile" -msgstr "" - msgid "Interface shells" msgstr "Связующие оболочки" @@ -12840,15 +13006,16 @@ msgid "" msgstr "" "Принудительное создание сплошных оболочек между смежными материалами/" "объёмами. Полезно для многоэкструдерной печати полупрозрачными материалами " -"или растворимой поддержки." +"или растворимой поддержкой." msgid "Maximum width of a segmented region" -msgstr "Максимальная ширина сегментированной области" +msgstr "Глубина проникновения окрашенной области" msgid "Maximum width of a segmented region. Zero disables this feature." msgstr "" -"Максимальная ширина сегментированной области. Установите 0 для отключения " -"этой функции." +"Толщина той части модели, которая была окрашена инструментом " +"мультиматериальная покраска. Фактически это глубина проникновения окрашенной " +"области в модель. Установите 0 для отключения работы этой функции." msgid "Interlocking depth of a segmented region" msgstr "Глубина переплетения окрашенной области" @@ -12873,8 +13040,9 @@ msgid "" "filaments touch. This improves the adhesion between filaments, especially " "models printed in different materials." msgstr "" -"Создать взаимосвязанную структуру балок в местах соприкосновения моделей. " -"Это улучшит адгезию между моделями, особенно моделями из разных материалов." +"Создать систему взаимосвязанных балок в местах, где модели соприкасаются " +"друг с другом. Это позволит улучшить сцепление между моделями, особенно " +"между моделями из разных материалов." msgid "Interlocking beam width" msgstr "Ширина взаимосвязанных балок" @@ -12895,8 +13063,8 @@ msgid "" "The height of the beams of the interlocking structure, measured in number of " "layers. Less layers is stronger, but more prone to defects." msgstr "" -"Высота балок взаимосвязанной структуры, измеряемая в количестве слоев. Чем " -"меньше слоев, тем она будет прочнее, но более подвержена дефектам." +"Высота балок взаимосвязанной структуры, измеряемая в количестве слоёв. Чем " +"меньше слоёв, тем она будет прочнее, но более подвержена дефектам." msgid "Interlocking depth" msgstr "Глубина взаимосвязанной структуры" @@ -12966,6 +13134,7 @@ msgstr "Расстояние между линиями разглаживани msgid "The distance between the lines of ironing" msgstr "Расстояние между линиями разглаживания." +# ??? Граница без разглаживания msgid "Ironing inset" msgstr "Границы разглаживания" @@ -12973,6 +13142,8 @@ msgid "" "The distance to keep from the edges. A value of 0 sets this to half of the " "nozzle diameter" msgstr "" +"Расстояние в мм между областью разглаживания и краем модели. При значении 0 " +"это значение равно половине диаметра сопла." msgid "Ironing speed" msgstr "Скорость разглаживания" @@ -13023,14 +13194,16 @@ msgid "" "This G-code will be used as a code for the pause print. User can insert " "pause G-code in gcode viewer" msgstr "" -"Команды в G-коде, которые выполняются при ручной постановке паузы печати. " -"Пользователь может вставить её в окне предпросмотра нарезки." +"Команды в G-коде, которые выполняются при ручной постановке печати на паузу. " +"Пользователь может вставить его в окне предпросмотра нарезки, нажав правой " +"кнопкой мыши на ползунок выбора слоя." # используется для пользовательского шаблона msgid "This G-code will be used as a custom code" msgstr "" -"Команды в G-коде, которые выполняются при вставке его в окне предпросмотра " -"нарезки (ПКМ по полосе выбора слоя)." +"Пользовательский шаблон команд, которые выполняются при ручной вставке этого " +"G-кода в окне предпросмотра нарезки, нажав правой кнопкой мыши на ползунок " +"выбора слоя." msgid "Small area flow compensation (beta)" msgstr "Компенсация потока небольших областей (beta)" @@ -13173,11 +13346,9 @@ msgstr "" "Это наибольшая высота печатаемого слоя для этого экструдера, которая " "используется для ограничения функции «Переменная высота слоёв»." -# ????? msgid "Extrusion rate smoothing" msgstr "Сглаживание скорости экструзии" -# ????? проверить Pressure equalizer msgid "" "This parameter smooths out sudden extrusion rate changes that happen when " "the printer transitions from printing a high flow (high speed/larger width) " @@ -13218,14 +13389,14 @@ msgstr "" "\n" "Значение 0 отключает эту функцию. \n" "\n" -"Для высокоскоростных принтеров с прямым приводом (например, Bambu lab или " -"Voron) обычно не требуется использование данного значения. Однако в " -"некоторых случаях, когда скорость печати сильно различается, это может " -"принести некоторую дополнительную пользу. Например, когда происходят резкие " -"замедления из-за нависаний. В этих случаях рекомендуется использовать " -"высокое значение, составляющее около 300-350 мм³/с², так как это " -"обеспечивает достаточное сглаживание, помогающее прогнозированию давления " -"достичь более плавного перехода потока.\n" +"Для высокоскоростных принтеров с высокопроизводительным директ-экструдером " +"(например, Bambu lab или Voron) обычно не требуется использование данного " +"параметра. Однако в некоторых случаях, когда скорость печати сильно " +"различается, это может принести некоторую дополнительную пользу. Например, " +"когда происходят резкие замедления из-за нависаний. В этих случаях " +"рекомендуется использовать высокое значение, составляющее около 300-350 мм³/" +"с², так как это обеспечивает достаточное сглаживание, помогающее " +"прогнозированию давления достичь более плавного перехода потока.\n" "\n" "Для более медленных принтеров, не использующих прогнозирование давления " "(pressure advance), это значение должно быть значительно ниже. Значение " @@ -13253,9 +13424,18 @@ msgid "" "\n" "Allowed values: 0.5-5" msgstr "" +"Меньшее значение приводит к более плавному изменению скорости экструзии. " +"Однако это приводит к значительному увеличению размера G-код файла и " +"увеличению количества инструкций для обработки принтером. \n" +"\n" +"Значение по умолчанию, равное 3, хорошо подходит для большинства случаев. " +"Если принтер печатает с мини-фризами, увеличьте это значение, чтобы " +"уменьшить количество выполняемых изменений.\n" +"Допустимые значения: 1–5." +# ??? msgid "Apply only on external features" -msgstr "" +msgstr "Применить только к внешним элементам" msgid "" "Applies extrusion rate smoothing only on external perimeters and overhangs. " @@ -13263,6 +13443,11 @@ msgid "" "visible overhangs without impacting the print speed of features that will " "not be visible to the user." msgstr "" +"Сглаживание скорости экструзии будет применяться только к внешним периметрам " +"и нависаниям. \n" +"Это помогает уменьшить количество артефактов, вызванные резкими перепадами " +"скорости на видимых внешних участках, без влияния на скорость печати " +"внутренних элементов, которые не видны пользователю." msgid "Minimum speed for part cooling fan" msgstr "Минимальная скорость вентилятора обдува модели." @@ -13274,9 +13459,10 @@ msgid "" "Please enable auxiliary_fan in printer settings to use this feature. G-code " "command: M106 P2 S(0-255)" msgstr "" -"Скорость вращения вспомогательного вентилятора для охлаждения моделей. Он " -"всегда будет работать с этой скоростью, за исключением первых нескольких " -"слоёв, которые обычно настроены на работу без охлаждения.\n" +"Скорость вращения вспомогательного вентилятора для охлаждения моделей. " +"Обычно это боковой вентилятор. Он всегда будет работать с этой скоростью, за " +"исключением первых нескольких слоёв, которые обычно настроены на работу без " +"охлаждения.\n" "Пожалуйста, включите вспомогательный вентилятор для охлаждения моделей " "(auxiliary_fan) в настройках принтера, чтобы использовать эту функцию. \n" "G-код команда: M106 P2 S(0-255)." @@ -13299,6 +13485,9 @@ msgid "" "minimum layer time defined above when the slowdown for better layer cooling " "is enabled." msgstr "" +"Минимальная скорость печати, до которой принтер замедлится, чтобы попытаться " +"сохранить минимальное время слоя, указанное выше, если включена опция " +"«Замедлять печать для лучшего охлаждения слоёв»." msgid "Diameter of nozzle" msgstr "Диаметр сопла" @@ -13332,10 +13521,9 @@ msgstr "Объём сопла между резцом прутка и кончи msgid "Cooling tube position" msgstr "Позиция охлаждающей трубки" -# ????? до кончика сопла может быть? +# ??? кончика сопла msgid "Distance of the center-point of the cooling tube from the extruder tip." -msgstr "" -"Расстояние между центральной точкой охлаждающей трубки и кончиком экструдера." +msgstr "Расстояние от центра охлаждающей трубки до сопла." msgid "Cooling tube length" msgstr "Длина охлаждающей трубки" @@ -13365,8 +13553,8 @@ msgid "" "Distance of the extruder tip from the position where the filament is parked " "when unloaded. This should match the value in printer firmware." msgstr "" -"Расстояние от кончика экструдера до точки, где размещается пруток при " -"выгрузке. Расстояние должно соответствовать значению в прошивке принтера." +"Расстояние от сопла до точки, где размещается пруток при выгрузке. " +"Расстояние должно соответствовать значению в прошивке принтера." msgid "Extra loading distance" msgstr "Дополнительная длина загрузки" @@ -13406,7 +13594,7 @@ msgid "" "oozing." msgstr "" "Эта опция снижает температуру неактивных экструдеров для предотвращения течи " -"материала." +"материала из сопла." msgid "Filename format" msgstr "Формат имени файла" @@ -13490,8 +13678,8 @@ msgstr "" "заполнения заключаются между этими дополнительными стенками, что приводит к " "повышению прочности печати.\n" "\n" -"При включении этой опции необходимо отключить опцию «Обеспечивать верт. " -"толщину оболочки».\n" +"При включении этой опции необходимо отключить опцию «Сохранение толщины " +"вертикальной оболочки».\n" "\n" "Использование шаблона заполнения «Молния» вместе с этой опцией не " "рекомендуется, поскольку количество заполнения, к которому можно прикрепить " @@ -13604,13 +13792,17 @@ msgstr "Откат при смене слоя" msgid "Force a retraction when changes layer" msgstr "Эта опция включает принудительный откат при переходе со слоя на слой." +# ??? поверхности msgid "Retract on top layer" -msgstr "" +msgstr "Откат на верхнем слое" msgid "" "Force a retraction on top layer. Disabling could prevent clog on very slow " "patterns with small movements, like Hilbert curve" msgstr "" +"Эта опция включает принудительный откат на верхнем слое. \n" +"Отключение может предотвратить засорение сопла при печати очень медленных " +"шаблонов заполнения, например, при шаблоне «кривая Гильберта»." msgid "Retraction Length" msgstr "Длина отката" @@ -13623,7 +13815,7 @@ msgstr "" "избежать его течи при длительном перемещении. 0 - отключение отката." msgid "Long retraction when cut(beta)" -msgstr "Длинное втягивания перед отрезанием прутка" +msgstr "Длинное втягивания перед отрезанием прутка (beta)" msgid "" "Experimental feature.Retracting and cutting off the filament at a longer " @@ -13647,7 +13839,7 @@ msgstr "" "нити при её смене." msgid "Z-hop height" -msgstr "" +msgstr "Высота поднятия оси Z" msgid "" "Whenever the retraction is done, the nozzle is lifted a little to create " @@ -13682,7 +13874,7 @@ msgstr "" "можете отключить подъём оси Z при печати на первых слоях (в начале печати)." msgid "Z-hop type" -msgstr "" +msgstr "Тип подъёма оси Z" msgid "Z hop type" msgstr "Тип подъёма оси Z" @@ -13783,8 +13975,9 @@ msgstr "" "Скорость возврата материала при откате. Если оставить 0, будет " "использоваться та же скорость что и при извлечении." +# ??? Откат из прошивки msgid "Use firmware retraction" -msgstr "Исп. откат из прошивки" +msgstr "Откат на уровне прошивки" msgid "" "This experimental setting uses G10 and G11 commands to have the firmware " @@ -13942,10 +14135,10 @@ msgstr "" "слоя. Значение по умолчанию - 0." msgid "Scarf around entire wall" -msgstr "Клиновидный шов по всей стене" +msgstr "Клиновидный шов вдоль всего периметра" msgid "The scarf extends to the entire length of the wall." -msgstr "Клиновидный шов простирается на всю высоту стены." +msgstr "Клиновидный шов простирается по всей длине периметра." msgid "Scarf length" msgstr "Длина клиновидного шва" @@ -13954,8 +14147,9 @@ msgid "" "Length of the scarf. Setting this parameter to zero effectively disables the " "scarf." msgstr "" -"Длина клиновидного шва. Установка этого параметра на ноль фактически " -"отключает клиновидный шов." +"Длина клиновидного шва.\n" +"Максимальное расстояние, на которое будет растянут клиновидный шов. " +"Установка этого параметра на ноль фактически отключает клиновидный шов." msgid "Scarf steps" msgstr "Шагов клиновидного шва" @@ -14110,9 +14304,6 @@ msgstr "Скорость печати юбки (мм/с). 0 - скорость msgid "Skirt minimum extrusion length" msgstr "Мин. длина экструзии юбки" -# ??? Конечное число петель юбки не учитывается при расстановке или проверке -# расстояния между моделями, поэтому если их недостаточно, то увеличьте их -# количество. msgid "" "Minimum filament extrusion length in mm when printing the skirt. Zero means " "this feature is disabled.\n" @@ -14197,26 +14388,38 @@ msgstr "" "спирали. Если задано в процентах, то значение вычисляться относительно " "диаметра сопла." +# ??? Коэфф. потока первого витка msgid "Spiral starting flow ratio" -msgstr "" +msgstr "Коэфф. потока в начале спиральной вазы" -#, c-format, boost-format msgid "" "Sets the starting flow ratio while transitioning from the last bottom layer " -"to the spiral. Normally the spiral transition scales the flow ratio from " -"0% to 100% during the first loop which can in some cases lead to under " +"to the spiral. Normally the spiral transition scales the flow ratio from 0% " +"to 100% during the first loop which can in some cases lead to under " "extrusion at the start of the spiral." msgstr "" +"Обычно при печати спиральной вазы поток первого витка увеличивается от 0% до " +"100%, что в некоторых случаях может привести к недоэкструзии в начале " +"спирали. \n" +"Этот коэффициент позволяет изменить поток в начале спиральной вазы, чтобы " +"избежать подобных проблем." +# ??? Коэфф. потока последнего витка +# Коэфф. потока последней спирали msgid "Spiral finishing flow ratio" -msgstr "" +msgstr "Коэфф. потока в конце спиральной вазы" -#, c-format, boost-format +#, fuzzy, c-format, boost-format msgid "" "Sets the finishing flow ratio while ending the spiral. Normally the spiral " "transition scales the flow ratio from 100% to 0% during the last loop which " "can in some cases lead to under extrusion at the end of the spiral." msgstr "" +"Обычно при печати спиральной вазы поток последнего витка уменьшается от 100% " +"до 0%, что в некоторых случаях может привести к недоэкструзии в конце " +"спирали. \n" +"Этот коэффициент позволяет изменить поток в конце спиральной вазы, чтобы " +"избежать подобных проблем." msgid "" "If smooth or traditional mode is selected, a timelapse video will be " @@ -14240,7 +14443,7 @@ msgid "Traditional" msgstr "Обычный" msgid "Temperature variation" -msgstr "Колебания температуры" +msgstr "Разница температур" #. TRN PrintSettings : "Ooze prevention" > "Temperature variation" msgid "" @@ -14248,10 +14451,9 @@ msgid "" "value is not used when 'idle_temperature' in filament settings is set to non " "zero value." msgstr "" -"Разница температур, которая будет применяться, когда экструдер не активен. " -"Значение не используется, если для параметра «Температура " -"ожидания» ('idle_temperature') в настройках пластиковой нити установлено " -"ненулевое значение." +"Задаёт, на сколько следует понижать температуру хотэнда, когда экструдер не " +"активен. Значение не используется, если в настройках прутка задана " +"«Температура ожидания», отличная от нуля." msgid "Preheat time" msgstr "Время преднагрева" @@ -14288,13 +14490,14 @@ msgstr "" "Команды в G-коде, которые выполняются при запуске печати с этой пластиковой " "нитью." +# было Одиночный мультиматериальный экструдер msgid "Single Extruder Multi Material" -msgstr "Одноэкструдерный ММ принтер" +msgstr "Одиночный ММ экструдер" msgid "Use single nozzle to print multi filament" msgstr "" -"Использование одной экструзионной головы для печати несколькими видами/" -"цветами пластика." +"Принтер способный печатать несколькими пластиковыми нитями через один хотэнд " +"с применением автоматической система подачи пластика (АСПП)." msgid "Manual Filament Change" msgstr "Ручная смена прутка" @@ -14306,17 +14509,17 @@ msgid "" "printing, where we use M600/PAUSE to trigger the manual filament change " "action." msgstr "" -"Включите этот параметр, чтобы пропустить пользовательский G-код смены " -"пластиковой нити с самого начала печати. Команда смены инструмента будет " -"пропускаться на протяжении всей печати. Полезно при мультиматериальной " -"печати при ручной замене пластиковой нити, где для этого используются " -"команды M600/PAUSE." +"Полезно использовать при мультиматериальной печати при ручной замене " +"пластиковой нити, где для этого используются команды M600/PAUSE. Эта опция " +"отключает выполнение «G-кода смены прутка» в самом начале печати (обычно это " +"не требуется, так как пруток уже заправлен). Команда смены инструмента " +"(например, T0) будет пропускаться на протяжении всей печати." msgid "Purge in prime tower" msgstr "Очистка в черновую башню" msgid "Purge remaining filament into prime tower" -msgstr "Очистка сопла от остатков материала в черновую башню" +msgstr "Очистка сопла от остатков материала в черновую башню." msgid "Enable filament ramming" msgstr "Включить рэмминг прутка" @@ -14403,7 +14606,7 @@ msgstr "" "положительное, например 0.3) или ниже (если значение отрицательное, например " "-0.3) относительно стола 3D принтера. Используется для компенсации слишком " "малого или слишком большого расстояния от сопла до стола на первом слое, вне " -"зависимости от причины почему оно такое большое или маленькое." +"зависимости от причины." msgid "Enable support" msgstr "Включить поддержку" @@ -14416,18 +14619,22 @@ msgid "" "Normal (manual) or Tree (manual) is selected, only support enforcers are " "generated" msgstr "" +"Тип поддержки «Обычная (авто)» и «Древовидная (авто)» используются для " +"автоматического создания поддержки. Если выбран тип поддержки «Обычная " +"(вручную)» или «Древовидная (вручную)», генерируется только принудительная " +"поддержка." msgid "Normal (auto)" -msgstr "" +msgstr "Обычная (авто)" msgid "Tree (auto)" -msgstr "" +msgstr "Древовидная (авто)" msgid "Normal (manual)" -msgstr "" +msgstr "Обычная (вручную)" msgid "Tree (manual)" -msgstr "" +msgstr "Древовидная (вручную)" msgid "Support/object xy distance" msgstr "Зазор между моделью и поддержкой по XY" @@ -14515,11 +14722,13 @@ msgstr "" msgid "Interface use loop pattern" msgstr "Связующий слой петлями" +# ??? Печатать контактный слой связующего слоя поддержки петлями msgid "" "Cover the top contact layer of the supports with loops. Disabled by default." msgstr "" -"Печатать контактный слой связующего слоя поддержки петлями. По умолчанию " -"отключено." +"Печатать по периметру последнего связующего слоя поддержки непрерывную " +"полилинию. По умолчанию отключено. Устаревшая функция, которая не всегда " +"работает корректно." msgid "Support/raft interface" msgstr "Связующий слой поддержки/подложки" @@ -14669,14 +14878,25 @@ msgstr "" "Для нависаний, угол наклона которых ниже заданного порогового значения, " "будут использоваться поддержки." +# ??? Порог перекрытия периметров msgid "Threshold overlap" -msgstr "" +msgstr "Порог перекрытия для поддержки" +# ????? Если «Пороговый угол поддержки» равен нулю, поддержка будет создаваться только там, где верхний слой висит в воздухе слишком сильно, т.е. его перекрытие с нижним слоем меньше заданного тут порога. Чем меньше значение, тем более крутые нависания можно печатать без поддержек. msgid "" "If threshold angle is zero, support will be generated for overhangs whose " "overlap is below the threshold. The smaller this value is, the steeper the " "overhang that can be printed without support." msgstr "" +"Задаёт порог перекрытия периметров для генерации поддержки.\n" +"Если «Пороговый угол поддержки» равен нулю, поддержка будет создаваться для " +"нависающих участков, где верхний периметр опирается на нижний менее чем на " +"заданный процент своей ширины. Чем меньше значение этого параметра, тем " +"более крутые нависания можно напечатать без поддержки.\n" +"\n" +"Например, при значении 15% поддержка добавится, если верхний периметр лежит " +"на нижнем меньше чем на 15% своей ширины, что при ширине линии 0.4 мм " +"составляет 0.06 мм." msgid "Tree support branch angle" msgstr "Угол нависания ветвей древовидной поддержки" @@ -14810,8 +15030,8 @@ msgstr "Вкл. контроль температуры" msgid "" "Enable this option for automated chamber temperature control. This option " -"activates the emitting of an M191 command before the \"machine_start_gcode" -"\"\n" +"activates the emitting of an M191 command before the " +"\"machine_start_gcode\"\n" " which sets the chamber temperature and waits until it is reached. In " "addition, it emits an M141 command at the end of the print to turn off the " "chamber heater, if present. \n" @@ -14834,7 +15054,6 @@ msgstr "" msgid "Chamber temperature" msgstr "Температура в термокамере" -# ??? msgid "" "For high-temperature materials like ABS, ASA, PC, and PA, a higher chamber " "temperature can help suppress or reduce warping and potentially lead to " @@ -14862,18 +15081,17 @@ msgstr "" "ASA. \n" "\n" "Для PLA, PETG, TPU, PVA и других низкотемпературных материалов этот параметр " -"следует отключить , поскольку температура внутри термокамеры должна быть " +"следует отключить, поскольку температура внутри термокамеры должна быть " "низкой, чтобы избежать засорения хотэнда из-за размягчения материала в " "термобарьере.\n" "\n" -"Если параметр включён, он также устанавливает переменную с именем " -"chamber_temperature, которая может быть использована для передачи желаемой " -"температуры камеры в ваш макрос начала печати или макрос тепловой выдержки, " -"например, так: PRINT_START (другие переменные) " -"CHAMBER_TEMP=[chamber_temperature]. Это может быть полезно, если ваш принтер " -"не поддерживает команды M141/M191, или если вы хотите управлять тепловой " -"выдержки в макросе начала печати, если активный нагреватель термокамеры не " -"установлен." +"При включении параметра также создаёт переменная G-кода с именем " +"chamber_temperature. Её можно использовать в макросах начала печати или " +"прогрева термокамеры, например:\n" +"PRINT_START [другие_переменные] CHAMBER_TEMP=[chamber_temperature].\n" +"Это особенно полезно, если принтер не поддерживает команды M141/M191, или " +"если управление температурой термокамеры реализовано через макросы " +"(например, при отсутствии активного нагревателя камеры)." msgid "Nozzle temperature for layers after the initial one" msgstr "Температура сопла при печати для слоёв после первого." @@ -14893,8 +15111,10 @@ msgid "" "This gcode is inserted when change filament, including T command to trigger " "tool change" msgstr "" -"Команды в G-коде, которые выполняются для ручной смены пластиковой нити " -"(цвета\\типа), включая команду T для запуска смены инструмента." +"Команды в G-коде, которые выполняются при ручной смене пластиковой нити " +"(цвета\\типа), включая команду T для запуска смены инструмента. Пользователь " +"может вставить его в окне предпросмотра нарезки, нажав правой кнопкой мыши " +"на ползунок выбора слоя." msgid "This gcode is inserted when the extrusion role is changed" msgstr "" @@ -14959,10 +15179,10 @@ msgstr "" "появление дефектов (каплей, пупырышек) при печати нового участка после " "перемещения." -# ??????? Расстояние очистки внешней стенки msgid "Wipe Distance" msgstr "Расстояние очистки" +# ??? Установка значения в приведенном ниже параметре «Величина отката перед очисткой», приведёт к дополнительному втягиванию на заданную тут величину, в противном случае оно будет выполнено после. msgid "" "Describe how long the nozzle will move along the last path when " "retracting. \n" @@ -14976,14 +15196,13 @@ msgid "" msgstr "" "Задаёт расстояние перемещения, добавленное после печати последнего участка " "пути при совершении отката.\n" +"В зависимости от продолжительности очистки, скорости и величины отката в " +"настройках экструдера/прутка, может потребоваться дополнительное втягивание, " +"чтобы втянуть остатки материла.\n" "\n" -"В зависимости от продолжительности операция очистки, заданной скорости и " -"величины отката экструдера/прутка, может потребоваться движение отката, " -"чтобы втянуть оставшийся материал. \n" -"\n" -"Установка значения в приведенном ниже параметре «Величина отката перед " -"очисткой» приведёт к выполнению дополнительного отката перед очисткой, в " -"противном случае это будет выполнено после." +"Если в параметре «Величина отката перед очисткой» задано значение (включая " +"0), дополнительное выполнится произойдет до очистки. Если параметр отключён " +"- после очистки." msgid "" "The wiping tower can be used to clean up the residue on the nozzle and " @@ -15010,7 +15229,7 @@ msgstr "" "очистки указанные в таблице." msgid "Prime volume" -msgstr "Объём сброса на черновой башни" +msgstr "Объём сброса на черновой башне" msgid "The volume of material to prime extruder on tower." msgstr "" @@ -15042,7 +15261,6 @@ msgstr "" msgid "Maximum wipe tower print speed" msgstr "Макс. скорость печати черновой башни" -# ?????? msgid "" "The maximum print speed when purging in the wipe tower and printing the wipe " "tower sparse layers. When purging, if the sparse infill speed or calculated " @@ -15064,17 +15282,25 @@ msgid "" "For the wipe tower external perimeters the internal perimeter speed is used " "regardless of this setting." msgstr "" -"Максимальная скорость печати при очистке в черновую башню и печати " -"разреженных слоёв черновой башни. \n" +"Максимальная скорость печати при очистке в черновую башню и печати её " +"разреженных слоёв.\n" +"Во время очистки программа сопоставляет скорость разреженного заполнения и " +"скорость, рассчитанную по 'максимальному объёмному расходу', и использует " +"наименьшую.\n" +"При печати разреженных слоёв программа сопоставляет скорость внутренних " +"периметров и скорость, рассчитанную по 'максимальному объёмному расходу', и " +"также использует наименьшую.\n" "\n" "Увеличение этой скорости может повлиять на устойчивость башни, а также " -"увеличить силу столкновения сопла с каплями, которые могут образовываться на " -"черновой башне.\n" +"увеличить силу, с которой сопло сталкивается с любыми наплывами, которые " +"могли образоваться на черновой башне.\n" "\n" -"Прежде чем увеличивать этот параметр выше установленного по умолчанию " -"значения 90 мм/с, убедитесь, что ваш принтер способен работать на повышенных " -"скоростях и что образование соплей при смене инструмента хорошо " -"контролируется." +"Перед увеличением этого параметра выше значения по умолчанию 90 мм/с " +"убедитесь, что ваш принтер может надежно строить мосты на повышенных " +"скоростях и что отсутствует подтекание при смене инструмента.\n" +"\n" +"Для внешних периметров черновой башни всегда используется скорость " +"внутренних периметров, независимо от значения данного параметра." msgid "" "The extruder to use when printing perimeter of the wipe tower. Set to 0 to " @@ -15126,8 +15352,7 @@ msgstr "" msgid "Maximal bridging distance" msgstr "Максимальное длина моста" -# ??? Максимальное расстояние между опорами на разряженных участках -# заполнения. +# ??? Максимальное расстояние между опорами на разряженных участках заполнения. msgid "Maximal distance between supports on sparse infill sections." msgstr "" "Максимальное расстояние моста черновой башни на её разряженных участках." @@ -15146,9 +15371,10 @@ msgid "" "purging lines thicker or narrower than they normally would be. The spacing " "is adjusted automatically." msgstr "" -"Дополнительный поток, используемый для линий очистки на черновой башне. В " -"результате линии очистки становятся толще или уже, чем обычно. Расстояние " -"между ними регулируется автоматически." +"Регулирует количество пластика, которое будет использоваться для очистки на " +"черновой башенке. Делает линии шире или уже по сравнению с тем, что " +"выставлено в «Мин. объём сброса на черновой башне». Расстояние между линиями " +"пересчитывается автоматически." msgid "Idle temperature" msgstr "Температура ожидания" @@ -15279,19 +15505,20 @@ msgid "Arachne" msgstr "Arachne" msgid "Wall transition length" -msgstr "Длина перехода к периметру" +msgstr "Длина перехода между периметрами" msgid "" "When transitioning between different numbers of walls as the part becomes " "thinner, a certain amount of space is allotted to split or join the wall " "segments. It's expressed as a percentage over nozzle diameter" msgstr "" -"При переходе между разным количеством периметров по мере того, как деталь " -"становится тоньше, выделяется определенное пространство для разделения или " -"соединения линий периметров. Выражается в процентах от диаметра сопла." +"Этот параметр задаёт длину перехода между периметрами при изменении их " +"количества (с чётного на нечётное, и обратно). Чем больше значение, тем " +"плавнее переход, и наоборот: чем меньше, тем резче. Если задано в процентах, " +"то значение вычисляться относительно диаметра сопла." msgid "Wall transitioning filter margin" -msgstr "Поле фильтра при переходе между периметрами" +msgstr "Граница фильтрации переходов между периметрами" msgid "" "Prevent transitioning back and forth between one extra wall and one less. " @@ -15302,15 +15529,12 @@ msgid "" "variation can lead to under- or overextrusion problems. It's expressed as a " "percentage over nozzle diameter" msgstr "" -"Предотвращает переход туда и обратно между одним лишним периметром и одним " -"недостающим. Это поле расширяет диапазон значений ширины экструзии, который " -"определяется как [Минимальная ширина периметра - Поле, 2 * Минимальная " -"ширина периметра + Поле]. Расширение этого поля позволяет сократить " -"количество переходов, что в свою очередь позволяет сократить количество " -"запусков/остановок экструдирования и время перемещения. Однако большой " -"разброс значений ширины экструзии может привести к проблемам недо/" -"переэкструзии материала. Если задано в процентах, то расчёт производится " -"относительно диаметра сопла." +"Параметр расширяет допустимый диапазон значений ширины периметров, чтобы " +"уменьшить частые изменения их количества на тонких стенках, что улучшает " +"качество печати. Однако слишком большой диапазон может привести к " +"недоэкструзии или переэкструзии. Если параметр задан в процентах, его " +"значение вычисляется относительно диаметра сопла. Например, для сопла 0,4 мм " +"оптимальным считается значение 25% (0,1 мм)." msgid "Wall transitioning threshold angle" msgstr "Пороговый угол перехода между периметрами" @@ -15322,23 +15546,28 @@ msgid "" "this setting reduces the number and length of these center walls, but may " "leave gaps or overextrude" msgstr "" -"Когда требуется создавать переходы между чётным и нечётным количеством " -"периметров. Клиновидная форма с углом, превышающим этот параметр, не будет " -"иметь переходов, и периметры не будут напечатаны в центре для заполнения " -"оставшегося пространства. Уменьшение значения этого параметра позволяет " -"сократить количество и длину этих центральных периметров, но при этом могут " -"остаться зазоры или произойти чрезмерное экструдирование." +"Этот параметр задаёт минимальный угол между периметрами, при котором " +"требуется создавать переход между чётным и нечётным их количеством. Если " +"угол в клиновидной зоне, то есть в месте схождения периметров, превышает " +"заданное значение, переходы не генерируются, и в центре клина не будут " +"печататься дополнительные периметры для заполнения пустоты. Если же угол " +"меньше заданного значения, слайсер добавит переход и дополнительный периметр " +"в клиновидной зоне, чтобы заполнить оставшуюся пустоту." msgid "Wall distribution count" -msgstr "Счётчик распределений по периметрам" +msgstr "Количество изменяемых периметров" +# Т.е. если значение этого параметра задано как 1, а на участке модели 3 периметра, то только самый внутренний периметр будет печататься с переменной толщиной, а 2 оставшихся — с постоянной. msgid "" "The number of walls, counted from the center, over which the variation needs " "to be spread. Lower values mean that the outer walls don't change in width" msgstr "" -"Количество периметров, отсчитываемое от центра, на которые необходимо " -"распространить изменения. Более низкое значение означает, что ширина внешних " -"периметров не изменяется." +"Количество периметров, отсчитываемое от заполнения, на которые будут " +"распространяться изменения, вносимые генератором периметров Arachne. Если " +"значение параметра низкое (например, 1), то только первый периметр от " +"заполнения будет печататься с переменной толщиной, а все остальные периметры " +"(второй, третий и т.д.) — с фиксированной шириной, заданной в настройках " +"слайсера (например, 0.45 мм для сопла 0.4 мм)." msgid "Minimum feature size" msgstr "Минимальный размер элемента" @@ -15349,10 +15578,16 @@ msgid "" "feature size will be widened to the Minimum wall width. It's expressed as a " "percentage over nozzle diameter" msgstr "" -"Минимальная толщина тонких элементов. Элементы модели, которые тоньше этого " -"значения, не будут напечатаны, в то время как элементы, толщина которых " -"превышает «Минимальный размер элемента», будут расширены до минимальной " -"ширины периметра. Выражается в процентах от диаметра сопла." +"Если элементы модели тоньше заданного здесь значения, они не будут " +"напечатаны. Если же их толщина превышает этот порог, но не достигает " +"минимальной ширины периметра, они автоматически расширяются до указанного " +"минимума, равного значению «Минимальная ширина периметра». Если задано в " +"процентах, то значение вычисляться относительно диаметра сопла.\n" +"\n" +"Например расчёт при значении 25% и сопле 0,4 мм: 0,4 мм × 25% = 0,1 мм. " +"Следовательно, при значении параметра 25% и сопле 0,4 мм элементы толщиной " +"до 0,1 мм не напечатаются. Элементы же толщиной от 0,1 мм и выше расширяются " +"до минимальной ширины периметра, указанной ниже." msgid "Minimum wall length" msgstr "Минимальная длина периметра" @@ -15434,61 +15669,14 @@ msgstr " вне диапазона " msgid "Export 3MF" msgstr "Экспорт в 3MF" -msgid "Export project as 3MF." -msgstr "" - -msgid "Export slicing data" -msgstr "" - -msgid "Export slicing data to a folder." -msgstr "" - -msgid "Load slicing data" -msgstr "" - -msgid "Load cached slicing data from directory" -msgstr "" - msgid "Export STL" msgstr "Экспорт в STL" -msgid "Export the objects as single STL." -msgstr "" - -msgid "Export multiple STLs" -msgstr "" - -msgid "Export the objects as multiple STLs to directory" -msgstr "" - msgid "Slice" msgstr "Нарезать" -msgid "Slice the plates: 0-all plates, i-plate i, others-invalid" -msgstr "" - -msgid "Show command help." -msgstr "" - msgid "UpToDate" -msgstr "" - -msgid "Update the configs values of 3mf to latest." -msgstr "" - -msgid "downward machines check" -msgstr "" - -msgid "" -"check whether current machine downward compatible with the machines in the " -"list" -msgstr "" - -msgid "Load default filaments" -msgstr "" - -msgid "Load first filament as default for those not loaded" -msgstr "" +msgstr "Актуальная версия" msgid "Minimum save" msgstr "Минимальное сохранение" @@ -15496,18 +15684,6 @@ msgstr "Минимальное сохранение" msgid "export 3mf with minimum size." msgstr "экспорт 3mf файла с минимальным размером." -msgid "mtcpp" -msgstr "" - -msgid "max triangle count per plate for slicing." -msgstr "" - -msgid "mstpp" -msgstr "" - -msgid "max slicing time per plate in seconds." -msgstr "" - msgid "No check" msgstr "Без проверки" @@ -15516,41 +15692,14 @@ msgstr "" "Не запускать никакие проверки валидности, такие как проверка на конфликт " "путей в G-коде." -msgid "Normative check" -msgstr "" - -msgid "Check the normative items." -msgstr "" - msgid "Output Model Info" msgstr "Выходная информация о модели" -msgid "Output the model's information." -msgstr "" - msgid "Export Settings" -msgstr "" - -msgid "Export settings to a file." -msgstr "" - -msgid "Send progress to pipe" -msgstr "" - -msgid "Send progress to pipe." -msgstr "" +msgstr "Настройки экспорта" msgid "Arrange Options" -msgstr "" - -msgid "Arrange options: 0-disable, 1-enable, others-auto" -msgstr "" - -msgid "Repetions count" -msgstr "" - -msgid "Repetions count of the whole model" -msgstr "" +msgstr "Параметры расстановки" msgid "Ensure on bed" msgstr "Обеспечивать размещение на столе" @@ -15568,12 +15717,6 @@ msgstr "" "Расставьте представленные модели на столе и объединить их в одну модель, " "чтобы выполнить действия один раз." -msgid "Convert Unit" -msgstr "" - -msgid "Convert the units of model" -msgstr "" - msgid "Orient Options" msgstr "Параметры ориентации" @@ -15590,65 +15733,6 @@ msgstr "Поворот вокруг оси Y" msgid "Rotation angle around the Y axis in degrees." msgstr "Угол поворота вокруг оси Y в градусах." -msgid "Scale the model by a float factor" -msgstr "" - -msgid "Load General Settings" -msgstr "" - -msgid "Load process/machine settings from the specified file" -msgstr "" - -msgid "Load Filament Settings" -msgstr "" - -msgid "Load filament settings from the specified file list" -msgstr "" - -msgid "Skip Objects" -msgstr "" - -msgid "Skip some objects in this print" -msgstr "" - -msgid "Clone Objects" -msgstr "" - -msgid "Clone objects in the load list" -msgstr "" - -msgid "load uptodate process/machine settings when using uptodate" -msgstr "" - -msgid "" -"load uptodate process/machine settings from the specified file when using " -"uptodate" -msgstr "" - -msgid "load uptodate filament settings when using uptodate" -msgstr "" - -msgid "" -"load uptodate filament settings from the specified file when using uptodate" -msgstr "" - -msgid "" -"if enabled, check whether current machine downward compatible with the " -"machines in the list" -msgstr "" - -msgid "downward machines settings" -msgstr "" - -msgid "the machine settings list need to do downward checking" -msgstr "" - -msgid "Load assemble list" -msgstr "" - -msgid "Load assemble object list from config file" -msgstr "" - msgid "Data directory" msgstr "Папка конфигурации пользователя" @@ -15662,24 +15746,7 @@ msgstr "" "хранилища." msgid "Output directory" -msgstr "" - -msgid "Output directory for the exported files." -msgstr "" - -msgid "Debug level" -msgstr "" - -msgid "" -"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:" -"trace\n" -msgstr "" - -msgid "Enable timeplapse for print" -msgstr "" - -msgid "If enabled, this slicing will be considered using timelapse" -msgstr "" +msgstr "Папку сохранения" msgid "Load custom gcode" msgstr "Загрузить пользовательский G-код" @@ -15687,65 +15754,6 @@ msgstr "Загрузить пользовательский G-код" msgid "Load custom gcode from json" msgstr "Загрузить пользовательской G-код из json" -msgid "Load filament ids" -msgstr "" - -msgid "Load filament ids for each object" -msgstr "" - -msgid "Allow multiple color on one plate" -msgstr "" - -msgid "If enabled, the arrange will allow multiple color on one plate" -msgstr "" - -msgid "Allow rotatations when arrange" -msgstr "" - -msgid "If enabled, the arrange will allow rotations when place object" -msgstr "" - -msgid "Avoid extrusion calibrate region when doing arrange" -msgstr "" - -msgid "" -"If enabled, the arrange will avoid extrusion calibrate region when place " -"object" -msgstr "" - -msgid "Skip modified gcodes in 3mf" -msgstr "" - -msgid "Skip the modified gcodes in 3mf from Printer or filament Presets" -msgstr "" - -msgid "MakerLab name" -msgstr "" - -msgid "MakerLab name to generate this 3mf" -msgstr "" - -msgid "MakerLab version" -msgstr "" - -msgid "MakerLab version to generate this 3mf" -msgstr "" - -msgid "metadata name list" -msgstr "" - -msgid "metadata name list added into 3mf" -msgstr "" - -msgid "metadata value list" -msgstr "" - -msgid "metadata value list added into 3mf" -msgstr "" - -msgid "Allow 3mf with newer version to be sliced" -msgstr "" - msgid "Current z-hop" msgstr "Подъём оси Z" @@ -15842,7 +15850,7 @@ msgstr "" "при печати." msgid "Has single extruder MM priming" -msgstr "Имеется предзарядка для одноэкструдерного ММ принтера" +msgstr "Имеется предзарядка одиночного ММ экструдера" msgid "Are the extra multi-material priming regions used in this print?" msgstr "" @@ -15949,8 +15957,8 @@ msgid "" "following format:'[x, y]' (x and y are floating-point numbers in mm)." msgstr "" "Вектор точек выпуклой оболочки первого слоя. Каждый элемент вектора имеет " -"следующий формат: '[x, y]' (Координаты x и y - числа с плавающей запятой " -"измеряемые в мм)." +"следующий формат: '[x, y]' (x и y - координаты с плавающей запятой в " +"миллиметрах)." msgid "Bottom-left corner of first layer bounding box" msgstr "Нижний левый угол ограничивающего прямоугольника первого слоя" @@ -16317,7 +16325,7 @@ msgstr "Выберите хотя бы один пруток для калибр msgid "Flow rate calibration result has been saved to preset" msgstr "Результат калибровки динамики потока был сохранён в профиль" -# не длинно??? +# не длинно??? Результат калибровки макс. объёмного расхода был сохранён в профиль msgid "Max volumetric speed calibration result has been saved to preset" msgstr "" "Результат калибровки максимального объёмного расхода был сохранён в профиль" @@ -16521,13 +16529,12 @@ msgstr "Введите имя, который хотите сохранить н msgid "The name cannot exceed 40 characters." msgstr "Максимальная длина имени 40 символов." -# ??? +# ??? было Можно сохранить только один результат с одинаковым именем. Вы уверены, что хотите перезаписать другие результаты? msgid "" "Only one of the results with the same name will be saved. Are you sure you " "want to override the other results?" msgstr "" -"Можно сохранить только один результат с одинаковым именем. Вы уверены, что " -"хотите перезаписать другие результаты?" +"Результаты с одинаковыми именами будут перезаписаны. Подтвердить действие?" msgid "Please find the best line on your plate" msgstr "Пожалуйста, найдите лучшую линию на столе" @@ -16661,10 +16668,10 @@ msgid "The nozzle diameter has been synchronized from the printer Settings" msgstr "Диаметр сопла был синхронизирован с настройками принтера" msgid "From Volumetric Speed" -msgstr "От объёмной скорости" +msgstr "От объёмного расхода" msgid "To Volumetric Speed" -msgstr "К объёмной скорости" +msgstr "К объёмному расходу" msgid "Flow Dynamics Calibration Result" msgstr "Результаты калибровки динамики потока" @@ -16940,18 +16947,21 @@ msgid "" "The selected bed type does not match the file. Please confirm before " "starting the print." msgstr "" +"Выбранный тип стола не соответствует тому что в файле. Пожалуйста, проверьте " +"и подтвердите действие перед началом печати." msgid "Time-lapse" -msgstr "" +msgstr "Таймлапсы" +# ??? msgid "Heated Bed Leveling" -msgstr "" +msgstr "Выравнивание с подогревом" msgid "Textured Build Plate (Side A)" -msgstr "" +msgstr "Текстурированная пластина (сторона А)" msgid "Smooth Build Plate (Side B)" -msgstr "" +msgstr "Текстурированная пластина (сторона Б)" msgid "Unable to perform boolean operation on selected parts" msgstr "Невозможно выполнить булевую операцию над выбранными элементами." @@ -17092,7 +17102,6 @@ msgstr "" msgid "Filament type is not selected, please reselect type." msgstr "Не выбран тип прутка, пожалуйста, выберите его заново." -# ??? serial? msgid "Filament serial is not entered, please enter serial." msgstr "Пожалуйста, введите серию пластиковой нити." @@ -17100,8 +17109,8 @@ msgid "" "There may be escape characters in the vendor or serial input of filament. " "Please delete and re-enter." msgstr "" -"В имени производителя или серии прутка могут присутствовать управляющие " -"символы. Пожалуйста, удалите их и введите повторно." +"Похоже, в имени производителя или серии пластиковой нити присутствуют " +"управляющие символы. Удалите их и введите корректные данные." msgid "All inputs in the custom vendor or serial are spaces. Please re-enter." msgstr "" @@ -17127,9 +17136,10 @@ msgstr "" "Если продолжить создание, то созданный профиль будет отображаться с полным " "именем. Хотите продолжить?" -# ??? При создании некоторых существующих профилей произошла ошибка, а именно: +# ??? было Не удалось создать некоторые из следующих существующих профилей: +# Создание некоторых профилей завершилось с ошибкой. Список проблемных профилей: msgid "Some existing presets have failed to be created, as follows:\n" -msgstr "Не удалось создать некоторые из следующих существующих профилей:\n" +msgstr "Не удалось создать следующие профили:\n" msgid "" "\n" @@ -17139,8 +17149,8 @@ msgstr "" "Хотите перезаписать его?" msgid "" -"We would rename the presets as \"Vendor Type Serial @printer you selected" -"\". \n" +"We would rename the presets as \"Vendor Type Serial @printer you " +"selected\". \n" "To add preset for more printers, Please go to printer selection" msgstr "" "Мы переименуем профиль в \"Производитель Тип Серия @выбранный принтер\".\n" @@ -17256,10 +17266,8 @@ msgstr "" "В разделе «Область печати» на первой странице введено недопустимое значение. " "Проверьте введение значение перед созданием." -# ??? "Не введено имя или модель пользовательского принтера, пожалуйста, -# введите их. msgid "The custom printer or model is not entered, please enter it." -msgstr "Пожалуйста, введите имя пользовательского принтера и модель." +msgstr "Пожалуйста, введите имя и модель пользовательского принтера." msgid "" "The printer preset you created already has a preset with the same name. Do " @@ -17287,7 +17295,6 @@ msgstr "Не удалось создать профиль прутка. Прич msgid "Create process presets failed. As follows:\n" msgstr "Не удалось создать профиль процесса. Причины: \n" -# ??? выберите занова msgid "Vendor is not find, please reselect." msgstr "Производитель не найден, пожалуйста, выберите другого." @@ -17305,9 +17312,8 @@ msgid "" "There may be escape characters in the custom printer vendor or model. Please " "delete and re-enter." msgstr "" -"В имени производителя или модели пользовательского принтера могут " -"присутствовать управляющие символы. Пожалуйста, удалите их и введите " -"повторно." +"Похоже, в имени производителя или модели пользовательского принтера " +"присутствуют управляющие символы. Удалите их и введите корректные данные." msgid "" "All inputs in the custom printer vendor or model are spaces. Please re-enter." @@ -17332,7 +17338,7 @@ msgid "Printer Created" msgstr "Профиль принтера создан" msgid "Please go to printer settings to edit your presets" -msgstr "Для редактирования настроек профиля перейдите в настройки принтера!" +msgstr "Для редактирования настроек профиля перейдите в настройки принтера" msgid "Filament Created" msgstr "Профиль прутка создан" @@ -17369,12 +17375,11 @@ msgstr "" msgid "Printer Setting" msgstr "Настройка принтера" -# ???????8 msgid "Printer config bundle(.orca_printer)" -msgstr "Printer config bundle(.orca_printer) - Пакет конфигурации принтера" +msgstr "Printer config bundle(.orca_printer) - Пакет профилей принтера" msgid "Filament bundle(.orca_filament)" -msgstr "Filament bundle(.orca_filament) - Пакет конфигурации прутков" +msgstr "Filament bundle(.orca_filament) - Пакет профилей прутка" msgid "Printer presets(.zip)" msgstr "Printer presets(.zip) - Профили принтеров" @@ -17391,13 +17396,11 @@ msgstr "ошибка инициализации" msgid "add file fail" msgstr "ошибка добавления файла" -# ??? msgid "add bundle structure file fail" -msgstr "ошибка добавления файла пакета конфигурации" +msgstr "ошибка добавления файла пакета профилей" -# ??? завершилось с ошибкой msgid "finalize fail" -msgstr "Ошибка записи" +msgstr "ошибка записи" msgid "open zip written fail" msgstr "Ошибка открытия zip-файла для записи" @@ -17419,16 +17422,17 @@ msgid "" "Printer and all the filament&&process presets that belongs to the printer. \n" "Can be shared with others." msgstr "" -"Принтер и все профили пластиковых нитей и процессов, принадлежащие " -"выбранному принтеру.\n" -"Можно будет поделиться с другими пользователями." +"Экспортируется профиль принтера, а также профили пластиковых нитей и " +"процессов, \n" +"связанные с выбранным принтером.\n" +"Вы сможете делиться этими файлами с другими пользователями." msgid "" "User's filament preset set. \n" "Can be shared with others." msgstr "" -"Набор пользовательских профилей пластиковых нитей.\n" -"Можно будет поделиться с другими пользователями." +"Экспортируется набор пользовательских профилей пластиковых нитей. \n" +"Вы сможете делиться этими файлами с другими пользователями." msgid "" "Only display printer names with changes to printer, filament, and process " @@ -17445,7 +17449,7 @@ msgid "" "preset you choose will be exported as a zip." msgstr "" "Будут отображаться только пользовательские профили принтеров. \n" -"Каждый выбранный профиль будет экспортирован в zip-файл." +"Все они будут экспортированы в единый zip-файл." msgid "" "Only the filament names with user filament presets will be displayed, \n" @@ -17453,7 +17457,7 @@ msgid "" "exported as a zip." msgstr "" "Будут отображаться только пользовательские профили пластиковых нитей.\n" -"Все они будут экспортированы в zip-файл." +"Все они будут экспортированы в единый zip-файл." msgid "" "Only printer names with changed process presets will be displayed, \n" @@ -17462,14 +17466,14 @@ msgid "" msgstr "" "Будут отображаться только профили принтеров с изменёнными профилями " "процесса. \n" -"Все пользовательские профили процессов для каждого выбранного профиля " -"принтера будут экспортированы в zip-файл." +"Все пользовательские профили процессов будут экспортированы в единый zip-" +"файл." msgid "Please select at least one printer or filament." msgstr "Пожалуйста, выберите хотя бы один принтер или пластиковую нить." msgid "Please select a type you want to export" -msgstr "Пожалуйста, выберите то, что вы хотите экспортировать" +msgstr "Пожалуйста, выберите то, что вы хотите экспортировать." msgid "Failed to create temporary folder, please try Export Configs again." msgstr "" @@ -17596,7 +17600,7 @@ msgstr "Не удалось получить действительную ссы msgid "Success!" msgstr "Успешно!" -# ??? Вы уверены, что хотите разлогиниться... завершить сеанс? +# ??? Вы уверены, что хотите разлогиниться, Вы уверены, что хотите выйти из аккаунта?" msgid "Are you sure to log out?" msgstr "Вы уверены, что хотите выйти из системы?" @@ -17674,9 +17678,9 @@ msgid "Could not get resources to create a new connection" msgstr "Не удалось получить ресурсы для создания нового подключения" msgid "Upload not enabled on FlashAir card." -msgstr "Загрузка на карту FlashAir не была включена." +msgstr "Загрузка данных на карту FlashAir не включена." -# ????? +# ??? в смысле выгрузка msgid "Connection to FlashAir works correctly and upload is enabled." msgstr "" "Подключение к FlashAir успешно установлено. Загрузка на карту включена." @@ -18094,7 +18098,7 @@ msgid "Remove selected points" msgstr "Удалить выбранные" msgid "Remove all" -msgstr "Удалить всё" +msgstr "Удалить все" msgid "Auto-generate points" msgstr "Сгенерировать автоматически" @@ -18112,8 +18116,8 @@ msgid "" "Warning: The brim type is not set to \"painted\",the brim ears will not take " "effect !" msgstr "" -"Предупреждение: если тип каймы не установлен на «Нарисовано», то «мышиные " -"уши» не будут работать!" +"Предупреждение: если тип каймы не установлен на «Нарисовано», то мышиные уши " +"не будут работать!" msgid "Set the brim type to \"painted\"" msgstr "Установить тип каймы на «Нарисовано»." @@ -18517,347 +18521,114 @@ msgstr "" "ABS, повышение температуры подогреваемого стола может снизить эту " "вероятность?" -#~ msgid "" -#~ "We have added an experimental style \"Tree Slim\" that features smaller " -#~ "support volume but weaker strength.\n" -#~ "We recommend using it with: 0 interface layers, 0 top distance, 2 walls." -#~ msgstr "" -#~ "Мы добавили экспериментальный стиль «Стройный (древ. поддержка)», который " -#~ "отличается меньшим объёмом поддержки, а следовательно, и меньшей " -#~ "прочностью. Мы рекомендуем использовать его со следующими параметрами: " -#~ "количество связующих слоёв - 0, зазор поддержки сверху - 0, периметров - " -#~ "2." +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommend using it with: 0 interface layers, 0 top distance, 2 walls." +msgstr "" +"Мы добавили экспериментальный стиль «Стройный (древ. поддержка)», который " +"отличается меньшим объёмом поддержки, а следовательно, и меньшей прочностью. " +"Мы рекомендуем использовать его со следующими параметрами: количество " +"связующих слоёв - 0, зазор поддержки сверху - 0, периметров - 2." -#~ msgid "" -#~ "For \"Tree Strong\" and \"Tree Hybrid\" styles, we recommend the " -#~ "following settings: at least 2 interface layers, at least 0.1mm top z " -#~ "distance or using support materials on interface." -#~ msgstr "" -#~ "Для стилей «Крепкий (древ. поддержка)» и «Гибридный (древ. поддержка)» \n" -#~ "мы рекомендуем следующие параметры: \n" -#~ "не менее 2-х связующих слоёв, \n" -#~ "зазор поддержки сверху не менее 0,1 мм \n" -#~ "или использование «материалов для поддержек» в качестве связующего слоя." +msgid "" +"For \"Tree Strong\" and \"Tree Hybrid\" styles, we recommend the following " +"settings: at least 2 interface layers, at least 0.1mm top z distance or " +"using support materials on interface." +msgstr "" +"Для стилей «Крепкий (древ. поддержка)» и «Гибридный (древ. поддержка)» \n" +"мы рекомендуем следующие параметры: \n" +"не менее 2-х связующих слоёв, \n" +"зазор поддержки сверху не менее 0,1 мм \n" +"или использование «материалов для поддержек» в качестве связующего слоя." -#~ msgid "" -#~ "When using support material for the support interface, We recommend the " -#~ "following settings:\n" -#~ "0 top z distance, 0 interface spacing, concentric pattern and disable " -#~ "independent support layer height" -#~ msgstr "" -#~ "При использовании «материалов для поддержек» в качестве связующего \n" -#~ "слоя поддержки, мы рекомендуем следующие параметры:\n" -#~ "зазор поддержки сверху - 0, \n" -#~ "расстояние между связующими линиями - 0, \n" -#~ "шаблон связующего слоя - концентрический, \n" -#~ "отключение независимой высоты слоя поддержки." +msgid "" +"When using support material for the support interface, We recommend the " +"following settings:\n" +"0 top z distance, 0 interface spacing, concentric pattern and disable " +"independent support layer height" +msgstr "" +"При использовании «материалов для поддержек» в качестве связующего \n" +"слоя поддержки, мы рекомендуем следующие параметры:\n" +"зазор поддержки сверху - 0, \n" +"расстояние между связующими линиями - 0, \n" +"шаблон связующего слоя - концентрический, \n" +"отключение независимой высоты слоя поддержки." -#~ msgid "Branch Diameter with double walls" -#~ msgstr "Диаметр ветвей с двойными стенками" +msgid "Branch Diameter with double walls" +msgstr "Диаметр ветвей с двойными стенками" -#~ msgid "" -#~ "Branches with area larger than the area of a circle of this diameter will " -#~ "be printed with double walls for stability. Set this value to zero for no " -#~ "double walls." -#~ msgstr "" -#~ "Ветви, толщина которых больше указанного диаметра, будут напечатаны с " -#~ "двойными стенками для прочности. Установите 0, если двойные стенки у " -#~ "ветвей не нужны." +msgid "" +"Branches with area larger than the area of a circle of this diameter will be " +"printed with double walls for stability. Set this value to zero for no " +"double walls." +msgstr "" +"Ветви, толщина которых больше указанного диаметра, будут напечатаны с " +"двойными стенками для прочности. Установите 0, если двойные стенки у ветвей " +"не нужны." -#~ msgid "This setting specify the count of walls around support" -#~ msgstr "" -#~ "Этот параметр определяет количество периметров у печатаемой поддержки." +msgid "This setting specify the count of walls around support" +msgstr "Этот параметр определяет количество периметров у печатаемой поддержки." #, c-format, boost-format -#~ msgid "Support: generate toolpath at layer %d" -#~ msgstr "Поддержка: генерация траектории инструмента на слое %d" +msgid "Support: generate toolpath at layer %d" +msgstr "Поддержка: генерация траектории инструмента на слое %d" -#~ msgid "Support: detect overhangs" -#~ msgstr "Поддержка: обнаружение нависаний" +msgid "Support: detect overhangs" +msgstr "Поддержка: обнаружение нависаний" -#~ msgid "Support: propagate branches" -#~ msgstr "Поддержка: построение ветвей" +msgid "Support: propagate branches" +msgstr "Поддержка: построение ветвей" -#~ msgid "Support: draw polygons" -#~ msgstr "Поддержка: рисование полигонов" +msgid "Support: draw polygons" +msgstr "Поддержка: рисование полигонов" -#~ msgid "Support: generate toolpath" -#~ msgstr "Поддержка: генерация траектории инструмента" +msgid "Support: generate toolpath" +msgstr "Поддержка: генерация траектории инструмента" #, c-format, boost-format -#~ msgid "Support: generate polygons at layer %d" -#~ msgstr "Поддержка: генерация полигонов на слое %d" +msgid "Support: generate polygons at layer %d" +msgstr "Поддержка: генерация полигонов на слое %d" #, c-format, boost-format -#~ msgid "Support: fix holes at layer %d" -#~ msgstr "Поддержка: ремонт отверстий на слое %d" +msgid "Support: fix holes at layer %d" +msgstr "Поддержка: ремонт отверстий на слое %d" #, c-format, boost-format -#~ msgid "Support: propagate branches at layer %d" -#~ msgstr "Поддержка: построение ветвей на слое %d" +msgid "Support: propagate branches at layer %d" +msgstr "Поддержка: построение ветвей на слое %d" -#~ msgid "Current Cabin humidity" -#~ msgstr "Текущая влажность внутри АСПП" +msgid "Cooling overhang threshold" +msgstr "Порог включения обдува на нависаниях" -# ??? видеотрансляция остановлена -#~ msgid "Stopped." -#~ msgstr "Трансляция с камеры остановлена." +msgid "Overhangs cooling threshold" +msgstr "Порог включения обдува на нависаниях" -#, c-format, boost-format -#~ msgid "Connect failed [%d]!" -#~ msgstr "Ошибка подключения [%d]!" +msgid "Connect failed [%d]!" +msgstr "Ошибка подключения [%d]!" -#~ msgid "Initialize failed (Device connection not ready)!" -#~ msgstr "Ошибка инициализации (подключённое устройство не готово)!" +msgid "Initialize failed (Device connection not ready)!" +msgstr "Ошибка инициализации (подключённое устройство не готово)!" -#~ msgid "Initialize failed (Storage unavailable, insert SD card.)!" -#~ msgstr "Ошибка инициализации (хранилище недоступно, вставьте SD-карту)!" +msgid "Initialize failed (Storage unavailable, insert SD card.)!" +msgstr "Ошибка инициализации (хранилище недоступно, вставьте SD-карту)!" -#, c-format, boost-format -#~ msgid "Initialize failed (%s)!" -#~ msgstr "Ошибка инициализации (%s)!" +msgid "Initialize failed (%s)!" +msgstr "Ошибка инициализации (%s)!" -#~ msgid "LAN Connection Failed (Sending print file)" -#~ msgstr "Сбой подключения к локальной сети (отправка файла на печать)" +msgid "IP and Access Code Verified! You may close the window" +msgstr "IP-адрес и код доступа подтверждены! Вы можете закрыть окно." -#~ msgid "" -#~ "Step 1, please confirm Orca Slicer and your printer are in the same LAN." -#~ msgstr "" -#~ "Шаг 1. Пожалуйста, убедитесь, что Orca Slicer и ваш принтер находятся в " -#~ "одной локальной сети." +# ??? Грань-грань +msgid "Face and face assembly" +msgstr "Сборка по граням" -#~ msgid "" -#~ "Step 2, if the IP and Access Code below are different from the actual " -#~ "values on your printer, please correct them." -#~ msgstr "" -#~ "Шаг 2. Если приведенный ниже IP-адрес и код доступа отличаются от " -#~ "фактических значений на вашем принтере, пожалуйста, исправьте их." +# ??? Точка-точка +msgid "Point and point assembly" +msgstr "Сборка по точкам" -#~ msgid "Step 3: Ping the IP address to check for packet loss and latency." -#~ msgstr "" -#~ "Шаг 3. Пропингуйте IP-адрес, чтобы проверить потерю пакетов и задержку." +msgid "Unselect" +msgstr "Отменить выбор" -#~ msgid "IP and Access Code Verified! You may close the window" -#~ msgstr "IP-адрес и код доступа подтверждены! Вы можете закрыть окно." - -#~ msgid "Force cooling for overhang and bridge" -#~ msgstr "Принудительный обдув навесов и мостов" - -#~ msgid "" -#~ "Enable this option to optimize part cooling fan speed for overhang and " -#~ "bridge to get better cooling" -#~ msgstr "" -#~ "Включите, чтобы оптимизировать скорость вентилятора охлаждения моделей " -#~ "для нависаний и мостов для обеспечения лучшего их охлаждения." - -#~ msgid "Fan speed for overhang" -#~ msgstr "Скорость вентилятора на нависаниях" - -#~ msgid "" -#~ "Force part cooling fan to be this speed when printing bridge or overhang " -#~ "wall which has large overhang degree. Forcing cooling for overhang and " -#~ "bridge can get better quality for these part" -#~ msgstr "" -#~ "Заставляет вентилятор обдува модели работать на этой скорости при печати " -#~ "мостов или нависающих периметров, имеющих большую степень свеса. " -#~ "Принудительное охлаждение позволяет повысить качество печати этих частей." - -#~ msgid "Cooling overhang threshold" -#~ msgstr "Порог включения обдува на нависаниях" - -#, fuzzy, c-format -#~ msgid "" -#~ "Force cooling fan to be specific speed when overhang degree of printed " -#~ "part exceeds this value. Expressed as percentage which indicates how much " -#~ "width of the line without support from lower layer. 0% means forcing " -#~ "cooling for all outer wall no matter how much overhang degree" -#~ msgstr "" -#~ "Принудительное включение вентилятора обдува модели на определенную " -#~ "скорость, если степень нависания печатаемой части превышает данное " -#~ "значение. Выражается в процентах и показывает, насколько велика ширина " -#~ "периметра без поддержки со стороны нижнего слоя. 0% означает " -#~ "принудительное охлаждение всего внешнего периметра независимо от степени " -#~ "нависания." - -#~ msgid "Bridge infill direction" -#~ msgstr "Угол печати мостов" - -#~ msgid "Bridge density" -#~ msgstr "Плотность мостов" - -#~ msgid "" -#~ "Density of external bridges. 100% means solid bridge. Default is 100%." -#~ msgstr "" -#~ "Плотность наружных мостов. 100% - сплошной мост. По умолчанию задано 100%." - -#~ msgid "" -#~ "Improve shell precision by adjusting outer wall spacing. This also " -#~ "improves layer consistency.\n" -#~ "Note: This setting will only take effect if the wall sequence is " -#~ "configured to Inner-Outer" -#~ msgstr "" -#~ "Повышение точности оболочки за счет регулировки расстояния между внешними " -#~ "периметрами. Это также позволяет уменьшить расслоение слоёв.\n" -#~ "Примечание: параметр будет действовать только в том случае, если " -#~ "последовательность печати периметров задана «Внутренний/внешний»." - -#~ msgid "Thick bridges" -#~ msgstr "Толстые мосты" - -# ??? Фильтрация небольших внутренних мостов -#~ msgid "Filter out small internal bridges (beta)" -#~ msgstr "Отфильтровать небольшие внутренние мосты (beta)" - -#~ msgid "" -#~ "This option can help reducing pillowing on top surfaces in heavily " -#~ "slanted or curved models.\n" -#~ "\n" -#~ "By default, small internal bridges are filtered out and the internal " -#~ "solid infill is printed directly over the sparse infill. This works well " -#~ "in most cases, speeding up printing without too much compromise on top " -#~ "surface quality. \n" -#~ "\n" -#~ "However, in heavily slanted or curved models especially where too low " -#~ "sparse infill density is used, this may result in curling of the " -#~ "unsupported solid infill, causing pillowing.\n" -#~ "\n" -#~ "Disabling this option will print internal bridge layer over slightly " -#~ "unsupported internal solid infill. The options below control the amount " -#~ "of filtering, i.e. the amount of internal bridges created.\n" -#~ "\n" -#~ "Filter - enable this option. This is the default behavior and works well " -#~ "in most cases.\n" -#~ "\n" -#~ "Limited filtering - creates internal bridges on heavily slanted surfaces, " -#~ "while avoiding creating unnecessary internal bridges. This works well for " -#~ "most difficult models.\n" -#~ "\n" -#~ "No filtering - creates internal bridges on every potential internal " -#~ "overhang. This option is useful for heavily slanted top surface models. " -#~ "However, in most cases it creates too many unnecessary bridges." -#~ msgstr "" -#~ "Эта опция может помочь уменьшить образование эффекта «дырявой подушки» на " -#~ "верхних сильно наклонных поверхностях или изогнутых моделях.\n" -#~ "\n" -#~ "По умолчанию, маленькие внутренние мосты отфильтровываются, а внутреннее " -#~ "сплошное заполнение печатается непосредственно поверх разреженного " -#~ "заполнения. В большинстве случаев это хорошо работает, ускоряя печать без " -#~ "особого ущерба для качества верхней поверхности. Однако, на сильно " -#~ "наклонных поверхностях или изогнутых моделях, особенно при низкой " -#~ "плотности заполнения, это может привести к скручиванию неподдерживаемого " -#~ "сплошного заполнения и образованию эффекта «дырявой подушки».\n" -#~ "\n" -#~ "Отключение позволит печатать слой внутреннего моста над слабо " -#~ "поддерживаемым внутренним сплошным заполнением. Приведённые ниже " -#~ "параметры управляют степенью фильтрации, т.е. количеством создаваемых " -#~ "внутренних мостов.\n" -#~ "\n" -#~ "Фильтрация включена по умолчанию и хорошо работает в большинстве " -#~ "случаев.\n" -#~ "\n" -#~ "Ограниченная фильтрация - создаёт внутренние мосты на сильно наклонных " -#~ "поверхностях, при этом избегая создания ненужных внутренних мостов. Это " -#~ "хорошо работает на большинстве сложных моделях.\n" -#~ "\n" -#~ "Без фильтрации - мосты создаются над каждым потенциально внутреннем " -#~ "нависании. Этот вариант полезен для моделей с сильно наклонной верхней " -#~ "поверхностью. Однако в большинстве случаев этот вариант создаёт слишком " -#~ "много ненужных мостов." - -#~ msgid "" -#~ "This fan speed is enforced during all support interfaces, to be able to " -#~ "weaken their bonding with a high fan speed.\n" -#~ "Set to -1 to disable this override.\n" -#~ "Can only be overridden by disable_fan_first_layers." -#~ msgstr "" -#~ "Скорость, применяемая ко всем связующим слоях, чтобы высокой скоростью " -#~ "вентилятора ослабить сцепление между слоями.\n" -#~ "Установите значение -1, чтобы запретить переопределять этот параметр.\n" -#~ "Может быть отменено только командой disable_fan_first_layers." - -#~ msgid "" -#~ "A lower value results in smoother extrusion rate transitions. However, " -#~ "this results in a significantly larger gcode file and more instructions " -#~ "for the printer to process. \n" -#~ "\n" -#~ "Default value of 3 works well for most cases. If your printer is " -#~ "stuttering, increase this value to reduce the number of adjustments made\n" -#~ "\n" -#~ "Allowed values: 1-5" -#~ msgstr "" -#~ "Меньшее значение приводит к более плавному изменению скорости экструзии. " -#~ "Однако это приводит к значительному увеличению размера G-код файла и " -#~ "увеличению количества инструкций для обработки принтером. \n" -#~ "\n" -#~ "Значение по умолчанию, равное 3, хорошо подходит для большинства случаев. " -#~ "Если принтер печатает с мини-фризами, увеличьте это значение, чтобы " -#~ "уменьшить количество выполняемых изменений.\n" -#~ "\n" -#~ "Допустимые значения: 1–5." - -#~ msgid "" -#~ "The minimum printing speed that the printer will slow down to to attempt " -#~ "to maintain the minimum layer time above, when slow down for better layer " -#~ "cooling is enabled." -#~ msgstr "" -#~ "Минимальная скорость печати, до которой принтер замедлится, чтобы " -#~ "попытаться сохранить минимальное время слоя, указанное выше, если " -#~ "включена опция «Замедлять печать для лучшего охлаждения слоёв»." - -#~ msgid "" -#~ "normal(auto) and tree(auto) is used to generate support automatically. If " -#~ "normal(manual) or tree(manual) is selected, only support enforcers are " -#~ "generated" -#~ msgstr "" -#~ "Тип поддержки «Обычная (авто)» и «Древовидная (авто)» используются для " -#~ "автоматического создания поддержки. Если выбран тип поддержки «Обычная " -#~ "(вручную)» или «Древовидная (вручную)», генерируется только " -#~ "принудительная поддержка." - -#~ msgid "normal(auto)" -#~ msgstr "Обычная (авто)" - -#~ msgid "tree(auto)" -#~ msgstr "Древовидная (авто)" - -#~ msgid "normal(manual)" -#~ msgstr "Обычная (вручную)" - -#~ msgid "tree(manual)" -#~ msgstr "Древовидная (вручную)" - -#~ msgid "ShiftLeft mouse button" -#~ msgstr "Левая кнопка мыши" - -#~ msgid "Unselect" -#~ msgstr "Отменить выбор" - -#~ msgctxt "Verb" -#~ msgid "Scale" -#~ msgstr "Масштаб" - -#~ msgid "Orca Slicer " -#~ msgstr "Orca Slicer " - -#~ msgid "Cool plate" -#~ msgstr "Не нагреваемая пластина" - -#~ msgid "Lift Z Enforcement" -#~ msgstr "Принудительный подъем оси Z" - -#~ msgid "Z hop when retract" -#~ msgstr "Подъём оси Z при откате" - -# ??? Если установлено 0, то изменение направления будет происходить на каждом -# чётном слое, независимо от величина (длины ) свеса. -#, no-c-format, no-boost-format -#~ msgid "" -#~ "Number of mm the overhang need to be for the reversal to be considered " -#~ "useful. Can be a % of the perimeter width.\n" -#~ "Value 0 enables reversal on every even layers regardless." -#~ msgstr "" -#~ "Величина свеса периметра при которой она считается достаточной для " -#~ "активации функции реверса печати нависаний. Может быть в мм или в % от " -#~ "ширины периметра.\n" -#~ "При нуле разворот будет на каждом чётном слое, независимо от величина " -#~ "свеса." +msgid "Please select at least two volumes." +msgstr "Выберите хотя бы две модели." From 118266f72143ea3733171af776ec0c746bf6fb41 Mon Sep 17 00:00:00 2001 From: Slawomir Ciunczyk Date: Mon, 3 Mar 2025 13:29:51 +0100 Subject: [PATCH 5/6] Creality K2 Plus fixed build plate model (#8646) The default build plate model for Creality K2 Plus is heavy (516kB) and has a lot of visible artefacts - like diagonal "stairs". I found this a bit annoying. So I redrew the file - to a simple flat stl - 16kb. --- .../creality_k2plus_buildplate_model.stl | Bin 528184 -> 16884 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/profiles/Creality/creality_k2plus_buildplate_model.stl b/resources/profiles/Creality/creality_k2plus_buildplate_model.stl index ea2d8b07e827446ead6e9e74682bb0ea1c820e74..d9c400105c0b411c4a1d9b00fdbfb161bcbf2769 100644 GIT binary patch literal 16884 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 HJ0<=HC0|lA literal 528184 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
  • 4(@{bz6Zk8awOe0M1 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%0D)|Njt} zD}$?WhTi6KXU~zI<|+#UIZ-DsID2JqR|?LzBR%_^yaW+8S6rQx&9n6`J+-R1>Yu@s znOlRhe;3ebJI14JJn;l~;d|b~p??OiP1+VrYU3g>7w+MA{7UcJ+Vfh^U+-`E!0h0$`oa0uc-q`+b_C`^O;i60 z&+$Tya++EIKA*#kwsA(-&iuv`c19TK5slOwnV!o~W7+V01~nfLmk`al z>2KWeL_}ao?wMyOIj2b`)Ph4ppDxDd`w$KFpXzy+!0Avle`SAh-JVnZ;CMwV)HzKp z1Ep<#B}cgTH9Z%_5=QGevViB|(6;C?ER*p>OC>HwsIM6htTeTVM!yR_HR;-Ud9hpH zHEEllxT0L0KFG|4XwSn_>(CoGO`N#e#WU!bU$g* zgPhZ9JyuB1oG^|E1dXuS(N<6HxhgZH&#+R(^$u0eV(r00IACN0uFS}KcaP@12U zOfG_R5e>}6&ka}BhH;4+B?RwwakYD=cZ68F?n6H>(nTP@7j7_!?Ppj`8ybDT-|gRC z_?7?3apw!ng`Ax897Z2RU@k->ZTAEL?2F>=ek{q#O|jjMYt1=M=A@y#glz|@<-~Cm z(!g>_Z(P${1lxeE#<>vfa)s2XHDIo6JT`MOwkN|@1rLOBs_1@mO_70!-nGi zg~Dm0c)ZLAZm(PfmrG?~yM$=ZTluyZR9M(hMytodaX6KWZKB%_s(Cn`XP|Gi;Tb|S zw?K0a)JEBP2C{k8`@b)m-2Y5jJ-@SLu80P5;?l^4z+6-kx53UVP6k&z*Jo#Rj3<&6 z=@%C~<3V<&a@lIU)`Xtxtf_zOK1h0lxe)ClSlV-)l=7iFOUa&e6Td{Csf@s)UOS6DD_sX-i^qg&ziNN_p&P51D z|2=|p5rXHFwYU4q+XZ<$@mt{qnpN54@ZRyRyjbtY&2txl(qb-Ga;UXojUxT9ohglI zXSIl=Zyp1mKc{#}S<3{aH$In|v)-;&z@*aZMAC)5{ofuqSv)o?Cb8Tu$F_>KyTS18 z(jaY_UtH7Ra&yywc^`)cdppU2^qje+aP=qUvU4Px(hzV$lOwsRsiCyQA$ZnLCFot{>?fvYzN~rmjY1wa0DK-}LMM`!By}VmFE9VqXNcpw^F` z{a^pHpN0EKda1rDUp$$~s=3Iz&XNs6QX%u~z(}pXYTgrw=kErep zJ(oo^us(9y(7>+%*$|YApBqH3Z(fcyod|bX?e38)Ua1l}dHP*q-c4JQ%Ojm)jVn!( zzx3If9J7SRAL<1faRj5v-jaha%usn z4~J!Cx|9q_!oCtXKcwx)6_dNqixQwBQ>NpU@nZ#xe?qe;ywd& zf@sSVafJxX<;M1lkLc^a^W2EY{XdNpSUY>XzB$?C`;K}~9M)!{VZQECiumPIPB=}r zp)~ChTlxMWJrCz1=uLVqM7uPwPH>v6i8U=d0&`)S>ZXez>a?eNMvad%Y7{-6bo}}( z2&{M9|KyTFL^u!0yi)|AG`A&`=6;vvDkp+-aY?3MLbfIx{pbz$uMolXD4%N&3Lm^;-gB=DZX;SIXdmH<5d=ahu~ax)vOtLxss!_T%$-1me2D}tvy)uoKc=8$EZZp zCpIVdOfWK8ITFee>Re}Dvz;MFjql7T6=fm~@h>jv4f9Uv#i}i#H6^YbJy%~Z&hNO( z@BZ1=$n&i>C*MD|lRoDTIYACHd-~bD#H9f%$sIW`S8m@WE%F#ydq!$zo6J*eDzHj&WFRbAH)f_SGW$uMfCcn zrEb0I&O0D67ouGRz2Wu_(Jmr&GPj_Uxk*Bd&RieSkHfRPH3Gc^b(I@|G%y#UJ#R+U zMiGB=6Y*4~0)f(&_A^?buRWCJJ<6Upq(*OXOZzYUrG@YL=J&B^C)rkJ=uwkq75 z9C>snbBBs{Lf#>b<#xzP!}zU<)`;MAD|IRpqIIt?+?#>@LDB;E$X&@*Uo=GU8|o); zn)~gHc4=_Ah{)_^+}Gju$n^W}5+qMH?UEcUlliWex=&amhz8e#bgt;R8BJtEFejV~ z(culm4h@upBxeLY_q^Go8b-u#O~lBrI}7HQct@Gg^EIMKA*4b$mO?b8tzRh`Ap*rW*k{1r689f65txfx9MniAg3H2Os5f<^N{8Evl((y1&_8=S zO0H>%3AI~GI}@Wywkf9rUVV)D^Ba_Pl@Pb(UZ6>=~>*vVnuxyQnN#`@u}K zy4C83>*Vw!z6gFV?;2pa?_XG!{G%J)88ubS2$v;y9c9w$9IqZ@=b80JE>%N5!gIpOD~jXG-lwX*BZHG$}MZ-8sTQPZw=4HXkbQCi#$ zhV(qI_`%Wgj3##nkr%oKgC>-zJKRhyLK`4GwFhU(*`nd`)BS%fZ{^e|v}ZsNX_0r@ikiv4kgbxy_MeZ93r7JbQL1_4fzkJ z)6v=656Z;|?u+saQf>sw#AzePzDjTVORm1hFZgbdc%sXeWTbm1wSH`}#28$wcuR8D zGv>MHt?K)MKdk>%{+HDTI|%eEM5~p6mHr5d&+8;>Jh4Am+oLqO`=R{U${(gAe%Vlx z{P5a*y>DVcztZH2srj+#BWUGW?L(s?cRy(Qi4#w2sn#%%U(pS;)~{@u)^hG?(oohu z=2SUo=l%f88uWH)a^So9y2U}-o_EgPtNfKcrbQkeFwT(!=l4)1mn)=hIgBT4n*2(w zJQI9hs#;+d?lM&?&x-jjLVj-S;e|hSuR842$F+*859+RB)jd}Na;yLIHwPvAE_n&3 zxzAwgUoHfDzU^fU{HnTq?wg)6zh4{2g1kEyccM|+m7Jv|2~k>pZldV5?L2wQa~0&~ zcC95^5O>tfDlSbPm&{kbaF3#KsB=Sk)bXdvd6Qk6V=lD6vm+OF;p!DTsZ#^;64*0v zcH}w;wJK2WGA5bqE?TlV>?{uV1E)*wA}+h8rL0rXMn1RaB1gN(d;W^jWGlU&m$Ykt zafwkBBd1Ga>CLs|tUtE}gJ!grs2|iWwq2G2^{tgh&}sfrnr~O$7w%W2exf}q?BzkN z*N3?f?Rjs!*p3T5xG#xo9<)#`(Lt$=WwmlfRsN zZ-BiCEEnl{9`3?MU2*RPcVV08g9y$=wUf0=X?{*<&%;v+*tXO+#2u&n+(ZVowl>^_ z&E*nxP7@7`66!R>R+q@?4;`;tXOtGTz-hAs^y>aYWy2O*b?+7X2AGS}hASR#l4Y<) zQJQy4+UF&Tmj#W_mFMm49Bmv&jxgkbF&In<4}f^WRVsIP7cEpBkYoHL--?-$z}Z`J+}pZ9;* zI-%FJ7n>W8OF}O(?T6Z9;`1I8q`|&Kxzz5F5bb&Dc3=Uw1BWd#=0XnLQ4vbZY4RoR zm$C)PCiII7lmjh@^gQpUX?5j*b~A(f;suh+rLtBOmL@mePNT4r#EU1Fs-Bujt5$z< zU0G$?%%Ij-wTBnppbfAjbt36WRpjE4tAmHGERdKB(XP#n3`P!h<7sibZY{JYqJF3) zP(2O(+~z0A=?!}#=0dcKz&EHLEXhUS8$_U{b0aVp)*H2&YWHtJm#aPt-tXE)qE1j( zcruAPJE6zE;FZVr2d{T7a1fX)y`B?irsmS!yXM4iecwo!w$Ca0n4dwYlbKVw)IFmi zx`b{k3DJ(XtNY+g|C8db)wDXJF{~fyqoP&UZqa2?-;mQ(qrSVrJm-4>h%Yl2$GHfB zxj0SFjTDS{wz?^cBHWFAOq$Nq-&fT>cM(j3IKf*o3-#80HjTC+ib{@_=@vxGhLY>?0nr4D=Zh$zgIAbOSX+y2xtu)Z$}U3mVtE0H0WqXR&E89w>*Fo|h8tap{(@E)^=I4$*w9VD&&)NnbJg}MW)YEBdKL-D3 zp5y8r>ys=Y#X(M!v?iTy57dbo{iYD{v~wnmwv1n?n;kSKS2jKC&&QG&VRWU=v(%E4 z$8q}V8mA}N9>x>ZzEttlwUxE5I4+T;ICfE*pPM>}2+l=sFc&{Zo4bB>>9=P(oFIoR zht`!CpyrC@CuaX3ddw^HTgG1eoOc|mJMTs6&U>Nmyf3CZ@6+Y5dMgP%(bTAVzp2?; zb%V#;s-r_)eR<5yVLCIyWkXP|&kIdS266A@CyGfIOb(77R^V`joY>f9xiXTYgeW=H zmCajNa;vSl{?5s7uokI)T@D21!g7(Gr9kz=_E=0$hHoXoUX6ngMBU6&O->*uNZTNe zez=LKF|8o{zRW8`2u7@UGXYCD>-YI-e4|7lN`3~u$GEDeNlRD ztZDMP2(&ZjvL&(avK&O6Err^p=T=wuEoxZQ>ZT_0kLwDw?`E@FZ*|HlJ~t8)8T-?i!%=x?_q>D1(ITlYzRZXz5aI2Y-i(}V;?^;5#`U6P16pnBa)k(#7ISfpBDCfzyw8g?dbc|Fy05xzk<+AU z=E_(QZvf+5guq;!HugZSkQ3AoamA~}oPBqWb}<*FStFhYv0ZX~rh0DUd7d+FbM_Bv z?eYpUq=6i&wVa(+1V2AiRlL=^K#=59chi~FC9>U`ElG1;c!}2Am51BKuB<~nGDNUW z$hL&$T!^N6#J{+t-h}F@s@Vazzk@RAFIeFUA&fYj#{L}bU33xX?Tp~qPSGwm;>&yQ z3HynZi_t_cI}PN7&@KY{3}JtVEQr>$Ej9HM@n$(515!^IHSKCQ+iEJ}owa~z;?RR% z+_5=X@Q$sS_Gf^J)?6;?inNfeJ$DftOV|e7ei(ZgDwzn(#c3)@-*@M$8}b5mL!L7O zf%;*+nOduE$O{puT|{6Ub7^FY3{)lcb-XuBQ=&wY35Mf zOSbS-G54~*!IQ5Q$mtK%DPA$Gla9L>YcUczy^OGjOk8mbM`@QU=w&zv%thMeF$2lL zzqrE{whYLj$*p>QlKbsk7I`J7*@DEOi{O|+Z!j044T5{HeAdTwRoBWknzJQ_E^8W| z0b=SPXxABeS>8)PKJL9zZ6az{er?L7m86`$;=D6M8uUEmN+XafPN$>Q7xyKj#qQId zamEJJIyV?qr+DAZo%D#+wYi~U;x3+ev44O)Rb$*VlP>%!ecp$2DY+7yrq%#UA__)o zN|Bw-IYpcFOq#NT@=8pXBq-lMAxbnlb>fjmXq1jB%r9}mY2qC@w7DroTp3PEbRUK1 zXRKEm3mQGS2)8GLC1ujUzK=<}^wb*R$p`(1+7FaXzg-o%^qH;6W7@UX`&jnhu`Rjv zS8AOTvhb;`NpT+C;F8etS~@5p?{=eI39JRu2<4`qk%e>78%`4fOEUQxf#Q>vGlFvA$t}4N$Q9;7G;>9N@q3iLMHYssrlC30-?R7p-c(6w>IBzEdZuoLR~jh^z1<*`4T_sDKSd)jmx_yFZB{p| zR<15C9>3K8b7p}+>W6E$iB0*&aERP8SH|X8pJ^u5a21#8ZeFC(;4A;ozKi86x4rH! zT(&h?SkPYY^QeE%Ha(7d@#Ny!;XQDd&Chs0@$+JmPUy=~rTXSOrA za-wK%-$mYcJ$q8fyDNv0-FQi^Toz$xwhdQw$`D%((MUVguAo#dL~a^bmh$7!9$1n~ z1HA!r<)#5Pr#Z3|jZKg?Z4}Wll2cjSW?&tplK44urBU!TJTHNqU`cESuWH$2J4K551CU7@HGyY?m_AU~_H3>T_Zrj?)?AL213uwE@y|xDuAS+hZlaN|(cUJJPV}xb|b# zo9BK1(TU>1x(@^=-XY|pSCmITe2Ug=#?`u&-O(u@QhHRP>&o)zHT_JQ&PlB+%HN6w zw_aN)pMJMIx>~PpaS>RO=e_Xdsbb25c|p^)F$ZDq9317)Q)`6#Hxzx^&n~KJ z_Rc}Pg>jU!$I?hWapSkes}{U*k%M@2Q+c#&TYYi|+*nA6;_jD;g;kH!K51|LN=TbV z$rCEyp^i6*D{F1g{dUwzc3q_-Y_5c~XuLs^xU#>vIxX}WwSM!ND7C578!)#nl&BN! zSHK;~cuOVHu<3MNrS@}5wV#uANXPbUHT!YY?!)kGGIcsk>b!XJ_B&szC#G$f=0B!p z=&_%GE%L5GrX4grfIrKsi7F>8^@p!^+w+H;w~00V!}Kh$ZC86n=l2uyTOFn26}GRO zrgj(6ddGT@x@C;+kJ2aIQe8ut@QgjZn>~V>NxuBa3gSn(&L2KT z-3%18j%~bx_KB8A?rS1iAPeVj4 zs4oq}Du~OUT<5>Ipg^GBQCif3+grk35vQ@|L}`6@P0{L(X5Srg#V7D{nyiUl>3Rus zmF^knG2zZIsdk@9v@LoDdW@RiEh`kAmYu3Sk!g@^IZgCX3oe4+q~}7kwFdP~Q17ZA zq-OC>D^8uA0G?mZGHs1Kjf3wL_@Xtmr3%!Qtq8-c!yxe%>(9IhK7x-5Ry zKk)g5KJJ9ay>@MW*p$qFtYeINU;4q>ExV$!T7UO2NxMM02%{_0 z4zl-A{~Ti%KR2F;2)5QaL%%CN}J5lMZ)CE3J7R#zan&AG_Y3+J&tV{3bmYqTSX2 zxhkC1Cie2rh7;tFC8xh}fw_=(7m+$|$>9oPJ8|enhWmS*CTk2S49=_)mBi{XTrC==0O9e*b#zPH*&l-1Y57QRIp}k^C4r)b^07 zbq-YPoYlh#fhDOsi!W>~CSNweuQLA}(WBkwWcLR;>ixi2qp&_Yr^?g*kJL%>d30l8 z*zRIPb!;B;n_i>P^F8mG<2#5yul_6YSNS;tIYAC99kDrCx4zk(tM^UNJ&KOEliral zwOc`-Pj7nRhlUi2ce@PsyDg|KaE~j}a3!~rn6s(qv`~_RPxzy>D@QtlA~NN|mLYd* zfMsDWwmFsLoWLKRh)xosv}#3KO!TES`_z-MzqnvuqO#aCDBb;0(}y!O)IExPMm+5+ z3AKpYMPG1caYCCDSGJAHOSEazCU*EuirT~#%=5?A^CAU=K@V+c>l$^L_ zdY*>}%*EbE*36ASOJOcVJMD)=36Y*{4aiHrZdhGh{z6;-)ULhUS_`MWp)Xk7QvV9e zLMsDl(uJu}+}YJx{z+#osh#_o{7=Omt|BTwE5N zliwj$IzFyWcr1&yyT3#1t#0%MtJ{$$h=Rq7BKMuz%jqX#xo(ea#3OYCNpoqHUIO2w zBYHmFAr%=ALAg$Qwu3&ihR~b~(Vll#&5!*-1Eayxg257bS7)z8`KCv8K1-C(XHjR? zTsJtfx7*E~DnD|U*j~OlS$u-lsKi*37I!x#^jDvSjYm4Zn;u1(Ti1fN&p=--xu0N8 zO{W=K^F{Hznf3g_(xB6vS`(evjvOLAmj>Q`O0$DpuAMd9l<>S82i5cA4Ib!p_sJ6- z$rmo$ocw7?2OULS8ht*S?SD7n$yM>2ZV{LZZQ~-2XwV(5(E5&!qZwP+acqmXO^hEiD9+b(I@6DP(7G`qcXD2j5wIb$+ecbfEuN~uXZlc92 zD^#x{oXw^*uP>ssd;1XHif7Y#;o1-5?Rfjpod2|r4Qoa1xtj~oo>$)DYI)vnPs_r3 zr=A7chM$u)ow;y5#!1%?>CMg>QcnhE&*h40M!U1-wQ_Qy)~%*USKJpN>X%j9o-8ai z9)ldZG+2wYN{h$NRcF~%VYFIIk2$4UYY@;{gD>hCuG%MBI$TYxYo41?>bsGd!JqHl zs#~_Zp5Kdcxtb^IZ(R0t~7nIO@_(er;= zQW{;Lzr<05!?7Bci<)+6Tyn;}{_4$5gW1=Pae4q)F2)trTN=M1xaJIVD2a};)?wj`jx8`NX&(C*F~IM;}mhj z+CILhA9D~hlbe%c4;vbYRwtJ)n-*-^T~Ex376{f4X>rJ+t;t1in|0x=E2CZLw}-uA z>et#{vASn8?88&7wZFK)m|;&g%1dC3QC_mHj(GF7S^n(h>W+2b9a|Y!4*c4OwU*QA z@zMSA!@01YBZBI@=iSz*mKgHN9Dn_&n8Vfct+pgb4%OowI1iiJ!Jqe>A`kVrG&u6Q zD6I>P@oHT4B|kRXXi-->h;<%mO^WQ+5LD@1TEic5^fcx76H>Mug~b!o&)K3PDrtcv{~u#l z0&i2b|92{tN+qRIG@>L|$awa4&qc`7T$(8jloFMY9HhDY8=vY`DwW39AS&+O$GK^s z(j2bKxficAAsS!2|N5=p`JMIs?Q;&D&&NH>KI^-F(ufeQmh+s`>e(WUU8j>8f zAU;B)PxB@=)^bW~scRHt3K5t~$1B{mMeC+z&9-@-+O{V1(%?=N zsn33hBux=jbj6Xn6asTenl!DsLciK=l9}syjpG&im`2<)ygGB=ethmAS@VxgTnArV zzC3g7C{BCcnBBUCdvrP^_)nkm06iR|-4FNFWEKo!&lei(SM)!6i!3Y2`7RLNA1BWR zLEotWBN;}xA2u9Y(Puu%6px9>6>?IyV@>A06NIaM4xSbMaP#iLql3!LJ9=&{$>Xr5 z;=TaSD}}&Z+IO8KsQ}AG4mDSd;65+T_DedfX`$YE3I#^UdjpCFk|tk5G$VFz*)n>3 zO}X_MxpxWI9Z)W|4Ml3RU(Gi=+#<8X&F)c?dXAEd4%rhCfs$h`L~9y|K>Z+EBcv8l zjlx`rE{(ukR1$f~Cm*fWH7b}q&%BSQ?MidU>8oqnSKMdL5TbO`h3>iMU31q)|NLVH zTdZ3=|?wlBVZUA1N&#-r+_&@5z_QYGi*(i??&UlKfO_DVHEHm+TBHK;)yo(7@eJ zLXRorORDb$sCJN+VYm(t?-jQFMeUjNJo@AGH>J~aCJDLT`oyPY?@<&5Q- zuea}R&qi+d{_@O`-8o&lmw`PCNptILB#+E$^^jJpqqOL+sCE0cFONVQU@k<9p6J`$ zx1HNTP984OQrblf^7hPKKl+c(UgsZlQ;!HGM9F{ue7V{G(Y>O{(n$t!!jI*_byI7@ z#52E!IKsk_7moByYtZqU;Jim3va^tAb4im8L?djEQV7f?Y4#GczCAMQ+wF=*iRbhS z=8`ni*cO6vNlA<#y^?0>uSB?4O#fWc7~#ge+agW*=)(w%eUheJh&Fdf|NGFO*NbcX zgKH0t&i}JIGd0uAdfzG6n|Y>Ry4f>j(Kbwh|E40e0nT#a?3d?V+a>K^wy{C*!f8FC ziKo|OcDs;mi}u$x$0&-tOKkt?PNxOZh;YS{CkL%b?m3X>-d^3urRDjR3&-UVgiJ-r z#kI-Yd1NL!*Cj9fKU%Y$q7zo~&xJ+~VQ8G)glS+dq*sU#u80#smqY~pN4Kwdasjs) z!@8SUmE*Zjg?%k^7hO0mnD$c_>+PZ+YzIkKsKe3-%q3|msZb8#J-N>hNf{NHS@a6C zPTcCv*1^csL0do2<0MU16K;va(g@5YY3Aygw|`H3dh{{=a|6dlRUK za`Q79(dgv%6|db&YjGy4T!>a&nbYyzUYWCJ>{s>jH;F2G?}$4IG{V?4ze52LSdzJk z=H$8lqMj-L@M|wN@12)t+B9ODzgAP7nZK}`o!KrOuh27WZ^_>7mrCO(Omk%-aXI}X z-i`D<=pUtVRk@x02xRudjCk$oNz@vc7TNAgrL^9mQ2Y4|f0qj$@$Y`%V$}mcnY0`u z>%S7tiFONG)Fp!pqdFUx-n)8ay0(VX4c;1|VwdM30&`LHnQ~Bz!67`(4qwV)|}ZD%)rT=0aVeoiu`SQQUoR(}*-8uq5rf?tQ<0!-sGF zOpV%nq2GAX%l_V9>b@wp&KO-4jcDo1`&Ko1tGlV&Wpplle)o~~c88(88M010l{WJ+ z)Mgko$68a<@@c`O)ch`b2F{mCZu(BCIZH&~%!@*pH52cY8?D-Uj&<8`lsgqXYepT3 z`Bnbz$K39p+5JM*Tf&-(kx0|PsCGyH{i+sZIVR!`C5>>})q9spBXEB{?r?JUAUVuz zt;DN9Vib)UBz93+Bh0LX?T7NrL`azkXI-c+9Iogt>5Ekw!RenLb>8bxRq%+b*-W;?SIh z6m4vqw6e_Xy(&p(UJ>tDgWYrT%F(B6@pnD`v+$3(6%j@N-NfQDihC$ru2e0qg+F0MDk6E2;^D{}F zj+{pI4ld1=luI;FSMr?gk6bmX`Y9=QT3|m>BXBPn>cpkvTvc53OxW(cy@KZ-DL3n6 z>XN_i%_ChU67Ucot!mIs)N(toZXEu>p(p3h-;tmk3My;;LOL% zgN~0?=cyyTSB_nt=hk@px~#wNP9G<3x_L-+-8I!2TI+n#xn@`Vu{$5vHXm-B1{to8CF`VZedi^v0?*sP=&U(0zE0G*I zw5O`boPOZu^t1W*U%AMTd%r`mWZ8nfg3}*=)&K5&Kfr$CRi-!DwyLntNd6}u^QJog zt|&`wNd>nhS-UD!_N$tkFtVHd8^XE%nN#|jcX!8{Q7O-PV~=&{+G8t@ZrCp|A@8MWptP6^(Vo|T>f8R2 zYuY7R9e!oBU{G~tO<6ZP5?(yIILh!+LHTj6VxYLT{$`d(K&)c*-dD>)7 zd)`6Ut(~`|-@TRpNoWM-YWeE&WS46swill@K;FxgOxotIU!q5it`|;G^x8)26PHcv zA6~f27}etR`!JiNvvBCXs(W5CYt{O8wre~+uT9gw!Kat-3si4VHQ@5|uenrwA_Q=ZQD`s^gOD_2-?mp9Wg^2)#2rS9vw~-or7t0l2D5O!$ z9+YeGZ`tH&RmHeE<@(xWyuZAK7vIygye=2yl)B?V;yO92L#gH{ELT(u%hi=*qS_Jl3~kwcM;)Jo-$l z9pitp=OF*{>Z?_M7dg~ka@!XNg$MUt=HGeD5ZlwIJs+bkD_5R@cJjOi&%Y3kuY1TJ ze!oVbJD*bepnz zqBn}XGd-1-G_|6`FI{e*Q@S()bLm*Zm_izu3nNi!8kh^CL}>)(N?pX!hdfje^o=9> zB`~6o?*-U>?xgU9FX#E=KOAE20CjbZ>WA20+uTt}sr8ApR+08i5GNS<%!$_R%l-FW z{lp*i){uf&A~duGCwHPU@ki+YgQ3VzmM)dbDva%bq!Z(#&iX%siZ7Z z*Ym3rs9d2(&+U2P`Sn-w3-K%II9jjrc6}Uo0wP(^JCFctgC%Lhc^((h3H16%L50_HCNkj_;uC+M+kUljg^G}~$5iFk3-pq+`P3=9K z({&$BOmBL$eMK_G&pi(j!_5kzdvEA!X9qABqBY`<43|riBU&R4|7M-PcZUIq8x{_Z zTAPsRC=bwH;j{wX4_SyCo zpP9WNL=QRiyu)8=8tiiCY5pFqdIp&5_^ItHe&3O2Sf*XszM|f)ypFIm0&{5^b?+Py zY`FYR|DaJpfaUHms(nSTp2cY38^w3}nO)eYGId0V_t4wL(r*+o7os%+e?fXE6Zw^V zQo*mSmS-*rJK2?BS7gmd_+w7fb4g2X`c5goLj8PhR&0sCX@q-6pGspcL~8{8g1lo% z8iCScE<`ItL~Y-{R@)J;dW+m{=WOzb`utqKamR9zp4f)GQX}LSvaO^k7os%+^@H@} zd1)H-3+6(!TG=1HI+yKye$YBCHmCOyvLcD!P2j!>$@ODXm+OvcM=G?D!>vipuVSRK zq|Kl-($wPn=%-|eE|-(<~7jxKgJ)x^`Y z$#dIsI?*qi{L?4&O=-O%McP#2%4s@ok0!j6grK{l5(<@A7sQ$*E08K%PhI4O(xMU7(Z(p*Wo^8yN1n3yt|j$#0R(My|3rLy)s#Q0M|!NgFHOf(pzumG|${hx-^1T z4oEJSCY?qv9v;jOHYT=zvOEx9B2Vo9Tl@`*#X?w?p@OB zY(4Mk_tqv7=hlQ9{v2Y~S-OaWTF{bXJ1EhTXvoTCvZhN@t%Y55k?37&E%mh|O|2dK z?)g(D1gowYn;=P0T1k`Dbd5rU{1VTFXuF~@GHW31YD3X3AuyMuN$cB2P%bHn5k^Ja0mSt(z>Km_IP-gb|(GDdS+Zo|@)Rfs1-(|IkUKj4Da0HT_FZ7(>*OjH? zyI{=iC%jk2Mh8Y@t$k?yKUvKo_&JwNWr~F2uQE=c=gxO2r;*y0sZXclJqAL9_Zx6* z*ED3Df#nMA0_|Eln>N!a_)F46+00Pbw8@z}+mfHtZ}h>vOF9~0l;FJlms>V2muDcR z9n;#-;8_YjKa-yeDiyd@TC7Dz^E-M*@NL<`sLBvaP2<#hRpF#T-Mjwew zWI^;LExFkf=bJrok=_&MA{?PL!t5FK&7RSS_Kc$MA`PU?GRUqi@e(SRei6@bo*1tm zNS*F9kotkNnFjw&1+Fiu>mAMSbH6l3!`eV<5tYLBh}S4w8zud7s?W6Fl~y#8m$>KR zB~k}Pa;X!=>Z2VG=J#f}_>oevM0x;3&-4u!9uYiwYguBybTX)YyM4us_1yD5$;{{+ zR?X?!uiIC=^i!AI+7Cn=vy^jDF9UNSn)S+maebopU1vdhUTln`^<#FK=6A%994Fm! zMDVXkn-V`{dj!bI^^4k9tZv8iJ}4jagFC8l=M?!BtsJ4qfX_u1a~>5~P3}l04xNt? zS2#z8oZ#%2^wemEtuz92QTnExip|3z4a`+2IZI;JOrV{?{)86$i`4X;3b0(v6{nH1 z^@1>xOZuWxE|z4=RtW0pkxnQVr3LLIH{2)$l^f56XuUTB>$ywgh?VL&?p?yx8EcWN zX{8aa-%ehFC6VOxak5}klQiX^H20S1fBZ>Bj=H8nzRS^0Vu{cYdk`m*CcU9Axbi85 z^&E2{S`hS|itzUJ8S85@Q+DMDcguq-GL3(dIWny0u0CU1o665Eao?v@pW5}Wu}|$J zXRhckM`!!atA~-g2lWPY4`8wBQ+xHePmP}8(q(Fvf=ZPSM>vTYIUCp>0OgS9rmy~g zC;QzuHj2*tyebRs9n|-3$I|UI+i}&1X$r0gp6OTw^E<`go^jAI- z&*}fp29oAppR0eAs}RAtxIWSilISH)LhTt&Z`^0#{vnl5ALfM1<#aYp&s`rC_f$K{ z(-BJUo|BhI9j6q13Td!sNWYZwXvq|}L<{auzLt}DVL0&{U%+fI+RaU>M4wNx^FQg&aO=-pY9 z?V&7~@0Sn`N86>epm{@S(FTMTy=eqWiwG>K7^2Y5SdvD>%@aXmGz zv*x_~S0gYNuKv~tTzihIj%Y06OM{K z{o9N+dYX1yZu*;S(TL>CuFv!uBv__MkZ#XM=1+<3Y}sRWZTr&43jUIBx4(<;FXX z0$C6}1IM3w%;_+x2>b2WSH}^u%TF|r6U>F^(g@5|Qdf!w=0c5V8k;tMVNUU&QA0Lz zqwQ>T%f9BE{a(k}=L(TOlf&pHe=8!TC2CVzBjhZ2`bEw>+d2Ys$%$!OM-X+|(I3x+ zXw8-E$tQ%Ico9cygv_f`E<|g|Uu;o7==byI{_H#bNbY~29ULMPr4OqWw9eL!vF8l&z^8MeRr^7dd$*-Ed{1XuP+CC(uY*PBWv^lZ=dMD&O^e zD3_e8Bx%ZpXwQQcLP`#?IZ2K(sZ~gD7SgA%x@k!a0c)caLcD}%xb-t+^9N7Zu6v`# zM^^6t?u1}`v^;atU3TOioj-O(=CXFYgJaBdHJL%ZWH$%Qct!5*y594Mb2ZA-aSqa;l< zkalSV=8`m(r015<&XSJT;L->zSJK3xxhwqD=;E;HC1cF_)GN$6cf8vLEr=S? zD^jrDNt(Dq4of32m!z4i*4-{m+*+TUnz<@=zZ#W`XdS5$fl(B5A=-ma3i<{*;<)|;M;`&19zd@BpoomoSz^1q z*>VWXg^{{60;3G(LbQ}m->C>|CnB&Ujljr&2rP-q798f1G}(sI(xPr1A-M#By5eY! zJuitL(^^eQ$ND8dKJVW=`>N>nUuqI=9wr_AHMAzv=Ce-rzI8XRk-ky%w7npMRS z=0bE#yU=pdJmtVH9jJF_=Pd8IhTed4n$Jbzxii<+It1@yK(s@&sd~iUamk`1OwE!Jq~ER?Tb7oV2akx9YU*ITxbM z4C&gx{HI1#hZWD42gp03HRA38k0&1Pcvd)S@R$Jk#g-cT5@ye6$A-aQ4PFnwJy>(q z<^FxEX1?3q>J2$Gt@A^>2j8V%3HLZ48DK6vlSLyI-?M*kU8Bk2Aq|u2R24i)1<@w@ zjMzUo>8(lOTb+_-)uf!HlZ}ubp3h?MD+;X$YanTw@j@M%6F#0E7(6j} z=K_S#Ahe`;zHD0v%7ygA+v%HbAEH`2c|Lg@_YjK&IqxoXGOWLj?Ml)E3t@s$eDf6!{BPtrkqU@k;E3KUCn zlAE}+#J*+c7{yUdBApH?)icKL~nOnD|P zN85}C=`Fy)_x+rh-L+w~=H*j@QJ1aAJh-Zpy=4sbgY-Oad9T$8Z)D@>uZIT&_zNO5 zSDn`P^ZTCGFq-(xfS~%V<(amLLf#SWdH26~oZs!vU7|hfpQ`RYL$pRX*?A;vS_30t zVQawos4v=gM&Q5n+n8woeU~S&1?YJGip(i*(tDhAr29TozC7BW)^~K&Z%!W{b0Io8 zXho*}{7$)Bbx-_fx!>fSVbNYyultw_{a7O=oxh`BwM)O~wx{+F@E4R8?c{mGdhg|5 z)9xS9-m@Aj1kymXXo}mY=?|~SOu3xL`a`;{%%|l!*Yk#nJ;P}u#|MPP(`_Xe%>hXI z?;$9cl*9-s`?UYI48CYn9<+Uw#fAvW$4Cxn)$*+j(Qr|%EUgjHa++I|qzy02w;6<% z)_~=J_B`KC&@a+1QQF00;tKi<3W2$hw(6He()XcqU0mB$$VbqVLsctX+XOpTY7jSRToZo%H;lYpPJ#D`P zJwwujK(t2SFOrV?7)vbDkWL={BVkske`eN-HZ9{%LePg%?j$y| z7AIVnKb6f`GglIMV%-NPCO*5WWmMLwJfM>bo0}$!Y_R_L{i-%?W~Ps&8N zwiP?f<{K(-{f(yKFdE@j|Hj|Z-*`jdFP-yo*s9`UwWk4hS8dvCPGw8T9d1NJS{xe1 zkp+MI{%3P0@nPkE)&ISxZAkmYz4I@2QE# znU>M!?|THOMLZJ{weEQb+_k?yrQ)z?^=0J&+Tflan^evEHaEKawMo?-AIiw9ZL0(P zorfP5HTBDb58xN1hb4&|>?IUScs62*je|HdA<%(&{=0r=A8h z*TY)OMmX<-^Fek;NsnBqp@!?;JT<+H6|egSlb^>IZYV=M<@-Mj0z=?TVK;1lb%A z;3XV684=em#FBgu5

    `P9qc(DTdHr`Z($sojJ}6hm@~0LUK__jzfs;`JOOwg1+l4 zOI$(AsSubeE(dW&pH$?|zrm9Vw-TxCh(-9t_6jwk>mb%OltZ4Ae9D3mdIqIMSLAP; zj(Z6rFc*5L9)BQpY01$3+^Ru42yI`P8bKo3sx|i~6(H}(A;};zsXm;FQ5ZSVnw|%J zxO~r>cz034jBE3~CH7t6EEVCYLuh~3FQvNTK6#OU1`>OYvZy|{**LyX)#PTPa z$GEb!mUV(_&*L?nw#Mf+eNsA51BbVFvYOy{wB9IdtrE0EVjH9$Gt$tk7jsit$ zv@P1)X*bsEv+ba?WS9%libjOCML9~>bNmGnF3!j75ur{HfwVPOj(2`1D6OT_NY=zp z>|cpSu}?+XMb8%+Zu}uN2WuBbqS6S=rQ@z(C?--XCjCK5kGgEHDwM3kF8EJrDXL%TY-HH10s55^2kLAY{dm8o1#a%Xdv!~KFSr$%cUNFC|9 zw3CCScQdB8l}Q?}F*CPJPtKhb8jLVH&)u$I*9hlsU?`4YIk4~SIN4ec*^N1LY)8)* zuGk*fkCr4LAwEA9VZyovVRMqc`r@Fam7)TXtM9}tqa_$u_P>q@J{s((efM- zgtIe{IjeC!=ek1g?qn{U>N$Vd9#{{Y7O>Y(?KvV`EYZ0T&H2qNPGsI2s1~RBl%ws; zRJ`>O8uX3hL82jNpvO;+WDM)dah0+&X{=pLyV$-p1j^(P%oXv@_aN!JQn2k}o}`{T zuFS2Guv^mU%GE)(hs%YYh;lgJwOj>Q2g&=SrkaxSHCVV}ggZ%|>bYolYqi#Km4!Wc z`BVOlA2av1eCuIY&m9_f@PQ}VI_Pp~8ctVE^0);Nftq#*mfVz8MgQmxFWs)f_X*p% z*L+&(%D%xe8a5Krsuy{KwIuD{Y{k4JpkEk~f?V{rSJ2MptS{4&Rekf{BMnz}pHEer z*AB92$F0*9BODESmn!9!0lk>ywns*%H;^1oqwMXZd3vrSC%?+QugiiKIL+_$m@8*_ z#}!M?S}4?2X#|&x2-cOvL(g+Gw6ye`(SHwt9F|7l8%#{+B)5J`T60|KT<$p|M8o{9 zi0#26I<^7U^O%R^E9B#vEIooV_IpW;DxsK~jBM1wvox#JhT64TBeTSI8C zbmddZNzOHjYmwH%))9reipO>{7oO`g*fsmPJ_Dv%j$+#7$jLM?ouiR&)tnqUmwO(s zA5OdISH)v{yhdq_IxMp!6)u(hpYb zT0#FP644k}W_N7Pzyi!4Du>I`G0{Dzx{8qj&+Nv?fDyyeC}I!fUDMk-g6)Bbxa4$W zz?b{+IosH0z|;6eX7*o-9kN=4>IAM9k+dKzcLC)(tojc-bA$GGHHvJGH-O=dQ+VeK z-egxugUY5h+|koDm=U>^98s^MHrUl0H12P9^oAs@>e%7-7HM3sp=r?kp1gykTp}&m zTq3Hu|9rw+-)pmDqH804bJjw0W_ug2TgAFnDYGBT-J+#vK)(cI6vr;sAz2X5h{v*! zM*RF;w}$1f=UCceYglA$i*Us)4(bZ^Lz;H0UN$bRtnB+?i{Ox`M}Vs_f4HY6vtSUf z($s4?Q4Xvh$UDlU?_EM~_@BAs@bQ7&Dw>~eZn-vXt=v~;&KFHg4L84gt*yC8T~6Gi zIV*W?;(*bvxkV{7cRN*@yPX20f%ll;EhwxjSs`Rkdn&Rf71ye28W;^w3xzb8QcA6R z{of%g>|R^)e57sOt1S*I*ZiYJFsfC#vIpiu+i0#(a^$4I9(i5iFNi>y#INW(6(Duw z3T4vwN1>hZ&KHbbr4g7*dr8MLPWR92y}A1j%za@iTl-W!@Gyu&pagf z?Ta3P_z(FK%7i|qB!^Z%l{WVk=f}}5mbjh_>xz2v=3ft^H~OYo7P~f|*6DNEaRh3y zZb#mcOUf0~ME#%^v>c9i{a($dZ~I$_&d#<9hj%CmvAQrrx*+=U(=nP@SRo zoDFAiED_K5yodi-9bVRKd%ypq7Y3N?ebcJ(o6)TykUDaO=)9h+EvR#H+zS}2yJ5HO3Q$AC`Lv07_e9JWU`a=CD9 z5UWuZ!4W{`LbPy|vVKKp(};fd>+zLMQ%#mMM~3qUZeQ8p)%xK>GsXuW?N*!VeI1`n zvGdW{O#MT6|ENBn!QcX+MAXGcU7CHD*RtjB&4aJeCL@-d}50dfUE;+iT0bOMgXj)3@x%lPT&Y}+TS7d3#>t6}7xs^Snx=Q;;x61B z&RCh*;j3c1$w?~dy;6%QX?`xfSC&0)50nBj3cwm*R zT$gyP5U?^+&+ke}yjuOOMi+Gds&A9%`*8zQtwsHy-aM~yqC@oCqK;M$cMf2g>RGtw zWb^q?4)4BZU@&e8z~y8ScHt z?SbCzXz++tdQnOat1IS8=R&kbym0NudFp6qw7)`tt~gRNC-@d9CWl2ZS2~x|6(Qa^ zARUdkmpJY62oljO z6CvhaIIZ%3&00n`{?#Mczh~B-Eiz{9gAuj{=+mBeLcbF#zj}S&XwSO_1egoGT_YM? zdPLB_?c&NEUMROWbc^J8dp2sp$xYslR-?EgbslT8iB~_53MMBW2?^`UN}ChxmS(2C z+{J3wJs*)a`*HrNm-uK-MdgF{O;97@$JS*t!RdUyq>gZhet$!7^`*@$jpDqgBTZxJ zYk`0Hi;KgZceyyiea$sPvdQV@#=6?EsWjg0=6Rq0x;D|~%9?Q5FZ#Ya%!O#JE9$cw zyH`=vCq2=QFlhm}Pfe}Ct~c)-{;&S)Vf#yl2X8j3&2(wp*~TlB7Pa7c_oNO=+_vXF z;kS*)n^pJO4=n4bC(-4t+>AFj2ebvdo$hT}=OX za@2p$(oAAu7dvL~yoXj#4)^}^>gc=v|L~_KYco^p=&e;c`urc+%!Gw}TFbERwV8U~ z%gHTs_NqvnK6S&~>enX(GhSJm`E_R3iX-YzjA~Xd%~b7U->XJzK3SSs(1V|Q-iKp8 zN}O2NI{bITampT(Q?<#fM)GZfzs{^pPCwgnYjm~!+s7srhri8zBbpFkxhRvS;Vfc% z8M#%r`ZN+_i`+{2cr58tyDC}Rm8rkocU7|6O4hXI>V{he_zN=&D@R^4CP+?SnyKyD z)oK(uK@QFBm#xnTKDhPP@U!iH@!R!Tn)&_pE(J3Mdc-ne`c3|%rf-Gk^}Sf#eu}z6 zpLTMSosr+<;@aFCiJ3_S@A15=k6e-%`{U{1>-at9h=o<+8)%|&ckTmb=pcrc$y8~>8vH6 zckOkRFLbFNeS7s;_C{zqISx;h8#rbK+=ThZt-ZsBSGA6=y`_`lYJZ6HT8_mx?;6f5 z^P(HRI9o*qjOVBkbL;K?`vi&c&s3h#@I+;gl_xIEG=I9Qt=niD&--re8R1Xo4~VXQ za`yo1HgbhJG`);BdIj(AeN*_#qm6@mhA+(wncKzM9Q|1PE@;>GmSmlsTkEcOM40hk zs$npx<7<`UQl|#U`zs?&Ea_NGjxo!>tn79FsnOAoX*upXb7f|cIbCYg<{1&nWKKMp zJg;&}I3T*H`91;W!d6rxcD=1EJh0uN(dvE5l|3*Q+Q##G+!*>_b-A+g$(F-aWI#Dk zKBK9#F7?;`IjiefbNU{}4~#1@L|(mi^-eyL;eIUBQs?&nP=uS>u36&R>u!w7U;Z?) z=fIVjsyF!D()&#M+SfVG<7r)upGU%^3shrL?7<( zg`#oU$ysX;YD_M)4YI2&@VMjT2#?5mFHjB9f+Di1xe-zt2>@+x5z5@?W!* z99UOSCd*Z1ZlkRv9lNq{-K(R={h$kGrMoXa?W$TYRc#a#=GrN9!4Nml%F*dq! zW*>z>e?_zzF&%MnxU~H#(TdCKs|bftt#oUE`a!=!t>=Bp`mgEf<$RY{^RtiH{ZYB+ zZgiI_K+t}ZLPR#LX^?iscabaPwlo5BNt*4ksKHgi;mxLnJPjYObi>P43af zzSBVt&DprayZf^01 zsIoMTD#+(}zQmk6=*zi-a`vC;-=>8VOta+MLQpO#i4o2sDcUujqi);q{9Y;Ih`FM1 z?eNj(1|R(6vvAR;%|KOm}USr9aKItD5~fr`;-c>NCW>T|9iz z6WNTcXcQkqt}G2Yxjw&h4z1~Ekgnd?*f3~v)p6l=!%hrvG>ZB`y?I{l2I7EjAhz}H zdg{GoBjgI}BXdK4>Eo#DwfXKjakc%)^@Cskm=e~%P;+(Ufy*+@FXr(wa%fi@CSW=hpnR-V{+kLg z7utr>bR&waND@>kz*TyvpVA1-6{lC6hPmCXs{iO#*4v$(bwm}8=-b{CXU^899iZmc z;rz~yvNV>Y5ts|3Gxmuzf-Lpr^+#5jS;6$zf3?r2#e(#l5H9-AyLepX&1v2%!#lV* zZ)t?&qLO6KS0N2vY0WFi3+eHE2}d5nQdzP#+i{5d{9-dK_S_Gd7c-F|cWMN`B{7lC zXr0qq4x~}YA<d+VrEVPxHU}?3T)3zZer>?8EsajFnc7 zfd0})_$BIbdx#D_@3C(u1U)}p)}0VS9X*jbaU7OLpd6BB-~CrOE}HgJ7du;vHOHmx zUAFm}M!d);WmmB>zo~R`(3&L4BA#*N72QoNVJ~qATG=n2L90b1P0!KW^N3)#C)?+# zn_HEurrc3j=Os6Nr(icZd$sXb!-?KqB?zt~`>*7>O}P$+^fMcB&+8qX&LfP6XnT-G zB}zz|y@xSeN6>R^DsAScLS zX$0m%+QgBIiB2c1(QSGn?0iY32`!%Q{FuD``$L9Cy{CL`Yn1cXRQjZzq6K@3WZsX7 zEBTn4-}AY2tL93I$9AI5dS8;JG{;9wXVX-^le{=0YtdX1A~;aU~zSZYe((MlFu)YNLCwX`YO{M{?75Du_!fTA)ZIS`Y+FF9>M?*k>mz zy=esHkg^0#Z+oex2|ACkkpZc@G;5bjVtWvZYpu(rt%mf3hDF)^YFt(scw&4Hmc!U} z0QuQEdOv7%W!rGHjmuA*iG*ZZN{hFn=iB?$inJftW?(w*yT$9Eu8*GgY;aAq&%lRb zHOj2aE7~%UCnCb-!g^Q86>FCMI%!L3m!c?t*smPI>56k1KMTheGemy|@$b0q9n zDsmA3dDn48BV1k6xlkj5U{7@XqU25{tb>dYezliqw5EaMOqb@79?vFl$%NvR%ayew zR>|f1^Vyg^M7zY5lPP8ExoBN;g}Ge1ERUd)G{Vu)xe%R41eB6?iN=Eu=i9_=er%|E z02YA~$_SEjAv#aP>cDY@y)*6&a191s6(Ah%hyZ(7uAI#=7upF^yv;2FCB$4vTM$gg*@No@Su|c(6vFDAbD_7RHJ#*^Mr7u}bE_=uDNyC6#W8I- zpQOYiOE=#h=Zfvj^w7s*_OR`s)Mv^qEwad05JmHS2KohaAzCD7PjvQhQIyb~&T{=Z zjri_r{^f-MlTKG0Z)Nq?Yg?_5H1dq%~1<%2a#r5 z2x$#i20|4_u*WdB>?OqzShq3F5^M{R0uRk0qCz>46Qsd@RZLgt?TCnZdw?^v>yK|& zb@k?Av$evJ(Yv|dz~%b7ZM*!t0#}3MG%y#=U&Rr{{_#W4Z!w$VSw^W;9wbXLB1ti3+U*G;<k7nM) zH_qosS{68iBvKG@^5I6w#Gl{Yl(1hkp-&S}2X+oex~DUf1b)$3Ff^xa|F* z)*epURNB=Ql!Lqk5iVDm(v^FjYipzC3(Be%cj9-nC~fKSAZi!Aq%;C^{odZ3y>t%6#P~a5l7v602y<25 zeQeck^|pn;cg-|TsDEj(_s$eUgbLMEd83H6)%fEOF1{TseMmrie#Kf+m?YR~+HEM&&rPE3>6`6(Tqn`YxvhZ4pI$7p2wcts{gJ zDqre~=87bbE^KYr6iJ%=iqePOz#g-8gybT`=MT588r+WVmPK7jxzzSyE=tdz!L$iM zAFk{8HcZl{&zr`#XLg1@GIRR#2q*n^8nN8VhAcpBd{z)piE{3cB=`|{hvK;*AxlwG{V|c)4r;DOlz|T>&Ub` zFMRLpY^(PS(sTAu_IAe^az$_7_c5pSkhJpt93>|d@4SC$Fy}(FoP>f1wjgk2cYw0@ z@s6sTSEe0Dl%joB#d5il;&GRLp?`)$wZGOOY>VUGM+Gv9qgexacS9PDX}1Idb5$>G zU-eV>qf88rYZtYM`a!*UUhCakL{mRMv-0i>k^z=0HYcu<>GoB(Tt{^lyZ+Jx1;@8(J zhg_5l(8H@9XkT^4%hby-Ba0&5?qW$!Kd>vBPHA`EBV26_fo*NPM#p)X%XQZLdkFLxhah=U0cn(Pye&(+6SK|^(Fmw4=1O~sqY?K+L=4EENU70Ea!Z3X%5j$^-x`8? zUb5N{qbNpKO#=~_t5~fiB(J#>8kmbpk}(746iOty^bK6PFz#~wBb3u3=gLVA?I1^L zjX)Y$KLoAf6~v{ow2N0|s&{7P$hU386?%9fjT~1c5zGn7MD541u07B9Sg3F4>|thc z@=;VgQO;qZSVDJt6GCbir7^}>IRg4iA18;dQBLc*5&bq0x_3q;YkQ#Y=JaOkrucCo zf;cdxs9cU)ZUYEKpHzS`9ODPZ6`Qk&J+LREwXk&r^Nt9q=VA|}jy6Es6w+YHF`nxf zymbU~g$VLQ=!-_uI^&pw(s94i7R=eh*1JL)?1|e#u&%fyLO`!C{|<`Y{NO4Z^n5G1 z@)rH;F4mpas!tr4dL2 zb0ONwp*&G^;&|6GZ5<)Ch|uDdgpf~4ty{vkWHIf!QIU#1GV&%bkzP32$&_CLfw^Kd zgeg;NDH6zdkkT@rOmfKce0G!InQb{4i_TtRX}PXAgjoq#bk+dnkP#WlwC#BYtSbfM z^8oFPyUEde^c;ZH!T88jo-#JdQ?jlBROWL#dT09Njtp z$->E27#}IZ<#t+F|HX18P32-OD7D55-y*wrh1lQacq079c^7)DE96S3$2k#1f#kM- zg}%fZU1HA;m*>tJq+zrz+8kRVjc|1v+YCORoPI;e37Lw_P0Cd#?M^cgWvT}t?>P$* z7{jsN{jlNKs@At~Ns22)19Kr-BQSm-C&dulPGe1V=`6G**|g9oM1WTU!i~=fnX>%^ z)?&(9P0|kS#^;PcY0XWTRsDZs{h$toD@I^0H}_twN5(khs<1|}UvZzowVbFQmu637 znd1Fjmn#dBGs3J2G=Al@Yvr)sE*?&0O5}7U5slq5J^W!;jI;F|_a(aYi1et-YBDPq z)7UwkZ_gYJmQcqiqQP>wc;yfh$tDb2mE5f!pPo}1LBFtsx)z!G4QpdtQty-l6?21Tt9R!vv#=nsa*CPFY_kfp4a7g*Ys@J z`MQf3Fj=-`gExDW=xms)MI8mV-T(0&EC@JlEul2e)?ABnkwTC+|VMH2FKXA{} zHebsA)ikhQqUlk-(g?N(A}BJf_+-tz|-p4wtp$fF&ENfzbd9HMu_h^IkLtQ6LxBzc<|#1)+X3{ zacMloV}#KzBJg|(Q(zC}CB!q$>C-o-S-UJ# zPP-)$lFLaRkBJyFip4954BF*0eLgjOsA}ZSZgWPeqm2^D9iW4C>K3npL;G`71F?Ru_Qsn?ZI|tnJ^8yvNlJZ zIBC%~4q>^nS|k*;Q4Wpm71?~&j}L~e)*Tu(AAOvP4E_4oBwL=$Bh$72sYwp$)}`W( zD`LC0>~2}6q0cII96C>AT{%wJ`|7pciEM6b7i*yyLUIvW=#`{lC1(V-ANpQwv4_(Y zQ!hkFNg6>TJDL5U7$|Yjy&sO*!|IC5;(E?m<|&M~3tMbMfn-~?9Pry%X@!E}lvc%8ni*(VyVw?x#LEB06B1k+qUwuL~MT#aIsvxnxy zaqE0{YY4Pv&K@>akwi`o_Qaf~p>DFSv>a@~l*;8wa<*fX<97+{mEgS~;xWVved2PU zFX8D9+zvWQjylSL_9*6wEG^bSMC2sTw{1itC%LUf;(hM9Yn`nu5$!_ZohW)vhNPAq ze4f|jf=*%Li8j&wBXw-Yc#boZPEV9_)Y+GiEAh&|gJ8*7KId1AbaLP>T-}zGqJi4w zbWVqPy;`KLo#ZLhhC7eZdgGk*mp)E%@g)fT{?Y`!mJ1F<_518Hw&50{S%owpe*>E^>f@qB}Ct6p^iPkv&K(3IU z=WT9N7JAQq7M^kF#S#93G_WKy4_9$a_+0aO;pdHpMVJeFG8#cPXWb`^5@@ zx!S$IJo)F1^4?(ZaUX``TJIe_zvj58$2s;Eg$J(S01YcE-D zdVQtGYAiV-(3fze=O|F@r51js7jM|3Leliy zShK2d&9=FrAZgaun#hnfr$T>`q<@sAXT)&<0$O?ap z4-P8p{V!ZPpf)+Bb@z(#!4y*mYYkW3Dw-^vl>YL~+T^@V-702poRTJ)t^3=UAuQ(@~%1E3S?3=AX1lV_;xUf^uc<%3h^9rLY&=1l;nLMxO z7wv*W|9xz*V~1ly{H4pR+T_na(;4x%rb|ms-oVnP(#|uu&mhk|@5GZk1iSw*(|=*j z!O_*@>yihJWyya(wJ!O}NR}KqWUY$)WHoNjv$iM0X|08=BiR0k$QoUpH}!f@8B_dA8erxXYJ* z?_YZ>$v^@DH)lpyGv zY4EK*d_NAa-r`$hi@xo%Gc58h6=yt3&JL)*!{yUX!R8^gs_$93(&^Hljgjwo_JU_jIy4cya^%CGlg3nth151Ot!$M4x?4@G0hxVmJgBRQ5JJuQdXCz?CYknfwA zc4ea~ndRbkkbD={&^xY5t)VB$b8jsRpk#2&Im)J|Nourci-43 zI`j8_(WVoZXUJc78Gj?J7Qt07gt$8z?6+I7PqgH%;}wl)EThQ=NY8R_{&18-30*n` zZvjYGxE2S?a_MyB-bWEvrB=Nl!lenZ`q}c}k)7^L{Cjc>XKV#b*(s~;l%V| zkFeGYX72K5E0eS+hpV+NmKfnpf7h*=EJ zA8QhP^Zm@q``Z2^Lf+RtQqE~(3Oo51Ptg4)b&mFv}d%i z|4e_ccglnDk=#K(J-XwHnhcMSrboZ;EzhatXnxGH#FFRkuROA5ygGsZ_fxAguQalp zsJn7J@5WBIgk5iL61CfyjMlcO%S_ydsEAuk8u5LbvB5v4Kb=U; z>Z7~_JwqZ9N1v*Xdk4>sII6Pp$AcsEKJu|2?&)fKujpf*_x$POg3EV)J+Wrt(IJ+L zQBBieNmyUd%TOBCa+E?~E|<=xm9AjK!uAjg5<=1nVeKJ(IF~El_Zc<+qF`9JRbkWj zs}p!aJ)Wn2@LnjCJ=i&(J-bo^V+SZ3~@>um4#!dl>YXU=aI^lScCc1I&e9sS(5vf3OasFU8}o zx=*7*BC4Z68YYVwE82bnTaSLH_^A5~ zg32T8X?U0m(UhC5M=2)<+kvI%tsr%R%>sbMN(;M|#>cbEwD8 zg$T^$G{Q7=q-L(zf-DE7{~iKmipilYMONecYqJqrR_lt|2)=tYYfrk(A#9qTbNwhL z2YMx@*{`;R$U=k@PbA*RcXL`aHn8n^ZvG-`{f%vtqmggbNe<+l(|lI3k|U46df?J% z4~~i26LS#0@wP^3i%|)WE*c|FP zb0R+GT56Kx;bZ>v8{GIzcvr=V>NXF&Z(#I|%Q8d$%Qt3;Xsne_8xPID5nzNwQF;eay(Llc#XjroInrcj+8IdC zU*5^D`0e|jb3P~ts-2QcJVOvtl4(EA92c}5{#xa3AL`MBvVoc}A-;qLMT27T9OJx5 z&Nd;9q74euF8XW@!M@9AKv*3(8ko!M)zA0mps{5g>yyEkJRT%#x}MCgtD1&QTOS^b zyjdgGjar}FIfp>B=gl~Lk6_CIpM{%;byj^iyst<{QPLKFQUR8WoM;-2hM!S+Ub z>%8Eb3E|v#ng*|Z+9N>iqDEhPbX{`F*Q|B(761_R%Xe!N6$`p`aath zElAH7&0+g%1bPPMLbQ38dd{W6p~qDFqyyv%g}E80bk%5#pp zh>$u+zhEvzdtNaF)hI-lMo84B7%pj|M|GZiuhbeK4ar3a%q3}}?Rn3AaJm0`voR)R zR>0(936(49c%9epim){(Hj~QQy<|)KV9~qBL@zylf|~bPwPsnS^({Obg>yij_ts4r zfB%oKuw0Qwr5;F{`UzNXJa7E}ZVcw{_=Y_PQaG{Hp%80m^|h2xeX1f7=JEK07Ar)9M5ta~-s7S!QyIXCSrY!V|UY7|%&^ z89`#Kbot{5TJy|re)Rc(8i6$m%SCz`LBB}tM06bC`Xz|KT$GmjPc$@w>Y&spw7=9% z#g!dR@c09JuX@E^Aq~-}<0@q%s^hBSj-_G$l-b`DZ37E<0tT@z|hUli-2V_Kh07w!7+=wA;BlbI`+`?Oo{T3+B#y|A(;a@jv-r zoLe4XStQTDdnYOmyyw>lX=?=K`fm&71al!;$3%>SlBT+%W1_!thiKmgX9uJ;EUOrY zWGBxmXUM`f^T-rV9~hXUv6Y&+GeF)_Kv-SLnyH_2YmYzPfwd7+IgL!;Da^$}%ADDAw^zF00vWMHLhkLk3 z7_PofbO<^w>S$~2yur)~NhoR3f^fxtRSJQ*B+a_|>8J(W7v9$_IyKuztro%68_1#O zy)>XYe5z`TKWe}70LwyMJ-r8WOS7M)5twUgy=9rZ&ZM@T5bl!-FxL;eyK*(+_`?@= z&%WC%dUJLkrQI2@%0|mEr(@G_>R*QiOJ=+AAXy46xaY;|ZIn3StHX^w5P`YK&SL-4 z2#GkEPn)MP7ou$&<(pP5G_6{M5~Ad&b&U|uAlqUtMCVdA?uHMl670gUT$a}M+ zIil`xdy9MwKJ*?sfuPsY&w@`{1|OeN z9<+Whn_su`;(@i9(+=YmDY%|RBN{ZRDVht>dPlCKj=OM2q_roGd1=q+*=uI{U%pr# zAPrniqq#b(|L9=gIXBs{nv5o>FM|CNdCp^JL|`sSQ!b5Q+39b}tiQ@;t{%^=zVjHp zPRfp>5@tMT>#tbN#wZve$#eD+GxEwK&>Jw9Jm(09BQL3gH1{HD@}<%U`6ZqU(Rv(( z<0Xveg5Y@{9C^tv7)vM@qFJk=VOk@~D@?QY%x&JC%V~Pfl4DPw5P0^A%t?1qd`(4To~y|W>ead8i24(wKDEm;zh1^^Js!kypQLeY zXwx|ncnpG8D^`OG|r&7FOc|J>*Mh3C9B zTG<0_fbx0Xh4=34f41uU@VT2t2cx%CXGXox7DQ>W2k3d1JaR~|`PDU*Ph8V8n$@Q^ z`Q`QWZYyi*M6F$)N@-=yoCR3}G!sw%WaWUoF`*eRw?fE4QUT?r@xJjZ`_6;WdNip< zUionb)eq|9(kP75bq||y;_yU;Ka6Y+qdR*W6!oJso13Xzh&C%_ziScn{_Bd$U2iLo zP(qYk&2bnp+`BvX{#@1$+8s4%_com7GNv@X$?v@6pW&}VE?2Y8c>g)BZgiTWdgpcn z>iH6qgXbBE2IUkSQRg(rT22dxylR1-l}4C1e)+WxoTmQnMaPu+Kd$_v@`=RQ0B6kc zU20qott;k)*UfXenC3TF+d`mBgn(It{8*MeLq?{Q-s$Y0lDj{UsOWHR3xkMTke*Nv zGG{fjMnlr}zFebMq=6oX6#XzB(`Aw|%7%g}TaGYiopwl*aC2XSb@u zSuoC(Mv%=}yNt;BRlxju9`jpRZh;)zK#1g2QciM(kd+ROUfdpW3o^f`-9m&&k%D{T z^j(&Ek799MA@4$i^j6v)g5X?QSKrQjIeg^xJ%Z)+%Omt9nGYb}mC-$=J#WW1_7A?k z;Dl)E)pHX#vw7N6)tLsJI#;xB@%E@6kVS8}CxIL(k^TpkrDyolOYkN!5-;rJv_cBb6 zEHrcB)*HnJ^b6WX&#)9j#3K%tWc!JE8dxsImC`ii7i!fcO&lVcG~gmbTypI7NuSZq z4hCihG9s+-OL9n>Xox4WuFMQ%Q3U3aH2W^jCrY%meV^Q1FXa*h(?Ep$63-XIgz$Tl)lTpEG7B+YUhI%#iz;NT;}hVP6C zu&;*gEB5WI9Qi0JHotdhYb&js+(Xafr}c1q+o75x%#1JkQ@4}T_?m4vvuV$tt?q7CBc-_5Y0vvN-9~b++B)NQ2 z_Fg+CM56YLz!X-djm1Q2ju&NB~86CS@kC6(>L$imR~Rz z=}ORoV0%z5`9;#Sf=&>W)(H8 z3gzIFTLfK*5DAeJr002qUjKKZ!7)9%Kevk>(c?%MV+_%dPrlD!+E?z$@GoW3f3VLb zH+`pUi_CokX`SPJA8MWZ{VMD<(CGi?)`#yZbs3nh|J z-q%T*+6+p&xZD1g4V61&-w6LPWO(rQ2ep~`!+6~PX0zH%m&Ux}^Rac=OmMo)WyC#^ zXh^y8R)%QE$kOu$v^>M#kbEj!|Lhe3@;-f;>B$Uc8e5k`$`anG1wfe!B^L=X7ot6H z=!7km55DqdIQz*f0+bfD5U#Av^ge?%Eqb-I0v9dI(yez|ouoH3WPfZKOdsy$?W2){ zj*nhiIL9CUO41nSkkdsU8e0pyzYQ$n8*-FERhw;H2#+~$$|AlI7>xzBa_^6 z>TYK$OXDf_o>y<$_R+onK0R95r=QtT?xGq-yF#v*idmfi_Yz^bNH5QkjSj-E)N|q8 zw6#`_246pwHuruG{xBT5)5XynWB=hJCvMg`9S!SVYxYodvO9)^27Mc@@@?%BYR{98 zt)`Vc92unkYXs$zwcv=rk~D(kkg^a#&&4*LSNF~V(T2P#Cm4>xA*gAw-h^*hL?vx~yF&%HS6cw=9s zE7VV+1#^BCIDWY`kjP1~U7{;XjtH_ESrBtkNrLvg|706Q+wXX9*x;_7!AWh}S9Lj! zZdx$!w$EyxyQ9qX8BT6rHEMuJjtJBV=0dclfe6fnS~n{*@2?lsz1S++>Gs_N)FNsZ zM`50K`oP-os5xz;S35Kgu+~1gV_jx;d$!HekLxmBuHm#9_dl>#G;PSM;W_{H1LXZG zqlFE(vb3lX;z^ssvN3bR^{@2}4*u%cszpB?RdwMZlhQ|R*S_k9 zsciqDYmcq^akbbS5vU)`g=kF!5tvJB*Yv^z(+f9kD6bX~Eu!RDn{B^6kHB0m9gihn z%v|J8__%&F>5LxAuTVdzH_vPJu@|*WEefkg_6&x6#P@gy&rM3B-cSpkH}k-m;fnHR z(fOYr7aUSnn>q5YPImtowpY51YWe3pKRWum@ZM%8s!ZN~3GAMxYH4 zfhB2#yGurwi)a%Q$6XK}{`_uHi_rrDtaqpdE&2C{3=Miu`P?UJs9i}@tVK=R`-%z> zluJ0=IszrfauF?(yAexnjhF4c6sBD-d}|2ayCiLw=l$Q!Kl$%0+#wo$QzvC}+)Jp} zY@@D_UrAHc*7iUI{(@Q%G`DIiPpu1Y7}g;g)v%$8qS!8>WzG3M>qGzRo8AgnzHoMc z{NhZy?u8q!B4hKA^z6988>cW$QS_l_UkxWbR33feHB^3uT%nKYTdhRGxPFkfwmH42 z%GueD4JrND+}G^eEPhVoId z%?@|mrkWC@8kv-iK-S#BCucmz2baiEkX`zq9;^aJS9Z2RQ49F$!as z$U)z!2qi?xznR;7$T+uhrSu%C*8_JE9G;b!)1;JcNS@Cj_LybVLkoRH; z%N5NnoUM149RF=`go#(H zGEzIOrr+V3deU8WnP=uot^N7uQNiTIBes8qr}en>i1eb`C7GJTiL12X>V@0agjLyZ zLcedX0HrlxRxhIb7* zp4aTp8bz&(4D2P+4|uAw#kb--V~>F^BdUPzwFT|`P+TsC5S+2 zF&CossxY8|2+WmVS3O5mBxa0YU7_CO46*#Wl6f(XQI%#a!m+C|k9Gwixk%Fz?evYe zpT8fz|7~?Of1w{_O1th6)(`5?^M*hFZ1~so#r}UU8WZTdWD<13-{eb+9h;*}dUffu zxA|LkA0ONwbz2;?np@AwPxu#8bP|)CXJ}7lq8^f*C&OvZPq7_sKxs9KZEj~gZNG$2 zu>fNqT1_Ig&J&mN8G&VCE=0Qs;ke=wzuT{40`wBpw5wg+BMWqoEFfwq zt)!{FLVBK8>*?G4OG=Lq3P%?QsCTr7z5j=L03Sq$se=j6&=4Q>yyZ&LitWXZ*9qr^IOs-U0i@6Z(_S&&hB< zl=vf^e5}9M$Y}fM8oW1$p3}IU`z2Nq{@SPQt;>zUH$hxSMv(#b$|%|M5h-Y!-seMO z9Fc=pKmd&(wce+gw5vJOJr`QH)~)^o_#(s?jkUkO;3!w2%IAmelKeAoszVSSVbnYql!Gy?7?c)aaVfhlpejL_W4z+ zK9wvv?On5SlV2fX%1OJ7erWWIXuYrfp{~KA;hnN1N8ZWXm$;7KP4b%yii)hdLN4>GZzy-T9MiUct zpSmn@?A8gnk@&)=Xo9KHws=Da&8!HSfY@+)vn$r4BUEN(HAX) zr!Slsd1_v3MYATsU+?x0Z*5$x?6?nYFfl{&8atZ?Gy1giqc`*J z0kHw?p%9s5uT-`@s3p_?w7z(qjGj3#Y0{yrfp)YjYh86NZfkW;tzBtrd1Y=kf}gmn zV^giDMpN(gs8+24%C&5FvANk=A{niSmiEK*PBjrOt93TFoXYK7H2XpSC?;mErxwm) z3Zo@P(fkPHm-NFu4tIT#luv(S0U=mFX;0L86HnwmkvX$Q$(c1@j@xF=tf5_Pk|wLo z{Hh|){U1a_|4Wz4R?DPe`C_iv&de2}b+5*hVocinBr{eygw6$E4aFv6G@kGkCcFJ8Q%_Yq)BCqtk+gJV> zE*jl6STN^cxN_*W=$;|8Ze>n<;HYiUniueGE_y9zbWyv)l22C5(FpsCnN{BW|8(P& z+~$Dm=`-YzexmVe%R76%tx-5bpS!1zBbFRAqPpxT)g0@u?p-;0AN_YHsuP2Lrd6}! z8eFTS`|x_?E$f+F#QTYk$u-aOm>hH2k}^iy3TLyszTP>hdr3*M0m|q4Rnz_3qTfv- zd$_)YKBg_W=JoKdi~9%r-rFD24Qb)bLUZF~y?xuFv#u#L_wJxIt^G80CG+iMJ(&@t zG|n34M_?{o8Id1>xp1Y5i@>!?$RVz{aS>P+=0dcKpcQR2S4k1awy%6fBkz2pnl`04 z9yXrYH#qkWw|=0e^J+JsD5_`UO}(=;+#PieS7zTGbH%xslgxd0r(C=_ToM}-L_g>k zqBkHXXn%(Woa%=sg!0*aOfR!WSzU20;#}G1^$DF=fc4Hwo>>PaKeYz*)q?K;tTbmj zNg7MC`N?;21_I|VrACn-y9msMv%~ojL__8fGv^j*PVUe&kV8bfTw%RKPLM+vf%Oj2 zE~2RVhv6-a#|ATAXdR+AU|d1(AsYOhh*H+(Zk?d#Df`Dg@3t;YRpF+7;d%Xwf@fEE zPL6w{b&^);UA?Vya;l$7Cp#y5z1=$b)mf>tSWV1zX|T6TeY7+(XFn`gSU-?Mio3W5 z^4eE<_20-9x5mfc&uPP9CRe5{ce!%wgyo83doEoe0%gkN%Fz{Yf*cYrxoE^p4VF4+ zHA4MFsu%QM`r#X!Mh>~2=SMINL=cUBE00zih7An5Ki}VpKG+MxNThF939nc8?(1$w zUSbd3LdPXdwh@n^=eZFk7w9TKLf)V!Qn^rhK_*xGfGL1?{e&LkT5K_IGO(t|OCN zq!Y{~>9nqL*c_#GIW%(QMPRM9+SQ{8Uq%yn7N?|XjI*SqGTj>_8uH`4`t(ICHFio_ zjr~|6s^q4>F@=7GT9EoEk_(C>PD<~zD_U$|>WX-N?(;>d_bO+9Vmf=Yje18;kVE0f z$Po}nETI{5q`1O(WqUGQ*RkAO^eDz;(_jf*jgl7RxgcB`*y4~zg&ujOzB%juXTn|Q z)lmcg>#M1Mc1+&8uWgd{F1_N!T*JzTv8Gv=3V<=f6-N= zgHt-69X{T>GCE)?kFcelQ~k(W&mnS}@p8)B+2$#Yq;1ZU)9eTN5{-mure4ze8+0no z`AA>c2+T!DL8rBAbY*>s+dhdB^q14zhch$|fnW>fM$qj>OuZofNe8YIGGAi3s(0qk zezz{2g2R6~T;XlBm%d+_p37LiwK95eIFFFiau}^yIWU&EGUZ2DX%UebeNdzN-21df zUG1KI*9U&Bn@0zK{;j{`B`61ajLQ{pLh~~csUcmN;U&2d>{o0LKo|=mzvyFVn>1G$ zHh0Ulv_V&gK%i{^VI;EJt)%-#(%QApt+x|*X8tPeqm~o)#7*zK6Qvea-&F9@7Qgn! zRza<1O%(di+{<@FTNf6ZoBq(>T*)nUm#h4`LhWKMlu2mNU$X;L>}*JN;dHCTPiRXn_A<--qqN2(pJB8w4^oK!3#^KrY`kG-!4(J#%O6!O@OsSWmPF z@lngW>tp(M`3|*$=0gSs-Vwb+zs{FN5aZxNo4>`=ryAN_2(aSXjH53!`=>BBuo%-Yr+$M*S}Y>x$*eY}K$Q zENSXTW5ghP(2q4Nxv1}qxg^bfQSm9l5oM-?PqT)&b#4JdwK zU9lXwG*DWX-k}j}XGBIX%PsqgX=bgxg&i z?@~_r@f-lY5d@VlkpI(+`E7j#eJhNaRZr|!nR3uLN~EPU z^(e_Jt$dj^intR0p}))(*I;?>c@Ioh{=MyL1}*Cq>r)gDGW2t{icSSNIEpS?NF z){n}xZxAvD?Y65?i^$Nf>Ai|hEIn)oGqkIoU9ESl7Z(^Cl&$KJ+;cs7WkG!3zuPBY zxU|ru9XSG9iz)%_jx0Ry!{*BGR9G{Z(x_OW4bV3E;}uCLF_Gku_SH&m+ghV5BYCb| zi1xfSuX$nBN1CZ62!ilI;E5thiqFa_fQ8*+W{YTHTAX z5KZnl#e97mvA09=;d?mkd9U|uTUzabmTGpLXi$Dhhve6{oRS=PcP!p%afjpsF{bg{ zvJT0G|IUTLT*zU51X9Obi1xf@8yEO*FF!sQ`el*AdN6YLr_pD><2r%8bFn$sangIL z?So#%7E{mVxr;!(+cb|w#7>@f^P|m5J6_dF{XVKV*fF?6a=`pkk|X1>IO>g_mo67w zAp)hvT!~5dt9p!Uq z7~f?YZcVlHGHR`jooHuu zl`Fz=yuv<}izXVj_lmw`)9i^%J2f5*gg2Y3651t3%pAW~+q^RFdFL+g=KsFwdV@m$ z5&cmA0X32zfp$i;i$Kr7T!FSEB{xImzU5g}G2# z7h(D0Hi|9iwo#NvdINeN{TU1VD^?yK?D@G!uLR_;NYqQk)&QfD{*Lq0DgM}(n*|#_ zDN-1tT0Qq^blg0?GY(6#Jdv)*6QmuaH_{g+9kQ2X)F|VxDQ|!%k?n~>C#LjjwkX+w z`V5u^tu~Yxli}@-1ueq0rj$>A-LU~8&=-saL+!hU3$&n37nr`Ut>+ug-VqshO|xLj zhb4}7_5P^n;A+%|tBj+jU9K{lXmOmq2Xu|drOwK z)h62ELT`A?+aiW))Qk{2rCC7h{l=s zTpoG|^mQpX?-+Rfz3$z|mOL_oH*Z;*FP|KAYYGO(^J zf+(1s7U|Y&PtStnk)yax#1WFaqES}FQuL9PN0gT5+K1y*w)}A9<@SoL{jCKF<*q!V zy216M5>9C+IqHtSqVzm%!9f`oTzJ#=bc91|3P(%>cUR0Cn{TIu#l#f$kg(^JKel5V zh3NbUdUMHm?yF%g?4w$q$b!fT=0dcKpf}V%ml3_tLv%Jm`s#?zKGMm{ z`+R865A9u%eLn6!7JV{BUWDwM!96YcX<#n&%52F|4oYWQ)ARsB=>eeLW$hr0sv@2=a8_tOK=Pn4#Up_wgLDzHS z9c7Z}Lo#_DB67tj%7y6M`_=T^MVc#2iyXF3o#{(hyFOdV>p+Z-OkAfFAut!#uKWmk zLo>gGmRyt;bT*A#o`L9W1kJaLFCkj!9U39Ih{o)jPf5P;$Vc%*BP16gxDIBHKj;l| zCAs7|_2KosxF4+u*Bv-IShK%Gp=}?1U|V{A7kwf3*;Hg_*}Fz*^kb4kezBnJ=+4Qt z^*ZSJ9d{PTaz$;FJ`pI?X9$@nhh>qsOO28=(fi*BePrty>u&16*jN5cv zxu;FvH|5T7-o16z<^Svz$lNP^sa!I|=KBm3m8hHY$|aC|UPNwFoten)bYh zm%SIRdy^%{^H-58o1Um?*dNCd(ho^U`jOqzXd9bfqK_ajmuQ`JrRR4;ncqczuR3R2 z`WxGfnHACR^o$P2lFJ`CCp>ujiR$hpCBba3WAfQate>7U3zA)ib8o5F-#aE7cHp%6 z#-ijK3zj?iZSxZilpN9d5vUVHU`d|WY1w=J);IZdG0cT%u@lcTAVS_q z-$&XKMC+THf*MM`BBLkjo9xnG#?dQXu24V7p*+ve6}`b+h<0}UnqCI=kXjyWYwG!* zIz8Zrw&@tm`ygRwak>{qZ={}6nxcfD_1PlR>j&EpEcDx4uKRHPcSc)X&GioVjJn^? zai=$xMLoTygR*JRbLI+qeSyR%;Y4IY4%2rQhvZ?z)$e_2cQ4;T|JmO-EzddnAXicr zMKVbXJ>qIurxtOyCxdcGnsOo9*gVvpXxa~JDR-5geNHt>dtw?PcBZ<9x$JX_SNc>( zrO$yhG=w_Fc9KJ$vv#*Uyd=EzsVNy;>67YUlxpb_4b+uLi@FkeR#&TUZy&DM-`nr~ z&#A#VD=QMs%e(77=j`}0eS00H!vVA6!w;4xKKiA*Ss|wHwakOSTy1JqBcu?_zrUQjGdj6XkCGX| z-1wJ|?u^#EgP-S{@j^~AXT0>hXnKy!$`LbtQ5lQa=VTB2i>aAy$`jXo&wJTNomG|? z_%Nq&zq^(kdNSB!v1#npOw6ERsk@%&&SfB1)<K&rAs4G|Us^jVh2j9IT zeEHd8g|%qahVn#%UOh_cm)#WK`$2i4O3NN4CAH}ML_|EgzC7`YJ};qp`79?Fq8;r9 z`W(pg?L7AG)PnSxfZV^bm{|IBN_x|O`HsZaxpcPOp%6$zM!%V8&+B>h^=j0xBGVdd zp4vG%?aOw0$3W}2r0Hyt&d+yFez%%NkaREEf8T7bzDOP{eXTI6Bp1C&F7BK>e--s= z3gXKLcTNuater`FUY~C5gNa`}6}EY~rK)}W&gj4@JCu`ZY2iHY+JP<9O?SUgI-*U~k?;q-KdO8h z?V)gG^1OdGY#fXYKMl{B+)~e;T7Elh+Yue`5=UpG=XpO*DDn!!#^?Y}N&Mu`oL22D;nza5)r%9N! zi$F_ZF67WbIA^3_ONK3+zCGakQNjGfJ_&!@<;Fy;6Br*|8g@ma+aq)9xy8g3zQLM` zCE5Jc;^2KOmzsdOMcn zM9~0qS-n*%7jgAfO@qPf+l6~R)oY_ba+KC>aj=cTT-aW@2y2lT?5WH?*MPsu(u|k= z@mZ6+QnnJTnJGs;1WJoqu=%M*S=G#kR)r$bBAbZwuILcg`_C(zs_*tS3Fmim+d-?Jg1B(SahGb6XiUZ*G=h{g z<)XChx937gF61yj0(qBQL_^T7Jy0j8D~zZv0$T&jg=o*KdG&Sb)jzJy>dByfu%>z5 zjs2RbV~%MWF4$6>wk=7H+Rg0mx)!8SoQ~3I?b5iGB&Y8N!)iCt7R``y6cu~P8|C|xg{4*L^DRt--;0tdp-lbM=F0z305BS@5^I|4>V3?+eGgwj(-neRngKMafYk zMslYPQk_6A$+SNq;g#U|nLPk#IUV0cwA&h3D(?3WeJf%@ZbdvMeHv!Q?1%Hk1asln6H7ts zJ;0tmepkthPvRz5RmGX#Kd6UnSERr_Ch4yk6#HZ~#Gr3l zX7psvAKoE2uDG*$V$VOFb`UK{dzw1FNgUD)Bz~L7lvZp*_Q)x@kwd}am)RlbU zCkvw9JP+0ZD9mNQ18>PdB%Zx3{PX38>a9O~2O+C0hz6n^U8UzNDdO09YO@A5HJ6q7 zZJTDf`20=IrE6@0&{T8vzamQO*{DW!g2B@^h4+u{>Sz~rHFLba7ew(W!{y4(r19Cf z+U_PM%Df-bSao%sV96g9;g|)ToLOh=&tV_l^DcUIrN6!LrQv@*zf2(~XwCX%6$u&p zxLk#eKTAa3qBbfP4@c}s+*(YvC>9?#ZfBzBOn$CU>-ns2Q17y%)h{Q`3vsR(>m$y| zIW)|CV#gy^W@(f(BImMt-pj9a3tD_%MJ?IBFGLBkeMQ>3*3Ri0bZ&I4YCQW)hbu%N zhYnY?V z<}cNe?JtF|on1>+YZJg~qlu0U-1R=ghFlUfYhP|?pxz}-<+?N)cRV|&b!T1EexOby zO$bDL9wOuowUC0Kv^-}ymbW-HIQ28WSx$1%8%YzwjntpKw=jI^siW0>)%&Okt#%~J z+Ox-@w5}(9AI|kZyJLCS=EciYzX974tK-Ydx-xo(!D9vRj< z?8)Y~Ajy%-nk>1#2h0ECjcWq(Fk5Z`L?4%)%ax@bbJi-^l1L8y{oL1I+(Z4vU7@rX zow0A{B5?GBy|DZUq=C5*P4ddm?e$?UcYKbwRN7kPuF|s4NpeJ>t}vH7T{pRD!5^}Sc-YK0UZRb!Ag@`Fz5+UAhQzsbG_8b!#gcGW%v_ES9 zCETZy=fV}2Pux+o%s5qCN6|_XMRi0?MbRa@=0xJREGs={)s2p>P(Rgnajm7^2bJv7 z;1-#qGe>HsA++_}>wvxfb9e6xUn=7L=hUMoevx&aVA1Iu?Ug_;}ymwtX)}>XK+P*5s{qI%%SvGa&cu5lFM?%tzD*eNm~Be#|TX4 zwnruc^~MOx8I7H8A6qb6 zqgGcuUy`Y-Oa$wSJv29hbY=DurSAn`+SKE)9z{IG)XPh^C9a-9UvgvdnNL$WET{DFG_7)5ag!9fJ6v6JSCZ!5U4`>7^vX|T5oDi+Xr32rPQnYP5~`NG6CChf^t zNFkktg#9S&@6Z~^NIzPO#jzw!!}Kg!!gNnxmz%qO5Q_GOH&04Wn9{9>E=(ijx##_K zTm4`}*M;HDF+QP5sME^KkFH}*kXzx%&@jDlExEZ}foNzQnKWCLJ;p^)uKb7`_cR!L zunl-5EOxf`U{4e}yw*T!4(1}-(UD`d7BUgcdoS~b(m(t$$fOaiPf-52X%H=J7tUP7 zH@Jv?qz^|eLtb4O3vz4VdN}KfBxi3=%K@VaK5LRKn6C4h!(0fKyi%=ut7*#nTzXPI z{besl09tras)&fUV zz2DZ9BplIS=1R&X&FX#PCYRL}m2~cN-}`UAxHs%JFL0u$y~!%`cCN=x+wK2n{)uXG zwN{R({L_f<_a_xADaTobjf>@SwSOP%}* zM_W`^^uJVFdu{VN!MNw{58s=pcW1&KPDlgg^Ss4%jtSb_*GCN*eN*W04t;7@j_I3^ z3tqW)NqEodB7L)i+{lHujAh;*g>sN*u->_@NxickL(fNkQ7d@j>w&8K;Lc&L-o5Gd z!)YI;Q){cIE1<>|v+aR+lKW2j10)^z?ZEc@UTjWy;nS>m5g_ zZY0V^uyzGO{ZB#6F5>jX7jN><`}A-%u}R=W9Fzm)^SooK?DD6N_%^I{Ly6N4V!Uz@ ze}81H-{-mkD)`s;VWgiv9owf->Kr}SQyFd0i`UFx1kaKqsy!u|>H$RgbSd|QV9)z? z(gwegUdP#@z-xw=&6x=ZJxnH%KLAWAjD*N7mqTpE+p z9Dqv$XNs^~%Jo)G8i>GgKXQU-eO}*Tmqx~(b%uK7uf}TltDi=9XgO#X1f6(s&hgz# zx(vT5{_N^cqoWGg{$>^@)U(dMo^=jzJ^|?wjbl6U9EXcQ>X-}BuFWa>a8FO_g#9)_ z@1(8>ipNnH2e~)k_OB&3{f(J*88R<|G9ia9g8on1BJ6)!ZYd_(A9KZWaNm%5=YF*G zA8meW*L99mjf$B&YvukhTDwdCsMYqo<6e0tQh3aCwdbuqA)Pd{_Egfl-b(~lBWu=c z&(GcaCa~qi^FFZ^b+~fABICDB`X4HY62opB&? z(7trxi2m|9UfMIX7Tvo6t=7pl&}RrN^%(RlV$Obdm&Tg!|A^8*qJg)Xxi^`?7hZ=3 z$|2v1`NZB4PhR4Ge{rB@mb>|~5r`vuYR~YA=6%b~%i0tl0uE_qhGJ+-luy~e#(xOS~ z@%Q?e8xf>kLK;{L%xxY@-{xUj1MzSwOVafHTr^GT{0Ph?Y38bRpZCI|3f}uFZ>TKM zG^YP=2+AcTr4ZNM6HdF0cd}x+qAQ{y>Hiyoa!E;y7*c*(_{dH^!A$f{CE>-ZU9ON5SMsADpQJ{gv?BEM4|OGJ;?U))QL6|1H3vJYvE?ll_SJAM z18cCp5y5g5NLf^_<-}d3>3J{g{;$7g&uCTsh%=nAGfInEAnxTC3#g6YcEVkmhb#6x z@7d1JM;@-mr`BP8#+FRd{3Q--?#N-aTbbS?z$@ax6CDI<7qy^ec=!3zZ>um@bmoz? zwaAI2v&KFiC9*&B;hfoPW@7t<;C@idEyer=-q3 zE{NMRko7)s{k-wt{L~Im!lV#^ydj+sf^tdPo}gU&#|tBm9XwsV_G(je&RyG9JQs#> zmn4@yqg&6d90hUFZgxFKZ%0p*G$91d76e^6lJBcHCAq#bqIH#dqBYvwa^;@AhSEyar9=O&3Ey&M>AE{Bc-c^EE za$0Ja{ziY_3E@MRG*?GNii2BsoT9(oL`=Q2zU!WWPIhy-;%^gr-=(&oa6)O}(DT}= zOH2QL<{4^`*F;sHwLLwG!4lAo6L*u8o@NN1yNiR(KW5(ipFOqzE6P7OIN zx#@3AQ7(Cdxe)DnbNilKS})N`{qc2?6BBJj)vL;U}?lmjbeH+ z!(rLhh^}d~;|7pMkQOo5{l7*^sDDKzxd_JTQ-{*A-L2a$S0~OI7rr(nP}@FjtkAY} zPxY9dyc!cV&7}(stKDolSksx`qeu?6hl{|HTpFk=YXcXpcTR3Rv-H3EO!9)RZvDXa z%9XrcbNX(8{9+r9 zcOAI8!dQX`^aTfDzN_(!aQ1u&&x-JKiCTIsFL)fK$rGusPHFK_hlZJTmbnaiBl8#3 z3%B3AFka=NA>K~(xPH9-*YL1~f3_NO`w>pOLf<|5n{DaYNYAVN?z-^i@2@bm@zO=@ zk`J%vC@N{{Gd$X}UGjx5_&IUwN-pt(I1~@JlIPM@wtg@Yas9|egQJ0HlxRpv*<8t+ ze0uY|*Is-neBrcSYURiy6zT`(_g!5L-5(1-eqfTi@`FB(?_yhver&i3=)d$^{ouD! z&y`JAnsnKl=DrbQ1=~hZuD4&Ji0tM@^nr!|NLM6ij4JueOE@4^xc_k{=>|t z!w>4$Rww*b> zWfD2KpE&u3r^9RBsiltT=K7Vy63T@))Cdjw%k#TTo$i&9^&Z)Cy@HAbn2Vlb6lM9S zmofF&n7_HGVKDx*;s9$@*NxvM*2lSa-7#{1qUHgqgP91aorrc3#J})Gl-(~_G~ZsC zTE#j$RX;9YG$Z_MK||HI1ND7u+{Kp6)z#lWYv?y@dr~lIUQvL)l)PqtBKU~qK$(ai zmn&)2h{Kew3|GRf=QUh)PGn@!$-(>^T^jdYyFbw_W0HsBZ zx{^QpV}tOp!se>xc(;Fr^fGClq+Os))=c$ou`~>$avWzonl#*q0r+!e)O?~G~)fJ9J zBA=1`e<09fQj&*Sa-}7AVr@Q|vS~1NH`cn^&8$(`2(%_~RcFHakzw&xLA9@n0*scF zZe78(7He}hSF9_EgT1ugIL$R!JW7w913iD`(8!F`LeH(|XlLYVbd3Xvp?^tC#K?dM z%!U4DR*I!LuKgsdlMql=^Lmc1Dn99!BOr zWwwRJ26jZoy$rX-K~9iE?yvCJKxB_8tf|qnx z;^!It-2iohx>{HB+r)*hSY3&xVy2%c8YM58`$@K@jdpX$!F8MUgK5%LX8R%hqDIk9 z&a9eK2eIDSxeSs#bx*a4DyVn)qC~cl=aeR{2it?W zLJl1{3`c~umSQ{SLK_-+5lBP)m=N-drF;6Ba!9Kta##dP`}-3I(vs&#P%diws4UEd zXlK41?iST|38m+B3*y)^5J$OU32Qgo^HcRahprfrU8AVwyrIhF;cIQC8I(|`aVGY> zB~9(s|3*+QDTxu8-p<~@EholA9!IBUyaKTZd5OHCH2uqNYkQ1XTDq<$e;GyUGFyvW z@n{Cxnb^DeWRM>mbUJt+!lt5E0q-AYHBBGt+7PIP3-Cx^?4rIE|qvw3H4=jVignIioqj%SKUqjq*k z?-EMi^_-su`zuSE>ANVowE841S`DpfB+sE;=uUD@jk> zUatAjvnKAUp&6bf8hCAK}B_a_GfC;KoVjN{&m#8#P&NP zB?GIS9Cs1u8JG*vjvOY|Vt+?^OH;$fsr{-PcLfzQt8`db>`Suy5O+9AZu;x)$hGBi zEMeNYyhPrR$B1X3$2eb16lxT0j^5*NrD&xQTPhZ(^vK=sX=`$nkmoLfIAN|h7wd}C z%ptXECG*St0jGJv^?xr`XagA=k~Pt?`aH{q zaVTGYGV37utN19TtF*m2?UnM}^Je?E`^Ue2yqbM%vALnU%l7W{1rGhQMsjLDq?I($6Pr^yKLT?}no4rG0(BP{iU`k#`fa;5F!-YX*HO=d1c>yumf?qx-HFVh{%;#WA9#j&C1`QKMl z$E_c1bcGU1n)D;_iglF_fw?5jy29`0*l&|GNsID%-YatwVS{)1i#wJjY2rlMTIMPr z0&_{4xhk(z{`23}P%WAlD?Fzp*PKlD901krB_;Ds-KI3}Kj#*Q?Vk}D;H#e7_GR`< z#J6Iw63Fen*c+A)MFV4PegsA`jBqaE&IjWDW$)Ect&ei!73vLrOk|+H9IqsXQ=OpI zJQUk0&eQG}N@pV|C(YyU`K@)THQ)#*{UB3zAULuuuLIz56ppFts7T4fx3+g_1XMnk z#j%7V>Xx`0OQd{>K9bAU?QBFW-Rnb-leGA*^qegP(iQ21MnIyUkFNXDq)~5rb@a~{ zs)l-}9%28yyM6NUHww+VK1q{@OWVb+vrW8LyRBtW>CxhI9-`6bzMFmJJd z>c;1P@O=Zv7kz9_VAmRs({nnFozi-D|0^e{FMr}zZ9=Q|$>D=}MGCe6l4hHq*Zc&v z_w3o>wuQw3t~VAhpd`VM@E_>03-Jpj>h<8RkN?=bhJc zZ@5CAlHR<3v7(#)qWT6G>ifw4TCy|UsVL`3>0Jq@pP;5cH9HK)7CY;ZacwoqXL%yu z#S@0{4i@CrMc_>Wm)qZ+ER&*C)4-kTd01RH0g)D^2?wwr7PiyydBG;xJ&H`wW4TE zo1YN2pWv?e#ggE$*-!@KM1y-O8|pi7~- zx2?~Pio~LJh34#)fupu1YFZSFXwYe~ zpHwY0d!Lb>=RLk^MR?46N2~LW>7_>#wx-hU&@u)@`J7stjvvH{t*HfZYje`>--g!+ z8Xq?>XnV`75G{q$x?Hs^SP=g8ujAF3wTsO?)xwFaTOm!mTupuRlyKsLW@^EoMGit% zd=diDPE1TkGLl0g5v5%@UVXfM@Z8J}!O6$o6e7R5yplZ;+7CFhy};3xv>!yztsmrV z;&Hm}MfHfzcps(dAA90AwQ2@~KByJ^yrhXa65wG;x@_Pfau=Qe&EF=&!G#e0@c)#&YF3OO6Q1MQ<>dJZG*pR?#QoopQ42yG!&T z>cSPJBTJDT^#7sY@%1Krar@R)n#dUbYF$Jl|<3=pN^p3;BwsF;hEQ-?5`g& zExCh5(OWO39@%V7lVC|qp4aTt)5AL7ZiyWB;KA)($vOhCxkm|$5;^br8hvPJRD0#^d zr;bo}botT$cfa=|ul6mAQh&F@wioiyh->YZwD;7Tb>{g;bv-v2-eYUD-j!^%wuf(x zPQ9_P-FflvEy)qF2vYffAt0%daS0qvl<$*QFF&{|3Ae_G4ZsOZeycZQ>GFO4i1 zJte>hfWC`9?a(k~aUa+95=$ea{eXB?U|Il~4{*I?`o_PjM(+;uFFfVUV8I1t(Q%LV zEGhr>4uu|$ns&LeZBzlo64&!x1o6vqFoM0E&dHTpK=tFhx+SW8?FD{~za1BJKea5{ z>#3e5W*{f7msl!TKU`fAEsl1Xx}rB!t5U0*(rFjb@5@H&h>>IbTMCOET_IPsDA z+Q8CqFS3s4pU#;@J{6H6NWf35v}>>pt5MYP8=&eugmej zhOuK#_4^;|BGBfD7LMpIwjVt1XAU_n^8udsY2wxJo8SKx`RdUL0a9-;r%az4)YG)c znci-D8CF+pL9v>Zyi!ZfKStrq?|Z3P;QF`VimlAP5A}EWOI*z9?_fWOC|Itf?<4&k z?EBc>66~8uuk5G(InHd$O2^@CTEv~577hY)y>{vTMAyUol7ay(GZ0j+%(o)~>FIC6 z4IeChzs)s;bGy3z5{yL27t5maPmz9!7G3{XderD&r98(@bBH((?|J7xb5D5X(xXau zUpOV`H=r!qXI&4|I*%KtTc5Kz{qXv-=<$>kz#9ovt(H(Y&rr0|g|rv#V_rF9X^6-$rQ=}U}!!9s35Z{ygpVaqw& z*1kS=T7c!Ex4Sf8Pn<&Sq95Cp{Z!9u#21GxpSdjZui#uw|F*Bc<1{FX&g#qAx~;)$f7McBubx+W z;-BX@^`lB#-Ph{h!=SOQxLgr+{FW+uLk>OfPJxnW# z^vqX%Uw_pP$lt{?=xZo?jKr1nSN$vm`4S?qB$tMiMX^uPne;rbbjC5tuh+e>+tPEK z_5(GIGI`z;8!r!k`3JA37V5;6q=|-jJIj#|fw?5j_2Zbwk5h+ld8P2BT>}H8j&&Pb zJF};{RPU+Q{Xczu#%v&K}8W&pWuHrJDcKR{z{Pn<)LQASz!MYSyoa4u6%#oO9?l z$*6pR(DNm+Bhha)tKVt#);!B6|MOh301Sw608~wkI3uGnU}=EIhf%MbIf(a>kaV^$5>FrxB)B zksN{`Eo7%N$7;C|mB!|bCd9Dj^;F{R(ANo8~jbawDv?ZZ1T7-qM+mmp-xc^T^^GXDEyr$a^je8qOTVgvZLG zjkcP(X%mT9cD4MC}P55_&F#B%UouJmh^Cre^I<9`dY_NiCC5%v4KBaJ%xphW zushN2zs#>qPmEixXx2GiF+&v;KTtaTiH{;!?#Qvb69Y%}F!OsZjicuNL%rSkVgKMa zUDd#c%cHAj^ej35=vi@$)cQ7t=$gqrv+sP-_9%<~{si0Lsycd>dmy&}`cB2@%-i_6 z=auc4q3&DqK;+}yA4HHkaaCX2fM(KNIX+2FRjb=v?jM}|--wmgwHl(eUkzUp_Lz5+ z|5)=$YX6?{=&B7Y2g)=%Rv!Iic29FAz2{xAda7!3!sX%mcRq1+Mf869g1!&M73xjz z9=LF%+VI&erDffJ@c$enezjaxxt!B9pS&=-JF#tyd@JgI-tp@E5exl;Wkm`#id-SL zx+nATc-8Wf7fV;Y{DzO^A}215*GErR9}OB`dcj`<97Lw3#s0dDYF=FxuG-|6^eS?6 zg|P&=^}K%XYzX^5c(Z>&>BSBLJs;7YH~EP=s?W2f{#k8$Ita7@qV-%xhpW`8*WM{y zTyu?&yr1>Y-H8Dg@cg%H^BMPUFKztSS&_;XH!3U_y$|c7J}JH0p3*5VH;+_p?INz7 zQXZwXgQJJW;)wRVS8tf6b`N|%QV<>BBPYlq+R5{_YcDC=c}t``!%GnDB1Sa&uJnwj zE{e4IWQG$nuUg_qpAEHb^pB&VLETLAzII2A84sYcN$Ro`D4W<$_OXcf|*=VgyvsNpI~L9 z+KKu*p0qNqJtV)D*6AT*E=1e>guqVsy9bY_P@EZkJB0;+C}U+v!Uww z_DKJndrBOH{koJnt}SfbM4i|BU}SIa(;dXE>$XIf_n=m0VjR(W-O_2z)xBSy;D0iz z*m&ZabGa=-$!)tr?fI9#w@_=o8mwCa_FX}szam;J$fK`E?`0otyEGPm{ccW^=ezZT zF^oXp#axJXX$(!(11cB2JwF0zU@k=eU-~87%aA@wx?d6!f20$sQP^_Y=hQFJJe%Gz zrD(SRuXU|dlwS5D)p<_S^M4I~P9reFQO{CNq{NwK+lQyffC$WG<6{Bz+X-QRF+Iky zJr;~a*u&9xJL%KK2mE$*>E^{n`cBsJ=+cEf%*xD7x0grj-O7QxSgk~D<{8R`s4g2 zjvUDQ%qLln8NpmFhyBGIevw0=!K)1!!FHE7M19;DUpV#`U$7L&ThMA~%~l#zMiQoYxAZ}`*rZM){f)vU$k(SG_158dsP zm|Pyc_w^nn`%az}Uq7-uy1SsK8MnJFC%(a2i~TuA4u$uI+xy7Vcfe{n$P>Ss+fS|Q zdv~PGjD`+Z=e%65*R$}-Oq9u?5ui?JJ+=O4^fSHvu0)UXMORO>?5&<3^q4?=;QT6>7niJQa6Cin}%%VEmXE$DV=b^?v*c^-E%3WWZ;yglGfg z3b}P9$FBgW1@suxlZohFU#af(1xN#> z3(@%zSXU73BCu{_E<`)Ja_Sv<Nb({?G`?B{aC6>ppc_yI3bsqo`@O*N3?YNlvL z`|{A+_jPIG>&7|=jO~cltMm$r)K{Ml3^!G2sxVjhX?b*VpB`pCwTo!@{f_YK(q^Ss z%^d60K|~|Bo>$$wPAz`(vhdu6Z$##wvODqWm)*^H8OMXJYmeQiAt2#6)Rr$2N~kCKaqySWgpzhJ%dNO;zSCrdj`yxO6G zyk{YNjfiMOfHW{y`JnP>@*3ev)5wXyT*EFXkA68(5cgkvsTxshNZ4(|%RcJr&w9HP zXMNM%te`@@xpE*^D2MAM6HXqdhTMBr_~?~y_*gEE$z2-S=DxOhMB6;Ta;ZO8>qh1s zwV+Q!1O!Tpxe!gY*7mO`GVmycPvhqE0Wn<}|GywA&3rPKM2N4Z)iU*O&a@d${lHpF z^4XR%H&;A6D19H{mS-S!>+BP6x^)gvLe!f}0}&WA2u&k;YG3msGHD3!h$epI$6p#y zqoQe?#g*LjH>R-XjsA+3&5yub$ZdWE=5po8*VbbDikfy?XN=+4ilTfj0?Wc&h|Z6| z`iN*3ff~hJh<0=p;1^KZd8YrF-V%N>brJXm`&Zcea1hQY73;?)y$)#1ZxXL8CZ=dD z=QbU8$zL%SqHTWiD;lv#3`ew!81Zc*HMLD;6%7Pr5}K#EIO;f(Yc$^Ey|yR&9U$u<+t>fkJ6FzqBPfH6%?> zjJuK#T-RJZ^77kj4?NY&u?HfsB+onksMhM>p$EQ9aO?J5G_)0v?hL~ zXNi3{c}`X)gpKWbr)PQwiqfNMaDy?SeKFGIs3TpQTuM8p303_4lwV{Kj#$6mk9Pda;i&Gy8G z{#{Mo9@F#FbXtGEOWlx1BS`zh`-6CwsivdRd|#FLo6S$w!TMpja=)<=g6&8tYA57- zCZ+K!GJYAgHm6*?qo2PCa(YX~_d)a$i@;o%&g=mYf>t3Ar^1z_?dpU~8pJQHDG)TR zH9)lIJ$1*$>W2Fs_Ipoy-p3W=xZd1dxtyGKi7Gs9sef(#dwhI@Yu&LV(y9Dn0Z|wI zP;8epJ(rf6bIWN9xp*g;$eJQwx_sl4D52yMU0FnKZ;vaCI5th*zJAk86+gd;`D$t3 zOpM$3foMXky6Q%C*7c1eN8Ip11aq}`V@q_no)@L>YPKXo{Qd1|>WZ!<{^S6loC{z8iEzu=9qLNJdw1wNJsLjvU=&7!_$G_%-Ez$eC_cXgXkRGDNg7g<} z&cd%GnR7DVHP+uCe~T5izhthDWg&-1Tc1-@c)7af!EXL>Pd)GWE=rCZ>bcNHSE+Z- z7~nTu>3Tcna%ohox>z-Oxn^W??E{Xke)?id^qg+g8Z1{X;-hDVsj2l(@pra9;BbYx z5Up2Db|_SzkG;QVwL97cC@rpZWcup_*U!hjz~DPh9coA};@|pIWr0jX$>S zae9ZF-Qj|{5bb&UH=e2X^dA?Q@NqqdD_nVq9Ok#VjnsS-k<2Z-2s;BA(>K3=mbkwG z&7@^|iN(a!-UFSIeb#Y{eE)r&l9zVmui>_rNppSnr%wewWoxwG6+A=t$i&UMUqUwt z6vSz-oSo%F1ns$_b6AKIY|rUAN4QKH`m~lP_rkIfQj(>h%MBj8e@jjTmgFL&|3O?K zC&;0hp-lsz>l#GUY1?&Op8xeYIpFWeIMyf^>o z5s1zsHR)9r)2o~oTvoBdUp~M^pd5&H?Sbu`^>&;C z*rK^QP(C1dY*y{y=0RsVav<;S?*3szE(w~oFE@QSy>21V>S~ry(zMGM(Joii^ODgP z_RicM*;jRj2j4E->d$=prVw=^G)SYUL%sH+&!`|A@v+~e*LfknLByfC(mK+Xk~6kW zHR-WGzLT2YC0*GcpEQLCy<<6z*5^%{v|c?vq-*eU?K!3Q?d(W%eden-eG}4ieF^zi z6fWcEv=&eA^Lo8^aQhVnrI&x-MBy7m=r00^z4~hgf0dbdo*&Hq>auYC=S^q^GF|Sf z4dsajz4+Udix~X$$e{5LD@tGg@j!?)Fqi%cV7O%(JMNkmyxVw9Y2|lkg=?M{e)U-| zkPFeCch);og6ijPE1hxb{1D$v)!u&9zj~B}%jU(gB>fffnyZ3lpI;I_^>-IR7W}<0 zMY~({nP(PltwHgMR_1+p9ryIREZvb9IhWI}Up?s02pVj7zI5xlZ%eVP>g&oA&uXrS zhRfAqgIWjsBE$W^ZS1NxPc2WBwdXZO`ioNHRsB`wlNEE~ZXNvR(xTw8@6Pm(y{w5s z-^E;r)@zKGUKzA`H|B2|J6GSTYs)3BCZEi;3rq66vv+q4iq?N#xaGU9`fh5AKn~I0 zJnyu-x(3^;w~vfCzLSH%T<8m)x8voJL5B@XBkihu=WvC&(EfUq)aa^U%?~sEryjT| zMBcFux^mpz;o9J)Vb4UWk9H+T8(>NLHuJ-$2Q_b-7kT8|vmH-FEx24+KZ)r*qw-~p z&tK&l%ovW7U*PHsd=5(?22wQAU&mFD|g3bh^H;B%Uu(g)wVdMsC z%?;SYQsI-ir4=SLw$75a`AJulOYh6jT+z%6EIoZ@yX{BkLhD%Ppq*cR4%>sqQN)RO38fM3d6#|HAZYUMQU0u3dl`F3xi#x=OYEM=GP$03 z{p|WdjoTLbb*2{UwdXdMw24H+MT`w<1TzoD{TGJ12z>%-qWJ?%1JRz>wN;Ja#v9l9 zI|rDPJkzaH$6D@@$#a{ZBAnGbBiOGp`*7QL@Aa>$vCm&t zSe%ZD#0hexPcTf(P%M+@eb`+2oeFCPQyLX(8upFET0%=yqO|7~zOdK-W%xdSYDZUc zL?b1>2}2H9Un=p0`1#UDk%Ehjz{u6wkuqB)X}e(7%J zdT7kC>I`1}hofT8o3^rV@b1Bp;e}_`RX9q;T!?nKGCK|>8W8UiudIhsgsVSlV(|WP zSA{3{pA|~nrHG95TpG=vJ1Llc>!V@6D>^!I==~Up>W5LJo)dQw-|QR_3_jt*aMjVX z%zTMROZD!vzwx*hY3r{ti?0dpm^eGU>FNEY_y*ey93iLs)FJ6W5L6E&O)?=pM^|R# zB{nBrNv$PaN!s%o)ITmz)whJ#)aXciWzy23HD`{m(6zRE$^0wmJLfXLXYfj=zrxME z_l1bSTr?lFq^iu93|rVg*jRClx_kbh5c$PiJEm78#=X(KWX<<;HI0HQ{|p{m5)U^m z-REc*=^Q*xfZnA;![Jae~jdUexeO_OKoq`Byio^@Ih<2~tdvdTe)<)H9u-cr( z+W9Wp6Q$>Uzy>a2eYLhh&7D90=Yu8m0L#!=mBsqoVCDxYDv2YtDkHH>nigL zFCnxhb^PGb9hb{JK#nmqx?A_dKZCVr9HVMo);XjYPN#fldN|7DaAn#k-EO2~6w~8q zC$TFV!Td5O!WD5VY0o>XbfdrVv^uK8h22z@wiSuS|LJaavgv)hiB@OlvfvY6?(^p! z-b9US*F>SE5J4yFHW<@AHJ@ntVo&7S$y`a=YMpeoX78VVjobRGx#vC?A`L8;T2ApE zOMz@|%VIl=)#y3XBMV+Iu4B-oQD=2#%T6Kc9m_>KIW&wtgm+tu*#4q*&+8e~3a0$> zPgV2D{-Hi0G_n7Zl(z%#C{ucDkQEapie|>g+z9e3L`a&RyKxuehoq4P_e)ZvBGb#j zT#}}8MOWDfd6St7(fSKxi&KMBKeHo9IRzilVjHG`2zf&^Bu%*x?O4!w3D+W?q32q} zBMYt{)YjttwNft8$Yo9D%2L6&>v{%yjLk1S8L6F=OX7!HYmqDDMAF2GaGT8)l`FA? z()6uM(}r1!j5$lw)@lxPyvnY%QVYzPW$Q{-a**C-tqReTG(ETLGWPy)L~!EU z>%w2p=YG4COCzL6KOPB-x1&8+4!d?R7MJv+Q%;NH2`i451Sl<~Wfcl>C~41o=$INo z&5`TEcSjd1)F?`xiz}iPQ`Fm*IScX&i-AX>QRGJEJcMg8uTlVEGnrIl-GZ$=mP#xj}G6jZtB>JA0XNtym3b zDUe&C!Q&|O2I53KL!J{KhMPceGzOHF#FVCcGpG(qTE=R2#a1o^<&x)u5DGElC2S8| zrKNA}@jE2fH!0BcD8kuaEU;@03gY7nJ0~ZcL1WnhqiHUQ`#vsLbRM$serzY3eybbz zC5S?PgybSQDmCJXejI)BBP16gh<2avQwXDDqDF7zn}?*e4;x+4+%lyppZsD0>I7?% z)>HDr?)>eRa ztbVw4=2(*HyA-3O-KI46!WbcGmxj&d&aqRiwf#hkacAgp{kG+h>c_Tj!_=`KdTM*` z>$}fT@@;#$K6i3kg3q#8uJjpF2{{+bQXsqFdN{NiTGK(8o(xJZX_6zSwB-7vDU-%?yci+5=ndwQ=d=oqC|FM<2{T({ zdN0o5N*IYEn2D$7( z-Y(Bw8u~=Jv<;93(smKZFLHut2VvR|&6#Oyu`RK6Fth!@R_4fuJ1191s4tpb&u#sn zvbayh{VSH%?Q7|t<$&UF?K|&*kXDXNW*IPsup+n>X#S8 z2W~KD>7~m;FUj;>+h-s-WJNrssm{~MUy|nD(wF^T@Ov#^7!F%9Ccrv@yl2u7n{brj zIOuBB?i0?m$Nn=qCKq(2)tIsPmn}Oc`}XEEai#y6=lVpsj(3EmN302_Pj$76T%o_Y z+QoLlrnz0gI%w@-b8#<2a?x{HnQdqUB0Ig2C`xIG!SY5DS7GN&q#6>JPs(HjOYo#92H*_Nc=^&89)Qygf`Eb0OOE>3O|EcRIzCSKImP}pR z-L#hXmwlROem$qP51c6CYR^YXZfoB)?)a{Qz+6<)z-J;Qi{^IG2&f*rd<#Ws9e=&o`gX7QTebTD2SyZ@vNu8=w* z$YY2TIFk~G`n<{sBY=HJXGDB~MRQ@JizN4<8F-~Xev{)~5A3vT|o zGBGI09!^@2+U3Mu)gu)%h&s~v`XaU<_rf7kn}|$NhB!gV^CQq3Fc+frO2BqI{GC-_ zjePamm|)CrJJNOS`VV)c>!52vJ-ZfsfO4p(_k&+KPb#;2nuH;zn zNOEc65S<@^xv)NZUY||7{o`J|VC|~XF+uW2Ek`N>piHhD|9x+ZKjHAkVdZqU?}KO; zL4GLnqNq`68OUl9+u5%Ug^>OO`hw?O_(0>xnOE%&_vy2Wu|^>$l%{bswev*5az)go zZy=)=8g0>Y(X@*|8(=O(=SN^J^aam*`(GIMF-3!CZ)TX&?e~$@Bb?f$AXAkjTJX<%%U3KPZrJl@%aSzFkVws3M5R2Jz-B}Le8W{1ePS8NPlAi`I6MmOs?d)iy)0k zPX@J%(bYvD4a_ClWnEcJEWkI2KzcSm$$Gs#&gRT&ul3 zjgU7KYbC8U;-GaKb-_Jhvx}Pt?SJc{koQ^VRVFs*d(dbflPd?(5U!{mAXoC7=y~3` zPhIO5e)FZjxXTdr<>%WH;Y`+vJ_$PQ$Ft7cmN;@0-+t_QIx>VhmSjmzcD~>t(pAi9 z+x30)jUM(-c=Eq~-?shcc3nhr-fT;c7|$f0mVe|gR_bB2XxRj8)P^K1l<6la^5 zDCztNvO(dSG`gD|AF;PXQoYY}29|}no?F%-x$-#yE)DF&@^mzDTSRAZ8 zaYthFJ!Vg>3LAfxT8A7{-KXqKrI(v_M(D%>EDLEMhkBj<6SaeJH#{DWUFFiia%J|D zXSR>J^+4(DAua!3W7h&CMRi3x?urUgkdRbCFt~g)3le9>NGb00W7!1}(L{)Wu=tJT zZ=uwnz?L6o7lfch!65QgLRLZ)BlsZ#ZudBiMvdX)YEdB?KnBr>_^AR>aLqgYxYOs& z2c4>|y)}K$z4zUB-+i}l_jId{=MVB_CtI{|YtC19&EK3JqB|BC`SmNer1dxmA(ntE zA8pQeaEIy46+K(xx16bt=x6D%Ecgv_p^wpyqkG{>dg0t76WdXR2`wFZ_{yAru-sz$ z3g11zTs$U`RES_Mp(PSSU+KOdEW*cFg>@kDBQ)fGyAH?|M4=9SVjAK?|ux^0Av1C}rsqaEju>O(ZG*wMp5`%Aw{>Z+DE!J)c_Vl8qPiOO`J_!=Ki9aBiJL2g|i{iC*VP zof&*&2Js>gY~go9Fc&0AcGXucx7N1wYx$_^^o3JZ^1j_+4TpCKzjknUW?V<}reHk1 zK*pzkYj?_3Epuj$PPW!e)lXa4mFY1g+%5I{q~FV^A13uL8K?O+La)DEE`@gKAqtHy zj*QRL?Jej3DEZWln+LYG+TLXyZC!R}wgpv3-*TLvMuKDfIqqs6AS=7v|xdXyRuqBKTYYU@P^kGAK_{FT$|ECh~xIz1jdcAJgB z)f&fnc+F7nfs^$wp4JRfEVuk%EVywlR?$xX+FSKn(fv8l`gaq(C+H`urd^B(PdAk} zpM3siHgok5RDkL5`NHP=Thsa(5L0G(&u;3f>R+;TRDTf*{xiqOWqpt=pOj)Qw!}s( z?la#1q*K}*IBG+3+~#a%Y^`|3mxanKddbgvx zyRKTXT%JK&hxV?kz3Xf5TH|0Ykz}HT5iFOv7_Hx6zhjlxrJ<7=y?v0H+!ha>`>Bbg zxgW=a=1yj`He&MZO}?QL-}TEBOx z?vS@7J*+ za`U+ut>r=Ou?abPkaTsG=jN=Hr~~h zjH@e|PzN6o8geDBj_N3ZU@oDJ4qk)O>qD0lHI=M8UXS*C2m0L~ypg-|HE_Pq;H6gPS>LgzOVIB6%J(qpeED=OeQF%zUsi&64yC7OBE9T1Jbt zx!5hJ+aZ?`qOTAkvM_R?^Yw+5zS5O`xS~WBbO;TEjKk>A=LSU)%q6t(?tp%$sjoW^ z4|VVnp&?g1ZFH1EFqhCq$N0~?``y*>aD7D4mkQ-xvlx+>N=M)4uMa+Q=$u4QKEHVE znpnsBV6NynkonP09bwfa77Olp88w6HEy#I4@`{{!>)%>#aJ;hSo@#K%8VfQ0&R8&8 z-_HQ_1yf_e$OTyQxYED~$P&5v`lSD0BUl#D!o_G^k!>I5HTLYOW;H9tmR!^l3(j0# z%&Pk4k=|FcyQ_KgYgC7m;z4Y3vgV1Ajp?VJ)qSQJ#`bRQ;=#&U2JJYEV7bi2=+X%0 z;_*37X7znu+Y3KduYc`^wdh8jIWIiDDa{tLKACU)PbuC3*jG_@&AajwBE+L?NofSz z&RmQRcbr@g8MzPRkhqc#6ic!Ze1u2Nl5B(=fv<#yK1SOJ_7#sqz6aVyFc({BBXpIK z+Xs1%Vs!L9<|Fag7H|8jru)H1Fb=unH~Jo#ff2l`F&CqCaO6HIKjPxL-M%L|$F7N# z&$i2Gv9_b#IWMlluCvr4Qe_lFMBOO1S7^)u=+$+SOAzH^8;)FFue**@8bdDlN)WPc zz-uEU5`h*j)>nvN9b$=%$X~UL5FN)4(H(>dl1muD>zTROLdRKn`y6k^f*+{*OKR1l z55|Lux-$Wff=jI0HY*++yjXNFg5@$7qir3GU@p)yKK)j!MNfO#%R8$}-*gqrZQU3T z9?}+KKG<6Q{KWg$d0ij=#%;O#BDK6+Ms^-cbP3h1684vz)#O#AhDiXnfJyjvv zMzCDwVsvQ)bJ-)O**1_+o#uIA8bLUa8sqCG+_>Ko`Ie&=t-Yd)odU9en?9PsSttRBIj4dj6ODkb^L4x*8I*e{-R6` zS*%02 zazPloELXlaRxv`jaD=(!dt()yZ7bG}k#p=uzT%!fBUaQUf?exPgaa*cY+nUn1aq-I z$GPUnN8V)<_q*5qw%W4l1uqf2J;vx@efoZ%Zu`7s<9@fpud5Yvu|9j`h%EClJ!G+$ z<-#iSECRD?BLwSUE=CJC{-^YNk)y~Et1vf$HZvGuQdVAKE=JoG0Jvn`eSdHw_;5wE z=A%{1`*}W>phX9+N9&$@Udp0^M?)Ih)e8-*L;UfKp3gcaH-F#Q#=xtFB?LhO|tKy3eR2G$3?^bM== zo1d|r_j&iu+V5_=yxRZoQLegk`dSE z8^N;pT%C2>2pp05U@q=I*a+@3FoN~j2$sbNmSiJ%&e=kiWFZu1efSM`J&C80!A)Fo z6)sm7usZ{RYLe-j&Yh7itYpB2BS1)mv)4-_n2U9Xm5i&qAHME>u@6I6811h~YiV&rNB7j)FQ(a-E}pU_W9LnVv*`lt_QA;i1+Xvg_K DO3= Date: Mon, 3 Mar 2025 20:32:47 +0800 Subject: [PATCH 6/6] Update default filaments for printers (#8655) * update M1 * update Voron * update Positron * update Biqu * update Eryone * update Folgetech * update Geeetech * update Kingroon * update MagicMaker * update Raise3D * update Rolohaun * update Tronxy * update Kingroon and Tronxy * update Voxelab * update Wanhao * more fix --- resources/profiles/BIQU/machine/BIQU B1.json | 2 +- resources/profiles/BIQU/machine/BIQU BX.json | 2 +- .../machine/BIQU Hurakan (0.4 nozzle).json | 2 +- .../profiles/BIQU/machine/BIQU Hurakan.json | 2 +- .../BIQU/machine/fdm_biqu_common.json | 2 +- .../BIQU/machine/fdm_klipper_common.json | 2 +- .../Chuanying/machine/Chuanying X1.json | 2 +- .../machine/fdm_chuanying_common.json | 2 +- .../Chuanying/machine/fdm_klipper_common.json | 2 +- .../Chuanying/machine/fdm_x1_common.json | 2 +- ...hromaSet 0.4 nozzle - Ender-3 V3 Plus.json | 2 +- ...int ChromaSet 0.4 nozzle - Ender-3 V3.json | 2 +- .../Co Print ChromaSet 0.4 nozzle fast.json | 2 +- .../Co Print ChromaSet 0.4 nozzle.json | 2 +- .../Co Print/machine/Co Print ChromaSet.json | 2 +- .../Co Print/machine/fdm_coprint_common.json | 2 +- .../Creality Generic ABS @Hi-all.json | 2 +- .../Custom/machine/fdm_klipper_common.json | 2 +- .../Custom/machine/fdm_rrf_common.json | 2 +- .../machine/fdm_toolchanger_common.json | 2 +- .../machine/fdm_klipper_common.json | 2 +- .../Elegoo/machine/EC/Elegoo Centauri.json | 2 +- .../machine/ECC/Elegoo Centauri Carbon.json | 2 +- .../Elegoo Neptune 4 (0.2 nozzle).json | 2 +- .../Elegoo Neptune 4 (0.4 nozzle).json | 2 +- .../Elegoo Neptune 4 (0.6 nozzle).json | 2 +- .../Elegoo Neptune 4 (0.8 nozzle).json | 2 +- .../Elegoo Neptune 4 Max (0.2 nozzle).json | 2 +- .../Elegoo Neptune 4 Max (0.4 nozzle).json | 2 +- .../Elegoo Neptune 4 Max (0.6 nozzle).json | 2 +- .../Elegoo Neptune 4 Max (0.8 nozzle).json | 2 +- .../Elegoo/machine/Elegoo Neptune 4 Max.json | 2 +- .../Elegoo Neptune 4 Plus (0.2 nozzle).json | 2 +- .../Elegoo Neptune 4 Plus (0.4 nozzle).json | 2 +- .../Elegoo Neptune 4 Plus (0.6 nozzle).json | 2 +- .../Elegoo Neptune 4 Plus (0.8 nozzle).json | 2 +- .../Elegoo/machine/Elegoo Neptune 4 Plus.json | 3 +- .../Elegoo Neptune 4 Pro (0.2 nozzle).json | 2 +- .../Elegoo Neptune 4 Pro (0.4 nozzle).json | 2 +- .../Elegoo Neptune 4 Pro (0.6 nozzle).json | 2 +- .../Elegoo Neptune 4 Pro (0.8 nozzle).json | 2 +- .../Elegoo/machine/Elegoo Neptune 4 Pro.json | 3 +- .../Elegoo/machine/Elegoo Neptune 4.json | 3 +- .../machine/Elegoo OrangeStorm Giga.json | 2 +- .../machine/Thinker X400 0.4 nozzle.json | 2 +- .../profiles/Eryone/machine/Thinker X400.json | 2 +- .../FlyingBear/machine/S1/FlyingBear S1.json | 2 +- .../machine/fdm_machine_common.json | 2 +- .../Folgertech/machine/Folgertech FT-5.json | 2 +- .../Folgertech/machine/Folgertech FT-6.json | 2 +- .../Folgertech/machine/Folgertech i3.json | 2 +- .../machine/fdm_folgertech_common.json | 2 +- .../machine/Geeetech A10 M 0.4 nozzle.json | 2 +- .../Geeetech/machine/Geeetech A10 M.json | 2 +- .../machine/Geeetech A10 Pro 0.2 nozzle.json | 2 +- .../machine/Geeetech A10 Pro 0.4 nozzle.json | 2 +- .../machine/Geeetech A10 Pro 0.6 nozzle.json | 2 +- .../machine/Geeetech A10 Pro 0.8 nozzle.json | 2 +- .../Geeetech/machine/Geeetech A10 Pro.json | 2 +- .../machine/Geeetech A10 T 0.4 nozzle.json | 2 +- .../Geeetech/machine/Geeetech A10 T.json | 2 +- .../machine/Geeetech A20 0.2 nozzle.json | 2 +- .../machine/Geeetech A20 0.4 nozzle.json | 2 +- .../machine/Geeetech A20 0.6 nozzle.json | 2 +- .../machine/Geeetech A20 0.8 nozzle.json | 2 +- .../machine/Geeetech A20 M 0.4 nozzle.json | 2 +- .../Geeetech/machine/Geeetech A20 M.json | 2 +- .../machine/Geeetech A20 T 0.4 nozzle.json | 2 +- .../Geeetech/machine/Geeetech A20 T.json | 2 +- .../Geeetech/machine/Geeetech A20.json | 2 +- .../machine/Geeetech A30 M 0.4 nozzle.json | 2 +- .../Geeetech/machine/Geeetech A30 M.json | 2 +- .../machine/Geeetech A30 Pro 0.2 nozzle.json | 2 +- .../machine/Geeetech A30 Pro 0.4 nozzle.json | 2 +- .../machine/Geeetech A30 Pro 0.6 nozzle.json | 2 +- .../machine/Geeetech A30 Pro 0.8 nozzle.json | 2 +- .../Geeetech/machine/Geeetech A30 Pro.json | 2 +- .../machine/Geeetech A30 T 0.4 nozzle.json | 2 +- .../Geeetech/machine/Geeetech A30 T.json | 2 +- .../machine/Geeetech M1 0.2 nozzle.json | 2 +- .../machine/Geeetech M1 0.4 nozzle.json | 2 +- .../machine/Geeetech M1 0.6 nozzle.json | 2 +- .../machine/Geeetech M1 0.8 nozzle.json | 2 +- .../Geeetech/machine/Geeetech M1.json | 2 +- .../machine/Geeetech Mizar 0.2 nozzle.json | 2 +- .../machine/Geeetech Mizar 0.4 nozzle.json | 2 +- .../machine/Geeetech Mizar 0.6 nozzle.json | 2 +- .../machine/Geeetech Mizar 0.8 nozzle.json | 2 +- .../machine/Geeetech Mizar M 0.4 nozzle.json | 2 +- .../Geeetech/machine/Geeetech Mizar M.json | 2 +- .../Geeetech Mizar Max 0.2 nozzle.json | 2 +- .../Geeetech Mizar Max 0.4 nozzle.json | 2 +- .../Geeetech Mizar Max 0.6 nozzle.json | 2 +- .../Geeetech Mizar Max 0.8 nozzle.json | 2 +- .../Geeetech/machine/Geeetech Mizar Max.json | 2 +- .../Geeetech Mizar Pro 0.2 nozzle.json | 2 +- .../Geeetech Mizar Pro 0.4 nozzle.json | 2 +- .../Geeetech Mizar Pro 0.6 nozzle.json | 2 +- .../Geeetech Mizar Pro 0.8 nozzle.json | 2 +- .../Geeetech/machine/Geeetech Mizar Pro.json | 2 +- .../machine/Geeetech Mizar S 0.2 nozzle.json | 2 +- .../machine/Geeetech Mizar S 0.4 nozzle.json | 2 +- .../machine/Geeetech Mizar S 0.6 nozzle.json | 2 +- .../machine/Geeetech Mizar S 0.8 nozzle.json | 2 +- .../Geeetech/machine/Geeetech Mizar S.json | 2 +- .../Geeetech/machine/Geeetech Mizar.json | 2 +- .../machine/Geeetech Thunder 0.2 nozzle.json | 2 +- .../machine/Geeetech Thunder 0.4 nozzle.json | 2 +- .../machine/Geeetech Thunder 0.6 nozzle.json | 2 +- .../machine/Geeetech Thunder 0.8 nozzle.json | 2 +- .../Geeetech/machine/Geeetech Thunder.json | 2 +- .../machine/fdm_Geeetech_HS_common.json | 2 +- .../Geeetech/machine/fdm_geeetech_common.json | 2 +- .../machine/fdm_machine_common.json | 2 +- .../machine/HSN/fdm_klipper_common.json | 2 +- .../InfiMech/machine/fdm_klipper_common.json | 2 +- .../machine/Kingroon KLP1 0.4 nozzle.json | 2 +- .../Kingroon/machine/Kingroon KLP1.json | 2 +- .../Kingroon/machine/Kingroon KP3S 3.0.json | 2 +- .../machine/Kingroon KP3S PRO S1.json | 2 +- .../Kingroon KP3S PRO V2 0.4 nozzle.json | 2 +- .../machine/Kingroon KP3S PRO V2.json | 2 +- .../machine/Kingroon KP3S V1 0.4 nozzle.json | 2 +- .../Kingroon/machine/Kingroon KP3S V1.json | 2 +- .../machine/MM BoneKing 0.4 nozzle.json | 2 +- .../MagicMaker/machine/MM BoneKing.json | 2 +- .../machine/MM hj SK 0.4 nozzle.json | 2 +- .../profiles/MagicMaker/machine/MM hj SK.json | 2 +- .../machine/MM hqs SF 0.4 nozzle.json | 2 +- .../MagicMaker/machine/MM hqs SF.json | 2 +- .../machine/MM hqs hj 0.4 nozzle.json | 2 +- .../MagicMaker/machine/MM hqs hj.json | 2 +- .../MagicMaker/machine/MM slb 0.4 nozzle.json | 2 +- .../profiles/MagicMaker/machine/MM slb.json | 2 +- resources/profiles/Mellow/machine/M1.json | 2 +- .../Mellow/machine/fdm_common_M1.json | 2 +- .../Positron3D/machine/The Positron.json | 2 +- .../machine/fdm_common_the_positron.json | 2 +- .../Prusa/machine/Prusa MK4S 0.4 nozzle.json | 2 +- .../Prusa/machine/Prusa MK4S 0.6 nozzle.json | 2 +- .../Prusa/machine/Prusa MK4S 0.8 nozzle.json | 2 +- .../machine/Prusa MK4S HF0.4 nozzle.json | 2 +- .../machine/Prusa MK4S HF0.8 nozzle.json | 2 +- .../machine/fdm_machine_common_mk4s.json | 2 +- .../Qidi/machine/fdm_qidi_common.json | 2 +- .../Raise3D Pro3 0.4 nozzle (Dual).json | 2 +- .../Raise3D Pro3 0.4 nozzle (Left).json | 2 +- .../Raise3D Pro3 0.4 nozzle (Right).json | 2 +- .../Raise3D Pro3 Plus 0.4 nozzle (Dual).json | 2 +- .../Raise3D Pro3 Plus 0.4 nozzle (Left).json | 2 +- .../Raise3D Pro3 Plus 0.4 nozzle (Right).json | 2 +- .../Raise3D/machine/Raise3D Pro3 Plus.json | 2 +- .../Raise3D/machine/Raise3D Pro3.json | 2 +- .../RolohaunDesign/machine/Rook MK1 LDO.json | 2 +- .../machine/fdm_common_Rook MK1 LDO.json | 2 +- .../machine/Tronxy X5SA 400 0.4 nozzle.json | 2 +- .../Tronxy X5SA 400 Marlin Firmware.json | 2 +- .../machine/UltiMaker 2 0.4 nozzle.json | 2 +- .../UltiMaker/machine/UltiMaker 2.json | 2 +- .../Vivedino/machine/Troodon2Klipper.json | 2 +- .../Vivedino/machine/Troodon2RRF.json | 2 +- .../Vivedino/machine/fdm_klipper_common.json | 2 +- .../Vivedino/machine/fdm_rrf_common.json | 2 +- .../profiles/Voron/machine/Voron 0.1.json | 2 +- .../profiles/Voron/machine/Voron 2.4 250.json | 2 +- .../profiles/Voron/machine/Voron 2.4 300.json | 2 +- .../profiles/Voron/machine/Voron 2.4 350.json | 2 +- .../Voron/machine/Voron Switchwire 250.json | 2 +- .../Voron/machine/Voron Trident 250.json | 2 +- .../Voron/machine/Voron Trident 300.json | 2 +- .../Voron/machine/Voron Trident 350.json | 2 +- .../Voron/machine/fdm_klipper_common.json | 2 +- .../machine/Voxelab Aquila X2 0.4 nozzle.json | 2 +- .../Voxelab/machine/Voxelab Aquila X2.json | 2 +- .../Wanhao/machine/Wanhao D12-300.json | 2 +- .../Wanhao/machine/fdm_wanhao_common.json | 2 +- scripts/orca_extra_profile_check.py | 104 +++++++++++++++++- src/libslic3r/PresetBundle.cpp | 2 +- 178 files changed, 281 insertions(+), 180 deletions(-) diff --git a/resources/profiles/BIQU/machine/BIQU B1.json b/resources/profiles/BIQU/machine/BIQU B1.json index c9cfe75c98..c1347bd054 100644 --- a/resources/profiles/BIQU/machine/BIQU B1.json +++ b/resources/profiles/BIQU/machine/BIQU B1.json @@ -8,5 +8,5 @@ "bed_model": "biqu_b1_buildplate_model.stl", "bed_texture": "biqu_b1_buildplate_texture.png", "hotend_model": "biqu_b1_hotend.stl", - "default_materials": "BIQU Generic PLA;BIQU Generic PETG;BIQU Generic ABS" + "default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System" } diff --git a/resources/profiles/BIQU/machine/BIQU BX.json b/resources/profiles/BIQU/machine/BIQU BX.json index e0d6e3d470..e301c0d6eb 100644 --- a/resources/profiles/BIQU/machine/BIQU BX.json +++ b/resources/profiles/BIQU/machine/BIQU BX.json @@ -8,5 +8,5 @@ "bed_model": "biqu_bx_buildplate_model.stl", "bed_texture": "biqu_bx_buildplate_texture.png", "hotend_model": "biqu_bx_hotend.stl", - "default_materials": "BIQU Generic PLA;BIQU Generic PETG;BIQU Generic ABS" + "default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System" } diff --git a/resources/profiles/BIQU/machine/BIQU Hurakan (0.4 nozzle).json b/resources/profiles/BIQU/machine/BIQU Hurakan (0.4 nozzle).json index 3fb4230123..33ae238684 100644 --- a/resources/profiles/BIQU/machine/BIQU Hurakan (0.4 nozzle).json +++ b/resources/profiles/BIQU/machine/BIQU Hurakan (0.4 nozzle).json @@ -138,7 +138,7 @@ "1" ], "default_filament_profile": [ - "BIQU Generic PLA" + "Generic PLA @System" ], "bed_exclude_area": [ "0x0" diff --git a/resources/profiles/BIQU/machine/BIQU Hurakan.json b/resources/profiles/BIQU/machine/BIQU Hurakan.json index ab3e2c804e..9032969e29 100644 --- a/resources/profiles/BIQU/machine/BIQU Hurakan.json +++ b/resources/profiles/BIQU/machine/BIQU Hurakan.json @@ -8,5 +8,5 @@ "bed_model": "biqu_hurakan_buildplate_model.stl", "bed_texture": "biqu_hurakan_buildplate_texture.png", "hotend_model": "biqu_hurakan_hotend.stl", - "default_materials": "BIQU Generic PLA;BIQU Generic PETG;BIQU Generic ABS" + "default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System" } diff --git a/resources/profiles/BIQU/machine/fdm_biqu_common.json b/resources/profiles/BIQU/machine/fdm_biqu_common.json index ce450400f1..e348f8f4d9 100644 --- a/resources/profiles/BIQU/machine/fdm_biqu_common.json +++ b/resources/profiles/BIQU/machine/fdm_biqu_common.json @@ -124,7 +124,7 @@ "1" ], "default_filament_profile": [ - "BIQU Generic PLA" + "Generic PLA @System" ], "bed_exclude_area": [ "0x0" diff --git a/resources/profiles/BIQU/machine/fdm_klipper_common.json b/resources/profiles/BIQU/machine/fdm_klipper_common.json index 71b1ace660..5b32f9618d 100644 --- a/resources/profiles/BIQU/machine/fdm_klipper_common.json +++ b/resources/profiles/BIQU/machine/fdm_klipper_common.json @@ -125,7 +125,7 @@ "1" ], "default_filament_profile": [ - "BIQU Generic PLA" + "Generic PLA @System" ], "bed_exclude_area": [ "0x0" diff --git a/resources/profiles/Chuanying/machine/Chuanying X1.json b/resources/profiles/Chuanying/machine/Chuanying X1.json index f45796d452..a854dcb654 100644 --- a/resources/profiles/Chuanying/machine/Chuanying X1.json +++ b/resources/profiles/Chuanying/machine/Chuanying X1.json @@ -8,5 +8,5 @@ "bed_model": "chuanying_x1_buildplate_model.STL", "bed_texture": "chuanying_x1_buildplate_texture.png", "hotend_model": "chuanying_x1_hotend.STL", - "default_materials": "Flashforge Generic PETG;Flashforge Generic PLA" + "default_materials": "Chuanying Generic PETG;Chuanying Generic PLA" } diff --git a/resources/profiles/Chuanying/machine/fdm_chuanying_common.json b/resources/profiles/Chuanying/machine/fdm_chuanying_common.json index b5714ff2d4..270647dd8c 100644 --- a/resources/profiles/Chuanying/machine/fdm_chuanying_common.json +++ b/resources/profiles/Chuanying/machine/fdm_chuanying_common.json @@ -124,7 +124,7 @@ "1" ], "default_filament_profile": [ - "Flashforge Generic PLA" + "Chuanying Generic PLA" ], "default_print_profile": "0.20mm Standard @Chuanying X1", "bed_exclude_area": [ diff --git a/resources/profiles/Chuanying/machine/fdm_klipper_common.json b/resources/profiles/Chuanying/machine/fdm_klipper_common.json index 673135bc4f..d7558b0e94 100644 --- a/resources/profiles/Chuanying/machine/fdm_klipper_common.json +++ b/resources/profiles/Chuanying/machine/fdm_klipper_common.json @@ -125,7 +125,7 @@ "1" ], "default_filament_profile": [ - "Flashforge Generic ABS" + "Chuanying Generic ABS" ], "default_print_profile": "0.20mm Standard @Chuanying X1", "bed_exclude_area": [ diff --git a/resources/profiles/Chuanying/machine/fdm_x1_common.json b/resources/profiles/Chuanying/machine/fdm_x1_common.json index d90c39cff5..cfff8c12ea 100644 --- a/resources/profiles/Chuanying/machine/fdm_x1_common.json +++ b/resources/profiles/Chuanying/machine/fdm_x1_common.json @@ -37,7 +37,7 @@ "single_extruder_multi_material": "0", "change_filament_gcode": "", "machine_pause_gcode": "M25", - "default_filament_profile": [ "Flashforge Generic PLA" ], + "default_filament_profile": [ "Chuanying Generic PLA" ], "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nG90\nM83\nG1 Z5 F6000\nG1 E-0.2 F800\nG1 X110 Y-110 F6000\nG1 E2 F800\nG1 Y-110 X55 Z0.25 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG1 Y-110 X55 Z0.45 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG92 E0", "machine_end_gcode": "G1 E-3 F3600\nG0 X50 Y50 F30000\nM104 S0 ; turn off temperature", "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]", diff --git a/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle - Ender-3 V3 Plus.json b/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle - Ender-3 V3 Plus.json index d7dbb1cddb..f771cfe5ef 100644 --- a/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle - Ender-3 V3 Plus.json +++ b/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle - Ender-3 V3 Plus.json @@ -105,7 +105,7 @@ "machine_end_gcode": "end_print", "change_filament_gcode": "FILAMENT_CHANGE LAYER_NUM=[layer_num] NEXT_EXTRUDER=[next_extruder]", "default_filament_profile": [ - "Co Print PLA" + "CoPrint Generic PLA" ], "extruder_clearance_radius": [ "65" diff --git a/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle - Ender-3 V3.json b/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle - Ender-3 V3.json index a93a312ae7..c238de36a5 100644 --- a/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle - Ender-3 V3.json +++ b/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle - Ender-3 V3.json @@ -105,7 +105,7 @@ "machine_end_gcode": "end_print", "change_filament_gcode": "FILAMENT_CHANGE LAYER_NUM=[layer_num] NEXT_EXTRUDER=[next_extruder]", "default_filament_profile": [ - "Co Print PLA" + "CoPrint Generic PLA" ], "extruder_clearance_radius": [ "65" diff --git a/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle fast.json b/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle fast.json index ab8b377122..0c4b068fc7 100644 --- a/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle fast.json +++ b/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle fast.json @@ -105,7 +105,7 @@ "machine_end_gcode": "end_print", "change_filament_gcode": "FILAMENT_CHANGE LAYER_NUM=[layer_num] NEXT_EXTRUDER=[next_extruder]", "default_filament_profile": [ - "Co Print PLA" + "CoPrint Generic PLA" ], "extruder_clearance_radius": [ "65" diff --git a/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle.json b/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle.json index 5a6858a137..0e54ac9c83 100644 --- a/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle.json +++ b/resources/profiles/Co Print/machine/Co Print ChromaSet 0.4 nozzle.json @@ -105,7 +105,7 @@ "machine_end_gcode": "end_print", "change_filament_gcode": "FILAMENT_CHANGE LAYER_NUM=[layer_num] NEXT_EXTRUDER=[next_extruder]", "default_filament_profile": [ - "Co Print PLA" + "CoPrint Generic PLA" ], "extruder_clearance_radius": [ "65" diff --git a/resources/profiles/Co Print/machine/Co Print ChromaSet.json b/resources/profiles/Co Print/machine/Co Print ChromaSet.json index a4126a28df..c361aeacc4 100644 --- a/resources/profiles/Co Print/machine/Co Print ChromaSet.json +++ b/resources/profiles/Co Print/machine/Co Print ChromaSet.json @@ -8,5 +8,5 @@ "bed_model": "", "bed_texture": "Co_Print_ChromaSet_buildplate_texture.png", "hotend_model": "", - "default_materials": "Co Print PLA" + "default_materials": "CoPrint Generic PLA" } diff --git a/resources/profiles/Co Print/machine/fdm_coprint_common.json b/resources/profiles/Co Print/machine/fdm_coprint_common.json index 3d13604e33..67c3372693 100644 --- a/resources/profiles/Co Print/machine/fdm_coprint_common.json +++ b/resources/profiles/Co Print/machine/fdm_coprint_common.json @@ -100,7 +100,7 @@ "machine_start_gcode": "start_print EXTRUDER=[initial_extruder] EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]", "machine_end_gcode": "end_print", "default_filament_profile": [ - "Co Print PLA" + "CoPrint Generic PLA" ], "extruder_clearance_radius": [ "65" diff --git a/resources/profiles/Creality/filament/Creality Generic ABS @Hi-all.json b/resources/profiles/Creality/filament/Creality Generic ABS @Hi-all.json index 4f30a0525a..8868260fa9 100644 --- a/resources/profiles/Creality/filament/Creality Generic ABS @Hi-all.json +++ b/resources/profiles/Creality/filament/Creality Generic ABS @Hi-all.json @@ -1,7 +1,7 @@ { "type": "filament", "setting_id": "GFSA04_CREALITY_00", - "name": "Creality Generic ABS @Hi", + "name": "Creality Generic ABS @Hi-all", "from": "system", "instantiation": "true", "inherits": "Creality Generic ABS", diff --git a/resources/profiles/Custom/machine/fdm_klipper_common.json b/resources/profiles/Custom/machine/fdm_klipper_common.json index af307008b9..9ba6b519c5 100644 --- a/resources/profiles/Custom/machine/fdm_klipper_common.json +++ b/resources/profiles/Custom/machine/fdm_klipper_common.json @@ -46,7 +46,7 @@ "single_extruder_multi_material": "1", "change_filament_gcode": "", "wipe": ["1"], - "default_filament_profile": ["My Generic ABS"], + "default_filament_profile": ["Generic PLA @System"], "default_print_profile": "0.20mm Standard @MyKlipper", "bed_exclude_area": ["0x0"], "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM109 S[nozzle_temperature_initial_layer]\nPRINT_START EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single]\n", diff --git a/resources/profiles/Custom/machine/fdm_rrf_common.json b/resources/profiles/Custom/machine/fdm_rrf_common.json index 9dfbfbef03..1c33af0481 100644 --- a/resources/profiles/Custom/machine/fdm_rrf_common.json +++ b/resources/profiles/Custom/machine/fdm_rrf_common.json @@ -124,7 +124,7 @@ "1" ], "default_filament_profile": [ - "My Generic ABS" + "Generic PLA @System" ], "default_print_profile": "0.20mm Standard @MyRRF", "bed_exclude_area": [ diff --git a/resources/profiles/Custom/machine/fdm_toolchanger_common.json b/resources/profiles/Custom/machine/fdm_toolchanger_common.json index e151cf0d4c..0f6ca7d606 100644 --- a/resources/profiles/Custom/machine/fdm_toolchanger_common.json +++ b/resources/profiles/Custom/machine/fdm_toolchanger_common.json @@ -7,7 +7,7 @@ "gcode_flavor": "klipper", "single_extruder_multi_material": "0", "default_filament_profile": [ - "My Generic PLA @MyToolChanger" + "Generic PLA @MyToolChanger" ], "default_print_profile": "0.20mm Standard @MyToolChanger", "max_layer_height": [ diff --git a/resources/profiles/DeltaMaker/machine/fdm_klipper_common.json b/resources/profiles/DeltaMaker/machine/fdm_klipper_common.json index fcfe4d6f72..e739397ba0 100755 --- a/resources/profiles/DeltaMaker/machine/fdm_klipper_common.json +++ b/resources/profiles/DeltaMaker/machine/fdm_klipper_common.json @@ -46,7 +46,7 @@ "single_extruder_multi_material": "1", "change_filament_gcode": "", "wipe": ["1"], - "default_filament_profile": ["DeltaMaker PLA"], + "default_filament_profile": ["DeltaMaker Generic PLA"], "default_print_profile": "0.20mm Standard @DeltaMaker 2 0.35 nozzle", "bed_exclude_area": ["0x0"], "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM109 S[nozzle_temperature_initial_layer]\nSTART_PRINT EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single]\n", diff --git a/resources/profiles/Elegoo/machine/EC/Elegoo Centauri.json b/resources/profiles/Elegoo/machine/EC/Elegoo Centauri.json index d16ef5ea4a..29f7dcb8a4 100644 --- a/resources/profiles/Elegoo/machine/EC/Elegoo Centauri.json +++ b/resources/profiles/Elegoo/machine/EC/Elegoo Centauri.json @@ -8,5 +8,5 @@ "bed_model": "elegoo_C_buildplate_model.stl", "bed_texture": "", "hotend_model": "", - "default_materials": "Elegoo ASA @0.2 nozzle;Elegoo ASA @EC;Elegoo PETG PRO @0.2 nozzle;Elegoo PETG PRO @EC;Elegoo PLA @0.2 nozzle;Elegoo PLA Matte @0.2 nozzle;Elegoo PLA Matte @EC;Elegoo PLA PRO @0.2 nozzle;Elegoo PLA PRO @EC;Elegoo PLA Silk @0.2 nozzle;Elegoo PLA Silk @EC;Elegoo PLA @EC;Elegoo PLA+ @0.2 nozzle;Elegoo PLA+ @EC;Elegoo RAPID PETG @0.2 nozzle;Elegoo RAPID PETG @EC;Elegoo RAPID PETG+ @0.2 nozzle;Elegoo RAPID PETG+ @EC;Elegoo RAPID PLA @0.2 nozzle;Elegoo RAPID PLA @EC;Elegoo RAPID PLA+ @0.2 nozzle;Elegoo RAPID PLA+ @EC;Elegoo TPU 95A @EC" + "default_materials": "Elegoo ASA @0.2 nozzle;Elegoo ASA @EC;Elegoo PETG PRO @0.2 nozzle;Elegoo PETG PRO @EC;Elegoo PLA @0.2 nozzle;Elegoo PLA Matte @0.2 nozzle;Elegoo PLA Matte @EC;Elegoo PLA PRO @0.2 nozzle;Elegoo PLA PRO @EC;Elegoo PLA Silk @0.2 nozzle;Elegoo PLA Silk @EC;Elegoo PLA @EC;Elegoo PLA+ @0.2 nozzle;Elegoo PLA+ @EC;Elegoo RAPID PETG @0.2 nozzle;Elegoo RAPID PETG @EC;Elegoo RAPID PETG+;;Elegoo RAPID PLA+ @EC;Elegoo RAPID PLA+ @0.2 nozzle;Elegoo RAPID PLA+ @EC;Elegoo TPU 95A @EC" } diff --git a/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon.json b/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon.json index 999b98354e..1514f06804 100644 --- a/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon.json +++ b/resources/profiles/Elegoo/machine/ECC/Elegoo Centauri Carbon.json @@ -8,5 +8,5 @@ "bed_model": "elegoo_CC_buildplate_model.stl", "bed_texture": "", "hotend_model": "", - "default_materials": "Elegoo ASA @0.2 nozzle;Elegoo ASA @ECC;Elegoo PETG PRO @0.2 nozzle;Elegoo PETG PRO @ECC;Elegoo PLA @0.2 nozzle;Elegoo PLA Matte @0.2 nozzle;Elegoo PLA Matte @ECC;Elegoo PLA PRO @0.2 nozzle;Elegoo PLA PRO @ECC;Elegoo PLA Silk @0.2 nozzle;Elegoo PLA Silk @ECC;Elegoo PLA-CF @ECC;Elegoo PLA @ECC;Elegoo PLA+ @0.2 nozzle;Elegoo PLA+ @ECC;Elegoo RAPID PETG @0.2 nozzle;Elegoo RAPID PETG @ECC;Elegoo RAPID PETG+ @0.2 nozzle;Elegoo RAPID PETG+ @ECC;Elegoo RAPID PLA @0.2 nozzle;Elegoo RAPID PLA @ECC;Elegoo RAPID PLA+ @0.2 nozzle;Elegoo RAPID PLA+ @ECC;Elegoo TPU 95A @ECC" + "default_materials": "Elegoo ASA @0.2 nozzle;Elegoo ASA @ECC;Elegoo PETG PRO @0.2 nozzle;Elegoo PETG PRO @ECC;Elegoo PLA @0.2 nozzle;Elegoo PLA Matte @0.2 nozzle;Elegoo PLA Matte @ECC;Elegoo PLA PRO @0.2 nozzle;Elegoo PLA PRO @ECC;Elegoo PLA Silk @0.2 nozzle;Elegoo PLA Silk @ECC;Elegoo PLA-CF @ECC;Elegoo PLA @ECC;Elegoo PLA+ @0.2 nozzle;Elegoo PLA+ @ECC;Elegoo RAPID PETG @0.2 nozzle;Elegoo RAPID PETG @ECC;Elegoo RAPID PETG+;Elegoo RAPID PLA+ @0.2 nozzle;Elegoo RAPID PLA+ @ECC;Elegoo TPU 95A @ECC" } diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 (0.2 nozzle).json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 (0.2 nozzle).json index 978b436ae9..912d1e2c3b 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 (0.2 nozzle).json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 (0.2 nozzle).json @@ -51,7 +51,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Elegoo Generic PLA @0.2 nozzle" + "Elegoo Generic PLA" ], "machine_start_gcode": ";ELEGOO NEPTUNE 4\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM190 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nG1 Z10 F300\nG1 X67.5 Y0 F6000\nG1 Z0 F300\nM109 S[nozzle_temperature_initial_layer]\nG92 E0 ;Reset Extruder\nG1 X67.5 Y0 Z0.4 F300 ;Move to start position\nG1 X167.5 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X162.5 F3000\nG92 E0 ;Reset Extruder\n", "machine_end_gcode": ";PRINT_END\nG91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-8 X5 Y5 Z3 F3000 ;Retract\nG90 ;Absolute positionning\nG1 X10 Y220 F6000;Finish print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 (0.4 nozzle).json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 (0.4 nozzle).json index f7af80c318..b12cf69317 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 (0.4 nozzle).json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 (0.4 nozzle).json @@ -51,7 +51,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Elegoo Generic PLA @0.4 nozzle" + "Elegoo Generic PLA" ], "machine_start_gcode": ";ELEGOO NEPTUNE 4\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM190 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nG1 Z10 F300\nG1 X67.5 Y0 F6000\nG1 Z0 F300\nM109 S[nozzle_temperature_initial_layer]\nG92 E0 ;Reset Extruder\nG1 X67.5 Y0 Z0.4 F300 ;Move to start position\nG1 X167.5 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X162.5 F3000\nG92 E0 ;Reset Extruder\n", "machine_end_gcode": ";PRINT_END\nG91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-8 X5 Y5 Z3 F3000 ;Retract\nG90 ;Absolute positionning\nG1 X10 Y220 F6000;Finish print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 (0.6 nozzle).json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 (0.6 nozzle).json index 1e1c35823a..51206a91f5 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 (0.6 nozzle).json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 (0.6 nozzle).json @@ -51,7 +51,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Elegoo Generic PLA @0.6 nozzle" + "Elegoo Generic PLA" ], "machine_start_gcode": ";ELEGOO NEPTUNE 4\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM190 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nG1 Z10 F300\nG1 X67.5 Y0 F6000\nG1 Z0 F300\nM109 S[nozzle_temperature_initial_layer]\nG92 E0 ;Reset Extruder\nG1 X67.5 Y0 Z0.4 F300 ;Move to start position\nG1 X167.5 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X162.5 F3000\nG92 E0 ;Reset Extruder\n", "machine_end_gcode": ";PRINT_END\nG91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-8 X5 Y5 Z3 F3000 ;Retract\nG90 ;Absolute positionning\nG1 X10 Y220 F6000;Finish print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 (0.8 nozzle).json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 (0.8 nozzle).json index 34d51ddb6f..3b1cce7f5a 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 (0.8 nozzle).json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 (0.8 nozzle).json @@ -51,7 +51,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Elegoo Generic PLA @0.8 nozzle" + "Elegoo Generic PLA" ], "machine_start_gcode": ";ELEGOO NEPTUNE 4\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM190 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nG1 Z10 F300\nG1 X67.5 Y0 F6000\nG1 Z0 F300\nM109 S[nozzle_temperature_initial_layer]\nG92 E0 ;Reset Extruder\nG1 X67.5 Y0 Z0.4 F300 ;Move to start position\nG1 X167.5 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X162.5 F3000\nG92 E0 ;Reset Extruder\n", "machine_end_gcode": ";PRINT_END\nG91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-8 X5 Y5 Z3 F3000 ;Retract\nG90 ;Absolute positionning\nG1 X10 Y220 F6000;Finish print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max (0.2 nozzle).json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max (0.2 nozzle).json index ba0d8ddba4..c2a4055d98 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max (0.2 nozzle).json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max (0.2 nozzle).json @@ -78,7 +78,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Elegoo Generic PLA @0.2 nozzle" + "Elegoo Generic PLA" ], "machine_start_gcode": ";ELEGOO NEPTUNE 4 MAX\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM190 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nG1 Z10 F300\nG1 X165 Y0.5 F6000\nG1 Z0 F300\nM109 S[nozzle_temperature_initial_layer]\nG92 E0 ;Reset Extruder\nG1 X165 Y0.5 Z0.4 F300 ;Move to start position\nG1 X265 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X260 F3000\nG92 E0 ;Reset Extruder", "machine_end_gcode": ";PRINT_END\nG91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-8 X5 Y5 Z3 F3000 ;Retract\nG90 ;Absolute positionning\nG1 X10 Y400 F6000;Finish print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max (0.4 nozzle).json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max (0.4 nozzle).json index 14186a34a8..68d3921aad 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max (0.4 nozzle).json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max (0.4 nozzle).json @@ -78,7 +78,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Elegoo Generic PLA @0.4 nozzle" + "Elegoo Generic PLA" ], "machine_start_gcode": ";ELEGOO NEPTUNE 4 MAX\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM190 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nG1 Z10 F300\nG1 X165 Y0.5 F6000\nG1 Z0 F300\nM109 S[nozzle_temperature_initial_layer]\nG92 E0 ;Reset Extruder\nG1 X165 Y0.5 Z0.4 F300 ;Move to start position\nG1 X265 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X260 F3000\nG92 E0 ;Reset Extruder", "machine_end_gcode": ";PRINT_END\nG91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-8 X5 Y5 Z3 F3000 ;Retract\nG90 ;Absolute positionning\nG1 X10 Y400 F6000;Finish print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max (0.6 nozzle).json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max (0.6 nozzle).json index 622e1518bc..113a4058ad 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max (0.6 nozzle).json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max (0.6 nozzle).json @@ -78,7 +78,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Elegoo Generic PLA @0.6 nozzle" + "Elegoo Generic PLA" ], "machine_start_gcode": ";ELEGOO NEPTUNE 4 MAX\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM190 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nG1 Z10 F300\nG1 X165 Y0.5 F6000\nG1 Z0 F300\nM109 S[nozzle_temperature_initial_layer]\nG92 E0 ;Reset Extruder\nG1 X165 Y0.5 Z0.4 F300 ;Move to start position\nG1 X265 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X260 F3000\nG92 E0 ;Reset Extruder", "machine_end_gcode": ";PRINT_END\nG91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-8 X5 Y5 Z3 F3000 ;Retract\nG90 ;Absolute positionning\nG1 X10 Y400 F6000;Finish print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max (0.8 nozzle).json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max (0.8 nozzle).json index 9504347664..a98e56f4c1 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max (0.8 nozzle).json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max (0.8 nozzle).json @@ -78,7 +78,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Elegoo Generic PLA @0.8 nozzle" + "Elegoo Generic PLA" ], "machine_start_gcode": ";ELEGOO NEPTUNE 4 MAX\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM190 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nG1 Z10 F300\nG1 X165 Y0.5 F6000\nG1 Z0 F300\nM109 S[nozzle_temperature_initial_layer]\nG92 E0 ;Reset Extruder\nG1 X165 Y0.5 Z0.4 F300 ;Move to start position\nG1 X265 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X260 F3000\nG92 E0 ;Reset Extruder", "machine_end_gcode": ";PRINT_END\nG91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-8 X5 Y5 Z3 F3000 ;Retract\nG90 ;Absolute positionning\nG1 X10 Y400 F6000;Finish print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max.json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max.json index 0fa4bdef74..4b8be6430b 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max.json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Max.json @@ -9,5 +9,5 @@ "bed_texture": "elegoo_neptune_max_buildplate_texture.png", "bed_exclude_area": ["0x0"], "hotend_model": "", - "default_materials": "Elegoo Generic PLA @0.2 nozzle;Elegoo Generic PETG @0.2 nozzle;Elegoo Generic ABS @0.2 nozzle;Elegoo Generic PLA @0.4 nozzle;Elegoo Generic PETG @0.4 nozzle;Elegoo Generic ABS @0.4 nozzle;Elegoo Generic PLA @0.6 nozzle;Elegoo Generic PETG @0.6 nozzle;Elegoo Generic ABS @0.6 nozzle;Elegoo Generic PLA @0.8 nozzle;Elegoo Generic PETG @0.8 nozzle;Elegoo Generic ABS @0.8 nozzle" + "default_materials": "Elegoo Generic PLA;Elegoo Generic PETG;Elegoo Generic ABS" } diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus (0.2 nozzle).json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus (0.2 nozzle).json index 913aaf9f49..59a277b126 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus (0.2 nozzle).json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus (0.2 nozzle).json @@ -84,7 +84,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Elegoo Generic PLA @0.2 nozzle" + "Elegoo Generic PLA" ], "machine_start_gcode": ";ELEGOO NEPTUNE 4 PLUS\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM190 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nG1 Z10 F300\nG1 X115 Y0.5 F6000\nG1 Z0 F300\nM109 S[nozzle_temperature_initial_layer]\nG92 E0 ;Reset Extruder\nG1 X115 Y0.5 Z0.4 F300 ;Move to start position\nG1 X215.0 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X210 F3000\nG92 E0 ;Reset Extruder", "machine_end_gcode": ";PRINT_END\nG91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-8 X5 Y5 Z3 F3000 ;Retract\nG90 ;Absolute positionning\nG1 X10 Y300 F6000;Finish print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus (0.4 nozzle).json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus (0.4 nozzle).json index 9f84e7856d..8088665920 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus (0.4 nozzle).json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus (0.4 nozzle).json @@ -84,7 +84,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Elegoo Generic PLA @0.4 nozzle" + "Elegoo Generic PLA" ], "machine_start_gcode": ";ELEGOO NEPTUNE 4 PLUS\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM190 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nG1 Z10 F300\nG1 X115 Y0.5 F6000\nG1 Z0 F300\nM109 S[nozzle_temperature_initial_layer]\nG92 E0 ;Reset Extruder\nG1 X115 Y0.5 Z0.4 F300 ;Move to start position\nG1 X215.0 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X210 F3000\nG92 E0 ;Reset Extruder", "machine_end_gcode": ";PRINT_END\nG91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-8 X5 Y5 Z3 F3000 ;Retract\nG90 ;Absolute positionning\nG1 X10 Y300 F6000;Finish print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus (0.6 nozzle).json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus (0.6 nozzle).json index 2fad4a21c9..aff5bc52a5 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus (0.6 nozzle).json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus (0.6 nozzle).json @@ -84,7 +84,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Elegoo Generic PLA @0.6 nozzle" + "Elegoo Generic PLA" ], "machine_start_gcode": ";ELEGOO NEPTUNE 4 PLUS\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM190 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nG1 Z10 F300\nG1 X115 Y0.5 F6000\nG1 Z0 F300\nM109 S[nozzle_temperature_initial_layer]\nG92 E0 ;Reset Extruder\nG1 X115 Y0.5 Z0.4 F300 ;Move to start position\nG1 X215.0 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X210 F3000\nG92 E0 ;Reset Extruder", "machine_end_gcode": ";PRINT_END\nG91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-8 X5 Y5 Z3 F3000 ;Retract\nG90 ;Absolute positionning\nG1 X10 Y300 F6000;Finish print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus (0.8 nozzle).json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus (0.8 nozzle).json index 90774fe1c7..b29c959c03 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus (0.8 nozzle).json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus (0.8 nozzle).json @@ -84,7 +84,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Elegoo Generic PLA @0.8 nozzle" + "Elegoo Generic PLA" ], "machine_start_gcode": ";ELEGOO NEPTUNE 4 PLUS\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM190 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nG1 Z10 F300\nG1 X115 Y0.5 F6000\nG1 Z0 F300\nM109 S[nozzle_temperature_initial_layer]\nG92 E0 ;Reset Extruder\nG1 X115 Y0.5 Z0.4 F300 ;Move to start position\nG1 X215.0 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X210 F3000\nG92 E0 ;Reset Extruder", "machine_end_gcode": ";PRINT_END\nG91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-8 X5 Y5 Z3 F3000 ;Retract\nG90 ;Absolute positionning\nG1 X10 Y300 F6000;Finish print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus.json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus.json index 9d60ea7ac9..68ef6ef2b7 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus.json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Plus.json @@ -9,5 +9,6 @@ "bed_texture": "elegoo_neptune4plus_buildplate_texture.png", "bed_exclude_area": ["0x0"], "hotend_model": "", - "default_materials": "Elegoo Generic PLA @0.2 nozzle;Elegoo Generic PETG @0.2 nozzle;Elegoo Generic ABS @0.2 nozzle;Elegoo Generic PLA @0.4 nozzle;Elegoo Generic PETG @0.4 nozzle;Elegoo Generic ABS @0.4 nozzle;Elegoo Generic PLA @0.6 nozzle;Elegoo Generic PETG @0.6 nozzle;Elegoo Generic ABS @0.6 nozzle;Elegoo Generic PLA @0.8 nozzle;Elegoo Generic PETG @0.8 nozzle;Elegoo Generic ABS @0.8 nozzle" + "default_materials": "Elegoo Generic PLA;Elegoo Generic PETG;Elegoo Generic ABS" + } diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro (0.2 nozzle).json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro (0.2 nozzle).json index 6b3bd4c8e3..320f43565e 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro (0.2 nozzle).json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro (0.2 nozzle).json @@ -50,7 +50,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Elegoo Generic PLA @0.2 nozzle" + "Elegoo Generic PLA" ], "machine_start_gcode": ";ELEGOO NEPTUNE 4 PRO\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM190 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nG1 Z10 F300\nG1 X67.5 Y0 F6000\nG1 Z0 F300\nM109 S[nozzle_temperature_initial_layer]\nG92 E0 ;Reset Extruder\nG1 X67.5 Y0 Z0.4 F300 ;Move to start position\nG1 X167.5 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X162.5 F3000\nG92 E0 ;Reset Extruder", "machine_end_gcode": ";PRINT END\nG91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-8 X5 Y5 Z3 F3000 ;Retract\nG90 ;Absolute positionning\nG1 X10 Y220 F6000;Finish print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro (0.4 nozzle).json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro (0.4 nozzle).json index c4f6baebdb..86d9c7eff7 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro (0.4 nozzle).json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro (0.4 nozzle).json @@ -50,7 +50,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Elegoo Generic PLA @0.4 nozzle" + "Elegoo Generic PLA" ], "machine_start_gcode": ";ELEGOO NEPTUNE 4 PRO\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM190 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nG1 Z10 F300\nG1 X67.5 Y0 F6000\nG1 Z0 F300\nM109 S[nozzle_temperature_initial_layer]\nG92 E0 ;Reset Extruder\nG1 X67.5 Y0 Z0.4 F300 ;Move to start position\nG1 X167.5 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X162.5 F3000\nG92 E0 ;Reset Extruder", "machine_end_gcode": ";PRINT END\nG91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-8 X5 Y5 Z3 F3000 ;Retract\nG90 ;Absolute positionning\nG1 X10 Y220 F6000;Finish print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro (0.6 nozzle).json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro (0.6 nozzle).json index 009e72604f..b5271d4684 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro (0.6 nozzle).json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro (0.6 nozzle).json @@ -50,7 +50,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Elegoo Generic PLA @0.6 nozzle" + "Elegoo Generic PLA" ], "machine_start_gcode": ";ELEGOO NEPTUNE 4 PRO\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM190 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nG1 Z10 F300\nG1 X67.5 Y0 F6000\nG1 Z0 F300\nM109 S[nozzle_temperature_initial_layer]\nG92 E0 ;Reset Extruder\nG1 X67.5 Y0 Z0.4 F300 ;Move to start position\nG1 X167.5 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X162.5 F3000\nG92 E0 ;Reset Extruder", "machine_end_gcode": ";PRINT END\nG91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-8 X5 Y5 Z3 F3000 ;Retract\nG90 ;Absolute positionning\nG1 X10 Y220 F6000;Finish print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro (0.8 nozzle).json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro (0.8 nozzle).json index adb4ec4a76..a6797b1b35 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro (0.8 nozzle).json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro (0.8 nozzle).json @@ -110,7 +110,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Elegoo Generic PLA @0.8 nozzle" + "Elegoo Generic PLA" ], "machine_start_gcode": ";ELEGOO NEPTUNE 4 PRO\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM190 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nG1 Z10 F300\nG1 X67.5 Y0 F6000\nG1 Z0 F300\nM109 S[nozzle_temperature_initial_layer]\nG92 E0 ;Reset Extruder\nG1 X67.5 Y0 Z0.4 F300 ;Move to start position\nG1 X167.5 E30 F400 ;Draw the first line\nG1 Z0.6 F120.0 ;Move to side a little\nG1 X162.5 F3000\nG92 E0 ;Reset Extruder", "machine_end_gcode": ";PRINT END\nG91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-8 X5 Y5 Z3 F3000 ;Retract\nG90 ;Absolute positionning\nG1 X10 Y220 F6000;Finish print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro.json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro.json index 2e4b90290f..6fb800ca79 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro.json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4 Pro.json @@ -8,5 +8,6 @@ "bed_model": "elegoo_neptune4pro_buildplate_model.stl", "bed_texture": "elegoo_neptune4pro_buildplate_texture.png", "hotend_model": "", - "default_materials": "Elegoo Generic PLA @0.2 nozzle;Elegoo Generic PETG @0.2 nozzle;Elegoo Generic ABS @0.2 nozzle;Elegoo Generic PLA @0.4 nozzle;Elegoo Generic PETG @0.4 nozzle;Elegoo Generic ABS @0.4 nozzle;Elegoo Generic PLA @0.6 nozzle;Elegoo Generic PETG @0.6 nozzle;Elegoo Generic ABS @0.6 nozzle;Elegoo Generic PLA @0.8 nozzle;Elegoo Generic PETG @0.8 nozzle;Elegoo Generic ABS @0.8 nozzle" + "default_materials": "Elegoo Generic PLA;Elegoo Generic PETG;Elegoo Generic ABS" + } diff --git a/resources/profiles/Elegoo/machine/Elegoo Neptune 4.json b/resources/profiles/Elegoo/machine/Elegoo Neptune 4.json index 4cdf00dd03..e9f3439647 100644 --- a/resources/profiles/Elegoo/machine/Elegoo Neptune 4.json +++ b/resources/profiles/Elegoo/machine/Elegoo Neptune 4.json @@ -8,5 +8,6 @@ "bed_model": "elegoo_neptune4_buildplate_model.stl", "bed_texture": "elegoo_neptune4_buildplate_texture.png", "hotend_model": "", - "default_materials": "Elegoo Generic PLA @0.2 nozzle;Elegoo Generic PETG @0.2 nozzle;Elegoo Generic ABS @0.2 nozzle;Elegoo Generic PLA @0.4 nozzle;Elegoo Generic PETG @0.4 nozzle;Elegoo Generic ABS @0.4 nozzle;Elegoo Generic PLA @0.6 nozzle;Elegoo Generic PETG @0.6 nozzle;Elegoo Generic ABS @0.6 nozzle;Elegoo Generic PLA @0.8 nozzle;Elegoo Generic PETG @0.8 nozzle;Elegoo Generic ABS @0.8 nozzle" + "default_materials": "Elegoo Generic PLA;Elegoo Generic PETG;Elegoo Generic ABS" + } diff --git a/resources/profiles/Elegoo/machine/Elegoo OrangeStorm Giga.json b/resources/profiles/Elegoo/machine/Elegoo OrangeStorm Giga.json index 610eabd723..986ff57a8f 100644 --- a/resources/profiles/Elegoo/machine/Elegoo OrangeStorm Giga.json +++ b/resources/profiles/Elegoo/machine/Elegoo OrangeStorm Giga.json @@ -8,5 +8,5 @@ "machine_tech": "FFF", "family": "Elegoo", "hotend_model": "", - "default_materials": "Elegoo PLA @Elegoo Giga;Elegoo PETG PRO @Elegoo Giga;Elegoo ABS @Elegoo Giga;Elegoo PLA Silk" + "default_materials": "Elegoo PLA @Elegoo Giga;Elegoo PETG PRO @Elegoo Giga;Elegoo PLA Silk" } \ No newline at end of file diff --git a/resources/profiles/Eryone/machine/Thinker X400 0.4 nozzle.json b/resources/profiles/Eryone/machine/Thinker X400 0.4 nozzle.json index f2f7ce92f7..d5ea9d7bde 100644 --- a/resources/profiles/Eryone/machine/Thinker X400 0.4 nozzle.json +++ b/resources/profiles/Eryone/machine/Thinker X400 0.4 nozzle.json @@ -6,7 +6,7 @@ "instantiation": "true", "printer_model": "Thinker X400", "default_print_profile": "0.20mm Standard @Thinker X400", - "default_filament_profile":"Eryone Generic PLA;Eryone Generic ABS;Eryone Generic ASA;Eryone Generic PETG;Eryone Generic Silk PLA;Eryone Generic TPU", + "default_filament_profile":"Generic PLA @System;Generic ABS @System;Generic ASA @System;Generic PETG @System;Generic PLA Silk @System;Generic TPU @System", "auxiliary_fan": "0", "bed_custom_model": "", "bed_custom_texture": "", diff --git a/resources/profiles/Eryone/machine/Thinker X400.json b/resources/profiles/Eryone/machine/Thinker X400.json index 42dd7724c5..007bba55d6 100644 --- a/resources/profiles/Eryone/machine/Thinker X400.json +++ b/resources/profiles/Eryone/machine/Thinker X400.json @@ -8,5 +8,5 @@ "bed_model": "X400_bed.stl", "bed_texture": "Thinker_texture.png", "hotend_model": "", - "default_materials": "Eryone Generic PLA;Eryone Generic ABS;Eryone Generic ASA;Eryone Generic PETG;Eryone Generic Silk PLA;Eryone Generic TPU" + "default_materials": "Generic PLA @System;Generic ABS @System;Generic ASA @System;Generic PETG @System;Generic PLA Silk @System;Generic TPU @System" } diff --git a/resources/profiles/FlyingBear/machine/S1/FlyingBear S1.json b/resources/profiles/FlyingBear/machine/S1/FlyingBear S1.json index d17147dae3..9d10c23ea2 100644 --- a/resources/profiles/FlyingBear/machine/S1/FlyingBear S1.json +++ b/resources/profiles/FlyingBear/machine/S1/FlyingBear S1.json @@ -8,5 +8,5 @@ "bed_model": "FlyingBear S1-bed.stl", "bed_texture": "FlyingBear S1-texture.png", "hotend_model": "", - "default_materials": "FlyingBear Generic ABS;FlyingBear Generic PA-CF;FlyingBear Generic PC;FlyingBear Generic PETG;FlyingBear Generic PLA;InFlyingBearfiMech Generic TPU" + "default_materials": "FlyingBear Generic ABS;FlyingBear Generic PA-CF;FlyingBear Generic PC;FlyingBear Generic PETG;FlyingBear Generic PLA;FlyingBear Generic TPU" } \ No newline at end of file diff --git a/resources/profiles/FlyingBear/machine/fdm_machine_common.json b/resources/profiles/FlyingBear/machine/fdm_machine_common.json index e6119fa451..059612edd8 100644 --- a/resources/profiles/FlyingBear/machine/fdm_machine_common.json +++ b/resources/profiles/FlyingBear/machine/fdm_machine_common.json @@ -16,7 +16,7 @@ "cooling_tube_length": "5", "cooling_tube_retraction": "91.5", "default_filament_profile": [ - "FlyingBear PLA" + "FlyingBear Generic PLA" ], "default_print_profile": "0.20mm Standard @FlyingBear Reborn3", "deretraction_speed": [ diff --git a/resources/profiles/Folgertech/machine/Folgertech FT-5.json b/resources/profiles/Folgertech/machine/Folgertech FT-5.json index 24c9d0f2c2..7efbc0272d 100644 --- a/resources/profiles/Folgertech/machine/Folgertech FT-5.json +++ b/resources/profiles/Folgertech/machine/Folgertech FT-5.json @@ -8,5 +8,5 @@ "bed_model": "Folgertech_FT5_buildplate_model.stl", "bed_texture": "Folgertech_FT5_buildplate_texture.png", "hotend_model": "hotend.stl", - "default_materials": "Folgertech Generic PLA;Folgertech Generic PETG;Folgertech Generic ABS;" + "default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System;" } diff --git a/resources/profiles/Folgertech/machine/Folgertech FT-6.json b/resources/profiles/Folgertech/machine/Folgertech FT-6.json index a4c730693b..bbc17bf3e7 100644 --- a/resources/profiles/Folgertech/machine/Folgertech FT-6.json +++ b/resources/profiles/Folgertech/machine/Folgertech FT-6.json @@ -9,5 +9,5 @@ "bed_texture": "Folgertech_FT6_buildplate_texture.png", "hotend_model": "hotend.stl", "extruders_count": "2", - "default_materials": "Folgertech Generic PLA;Folgertech Generic PETG;Folgertech Generic ABS;Folgertech Generic TPU;" + "default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System;" } diff --git a/resources/profiles/Folgertech/machine/Folgertech i3.json b/resources/profiles/Folgertech/machine/Folgertech i3.json index 0dfd567754..57ad03d107 100644 --- a/resources/profiles/Folgertech/machine/Folgertech i3.json +++ b/resources/profiles/Folgertech/machine/Folgertech i3.json @@ -8,5 +8,5 @@ "bed_model": "Folgertech_i3_buildplate_model.stl", "bed_texture": "Folgertech_i3_buildplate_texture.png", "hotend_model": "hotend.stl", - "default_materials": "Folgertech Generic PLA;Folgertech Generic PETG;Folgertech Generic ABS;" + "default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System;" } diff --git a/resources/profiles/Folgertech/machine/fdm_folgertech_common.json b/resources/profiles/Folgertech/machine/fdm_folgertech_common.json index 940582b764..0e24a55421 100644 --- a/resources/profiles/Folgertech/machine/fdm_folgertech_common.json +++ b/resources/profiles/Folgertech/machine/fdm_folgertech_common.json @@ -123,7 +123,7 @@ "1" ], "default_filament_profile": [ - "Generic PLA @folgertech" + "Generic PLA @System" ], "default_print_profile": "0.20mm Standard @FT 0.4 Nozzle", "bed_exclude_area": [ diff --git a/resources/profiles/Geeetech/machine/Geeetech A10 M 0.4 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A10 M 0.4 nozzle.json index fb4472c0a3..4bf208a40b 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A10 M 0.4 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A10 M 0.4 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A10 M", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.4", "default_print_profile": "0.20mm Standard @Geeetech common", diff --git a/resources/profiles/Geeetech/machine/Geeetech A10 M.json b/resources/profiles/Geeetech/machine/Geeetech A10 M.json index f7c779522c..ec8bf63afb 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A10 M.json +++ b/resources/profiles/Geeetech/machine/Geeetech A10 M.json @@ -8,5 +8,5 @@ "bed_model": "220x220.stl", "bed_texture": "Geeetech_buildplate_texture.png", "hotend_model": "", - "default_materials": "Generic PLA @Geeetech;Generic PLA @Geeetech_FastSpeed;Generic PETG @Geeetech;Generic ABS @Geeetech;Generic TPU @Geeetech" + "default_materials": "Generic PLA @System;Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/Geeetech/machine/Geeetech A10 Pro 0.2 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A10 Pro 0.2 nozzle.json index 109df68705..ad7ea5a8f8 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A10 Pro 0.2 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A10 Pro 0.2 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A10 Pro", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.2", "default_print_profile": "0.10mm Standard @Geeetech common 0.2 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech A10 Pro 0.4 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A10 Pro 0.4 nozzle.json index eda6539f52..ef94e84cdd 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A10 Pro 0.4 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A10 Pro 0.4 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A10 Pro", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.4", "default_print_profile": "0.20mm Standard @Geeetech common", diff --git a/resources/profiles/Geeetech/machine/Geeetech A10 Pro 0.6 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A10 Pro 0.6 nozzle.json index 96e4d6e5ae..911837f911 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A10 Pro 0.6 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A10 Pro 0.6 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A10 Pro", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.6", "default_print_profile": "0.30mm Standard @Geeetech common 0.6 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech A10 Pro 0.8 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A10 Pro 0.8 nozzle.json index 1bbfba4063..5735289835 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A10 Pro 0.8 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A10 Pro 0.8 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A10 Pro", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.8", "default_print_profile": "0.40mm Standard @Geeetech common 0.8 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech A10 Pro.json b/resources/profiles/Geeetech/machine/Geeetech A10 Pro.json index 841ea895eb..e002529d04 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A10 Pro.json +++ b/resources/profiles/Geeetech/machine/Geeetech A10 Pro.json @@ -8,5 +8,5 @@ "bed_model": "220x220.stl", "bed_texture": "Geeetech_buildplate_texture.png", "hotend_model": "", - "default_materials": "Generic PLA @Geeetech;Generic PLA @Geeetech_FastSpeed;Generic PETG @Geeetech;Generic ABS @Geeetech;Generic TPU @Geeetech" + "default_materials": "Generic PLA @System;Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/Geeetech/machine/Geeetech A10 T 0.4 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A10 T 0.4 nozzle.json index e175610819..62b38b8185 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A10 T 0.4 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A10 T 0.4 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A10 T", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.4", "default_print_profile": "0.20mm Standard @Geeetech common", diff --git a/resources/profiles/Geeetech/machine/Geeetech A10 T.json b/resources/profiles/Geeetech/machine/Geeetech A10 T.json index b16b3009ea..e534368405 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A10 T.json +++ b/resources/profiles/Geeetech/machine/Geeetech A10 T.json @@ -8,5 +8,5 @@ "bed_model": "220x220.stl", "bed_texture": "Geeetech_buildplate_texture.png", "hotend_model": "", - "default_materials": "Generic PLA @Geeetech;Generic PLA @Geeetech_FastSpeed;Generic PETG @Geeetech;Generic ABS @Geeetech;Generic TPU @Geeetech" + "default_materials": "Generic PLA @System;Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/Geeetech/machine/Geeetech A20 0.2 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A20 0.2 nozzle.json index bdfde666ae..7da93521bf 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A20 0.2 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A20 0.2 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A20", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.2", "default_print_profile": "0.10mm Standard @Geeetech common 0.2 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech A20 0.4 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A20 0.4 nozzle.json index f1b2e3411e..8e0fc0d92a 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A20 0.4 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A20 0.4 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A20", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.4", "default_print_profile": "0.20mm Standard @Geeetech common", diff --git a/resources/profiles/Geeetech/machine/Geeetech A20 0.6 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A20 0.6 nozzle.json index 8fdd32c9d9..f4bfebf406 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A20 0.6 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A20 0.6 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A20", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.6", "default_print_profile": "0.30mm Standard @Geeetech common 0.6 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech A20 0.8 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A20 0.8 nozzle.json index bdb7546609..59f577f51d 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A20 0.8 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A20 0.8 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A20", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.8", "default_print_profile": "0.40mm Standard @Geeetech common 0.8 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech A20 M 0.4 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A20 M 0.4 nozzle.json index 141331df75..f085b0fa7d 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A20 M 0.4 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A20 M 0.4 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A20 M", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.4", "default_print_profile": "0.20mm Standard @Geeetech common", diff --git a/resources/profiles/Geeetech/machine/Geeetech A20 M.json b/resources/profiles/Geeetech/machine/Geeetech A20 M.json index e2254b1317..71d6a56852 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A20 M.json +++ b/resources/profiles/Geeetech/machine/Geeetech A20 M.json @@ -8,5 +8,5 @@ "bed_model": "250x250.stl", "bed_texture": "Geeetech_buildplate_texture.png", "hotend_model": "", - "default_materials": "Generic PLA @Geeetech;Generic PLA @Geeetech_FastSpeed;Generic PETG @Geeetech;Generic ABS @Geeetech;Generic TPU @Geeetech" + "default_materials": "Generic PLA @System;Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/Geeetech/machine/Geeetech A20 T 0.4 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A20 T 0.4 nozzle.json index b5853462c8..9730d8ec29 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A20 T 0.4 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A20 T 0.4 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A20 T", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.4", "default_print_profile": "0.20mm Standard @Geeetech common", diff --git a/resources/profiles/Geeetech/machine/Geeetech A20 T.json b/resources/profiles/Geeetech/machine/Geeetech A20 T.json index c6a13232dd..6c13265f2d 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A20 T.json +++ b/resources/profiles/Geeetech/machine/Geeetech A20 T.json @@ -8,5 +8,5 @@ "bed_model": "250x250.stl", "bed_texture": "Geeetech_buildplate_texture.png", "hotend_model": "", - "default_materials": "Generic PLA @Geeetech;Generic PLA @Geeetech_FastSpeed;Generic PETG @Geeetech;Generic ABS @Geeetech;Generic TPU @Geeetech" + "default_materials": "Generic PLA @System;Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/Geeetech/machine/Geeetech A20.json b/resources/profiles/Geeetech/machine/Geeetech A20.json index a794b5cdf0..0d9cdc40bb 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A20.json +++ b/resources/profiles/Geeetech/machine/Geeetech A20.json @@ -8,5 +8,5 @@ "bed_model": "250x250.stl", "bed_texture": "Geeetech_buildplate_texture.png", "hotend_model": "", - "default_materials": "Generic PLA @Geeetech;Generic PLA @Geeetech_FastSpeed;Generic PETG @Geeetech;Generic ABS @Geeetech;Generic TPU @Geeetech" + "default_materials": "Generic PLA @System;Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/Geeetech/machine/Geeetech A30 M 0.4 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A30 M 0.4 nozzle.json index ddeab97496..8663a7d062 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A30 M 0.4 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A30 M 0.4 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A30 M", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.4", "default_print_profile": "0.20mm Standard @Geeetech common", diff --git a/resources/profiles/Geeetech/machine/Geeetech A30 M.json b/resources/profiles/Geeetech/machine/Geeetech A30 M.json index 67e7537339..90351c1113 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A30 M.json +++ b/resources/profiles/Geeetech/machine/Geeetech A30 M.json @@ -8,5 +8,5 @@ "bed_model": "320x320.stl", "bed_texture": "Geeetech_buildplate_texture.png", "hotend_model": "", - "default_materials": "Generic PLA @Geeetech;Generic PLA @Geeetech_FastSpeed;Generic PETG @Geeetech;Generic ABS @Geeetech;Generic TPU @Geeetech" + "default_materials": "Generic PLA @System;Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/Geeetech/machine/Geeetech A30 Pro 0.2 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A30 Pro 0.2 nozzle.json index cf58f5394e..6f95065e58 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A30 Pro 0.2 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A30 Pro 0.2 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A30 Pro", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.2", "default_print_profile": "0.10mm Standard @Geeetech common 0.2 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech A30 Pro 0.4 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A30 Pro 0.4 nozzle.json index fba94da697..6b5fb9e4f8 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A30 Pro 0.4 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A30 Pro 0.4 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A30 Pro", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.4", "default_print_profile": "0.20mm Standard @Geeetech common", diff --git a/resources/profiles/Geeetech/machine/Geeetech A30 Pro 0.6 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A30 Pro 0.6 nozzle.json index bad3961425..9da1052941 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A30 Pro 0.6 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A30 Pro 0.6 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A30 Pro", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.6", "default_print_profile": "0.30mm Standard @Geeetech common 0.6 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech A30 Pro 0.8 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A30 Pro 0.8 nozzle.json index a79809d97b..6d48c263fd 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A30 Pro 0.8 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A30 Pro 0.8 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A30 Pro", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.8", "default_print_profile": "0.40mm Standard @Geeetech common 0.8 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech A30 Pro.json b/resources/profiles/Geeetech/machine/Geeetech A30 Pro.json index 554bb6c63d..6947db3572 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A30 Pro.json +++ b/resources/profiles/Geeetech/machine/Geeetech A30 Pro.json @@ -8,5 +8,5 @@ "bed_model": "320x320.stl", "bed_texture": "Geeetech_buildplate_texture.png", "hotend_model": "", - "default_materials": "Generic PLA @Geeetech;Generic PLA @Geeetech_FastSpeed;Generic PETG @Geeetech;Generic ABS @Geeetech;Generic TPU @Geeetech" + "default_materials": "Generic PLA @System;Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/Geeetech/machine/Geeetech A30 T 0.4 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech A30 T 0.4 nozzle.json index b0308ceef3..a1a2848b35 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A30 T 0.4 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech A30 T 0.4 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech A30 T", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.4", "default_print_profile": "0.20mm Standard @Geeetech common", diff --git a/resources/profiles/Geeetech/machine/Geeetech A30 T.json b/resources/profiles/Geeetech/machine/Geeetech A30 T.json index 37fe99d584..23d87407aa 100644 --- a/resources/profiles/Geeetech/machine/Geeetech A30 T.json +++ b/resources/profiles/Geeetech/machine/Geeetech A30 T.json @@ -8,5 +8,5 @@ "bed_model": "320x320.stl", "bed_texture": "Geeetech_buildplate_texture.png", "hotend_model": "", - "default_materials": "Generic PLA @Geeetech;Generic PLA @Geeetech_FastSpeed;Generic PETG @Geeetech;Generic ABS @Geeetech;Generic TPU @Geeetech" + "default_materials": "Generic PLA @System;Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/Geeetech/machine/Geeetech M1 0.2 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech M1 0.2 nozzle.json index 3e5bb81c6e..f1868c1c6d 100644 --- a/resources/profiles/Geeetech/machine/Geeetech M1 0.2 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech M1 0.2 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech M1", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.2", "default_print_profile": "0.10mm Standard @Geeetech M1 0.2 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech M1 0.4 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech M1 0.4 nozzle.json index 04d69908c7..1db3babab7 100644 --- a/resources/profiles/Geeetech/machine/Geeetech M1 0.4 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech M1 0.4 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech M1", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.4", "default_print_profile": "0.20mm Standard @Geeetech M1", diff --git a/resources/profiles/Geeetech/machine/Geeetech M1 0.6 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech M1 0.6 nozzle.json index b87332df04..c019c0a648 100644 --- a/resources/profiles/Geeetech/machine/Geeetech M1 0.6 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech M1 0.6 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech M1", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.6", "default_print_profile": "0.30mm Standard @Geeetech M1 0.6 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech M1 0.8 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech M1 0.8 nozzle.json index 8b4b0c9490..a61f2adb19 100644 --- a/resources/profiles/Geeetech/machine/Geeetech M1 0.8 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech M1 0.8 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech M1", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.8", "default_print_profile": "0.44mm Draft @Geeetech M1 0.8 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech M1.json b/resources/profiles/Geeetech/machine/Geeetech M1.json index 47e7942e80..d3dc592a9a 100644 --- a/resources/profiles/Geeetech/machine/Geeetech M1.json +++ b/resources/profiles/Geeetech/machine/Geeetech M1.json @@ -8,5 +8,5 @@ "bed_model": "105x105.stl", "bed_texture": "Geeetech_buildplate_texture.png", "hotend_model": "", - "default_materials": "Generic PLA @Geeetech;Generic PLA @Geeetech_FastSpeed;Generic PETG @Geeetech;Generic TPU @Geeetech" + "default_materials": "Generic PLA @System;Generic PLA @System;Generic PETG @System;Generic TPU @System" } diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar 0.2 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Mizar 0.2 nozzle.json index 505b17c4ef..856f6e65f8 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar 0.2 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar 0.2 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Mizar", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.2", "default_print_profile": "0.10mm Standard @Geeetech common 0.2 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar 0.4 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Mizar 0.4 nozzle.json index def7505a2c..07bfc5d0e7 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar 0.4 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar 0.4 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Mizar", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.4", "default_print_profile": "0.20mm Standard @Geeetech common", diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar 0.6 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Mizar 0.6 nozzle.json index e5e3a26763..ce612cb6da 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar 0.6 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar 0.6 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Mizar", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.6", "default_print_profile": "0.30mm Standard @Geeetech common 0.6 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar 0.8 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Mizar 0.8 nozzle.json index a96a25ab04..1a226553bb 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar 0.8 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar 0.8 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Mizar", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.8", "default_print_profile": "0.40mm Standard @Geeetech common 0.8 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar M 0.4 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Mizar M 0.4 nozzle.json index b2f0c5dac8..d035db9eab 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar M 0.4 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar M 0.4 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Mizar M", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.4", "default_print_profile": "0.20mm Standard @Geeetech common", diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar M.json b/resources/profiles/Geeetech/machine/Geeetech Mizar M.json index bf81f8a3b7..9837a53796 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar M.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar M.json @@ -8,5 +8,5 @@ "bed_model": "255x255.stl", "bed_texture": "Geeetech_buildplate_texture.png", "hotend_model": "", - "default_materials": "Generic PLA @Geeetech;Generic PLA @Geeetech_FastSpeed;Generic PETG @Geeetech;Generic ABS @Geeetech;Generic TPU @Geeetech" + "default_materials": "Generic PLA @System;Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar Max 0.2 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Mizar Max 0.2 nozzle.json index 7d42429b20..58ab09271b 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar Max 0.2 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar Max 0.2 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Mizar Max", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.2", "default_print_profile": "0.10mm Standard @Geeetech common 0.2 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar Max 0.4 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Mizar Max 0.4 nozzle.json index b43f94739e..b73884d57b 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar Max 0.4 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar Max 0.4 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Mizar Max", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.4", "default_print_profile": "0.20mm Standard @Geeetech common", diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar Max 0.6 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Mizar Max 0.6 nozzle.json index 6c83c269a9..f10449b8ff 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar Max 0.6 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar Max 0.6 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Mizar Max", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.6", "default_print_profile": "0.30mm Standard @Geeetech common 0.6 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar Max 0.8 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Mizar Max 0.8 nozzle.json index 70f50d2317..4a813ffb79 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar Max 0.8 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar Max 0.8 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Mizar Max", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.8", "default_print_profile": "0.40mm Standard @Geeetech common 0.8 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar Max.json b/resources/profiles/Geeetech/machine/Geeetech Mizar Max.json index 96315ef5c0..1d7eafa302 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar Max.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar Max.json @@ -8,5 +8,5 @@ "bed_model": "320x320.stl", "bed_texture": "Geeetech_buildplate_texture.png", "hotend_model": "", - "default_materials": "Generic PLA @Geeetech;Generic PLA @Geeetech_FastSpeed;Generic PETG @Geeetech;Generic ABS @Geeetech;Generic TPU @Geeetech" + "default_materials": "Generic PLA @System;Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar Pro 0.2 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Mizar Pro 0.2 nozzle.json index ba20b2cb21..8fed9ee9c1 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar Pro 0.2 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar Pro 0.2 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Mizar Pro", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.2", "default_print_profile": "0.10mm Standard @Geeetech common 0.2 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar Pro 0.4 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Mizar Pro 0.4 nozzle.json index b550fe11a8..2c70f4defe 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar Pro 0.4 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar Pro 0.4 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Mizar Pro", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.4", "default_print_profile": "0.20mm Standard @Geeetech common", diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar Pro 0.6 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Mizar Pro 0.6 nozzle.json index c9013f3c9e..c4eabd1379 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar Pro 0.6 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar Pro 0.6 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Mizar Pro", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.6", "default_print_profile": "0.30mm Standard @Geeetech common 0.6 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar Pro 0.8 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Mizar Pro 0.8 nozzle.json index aab1d0bca7..41120c0abf 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar Pro 0.8 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar Pro 0.8 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Mizar Pro", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.8", "default_print_profile": "0.40mm Standard @Geeetech common 0.8 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar Pro.json b/resources/profiles/Geeetech/machine/Geeetech Mizar Pro.json index b00291ab55..a9ec8b504c 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar Pro.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar Pro.json @@ -8,5 +8,5 @@ "bed_model": "220x220.stl", "bed_texture": "Geeetech_buildplate_texture.png", "hotend_model": "", - "default_materials": "Generic PLA @Geeetech;Generic PLA @Geeetech_FastSpeed;Generic PETG @Geeetech;Generic ABS @Geeetech;Generic TPU @Geeetech" + "default_materials": "Generic PLA @System;Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar S 0.2 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Mizar S 0.2 nozzle.json index d80f6430b8..d4891b2078 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar S 0.2 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar S 0.2 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Mizar S", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.2", "default_print_profile": "0.10mm Standard @Geeetech common 0.2 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar S 0.4 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Mizar S 0.4 nozzle.json index a1f829d5a6..70c7cfafba 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar S 0.4 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar S 0.4 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Mizar S", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.4", "default_print_profile": "0.20mm Standard @Geeetech common", diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar S 0.6 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Mizar S 0.6 nozzle.json index 31dc2a90f1..4b141c8fc3 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar S 0.6 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar S 0.6 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Mizar S", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.6", "default_print_profile": "0.30mm Standard @Geeetech common 0.6 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar S 0.8 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Mizar S 0.8 nozzle.json index 7136d696d8..0e1f63386f 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar S 0.8 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar S 0.8 nozzle.json @@ -7,7 +7,7 @@ "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Mizar S", "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "printer_variant": "0.8", "default_print_profile": "0.40mm Standard @Geeetech common 0.8 nozzle", diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar S.json b/resources/profiles/Geeetech/machine/Geeetech Mizar S.json index 745e5665ec..0152d067d2 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar S.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar S.json @@ -8,5 +8,5 @@ "bed_model": "255x255.stl", "bed_texture": "Geeetech_buildplate_texture.png", "hotend_model": "", - "default_materials": "Generic PLA @Geeetech;Generic PLA @Geeetech_FastSpeed;Generic PETG @Geeetech;Generic ABS @Geeetech;Generic TPU @Geeetech" + "default_materials": "Generic PLA @System;Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/Geeetech/machine/Geeetech Mizar.json b/resources/profiles/Geeetech/machine/Geeetech Mizar.json index 81793e562c..021588dab0 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Mizar.json +++ b/resources/profiles/Geeetech/machine/Geeetech Mizar.json @@ -8,5 +8,5 @@ "bed_model": "220x220.stl", "bed_texture": "Geeetech_buildplate_texture.png", "hotend_model": "", - "default_materials": "Generic PLA @Geeetech;Generic PLA @Geeetech_FastSpeed;Generic PETG @Geeetech;Generic ABS @Geeetech;Generic TPU @Geeetech" + "default_materials": "Generic PLA @System;Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/Geeetech/machine/Geeetech Thunder 0.2 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Thunder 0.2 nozzle.json index 176d835251..eca75e5725 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Thunder 0.2 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Thunder 0.2 nozzle.json @@ -6,7 +6,7 @@ "instantiation": "true", "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Thunder", - "default_filament_profile": ["Generic PLA @Geeetech_FastSpeed"], + "default_filament_profile": ["Generic PLA @System"], "extruder_type": ["Bowden"], "nozzle_diameter": ["0.2"], "printer_variant": "0.2", diff --git a/resources/profiles/Geeetech/machine/Geeetech Thunder 0.4 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Thunder 0.4 nozzle.json index 1ba183c30c..d1167f0d5d 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Thunder 0.4 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Thunder 0.4 nozzle.json @@ -6,7 +6,7 @@ "instantiation": "true", "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Thunder", - "default_filament_profile": ["Generic PLA @Geeetech_FastSpeed"], + "default_filament_profile": ["Generic PLA @System"], "extruder_type": ["Bowden"], "nozzle_diameter": ["0.4"], "printer_variant": "0.4", diff --git a/resources/profiles/Geeetech/machine/Geeetech Thunder 0.6 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Thunder 0.6 nozzle.json index 068c95159e..f39419f403 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Thunder 0.6 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Thunder 0.6 nozzle.json @@ -6,7 +6,7 @@ "instantiation": "true", "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Thunder", - "default_filament_profile": ["Generic PLA @Geeetech_FastSpeed"], + "default_filament_profile": ["Generic PLA @System"], "extruder_type": ["Bowden"], "nozzle_diameter": ["0.6"], "printer_variant": "0.6", diff --git a/resources/profiles/Geeetech/machine/Geeetech Thunder 0.8 nozzle.json b/resources/profiles/Geeetech/machine/Geeetech Thunder 0.8 nozzle.json index 5b49296133..fadea44f6a 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Thunder 0.8 nozzle.json +++ b/resources/profiles/Geeetech/machine/Geeetech Thunder 0.8 nozzle.json @@ -6,7 +6,7 @@ "instantiation": "true", "inherits": "fdm_geeetech_common", "printer_model": "Geeetech Thunder", - "default_filament_profile": ["Generic PLA @Geeetech_FastSpeed"], + "default_filament_profile": ["Generic PLA @System"], "extruder_type": ["Bowden"], "nozzle_diameter": ["0.8"], "printer_variant": "0.8", diff --git a/resources/profiles/Geeetech/machine/Geeetech Thunder.json b/resources/profiles/Geeetech/machine/Geeetech Thunder.json index 1367b4a768..65f1822127 100644 --- a/resources/profiles/Geeetech/machine/Geeetech Thunder.json +++ b/resources/profiles/Geeetech/machine/Geeetech Thunder.json @@ -8,5 +8,5 @@ "bed_model": "250x250.stl", "bed_texture": "Geeetech_buildplate_texture.png", "hotend_model": "", - "default_materials": "Generic PLA @Geeetech_FastSpeed;Generic PLA-CF @Geeetech;Generic PETG @Geeetech;Generic ABS @Geeetech;Generic TPU @Geeetech" + "default_materials": "Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/Geeetech/machine/fdm_Geeetech_HS_common.json b/resources/profiles/Geeetech/machine/fdm_Geeetech_HS_common.json index b4dda323fc..fc727da831 100644 --- a/resources/profiles/Geeetech/machine/fdm_Geeetech_HS_common.json +++ b/resources/profiles/Geeetech/machine/fdm_Geeetech_HS_common.json @@ -67,7 +67,7 @@ "2" ], "default_filament_profile": [ - "Generic PLA @Geeetech_FastSpeed" + "Generic PLA @System" ], "change_filament_gcode": "", "machine_pause_gcode": "M0", diff --git a/resources/profiles/Geeetech/machine/fdm_geeetech_common.json b/resources/profiles/Geeetech/machine/fdm_geeetech_common.json index 7f21963b54..82020cf268 100644 --- a/resources/profiles/Geeetech/machine/fdm_geeetech_common.json +++ b/resources/profiles/Geeetech/machine/fdm_geeetech_common.json @@ -125,7 +125,7 @@ "1" ], "default_filament_profile": [ - "Generic PLA @Geeetech" + "Generic PLA @System" ], "bed_exclude_area": [ "0x0" diff --git a/resources/profiles/Ginger Additive/machine/fdm_machine_common.json b/resources/profiles/Ginger Additive/machine/fdm_machine_common.json index c1e54edfbb..a26021c545 100644 --- a/resources/profiles/Ginger Additive/machine/fdm_machine_common.json +++ b/resources/profiles/Ginger Additive/machine/fdm_machine_common.json @@ -14,7 +14,7 @@ "change_filament_gcode": "", "cooling_tube_length": "5", "cooling_tube_retraction": "91.5", - "default_filament_profile": ["My Generic ABS"], + "default_filament_profile": ["Generic PLA @System"], "default_print_profile": "0.20mm Standard @MyKlipper", "deretraction_speed": ["30"], "disable_m73": "0", diff --git a/resources/profiles/InfiMech/machine/HSN/fdm_klipper_common.json b/resources/profiles/InfiMech/machine/HSN/fdm_klipper_common.json index 3cd0c7ec03..7cfdb6a4bb 100644 --- a/resources/profiles/InfiMech/machine/HSN/fdm_klipper_common.json +++ b/resources/profiles/InfiMech/machine/HSN/fdm_klipper_common.json @@ -16,7 +16,7 @@ "cooling_tube_length": "5", "cooling_tube_retraction": "91.5", "default_filament_profile": [ - "InfiMech PLA" + "InfiMech Generic PLA" ], "default_print_profile": "0.20mm Standard @InfiMech TX", "deretraction_speed": [ diff --git a/resources/profiles/InfiMech/machine/fdm_klipper_common.json b/resources/profiles/InfiMech/machine/fdm_klipper_common.json index 9d09be715d..59a7eb869e 100644 --- a/resources/profiles/InfiMech/machine/fdm_klipper_common.json +++ b/resources/profiles/InfiMech/machine/fdm_klipper_common.json @@ -16,7 +16,7 @@ "cooling_tube_length": "5", "cooling_tube_retraction": "91.5", "default_filament_profile": [ - "InfiMech PLA" + "InfiMech Generic PLA" ], "default_print_profile": "0.20mm Standard @InfiMech TX", "deretraction_speed": [ diff --git a/resources/profiles/Kingroon/machine/Kingroon KLP1 0.4 nozzle.json b/resources/profiles/Kingroon/machine/Kingroon KLP1 0.4 nozzle.json index 84d12a50c1..69b774ddb6 100644 --- a/resources/profiles/Kingroon/machine/Kingroon KLP1 0.4 nozzle.json +++ b/resources/profiles/Kingroon/machine/Kingroon KLP1 0.4 nozzle.json @@ -6,7 +6,7 @@ "instantiation": "true", "inherits": "fdm_klipper_common", "printer_model": "Kingroon KLP1", - "default_filament_profile": "Kingroon Generic PLA", + "default_filament_profile": "Generic PLA @System", "default_print_profile": "0.20mm Standard @Kingroon KLP1", "thumbnails": [ "100x100" ], diff --git a/resources/profiles/Kingroon/machine/Kingroon KLP1.json b/resources/profiles/Kingroon/machine/Kingroon KLP1.json index 2e0964289d..a937760b96 100644 --- a/resources/profiles/Kingroon/machine/Kingroon KLP1.json +++ b/resources/profiles/Kingroon/machine/Kingroon KLP1.json @@ -6,5 +6,5 @@ "machine_tech": "FFF", "family": "Kingroon", "hotend_model": "", - "default_materials": "Kingroon Generic ABS;Kingroon Generic PLA;Kingroon Generic PLA-CF;Kingroon Generic PETG;Kingroon Generic TPU;Kingroon Generic ASA;Kingroon Generic PC;Kingroon Generic PVA;Kingroon Generic PA;Kingroon Generic PA-CF" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Kingroon/machine/Kingroon KP3S 3.0.json b/resources/profiles/Kingroon/machine/Kingroon KP3S 3.0.json index 8b5b020dac..2b1e1e378f 100644 --- a/resources/profiles/Kingroon/machine/Kingroon KP3S 3.0.json +++ b/resources/profiles/Kingroon/machine/Kingroon KP3S 3.0.json @@ -8,5 +8,5 @@ "bed_model": "kp3s_bed.stl", "bed_texture": "Kingroon_buildplate.png", "hotend_model": "", - "default_materials": "Kingroon Generic ABS;Kingroon Generic PLA;Kingroon Generic PLA-CF;Kingroon Generic PETG;Kingroon Generic TPU;Kingroon Generic ASA;Kingroon Generic PC;Kingroon Generic PVA;Kingroon Generic PA;Kingroon Generic PA-CF" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Kingroon/machine/Kingroon KP3S PRO S1.json b/resources/profiles/Kingroon/machine/Kingroon KP3S PRO S1.json index 7a3b2c62ee..b138db442e 100644 --- a/resources/profiles/Kingroon/machine/Kingroon KP3S PRO S1.json +++ b/resources/profiles/Kingroon/machine/Kingroon KP3S PRO S1.json @@ -8,5 +8,5 @@ "bed_model": "kp3s_bed.stl", "bed_texture": "Kingroon_buildplate.png", "hotend_model": "", - "default_materials": "Kingroon Generic ABS;Kingroon Generic PLA;Kingroon Generic PLA-CF;Kingroon Generic PETG;Kingroon Generic TPU;Kingroon Generic ASA;Kingroon Generic PC;Kingroon Generic PVA;Kingroon Generic PA;Kingroon Generic PA-CF" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Kingroon/machine/Kingroon KP3S PRO V2 0.4 nozzle.json b/resources/profiles/Kingroon/machine/Kingroon KP3S PRO V2 0.4 nozzle.json index f9b9d316ae..864129020b 100644 --- a/resources/profiles/Kingroon/machine/Kingroon KP3S PRO V2 0.4 nozzle.json +++ b/resources/profiles/Kingroon/machine/Kingroon KP3S PRO V2 0.4 nozzle.json @@ -6,7 +6,7 @@ "instantiation": "true", "inherits": "fdm_klipper_common", "printer_model": "Kingroon KP3S PRO V2", - "default_filament_profile": "Kingroon Generic PLA", + "default_filament_profile": "Generic PLA @System", "default_print_profile": "0.20mm Standard @Kingroon KP3S PRO V2", "bed_exclude_area": ["0x0"], "extruder_colour": ["#FCE94F"], diff --git a/resources/profiles/Kingroon/machine/Kingroon KP3S PRO V2.json b/resources/profiles/Kingroon/machine/Kingroon KP3S PRO V2.json index 4bd64acbac..aa89a6e33c 100644 --- a/resources/profiles/Kingroon/machine/Kingroon KP3S PRO V2.json +++ b/resources/profiles/Kingroon/machine/Kingroon KP3S PRO V2.json @@ -8,5 +8,5 @@ "bed_model": "kp3s_bed.stl", "bed_texture": "Kingroon_buildplate.png", "hotend_model": "", - "default_materials": "Kingroon Generic ABS;Kingroon Generic PLA;Kingroon Generic PLA-CF;Kingroon Generic PETG;Kingroon Generic TPU;Kingroon Generic ASA;Kingroon Generic PC;Kingroon Generic PVA;Kingroon Generic PA;Kingroon Generic PA-CF" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Kingroon/machine/Kingroon KP3S V1 0.4 nozzle.json b/resources/profiles/Kingroon/machine/Kingroon KP3S V1 0.4 nozzle.json index e836c3e08e..bad9fbdfbf 100644 --- a/resources/profiles/Kingroon/machine/Kingroon KP3S V1 0.4 nozzle.json +++ b/resources/profiles/Kingroon/machine/Kingroon KP3S V1 0.4 nozzle.json @@ -6,7 +6,7 @@ "instantiation": "true", "inherits": "fdm_klipper_common", "printer_model": "Kingroon KP3S V1", - "default_filament_profile": "Kingroon Generic PLA", + "default_filament_profile": "Generic PLA @System", "default_print_profile": "0.20mm Standard @Kingroon KP3S V1", "thumbnails": [ "100x100" ], diff --git a/resources/profiles/Kingroon/machine/Kingroon KP3S V1.json b/resources/profiles/Kingroon/machine/Kingroon KP3S V1.json index 9b92571019..c9e745bf92 100644 --- a/resources/profiles/Kingroon/machine/Kingroon KP3S V1.json +++ b/resources/profiles/Kingroon/machine/Kingroon KP3S V1.json @@ -6,5 +6,5 @@ "machine_tech": "FFF", "family": "Kingroon", "hotend_model": "", - "default_materials": "Kingroon Generic ABS;Kingroon Generic PLA;Kingroon Generic PLA-CF;Kingroon Generic PETG;Kingroon Generic TPU;Kingroon Generic ASA;Kingroon Generic PC;Kingroon Generic PVA;Kingroon Generic PA;Kingroon Generic PA-CF" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/MagicMaker/machine/MM BoneKing 0.4 nozzle.json b/resources/profiles/MagicMaker/machine/MM BoneKing 0.4 nozzle.json index 4bc95f8091..7315b9924d 100644 --- a/resources/profiles/MagicMaker/machine/MM BoneKing 0.4 nozzle.json +++ b/resources/profiles/MagicMaker/machine/MM BoneKing 0.4 nozzle.json @@ -90,7 +90,7 @@ "Spiral Lift" ], "default_filament_profile": [ - "MM Generic PLA" + "Generic PLA @System" ], "is_custom_defined": "0", "machine_max_acceleration_e": [ diff --git a/resources/profiles/MagicMaker/machine/MM BoneKing.json b/resources/profiles/MagicMaker/machine/MM BoneKing.json index 31167c41d6..54b561f334 100644 --- a/resources/profiles/MagicMaker/machine/MM BoneKing.json +++ b/resources/profiles/MagicMaker/machine/MM BoneKing.json @@ -8,5 +8,5 @@ "bed_model": "310_buildplate_model.stl", "bed_texture": "MM_buildplate_texture.png", "hotend_model": "MM_hotend.stl", - "default_materials": "MM Generic PLA;MM Generic PETG;MM Generic ABS;MM Generic TPU;MM Generic PC;MM Generic PA;MM Generic PEEK" + "default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System;Generic PC @System;Generic PA @System;MM Generic PEEK" } diff --git a/resources/profiles/MagicMaker/machine/MM hj SK 0.4 nozzle.json b/resources/profiles/MagicMaker/machine/MM hj SK 0.4 nozzle.json index 0f22e90e47..45d8bbdcc7 100644 --- a/resources/profiles/MagicMaker/machine/MM hj SK 0.4 nozzle.json +++ b/resources/profiles/MagicMaker/machine/MM hj SK 0.4 nozzle.json @@ -132,7 +132,7 @@ "Spiral Lift" ], "default_filament_profile": [ - "MM Generic PLA" + "Generic PLA @System" ], "version": "2.0.0.0" } \ No newline at end of file diff --git a/resources/profiles/MagicMaker/machine/MM hj SK.json b/resources/profiles/MagicMaker/machine/MM hj SK.json index 1cefdfb906..a2237df024 100644 --- a/resources/profiles/MagicMaker/machine/MM hj SK.json +++ b/resources/profiles/MagicMaker/machine/MM hj SK.json @@ -8,5 +8,5 @@ "bed_model": "220210_buildplate_model.stl", "bed_texture": "MM_buildplate_texture.png", "hotend_model": "MM_hotend.stl", - "default_materials": "MM Generic PLA;MM Generic PETG;MM Generic ABS;MM Generic TPU" + "default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/MagicMaker/machine/MM hqs SF 0.4 nozzle.json b/resources/profiles/MagicMaker/machine/MM hqs SF 0.4 nozzle.json index 17cfbf1c1d..299b558df7 100644 --- a/resources/profiles/MagicMaker/machine/MM hqs SF 0.4 nozzle.json +++ b/resources/profiles/MagicMaker/machine/MM hqs SF 0.4 nozzle.json @@ -131,7 +131,7 @@ "Spiral Lift" ], "default_filament_profile": [ - "MM Generic PLA" + "Generic PLA @System" ], "version": "2.0.0.0" } \ No newline at end of file diff --git a/resources/profiles/MagicMaker/machine/MM hqs SF.json b/resources/profiles/MagicMaker/machine/MM hqs SF.json index e3240b2263..d5b65e55bd 100644 --- a/resources/profiles/MagicMaker/machine/MM hqs SF.json +++ b/resources/profiles/MagicMaker/machine/MM hqs SF.json @@ -8,5 +8,5 @@ "bed_model": "220210_buildplate_model.stl", "bed_texture": "MM_buildplate_texture.png", "hotend_model": "MM_hotend.stl", - "default_materials": "MM Generic PLA;MM Generic PETG;MM Generic ABS;MM Generic TPU" + "default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/MagicMaker/machine/MM hqs hj 0.4 nozzle.json b/resources/profiles/MagicMaker/machine/MM hqs hj 0.4 nozzle.json index 95a623649b..c968ba6b44 100644 --- a/resources/profiles/MagicMaker/machine/MM hqs hj 0.4 nozzle.json +++ b/resources/profiles/MagicMaker/machine/MM hqs hj 0.4 nozzle.json @@ -123,7 +123,7 @@ "220x220" ], "default_filament_profile": [ - "MM Generic PLA" + "Generic PLA @System" ], "version": "2.0.0.0" } \ No newline at end of file diff --git a/resources/profiles/MagicMaker/machine/MM hqs hj.json b/resources/profiles/MagicMaker/machine/MM hqs hj.json index aac0ee20cb..adb47ff301 100644 --- a/resources/profiles/MagicMaker/machine/MM hqs hj.json +++ b/resources/profiles/MagicMaker/machine/MM hqs hj.json @@ -8,5 +8,5 @@ "bed_model": "220210_buildplate_model.stl", "bed_texture": "MM_buildplate_texture.png", "hotend_model": "MM_hotend.stl", - "default_materials": "MM Generic PLA;MM Generic PETG;MM Generic ABS;MM Generic TPU" + "default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/MagicMaker/machine/MM slb 0.4 nozzle.json b/resources/profiles/MagicMaker/machine/MM slb 0.4 nozzle.json index c6e32b7e0c..e6b4d0377f 100644 --- a/resources/profiles/MagicMaker/machine/MM slb 0.4 nozzle.json +++ b/resources/profiles/MagicMaker/machine/MM slb 0.4 nozzle.json @@ -62,7 +62,7 @@ "25" ], "default_filament_profile": [ - "MM Generic PLA" + "Generic PLA @System" ], "is_custom_defined": "0", "machine_end_gcode": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG28 X0\nG0 Y120\nG1 E-10 F9000\nM84 ;steppers off\nG90 ;absolute positioning\nPRINT_END", diff --git a/resources/profiles/MagicMaker/machine/MM slb.json b/resources/profiles/MagicMaker/machine/MM slb.json index 83f4b57499..72a17a073e 100644 --- a/resources/profiles/MagicMaker/machine/MM slb.json +++ b/resources/profiles/MagicMaker/machine/MM slb.json @@ -8,5 +8,5 @@ "bed_model": "125_buildplate_model.stl", "bed_texture": "MM_buildplate_texture.png", "hotend_model": "MM_hotend.stl", - "default_materials": "MM Generic PLA;MM Generic PETG;MM Generic ABS;MM Generic TPU" + "default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System;Generic TPU @System" } diff --git a/resources/profiles/Mellow/machine/M1.json b/resources/profiles/Mellow/machine/M1.json index eb7547b3a8..ee633b68f3 100644 --- a/resources/profiles/Mellow/machine/M1.json +++ b/resources/profiles/Mellow/machine/M1.json @@ -8,5 +8,5 @@ "bed_model": "M1_bed_model.stl", "bed_texture": "mellow_bed_texture.png", "hotend_model": "", - "default_materials": "Generic ABS @M1;Generic PLA @M1;Generic PLA-CF @M1;Generic PETG @M1;Generic TPU @M1;Generic ASA @M1;Generic PC @M1;Generic PVA @M1;Generic PA @M1;Generic PA-CF @M1" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Mellow/machine/fdm_common_M1.json b/resources/profiles/Mellow/machine/fdm_common_M1.json index ac5a32f744..26361d1a5a 100644 --- a/resources/profiles/Mellow/machine/fdm_common_M1.json +++ b/resources/profiles/Mellow/machine/fdm_common_M1.json @@ -46,7 +46,7 @@ "single_extruder_multi_material": "1", "change_filament_gcode": "", "wipe": ["1"], - "default_filament_profile": ["Generic ABS @M1"], + "default_filament_profile": ["Generic PLA @System"], "default_print_profile": "0.20mm Standard @M1", "bed_exclude_area": ["0x0"], "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM109 S[nozzle_temperature_initial_layer]\nPRINT_START EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single]\n", diff --git a/resources/profiles/Positron3D/machine/The Positron.json b/resources/profiles/Positron3D/machine/The Positron.json index 9902c9b948..275c0957b4 100644 --- a/resources/profiles/Positron3D/machine/The Positron.json +++ b/resources/profiles/Positron3D/machine/The Positron.json @@ -8,5 +8,5 @@ "bed_model": "ThePositron_bed_model.stl", "bed_texture": "ThePositron_bed_texture.svg", "hotend_model": "", - "default_materials": "Positron Generic ABS;Positron Generic PLA;Positron Generic PLA-CF;Positron Generic PETG;Positron Generic TPU;Positron Generic ASA;Positron Generic PC;Positron Generic PVA;Positron Generic PA;Positron Generic PA-CF" + "default_materials": "Generic PLA @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Positron3D/machine/fdm_common_the_positron.json b/resources/profiles/Positron3D/machine/fdm_common_the_positron.json index 3c3a74959b..2b4119e49d 100644 --- a/resources/profiles/Positron3D/machine/fdm_common_the_positron.json +++ b/resources/profiles/Positron3D/machine/fdm_common_the_positron.json @@ -46,7 +46,7 @@ "single_extruder_multi_material": "1", "change_filament_gcode": "", "wipe": ["1"], - "default_filament_profile": ["Positron Generic ABS"], + "default_filament_profile": ["Generic PLA @System"], "default_print_profile": "0.20mm Standard @The Positron", "bed_exclude_area": ["0x0"], "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM109 S[nozzle_temperature_initial_layer]\nPRINT_START EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single]\n", diff --git a/resources/profiles/Prusa/machine/Prusa MK4S 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S 0.4 nozzle.json index 7e4eb97553..8c4e13c1e6 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4S 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK4S 0.4 nozzle.json @@ -1,5 +1,5 @@ { - "default_filament_profile": "Prusament PLA @MK4S", + "default_filament_profile": "Prusa Generic PLA @MK4S", "default_print_profile": "0.20mm SPEED @MK4S 0.4", "from": "system", "inherits": "fdm_machine_common_mk4s", diff --git a/resources/profiles/Prusa/machine/Prusa MK4S 0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S 0.6 nozzle.json index 327807c5eb..948e13c3c1 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4S 0.6 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK4S 0.6 nozzle.json @@ -1,5 +1,5 @@ { - "default_filament_profile": "Prusament PLA @MK4S 0.6", + "default_filament_profile": "Prusa Generic PLA @MK4S 0.6", "default_print_profile": "0.25mm SPEED @MK4S 0.6", "from": "system", "inherits": "Prusa MK4S 0.4 nozzle", diff --git a/resources/profiles/Prusa/machine/Prusa MK4S 0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S 0.8 nozzle.json index cb50b1464e..ecbcad08f0 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4S 0.8 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK4S 0.8 nozzle.json @@ -1,5 +1,5 @@ { - "default_filament_profile": "Prusament PLA @MK4S 0.8", + "default_filament_profile": "Prusa Generic PLA @MK4S 0.8", "default_print_profile": "0.40mm QUALITY @MK4S 0.8", "deretraction_speed": "15", "from": "system", diff --git a/resources/profiles/Prusa/machine/Prusa MK4S HF0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S HF0.4 nozzle.json index 24aa1db4dd..caedc3b561 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4S HF0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK4S HF0.4 nozzle.json @@ -1,5 +1,5 @@ { - "default_filament_profile": "Prusament PLA @HF0.4", + "default_filament_profile": "Prusa Generic PLA @MK4S HF0.4", "default_print_profile": "0.20mm SPEED @MK4S HF0.4", "from": "system", "inherits": "Prusa MK4S 0.4 nozzle", diff --git a/resources/profiles/Prusa/machine/Prusa MK4S HF0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4S HF0.8 nozzle.json index 29ce071ddb..55afc653a9 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4S HF0.8 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK4S HF0.8 nozzle.json @@ -1,5 +1,5 @@ { - "default_filament_profile": "Prusament PLA @HF0.8", + "default_filament_profile": "Prusa Generic PLA @MK4S HF0.8", "default_print_profile": "0.40mm STRUCTURAL @MK4S HF0.8", "deretraction_speed": "15", "from": "system", diff --git a/resources/profiles/Prusa/machine/fdm_machine_common_mk4s.json b/resources/profiles/Prusa/machine/fdm_machine_common_mk4s.json index 5e8cf14f23..2aa1104791 100644 --- a/resources/profiles/Prusa/machine/fdm_machine_common_mk4s.json +++ b/resources/profiles/Prusa/machine/fdm_machine_common_mk4s.json @@ -5,7 +5,7 @@ "change_filament_gcode": [ "" ], - "default_filament_profile": "Prusament PLA @PGIS", + "default_filament_profile": "Prusa Generic PLA @MK4S", "default_print_profile": "0.20mm SPEED @MK4IS 0.4", "deretraction_speed": "25", "extruder_clearance_height_to_lid": "220", diff --git a/resources/profiles/Qidi/machine/fdm_qidi_common.json b/resources/profiles/Qidi/machine/fdm_qidi_common.json index 412423dc3c..57cb79872c 100644 --- a/resources/profiles/Qidi/machine/fdm_qidi_common.json +++ b/resources/profiles/Qidi/machine/fdm_qidi_common.json @@ -124,7 +124,7 @@ "1" ], "default_filament_profile": [ - "Generic PLA @QIDI" + "Qidi Generic PLA" ], "default_print_profile": "0.20mm Standard @QIDI", "bed_exclude_area": [ diff --git a/resources/profiles/Raise3D/machine/Raise3D Pro3 0.4 nozzle (Dual).json b/resources/profiles/Raise3D/machine/Raise3D Pro3 0.4 nozzle (Dual).json index 5ad7285431..8c92c16a6f 100644 --- a/resources/profiles/Raise3D/machine/Raise3D Pro3 0.4 nozzle (Dual).json +++ b/resources/profiles/Raise3D/machine/Raise3D Pro3 0.4 nozzle (Dual).json @@ -141,7 +141,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "; pause print\nM2000", "default_filament_profile": [ - "Raise3D Generic PLA" + "Generic PLA @System" ], "machine_start_gcode": ";Bounding Box: {digits(first_layer_print_min[0],0,2)} {if(first_layer_print_max[0]>300)}{300}{else}{digits(first_layer_print_max[0],0,2)}{endif} {digits(first_layer_print_min[1],0,2)} {if(first_layer_print_max[1]>300)}{300}{else}{digits(first_layer_print_max[1],0,2)}{endif}\n\nM104 T0 S{nozzle_temperature_initial_layer[0] - 30} ; raise extruder one temp\nM104 T1 S{nozzle_temperature_initial_layer[1] - 30} ; raise extruder two temp\nM190 S{max(bed_temperature_initial_layer_single, bed_temperature_initial_layer_single)} ; wait for bed temp\nM109 T1 S{nozzle_temperature_initial_layer[1]} ; wait for extruder two temp\nT1\nG21\nG90\nM82\nM107\nM106 P2 S0\nG1 Z0.3 F500\nG92 E0\nG1 Z0.3 F400\nG1 X60 Y{random(2,8)} F1000\nG1 X110 Y{random(2,8)} E30 F200\nG1 Z0.3 E15 F200\nG92 E0\nG1 Z10 F2000 ; move up from purge line\nG1 X170 F2000 ; move away from purge line\nM104 T1 S{nozzle_temperature_initial_layer[1] - 30} ; lower extruder two temp\nM109 T0 S{nozzle_temperature_initial_layer[0]} ; wait for extruder one temp\nT0\nG1 Z0.3 F400\nG1 X220 Y{random(2,8)} F1000\nG1 X270 Y{random(2,8)} E18 F200\nG1 Z5 E15 F200\nG92 E0\nG1 Z10 F2000 ; move up from purge line\nG1 Y30 F2000 ; move away from purge line\nM104 T0 S{nozzle_temperature_initial_layer[1] - 30} ; lower extruder one temp\nG92 E0\nG1 X{(first_layer_print_max[0] + first_layer_print_min[0])/2} Y{(first_layer_print_max[1] + first_layer_print_min[1])/2} Z{initial_layer_print_height} ; move to center of print\nM117 Printing...", "machine_end_gcode": "M221 T0 S100\nM104 S0\nM140 S0\nM107\nM106 P2 S0\nG91\nG1 E-1 F300\nG1 Z+0.5 E-5 X-20 Y-20 F9000.00\nG28 X0 Y0\nM84\nG90", diff --git a/resources/profiles/Raise3D/machine/Raise3D Pro3 0.4 nozzle (Left).json b/resources/profiles/Raise3D/machine/Raise3D Pro3 0.4 nozzle (Left).json index b112eea0d5..f26123d1b9 100644 --- a/resources/profiles/Raise3D/machine/Raise3D Pro3 0.4 nozzle (Left).json +++ b/resources/profiles/Raise3D/machine/Raise3D Pro3 0.4 nozzle (Left).json @@ -141,7 +141,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "; pause print\nM2000", "default_filament_profile": [ - "Raise3D Generic PLA" + "Generic PLA @System" ], "machine_start_gcode": ";Bounding Box: {digits(first_layer_print_min[0],0,2)} {if(first_layer_print_max[0]>300)}{300}{else}{digits(first_layer_print_max[0],0,2)}{endif} {digits(first_layer_print_min[1],0,2)} {if(first_layer_print_max[1]>300)}{300}{else}{digits(first_layer_print_max[1],0,2)}{endif}\n\nM104 T0 S{nozzle_temperature_initial_layer[0] - 20} ; raise left extruder temp\nM140 S[bed_temperature_initial_layer_single] ; raise bed temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM109 T0 S{nozzle_temperature_initial_layer[0] - 20} ; wait for left extruder temp\nM104 T0 S[nozzle_temperature_initial_layer] ; set left extruder temp\nM109 T0 S[nozzle_temperature_initial_layer] ; wait for left extruder temp\nT0\nG21\nG90\nM82\nM107\nM106 P2 S0\nG1 Z0.3 F500\nG92 E0\nG1 Z0.3 F400\nG1 X100 Y{random(2,8)} F1000\nG1 X170 Y{random(2,8)} E15 F200\nG1 Z5 E15 F200\nG92 E0\nG1 Z10 F2000 ; move up from purge line\nG1 Y30 F2000 ; move away from purge line\nG1 X{(first_layer_print_max[0] + first_layer_print_min[0])/2} Y{(first_layer_print_max[1] + first_layer_print_min[1])/2} Z{initial_layer_print_height} ; move to center of print\nM117 Printing...\nM1001", "machine_end_gcode": "M1002\nM221 T0 S100\nM104 S0\nM140 S0\nM107\nM106 P2 S0\nG91\nG1 E-1 F300\nG1 Z+0.5 E-5 X-20 Y-20 F9000.00\nG28 X0 Y0\nM84\nG90\n", diff --git a/resources/profiles/Raise3D/machine/Raise3D Pro3 0.4 nozzle (Right).json b/resources/profiles/Raise3D/machine/Raise3D Pro3 0.4 nozzle (Right).json index a1c85c44b3..0c7753250d 100644 --- a/resources/profiles/Raise3D/machine/Raise3D Pro3 0.4 nozzle (Right).json +++ b/resources/profiles/Raise3D/machine/Raise3D Pro3 0.4 nozzle (Right).json @@ -141,7 +141,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "; pause print\nM2000", "default_filament_profile": [ - "Raise3D Generic PLA" + "Generic PLA @System" ], "machine_start_gcode": ";Bounding Box: {digits(first_layer_print_min[0],0,2)} {if(first_layer_print_max[0]>300)}{300}{else}{digits(first_layer_print_max[0],0,2)}{endif} {digits(first_layer_print_min[1],0,2)} {if(first_layer_print_max[1]>300)}{300}{else}{digits(first_layer_print_max[1],0,2)}{endif}\n\nM104 T1 S{nozzle_temperature_initial_layer[1] - 20} ; raise right extruder temp\nM140 S[bed_temperature_initial_layer_single] ; raise bed temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM109 T1 S{nozzle_temperature_initial_layer[1] - 20} ; wait for right extruder temp\nM104 T1 S{nozzle_temperature_initial_layer[1]} ; set right extruder temp\nM109 T1 S{nozzle_temperature_initial_layer[1]} ; wait for right extruder temp\nT1\nG21\nG90\nM82\nM107\nM106 P2 S0\nG1 Z0.3 F500\nG92 E0\nG1 Z0.3 F400\nG1 X100 Y{random(2,8)} F1000\nG1 X170 Y{random(2,8)} E15 F200\nG1 Z5 E15 F200\nG92 E0\nG1 Z10 F2000 ; move up from purge line\nG1 Y30 F2000 ; move away from purge line\nG1 X{(first_layer_print_max[0] + first_layer_print_min[0])/2} Y{(first_layer_print_max[1] + first_layer_print_min[1])/2} Z{initial_layer_print_height} ; move to center of print\nM117 Printing...\nM1001", "machine_end_gcode": "M1002\nM221 T0 S100\nM104 S0\nM140 S0\nM107\nM106 P2 S0\nG91\nG1 E-1 F300\nG1 Z+0.5 E-5 X-20 Y-20 F9000.00\nG28 X0 Y0\nM84\nG90\nM106 P2 S0\n", diff --git a/resources/profiles/Raise3D/machine/Raise3D Pro3 Plus 0.4 nozzle (Dual).json b/resources/profiles/Raise3D/machine/Raise3D Pro3 Plus 0.4 nozzle (Dual).json index dd127639e6..4b38b5277a 100644 --- a/resources/profiles/Raise3D/machine/Raise3D Pro3 Plus 0.4 nozzle (Dual).json +++ b/resources/profiles/Raise3D/machine/Raise3D Pro3 Plus 0.4 nozzle (Dual).json @@ -141,7 +141,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "; pause print\nM2000", "default_filament_profile": [ - "Raise3D Generic PLA" + "Generic PLA @System" ], "machine_start_gcode": ";Bounding Box: {digits(first_layer_print_min[0],0,2)} {if(first_layer_print_max[0]>300)}{300}{else}{digits(first_layer_print_max[0],0,2)}{endif} {digits(first_layer_print_min[1],0,2)} {if(first_layer_print_max[1]>300)}{300}{else}{digits(first_layer_print_max[1],0,2)}{endif}\n\nM104 T0 S{nozzle_temperature_initial_layer[0] - 30} ; raise extruder one temp\nM104 T1 S{nozzle_temperature_initial_layer[1] - 30} ; raise extruder two temp\nM190 S{max(bed_temperature_initial_layer_single, bed_temperature_initial_layer_single)} ; wait for bed temp\nM109 T1 S{nozzle_temperature_initial_layer[1]} ; wait for extruder two temp\nT1\nG21\nG90\nM82\nM107\nM106 P2 S0\nG1 Z0.3 F500\nG92 E0\nG1 Z0.3 F400\nG1 X60 Y{random(2,8)} F1000\nG1 X110 Y{random(2,8)} E30 F200\nG1 Z0.3 E15 F200\nG92 E0\nG1 Z10 F2000 ; move up from purge line\nG1 X170 F2000 ; move away from purge line\nM104 T1 S{nozzle_temperature_initial_layer[1] - 30} ; lower extruder two temp\nM109 T0 S{nozzle_temperature_initial_layer[0]} ; wait for extruder one temp\nT0\nG1 Z0.3 F400\nG1 X220 Y{random(2,8)} F1000\nG1 X270 Y{random(2,8)} E18 F200\nG1 Z5 E15 F200\nG92 E0\nG1 Z10 F2000 ; move up from purge line\nG1 Y30 F2000 ; move away from purge line\nM104 T0 S{nozzle_temperature_initial_layer[1] - 30} ; lower extruder one temp\nG92 E0\nG1 X{(first_layer_print_max[0] + first_layer_print_min[0])/2} Y{(first_layer_print_max[1] + first_layer_print_min[1])/2} Z{initial_layer_print_height} ; move to center of print\nM117 Printing...", "machine_end_gcode": "M221 T0 S100\nM104 S0\nM140 S0\nM107\nM106 P2 S0\nG91\nG1 E-1 F300\nG1 Z+0.5 E-5 X-20 Y-20 F9000.00\nG28 X0 Y0\nM84\nG90", diff --git a/resources/profiles/Raise3D/machine/Raise3D Pro3 Plus 0.4 nozzle (Left).json b/resources/profiles/Raise3D/machine/Raise3D Pro3 Plus 0.4 nozzle (Left).json index bdc1583d90..bb7873ff44 100644 --- a/resources/profiles/Raise3D/machine/Raise3D Pro3 Plus 0.4 nozzle (Left).json +++ b/resources/profiles/Raise3D/machine/Raise3D Pro3 Plus 0.4 nozzle (Left).json @@ -141,7 +141,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "; pause print\nM2000", "default_filament_profile": [ - "Raise3D Generic PLA" + "Generic PLA @System" ], "machine_start_gcode": ";Bounding Box: {digits(first_layer_print_min[0],0,2)} {if(first_layer_print_max[0]>300)}{300}{else}{digits(first_layer_print_max[0],0,2)}{endif} {digits(first_layer_print_min[1],0,2)} {if(first_layer_print_max[1]>300)}{300}{else}{digits(first_layer_print_max[1],0,2)}{endif}\n\nM104 T0 S{nozzle_temperature_initial_layer[0] - 20} ; raise left extruder temp\nM140 S[bed_temperature_initial_layer_single] ; raise bed temp\nM190 S{bed_temperature_initial_layer_single} ; wait for bed temp\nM109 T0 S{nozzle_temperature_initial_layer[0] - 20} ; wait for left extruder temp\nM104 T0 S[nozzle_temperature_initial_layer] ; set left extruder temp\nM109 T0 S[nozzle_temperature_initial_layer] ; wait for left extruder temp\nT0\nG21\nG90\nM82\nM107\nM106 P2 S0\nG1 Z0.3 F500\nG92 E0\nG1 Z0.3 F400\nG1 X100 Y{random(2,8)} F1000\nG1 X170 Y{random(2,8)} E15 F200\nG1 Z5 E15 F200\nG92 E0\nG1 Z10 F2000 ; move up from purge line\nG1 Y30 F2000 ; move away from purge line\nG1 X{(first_layer_print_max[0] + first_layer_print_min[0])/2} Y{(first_layer_print_max[1] + first_layer_print_min[1])/2} Z{initial_layer_print_height} ; move to center of print\nM117 Printing...\nM1001", "machine_end_gcode": "M1002\nM221 T0 S100\nM104 S0\nM140 S0\nM107\nM106 P2 S0\nG91\nG1 E-1 F300\nG1 Z+0.5 E-5 X-20 Y-20 F9000.00\nG28 X0 Y0\nM84\nG90\n", diff --git a/resources/profiles/Raise3D/machine/Raise3D Pro3 Plus 0.4 nozzle (Right).json b/resources/profiles/Raise3D/machine/Raise3D Pro3 Plus 0.4 nozzle (Right).json index a341ff76f8..10f9130146 100644 --- a/resources/profiles/Raise3D/machine/Raise3D Pro3 Plus 0.4 nozzle (Right).json +++ b/resources/profiles/Raise3D/machine/Raise3D Pro3 Plus 0.4 nozzle (Right).json @@ -141,7 +141,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "; pause print\nM2000", "default_filament_profile": [ - "Raise3D Generic PLA" + "Generic PLA @System" ], "machine_start_gcode": ";Bounding Box: {digits(first_layer_print_min[0],0,2)} {if(first_layer_print_max[0]>300)}{300}{else}{digits(first_layer_print_max[0],0,2)}{endif} {digits(first_layer_print_min[1],0,2)} {if(first_layer_print_max[1]>300)}{300}{else}{digits(first_layer_print_max[1],0,2)}{endif}\n\nM104 T1 S{nozzle_temperature_initial_layer[1] - 20} ; raise right extruder temp\nM140 S[bed_temperature_initial_layer_single] ; raise bed temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM109 T1 S{nozzle_temperature_initial_layer[1] - 20} ; wait for right extruder temp\nM104 T1 S{nozzle_temperature_initial_layer[1]} ; set right extruder temp\nM109 T1 S{nozzle_temperature_initial_layer[1]} ; wait for right extruder temp\nT1\nG21\nG90\nM82\nM107\nM106 P2 S0\nG1 Z0.3 F500\nG92 E0\nG1 Z0.3 F400\nG1 X100 Y{random(2,8)} F1000\nG1 X170 Y{random(2,8)} E15 F200\nG1 Z5 E15 F200\nG92 E0\nG1 Z10 F2000 ; move up from purge line\nG1 Y30 F2000 ; move away from purge line\nG1 X{(first_layer_print_max[0] + first_layer_print_min[0])/2} Y{(first_layer_print_max[1] + first_layer_print_min[1])/2} Z{initial_layer_print_height} ; move to center of print\nM117 Printing...\nM1001", "machine_end_gcode": "M1002\nM221 T0 S100\nM104 S0\nM140 S0\nM107\nM106 P2 S0\nG91\nG1 E-1 F300\nG1 Z+0.5 E-5 X-20 Y-20 F9000.00\nG28 X0 Y0\nM84\nG90\nM106 P2 S0\n", diff --git a/resources/profiles/Raise3D/machine/Raise3D Pro3 Plus.json b/resources/profiles/Raise3D/machine/Raise3D Pro3 Plus.json index 6606ec0e62..00eb1f92ac 100644 --- a/resources/profiles/Raise3D/machine/Raise3D Pro3 Plus.json +++ b/resources/profiles/Raise3D/machine/Raise3D Pro3 Plus.json @@ -8,5 +8,5 @@ "bed_model": "raise3d_pro3plus_buildplate_model.stl", "bed_texture": "raise3d_pro3plus_buildplate_texture.png", "hotend_model": "", - "default_materials": "Raise3D Generic ASA;Raise3D Generic PETG;Raise3D Generic PLA;Raise3D Generic PVA;Raise3D Generic TPU" + "default_materials": "Generic ASA @System;Generic PETG @System;Generic PLA @System;Generic PVA @System;Generic TPU @System" } diff --git a/resources/profiles/Raise3D/machine/Raise3D Pro3.json b/resources/profiles/Raise3D/machine/Raise3D Pro3.json index bcfc8bc769..263a8fbe3e 100644 --- a/resources/profiles/Raise3D/machine/Raise3D Pro3.json +++ b/resources/profiles/Raise3D/machine/Raise3D Pro3.json @@ -8,5 +8,5 @@ "bed_model": "raise3d_pro3_buildplate_model.stl", "bed_texture": "raise3d_pro3_buildplate_texture.png", "hotend_model": "", - "default_materials": "Raise3D Generic ASA;Raise3D Generic PETG;Raise3D Generic PLA;Raise3D Generic PVA;Raise3D Generic TPU" + "default_materials": "Generic ASA @System;Generic PETG @System;Generic PLA @System;Generic PVA @System;Generic TPU @System" } diff --git a/resources/profiles/RolohaunDesign/machine/Rook MK1 LDO.json b/resources/profiles/RolohaunDesign/machine/Rook MK1 LDO.json index a443790e58..f0fd11c069 100644 --- a/resources/profiles/RolohaunDesign/machine/Rook MK1 LDO.json +++ b/resources/profiles/RolohaunDesign/machine/Rook MK1 LDO.json @@ -8,5 +8,5 @@ "bed_model": "", "bed_texture": "bedtexture-rook-green-120.png", "hotend_model": "", - "default_materials": "Generic ABS @Rook MK1 LDO;Generic PLA @Rook MK1 LDO;Generic PLA-CF @Rook MK1 LDO;Generic PETG @Rook MK1 LDO;Generic TPU @Rook MK1 LDO;Generic ASA @Rook MK1 LDO;Generic PC @Rook MK1 LDO;Generic PVA @Rook MK1 LDO;Generic PA @Rook MK1 LDO;Generic PA-CF @Rook MK1 LDO" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/RolohaunDesign/machine/fdm_common_Rook MK1 LDO.json b/resources/profiles/RolohaunDesign/machine/fdm_common_Rook MK1 LDO.json index 6246e9e8a8..96e0e2bd6c 100644 --- a/resources/profiles/RolohaunDesign/machine/fdm_common_Rook MK1 LDO.json +++ b/resources/profiles/RolohaunDesign/machine/fdm_common_Rook MK1 LDO.json @@ -46,7 +46,7 @@ "single_extruder_multi_material": "1", "change_filament_gcode": "", "wipe": ["1"], - "default_filament_profile": ["Generic ABS @Rook MK1 LDO"], + "default_filament_profile": ["Generic PLA @System"], "default_print_profile": "0.20mm Standard @Rook MK1 LDO", "bed_exclude_area": ["0x0"], "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM109 S[nozzle_temperature_initial_layer]\nPRINT_START EXTRUDER=[nozzle_temperature_initial_layer] BED=[bed_temperature_initial_layer_single]\n", diff --git a/resources/profiles/Tronxy/machine/Tronxy X5SA 400 0.4 nozzle.json b/resources/profiles/Tronxy/machine/Tronxy X5SA 400 0.4 nozzle.json index 09f5c85d6a..2782ad06ee 100644 --- a/resources/profiles/Tronxy/machine/Tronxy X5SA 400 0.4 nozzle.json +++ b/resources/profiles/Tronxy/machine/Tronxy X5SA 400 0.4 nozzle.json @@ -6,7 +6,7 @@ "instantiation": "true", "inherits": "fdm_machine_common", "printer_model": "Tronxy X5SA 400 Marlin Firmware", - "default_filament_profile": "Tronxy Generic PLA", + "default_filament_profile": "Generic PLA @System", "default_print_profile": "0.20mm Standard @Tronxy", "nozzle_diameter": [ "0.4" diff --git a/resources/profiles/Tronxy/machine/Tronxy X5SA 400 Marlin Firmware.json b/resources/profiles/Tronxy/machine/Tronxy X5SA 400 Marlin Firmware.json index 2a59979738..f5d5cae440 100644 --- a/resources/profiles/Tronxy/machine/Tronxy X5SA 400 Marlin Firmware.json +++ b/resources/profiles/Tronxy/machine/Tronxy X5SA 400 Marlin Firmware.json @@ -8,5 +8,5 @@ "bed_model": "", "bed_texture": "tronxy_logo.png", "hotend_model": "", - "default_materials": "Tronxy Generic ABS;Tronxy Generic PLA;Tronxy Generic PLA-CF;Tronxy Generic PETG;Tronxy Generic TPU;Tronxy Generic ASA;Tronxy Generic PC;Tronxy Generic PVA;Tronxy Generic PA;Tronxy Generic PA-CF" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } \ No newline at end of file diff --git a/resources/profiles/UltiMaker/machine/UltiMaker 2 0.4 nozzle.json b/resources/profiles/UltiMaker/machine/UltiMaker 2 0.4 nozzle.json index 70f54edf1b..069735c82b 100644 --- a/resources/profiles/UltiMaker/machine/UltiMaker 2 0.4 nozzle.json +++ b/resources/profiles/UltiMaker/machine/UltiMaker 2 0.4 nozzle.json @@ -107,7 +107,7 @@ "change_filament_gcode": "", "machine_pause_gcode": "M0", "default_filament_profile": [ - "UltiMaker Generic PLA" + "Generic PLA @System" ], "machine_start_gcode": "; # # # # # # START Header\nG21; metric values\nG90; absolute positioning\nM82 ; set extruder to absolute mode\nM107; start with the fan off\n\nM140 S[bed_temperature_initial_layer_single]; start bed heating\n\nG28 X0 Y0 Z0; move X/Y/Z to endstops\nG1 X1 Y6 F15000; move X/Y to start position\nG1 Z35 F9000; move Z to start position\n\n; Wait for bed and nozzle temperatures\nM190 S{hot_plate_temp_initial_layer[0] - 5}; wait for bed temperature - 5\nM140 S[bed_temperature_initial_layer_single]; continue bed heating\nM109 S[nozzle_temperature_initial_layer]; wait for nozzle temperature\n\n; Purge and prime\nM83; set extruder to relative mode\nG92 E0; reset extrusion distance\nG0 X0 Y1 F10000\nG1 F150 E20 ; compress the bowden tube\nG1 E-8 F1200\nG0 X30 Y1 F5000\nG0 F1200 Z{initial_layer_print_height/2}; Cut the connection to priming blob\nG0 X100 F10000; disconnect with the prime blob\nG0 X50; Avoid the metal clip holding the Ultimaker glass plate\nG0 Z0.2 F720\nG1 E8 F1200\nG1 X80 E3 F1000; intro line 1\nG1 X110 E4 F1000 ; intro line 2\nG1 X140 F600; drag filament to decompress bowden tube\nG1 X100 F3200; wipe backwards a bit\nG1 X150 F3200; back to where there is no plastic: avoid dragging\nG92 E0; reset extruder reference\nM82; set extruder to absolute mode\n\n; # # # # # # END Header", "machine_end_gcode": "; # # # # # # START Footer\nG91; relative coordinates\n;G1 E-1 F1200; retract the filament\nG1 Z+15 X-10 Y-10 E-7 F6000; move Z a bit\n; G1 X-10 Y-10 F6000; move XY a bit\nG1 E-5.5 F300; retract the filament\nG28 X0 Y0; move X/Y to min endstops, so the head is out of the way\nM104 S0; extruder heater off\nM140 S0; heated bed heater off (if you have it)\nM84; disable motors\n; # # # # # # END Footer\n", diff --git a/resources/profiles/UltiMaker/machine/UltiMaker 2.json b/resources/profiles/UltiMaker/machine/UltiMaker 2.json index 6679d57cac..da7eeebe86 100644 --- a/resources/profiles/UltiMaker/machine/UltiMaker 2.json +++ b/resources/profiles/UltiMaker/machine/UltiMaker 2.json @@ -8,5 +8,5 @@ "bed_model": "ultimaker_2_buildplate_model.stl", "bed_texture": "ultimaker_2_buildplate_texture.png", "hotend_model": "ultimaker_hotend.stl", - "default_materials": "UltiMaker Generic ABS;UltiMaker Generic PETG;UltiMaker Generic PLA" + "default_materials": "Generic ABS @System;Generic PETG @System;Generic PLA @System" } diff --git a/resources/profiles/Vivedino/machine/Troodon2Klipper.json b/resources/profiles/Vivedino/machine/Troodon2Klipper.json index 69a53625c8..fa6cb5d800 100644 --- a/resources/profiles/Vivedino/machine/Troodon2Klipper.json +++ b/resources/profiles/Vivedino/machine/Troodon2Klipper.json @@ -8,5 +8,5 @@ "bed_model": "", "bed_texture": "OrcaSlicer-Troodon2-Bed-Texture.png", "hotend_model": "", - "default_materials": "Troodon Generic ABS;Troodon Generic PLA;Troodon Generic PLA-CF;Troodon Generic PETG;Troodon Generic TPU;Troodon Generic ASA;Troodon Generic PC;Troodon Generic PVA;Troodon Generic PA;Troodon Generic PA-CF" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Vivedino/machine/Troodon2RRF.json b/resources/profiles/Vivedino/machine/Troodon2RRF.json index 76e8f54b1b..eeb53e5695 100644 --- a/resources/profiles/Vivedino/machine/Troodon2RRF.json +++ b/resources/profiles/Vivedino/machine/Troodon2RRF.json @@ -8,5 +8,5 @@ "bed_model": "", "bed_texture": "OrcaSlicer-Troodon2-Bed-Texture.png", "hotend_model": "", - "default_materials": "Troodon Generic ABS;Troodon Generic PLA;Troodon Generic PLA-CF;Troodon Generic PETG;Troodon Generic TPU;Troodon Generic ASA;Troodon Generic PC;Troodon Generic PVA;Troodon Generic PA;Troodon Generic PA-CF" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Vivedino/machine/fdm_klipper_common.json b/resources/profiles/Vivedino/machine/fdm_klipper_common.json index d7a84deba5..f99a6229af 100644 --- a/resources/profiles/Vivedino/machine/fdm_klipper_common.json +++ b/resources/profiles/Vivedino/machine/fdm_klipper_common.json @@ -124,7 +124,7 @@ "1" ], "default_filament_profile": [ - "Troodon Generic ABS" + "Generic ABS @System" ], "default_print_profile": "0.20mm Standard @Troodon2", "bed_exclude_area": [ diff --git a/resources/profiles/Vivedino/machine/fdm_rrf_common.json b/resources/profiles/Vivedino/machine/fdm_rrf_common.json index 740146688c..b9861f1cec 100644 --- a/resources/profiles/Vivedino/machine/fdm_rrf_common.json +++ b/resources/profiles/Vivedino/machine/fdm_rrf_common.json @@ -125,7 +125,7 @@ "1" ], "default_filament_profile": [ - "Troodon Generic ABS" + "Generic ABS @System" ], "default_print_profile": "0.20mm Standard @Troodon2", "bed_exclude_area": [ diff --git a/resources/profiles/Voron/machine/Voron 0.1.json b/resources/profiles/Voron/machine/Voron 0.1.json index a773f78eda..de243d73f2 100644 --- a/resources/profiles/Voron/machine/Voron 0.1.json +++ b/resources/profiles/Voron/machine/Voron 0.1.json @@ -8,5 +8,5 @@ "bed_model": "Voron_120_build_plate.stl", "bed_texture": "voron_logo.png", "hotend_model": "", - "default_materials": "Voron Generic ABS;Voron Generic PLA;Voron Generic PLA-CF;Voron Generic PETG;Voron Generic TPU;Voron Generic ASA;Voron Generic PC;Voron Generic PVA;Voron Generic PA;Voron Generic PA-CF" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Voron/machine/Voron 2.4 250.json b/resources/profiles/Voron/machine/Voron 2.4 250.json index b032e4e779..5495046781 100644 --- a/resources/profiles/Voron/machine/Voron 2.4 250.json +++ b/resources/profiles/Voron/machine/Voron 2.4 250.json @@ -8,5 +8,5 @@ "bed_model": "Voron_250_build_plate.stl", "bed_texture": "voron_logo.png", "hotend_model": "", - "default_materials": "Voron Generic ABS;Voron Generic PLA;Voron Generic PLA-CF;Voron Generic PETG;Voron Generic TPU;Voron Generic ASA;Voron Generic PC;Voron Generic PVA;Voron Generic PA;Voron Generic PA-CF" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Voron/machine/Voron 2.4 300.json b/resources/profiles/Voron/machine/Voron 2.4 300.json index 094357baa4..2e1b5c362a 100644 --- a/resources/profiles/Voron/machine/Voron 2.4 300.json +++ b/resources/profiles/Voron/machine/Voron 2.4 300.json @@ -8,5 +8,5 @@ "bed_model": "Voron_300_build_plate.stl", "bed_texture": "voron_logo.png", "hotend_model": "", - "default_materials": "Voron Generic ABS;Voron Generic PLA;Voron Generic PLA-CF;Voron Generic PETG;Voron Generic TPU;Voron Generic ASA;Voron Generic PC;Voron Generic PVA;Voron Generic PA;Voron Generic PA-CF" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Voron/machine/Voron 2.4 350.json b/resources/profiles/Voron/machine/Voron 2.4 350.json index 785831a3a1..a98f84b23c 100644 --- a/resources/profiles/Voron/machine/Voron 2.4 350.json +++ b/resources/profiles/Voron/machine/Voron 2.4 350.json @@ -8,5 +8,5 @@ "bed_model": "Voron_350_build_plate.stl", "bed_texture": "voron_logo.png", "hotend_model": "", - "default_materials": "Voron Generic ABS;Voron Generic PLA;Voron Generic PLA-CF;Voron Generic PETG;Voron Generic TPU;Voron Generic ASA;Voron Generic PC;Voron Generic PVA;Voron Generic PA;Voron Generic PA-CF" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Voron/machine/Voron Switchwire 250.json b/resources/profiles/Voron/machine/Voron Switchwire 250.json index 9955eaa057..a4d76d2c20 100644 --- a/resources/profiles/Voron/machine/Voron Switchwire 250.json +++ b/resources/profiles/Voron/machine/Voron Switchwire 250.json @@ -8,5 +8,5 @@ "bed_model": "", "bed_texture": "voron_switchwire_logo.png", "hotend_model": "", - "default_materials": "Voron Generic PLA;Voron Generic PLA-CF;Voron Generic PETG;Voron Generic TPU" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Voron/machine/Voron Trident 250.json b/resources/profiles/Voron/machine/Voron Trident 250.json index 614aa804e2..c1fe6938fb 100644 --- a/resources/profiles/Voron/machine/Voron Trident 250.json +++ b/resources/profiles/Voron/machine/Voron Trident 250.json @@ -8,5 +8,5 @@ "bed_model": "Voron_250_build_plate.stl", "bed_texture": "voron_logo.png", "hotend_model": "", - "default_materials": "Voron Generic ABS;Voron Generic PLA;Voron Generic PLA-CF;Voron Generic PETG;Voron Generic TPU;Voron Generic ASA;Voron Generic PC;Voron Generic PVA;Voron Generic PA;Voron Generic PA-CF" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Voron/machine/Voron Trident 300.json b/resources/profiles/Voron/machine/Voron Trident 300.json index 9f5ca659ea..34ad1f3816 100644 --- a/resources/profiles/Voron/machine/Voron Trident 300.json +++ b/resources/profiles/Voron/machine/Voron Trident 300.json @@ -8,5 +8,5 @@ "bed_model": "Voron_300_build_plate.stl", "bed_texture": "voron_logo.png", "hotend_model": "", - "default_materials": "Voron Generic ABS;Voron Generic PLA;Voron Generic PLA-CF;Voron Generic PETG;Voron Generic TPU;Voron Generic ASA;Voron Generic PC;Voron Generic PVA;Voron Generic PA;Voron Generic PA-CF" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Voron/machine/Voron Trident 350.json b/resources/profiles/Voron/machine/Voron Trident 350.json index 7be86f5435..36728f5146 100644 --- a/resources/profiles/Voron/machine/Voron Trident 350.json +++ b/resources/profiles/Voron/machine/Voron Trident 350.json @@ -8,5 +8,5 @@ "bed_model": "Voron_350_build_plate.stl", "bed_texture": "voron_logo.png", "hotend_model": "", - "default_materials": "Voron Generic ABS;Voron Generic PLA;Voron Generic PLA-CF;Voron Generic PETG;Voron Generic TPU;Voron Generic ASA;Voron Generic PC;Voron Generic PVA;Voron Generic PA;Voron Generic PA-CF" + "default_materials": "Generic ABS @System;Generic PLA @System;Generic PLA-CF @System;Generic PETG @System;Generic TPU @System;Generic ASA @System;Generic PC @System;Generic PVA @System;Generic PA @System;Generic PA-CF @System" } diff --git a/resources/profiles/Voron/machine/fdm_klipper_common.json b/resources/profiles/Voron/machine/fdm_klipper_common.json index 4b16b80ad9..f5d40395c0 100644 --- a/resources/profiles/Voron/machine/fdm_klipper_common.json +++ b/resources/profiles/Voron/machine/fdm_klipper_common.json @@ -125,7 +125,7 @@ "1" ], "default_filament_profile": [ - "Voron Generic ABS" + "Generic PLA @System" ], "default_print_profile": "0.20mm Standard @Voron", "bed_exclude_area": [ diff --git a/resources/profiles/Voxelab/machine/Voxelab Aquila X2 0.4 nozzle.json b/resources/profiles/Voxelab/machine/Voxelab Aquila X2 0.4 nozzle.json index 9fbb7e6cda..48f874a264 100644 --- a/resources/profiles/Voxelab/machine/Voxelab Aquila X2 0.4 nozzle.json +++ b/resources/profiles/Voxelab/machine/Voxelab Aquila X2 0.4 nozzle.json @@ -101,7 +101,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Voxelab Generic PLA" + "Generic PLA @System" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Voxelab/machine/Voxelab Aquila X2.json b/resources/profiles/Voxelab/machine/Voxelab Aquila X2.json index 0f4b349267..b9e7ba18a8 100644 --- a/resources/profiles/Voxelab/machine/Voxelab Aquila X2.json +++ b/resources/profiles/Voxelab/machine/Voxelab Aquila X2.json @@ -8,5 +8,5 @@ "bed_model": "voxelab_aquilax2_buildplate_model.stl", "bed_texture": "voxelab_aquilax2_buildplate_texture.png", "hotend_model": "", - "default_materials": "Voxelab Generic ABS;Voxelab Generic PETG;Voxelab Generic PLA" + "default_materials": "Generic ABS @System;Generic PETG @System;Generic PLA @System" } diff --git a/resources/profiles/Wanhao/machine/Wanhao D12-300.json b/resources/profiles/Wanhao/machine/Wanhao D12-300.json index 5464ab7d0f..115de65078 100644 --- a/resources/profiles/Wanhao/machine/Wanhao D12-300.json +++ b/resources/profiles/Wanhao/machine/Wanhao D12-300.json @@ -8,5 +8,5 @@ "bed_model": "", "bed_texture": "Wanhao D12-300_buildplate_texture.png", "hotend_model": "Wanaho D12-300_hotend.stl", - "default_materials": "Wanhao Generic PLA;Wanhao Generic PETG;Wanhao Generic TPU;" + "default_materials": "Generic PLA @System;Generic PETG @System;Generic TPU @System;" } diff --git a/resources/profiles/Wanhao/machine/fdm_wanhao_common.json b/resources/profiles/Wanhao/machine/fdm_wanhao_common.json index 0b23d2ddbc..085cb50bd6 100644 --- a/resources/profiles/Wanhao/machine/fdm_wanhao_common.json +++ b/resources/profiles/Wanhao/machine/fdm_wanhao_common.json @@ -124,7 +124,7 @@ "1" ], "default_filament_profile": [ - "Generic PLA @BIQU" + "Generic PLA @System" ], "default_print_profile": "0.20mm Standard @BIQU", "bed_exclude_area": [ diff --git a/scripts/orca_extra_profile_check.py b/scripts/orca_extra_profile_check.py index 105bf154ae..33d8c0acc4 100644 --- a/scripts/orca_extra_profile_check.py +++ b/scripts/orca_extra_profile_check.py @@ -49,10 +49,102 @@ def check_filament_compatible_printers(vendor_folder): error += 1 return error +def load_available_filament_profiles(profiles_dir, vendor_name): + """ + Load all available filament profiles from a vendor's directory. + + Parameters: + profiles_dir (Path): The directory containing vendor profile directories + vendor_name (str): The name of the vendor directory + + Returns: + set: A set of filament profile names + """ + profiles = set() + vendor_path = profiles_dir / vendor_name / "filament" + + if not vendor_path.exists(): + return profiles + + for file_path in vendor_path.rglob("*.json"): + try: + with open(file_path, 'r') as fp: + data = json.load(fp) + if "name" in data: + profiles.add(data["name"]) + except Exception as e: + print(f"Error loading filament profile {file_path}: {e}") + + return profiles + +def check_machine_default_materials(profiles_dir, vendor_name): + """ + Checks if default materials referenced in machine profiles exist in + the vendor's filament library or in the global OrcaFilamentLibrary. + + Parameters: + profiles_dir (Path): The base profiles directory + vendor_name (str): The vendor name to check + + Returns: + int: Number of missing filament references found + """ + error_count = 0 + machine_dir = profiles_dir / vendor_name / "machine" + + if not machine_dir.exists(): + print(f"No machine profiles found for vendor: {vendor_name}") + return 0 + + # Load available filament profiles + vendor_filaments = load_available_filament_profiles(profiles_dir, vendor_name) + global_filaments = load_available_filament_profiles(profiles_dir, "OrcaFilamentLibrary") + all_available_filaments = vendor_filaments.union(global_filaments) + + # Check each machine profile + for file_path in machine_dir.rglob("*.json"): + try: + with open(file_path, 'r') as fp: + data = json.load(fp) + + default_materials = None + if "default_materials" in data: + default_materials = data["default_materials"] + elif "default_filament_profile" in data: + default_materials = data["default_filament_profile"] + + if default_materials: + if isinstance(default_materials, list): + for material in default_materials: + if material not in all_available_filaments: + print(f"Missing filament profile: '{material}' referenced in {file_path.relative_to(profiles_dir)}") + error_count += 1 + else: + # Handle semicolon-separated list of materials in a string + if ";" in default_materials: + for material in default_materials.split(";"): + material = material.strip() + if material and material not in all_available_filaments: + print(f"Missing filament profile: '{material}' referenced in {file_path.relative_to(profiles_dir)}") + error_count += 1 + else: + # Single material in a string + if default_materials not in all_available_filaments: + print(f"Missing filament profile: '{default_materials}' referenced in {file_path.relative_to(profiles_dir)}") + error_count += 1 + + except Exception as e: + print(f"Error processing machine profile {file_path}: {e}") + error_count += 1 + + return error_count + def main(): print("Checking compatible_printers ...") - parser = argparse.ArgumentParser(description="Check compatible_printers") + parser = argparse.ArgumentParser(description="Check profiles for issues") parser.add_argument("--vendor", type=str, required=False, help="Vendor name") + parser.add_argument("--check-filaments", default=True, action="store_true", help="Check compatible_printers in filament profiles") + parser.add_argument("--check-materials", action="store_true", help="Check default materials in machine profiles") args = parser.parse_args() script_dir = Path(__file__).resolve().parent @@ -61,7 +153,10 @@ def main(): errors_found = 0 if args.vendor: - errors_found += check_filament_compatible_printers(profiles_dir / args.vendor / "filament") + if args.check_filaments or not (args.check_materials and not args.check_filaments): + errors_found += check_filament_compatible_printers(profiles_dir / args.vendor / "filament") + if args.check_materials: + errors_found += check_machine_default_materials(profiles_dir, args.vendor) checked_vendor_count += 1 else: for vendor_dir in profiles_dir.iterdir(): @@ -69,7 +164,10 @@ def main(): if vendor_dir.name == "OrcaFilamentLibrary": continue if vendor_dir.is_dir(): - errors_found += check_filament_compatible_printers(vendor_dir / "filament") + if args.check_filaments or not (args.check_materials and not args.check_filaments): + errors_found += check_filament_compatible_printers(vendor_dir / "filament") + if args.check_materials: + errors_found += check_machine_default_materials(profiles_dir, vendor_dir.name) checked_vendor_count += 1 if errors_found > 0: diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index 0f27210b48..f3a3adba44 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -48,7 +48,7 @@ static std::vector s_project_options { const char *PresetBundle::ORCA_DEFAULT_BUNDLE = "Custom"; const char *PresetBundle::ORCA_DEFAULT_PRINTER_MODEL = "MyKlipper 0.4 nozzle"; const char *PresetBundle::ORCA_DEFAULT_PRINTER_VARIANT = "0.4"; -const char *PresetBundle::ORCA_DEFAULT_FILAMENT = "My Generic PLA"; +const char *PresetBundle::ORCA_DEFAULT_FILAMENT = "Generic PLA @System"; const char *PresetBundle::ORCA_FILAMENT_LIBRARY = "OrcaFilamentLibrary"; PresetBundle::PresetBundle()