From 51deb70f64a6700540b9e2aae5c5aaaeb36b404f Mon Sep 17 00:00:00 2001 From: tao wang Date: Mon, 19 Dec 2022 14:45:32 +0800 Subject: [PATCH 01/28] FIX:fixed the side menu popup cannot be selected on macos 13 Change-Id: Ic4e9182a1a7175b89f37114b3857e813f299989d --- src/slic3r/GUI/GLCanvas3D.cpp | 2 +- src/slic3r/GUI/GUI_App.cpp | 10 ++++++++++ src/slic3r/GUI/GUI_App.hpp | 4 ++++ src/slic3r/GUI/Widgets/SideMenuPopup.cpp | 4 +++- 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 86d622409..3595276c1 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -3827,7 +3827,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) while (p->GetParent()) p = p->GetParent(); auto *top_level_wnd = dynamic_cast(p); - if (top_level_wnd && top_level_wnd->IsActive()) + if (top_level_wnd && top_level_wnd->IsActive() && !wxGetApp().get_side_menu_popup_status()) m_canvas->SetFocus(); m_mouse.position = pos.cast(); m_tooltip_enabled = false; diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 4223a0239..b8a6d613c 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -2908,6 +2908,16 @@ void GUI_App::set_label_clr_sys(const wxColour& clr) */ } +bool GUI_App::get_side_menu_popup_status() +{ + return m_side_popup_status; +} + +void GUI_App::set_side_menu_popup_status(bool status) +{ + m_side_popup_status = status; +} + bool GUI_App::tabs_as_menu() const { return false; diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index 397f215ef..8c6125491 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -282,6 +282,7 @@ private: bool enable_sync = false; bool m_is_dark_mode{ false }; bool m_adding_script_handler { false }; + bool m_side_popup_status{false}; public: std::string get_local_models_path(); bool OnInit() override; @@ -336,6 +337,9 @@ public: void update_fonts(const MainFrame *main_frame = nullptr); void set_label_clr_modified(const wxColour& clr); void set_label_clr_sys(const wxColour& clr); + //update side popup status + bool get_side_menu_popup_status(); + void set_side_menu_popup_status(bool status); const wxColour& get_label_clr_modified(){ return m_color_label_modified; } const wxColour& get_label_clr_sys() { return m_color_label_sys; } diff --git a/src/slic3r/GUI/Widgets/SideMenuPopup.cpp b/src/slic3r/GUI/Widgets/SideMenuPopup.cpp index 083d02978..21faf613b 100644 --- a/src/slic3r/GUI/Widgets/SideMenuPopup.cpp +++ b/src/slic3r/GUI/Widgets/SideMenuPopup.cpp @@ -2,6 +2,7 @@ #include "Label.hpp" #include +#include "../GUI_App.hpp" @@ -17,7 +18,6 @@ SidePopup::SidePopup(wxWindow* parent) #ifdef __WINDOWS__ SetDoubleBuffered(true); #endif //__WINDOWS__ - } SidePopup::~SidePopup() @@ -27,6 +27,7 @@ SidePopup::~SidePopup() void SidePopup::OnDismiss() { + Slic3r::GUI::wxGetApp().set_side_menu_popup_status(false); wxPopupTransientWindow::OnDismiss(); } @@ -64,6 +65,7 @@ void SidePopup::Popup(wxWindow* focus) else Position(pos, {0, focus->GetSize().y + 12}); } + Slic3r::GUI::wxGetApp().set_side_menu_popup_status(true); wxPopupTransientWindow::Popup(); } From 29dbc77e913ab48ed27d11504118388f0ed03fb3 Mon Sep 17 00:00:00 2001 From: Arthur Date: Wed, 7 Dec 2022 20:32:33 +0800 Subject: [PATCH 02/28] NEW: add new tree support style "Tree Slim" 1. Add a new style "Tree Slim". If enabled, tree support branches are merged more aggressively, and the support volume is minimized. 2. Enable support style, add back Snug for normal support. 3. Remove hybrid(auto) type and use "Tree Hybrid" style to represent it. 4. Fix a bug in plan_layer_heights that may generate empty layers when layer height is set to 0.3mm. 5. Fix a bug where no raft is generated if there is no overhang. 6. Fix the bug where no bottom interface or bottom gap is generated when tree slim is selected. 7. Use physical distance to calc radius Change-Id: Iacd57018ae5496cdc9acd28551c44d1c88c53fe0 --- .../BBL/process/fdm_process_bbl_common.json | 1 + .../process/fdm_process_creality_common.json | 1 + .../process/fdm_process_voron_common.json | 1 + src/libslic3r/Point.hpp | 6 + src/libslic3r/Print.hpp | 1 + src/libslic3r/PrintConfig.cpp | 40 +- src/libslic3r/PrintConfig.hpp | 16 +- src/libslic3r/PrintObject.cpp | 6 +- src/libslic3r/Slicing.cpp | 2 +- src/libslic3r/SupportMaterial.cpp | 8 +- src/libslic3r/TreeSupport.cpp | 558 +++++++++++------- src/libslic3r/TreeSupport.hpp | 25 +- src/slic3r/GUI/ConfigManipulation.cpp | 37 +- src/slic3r/GUI/GUI_Factories.cpp | 2 +- src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp | 8 +- src/slic3r/GUI/Tab.cpp | 2 +- 16 files changed, 471 insertions(+), 243 deletions(-) diff --git a/resources/profiles/BBL/process/fdm_process_bbl_common.json b/resources/profiles/BBL/process/fdm_process_bbl_common.json index 091181418..9bc03d927 100644 --- a/resources/profiles/BBL/process/fdm_process_bbl_common.json +++ b/resources/profiles/BBL/process/fdm_process_bbl_common.json @@ -72,6 +72,7 @@ "enable_support": "0", "resolution": "0.012", "support_type": "normal(auto)", + "support_style": "default", "support_on_build_plate_only": "0", "support_top_z_distance": "0.2", "support_bottom_z_distance": "0.2", diff --git a/resources/profiles/Creality/process/fdm_process_creality_common.json b/resources/profiles/Creality/process/fdm_process_creality_common.json index 5b900ab1b..cd070cb22 100644 --- a/resources/profiles/Creality/process/fdm_process_creality_common.json +++ b/resources/profiles/Creality/process/fdm_process_creality_common.json @@ -62,6 +62,7 @@ "enable_support": "0", "resolution": "0.012", "support_type": "normal(auto)", + "support_style": "default", "support_on_build_plate_only": "0", "support_top_z_distance": "0.2", "support_filament": "0", diff --git a/resources/profiles/Voron/process/fdm_process_voron_common.json b/resources/profiles/Voron/process/fdm_process_voron_common.json index 740ab8e05..758be9d99 100644 --- a/resources/profiles/Voron/process/fdm_process_voron_common.json +++ b/resources/profiles/Voron/process/fdm_process_voron_common.json @@ -62,6 +62,7 @@ "enable_support": "0", "resolution": "0.012", "support_type": "normal(auto)", + "support_style": "default", "support_on_build_plate_only": "0", "support_top_z_distance": "0.2", "support_filament": "0", diff --git a/src/libslic3r/Point.hpp b/src/libslic3r/Point.hpp index a64b3b878..82ad753be 100644 --- a/src/libslic3r/Point.hpp +++ b/src/libslic3r/Point.hpp @@ -184,6 +184,12 @@ inline Point operator* (const Point& l, const double& r) return { coord_t(l.x() * r), coord_t(l.y() * r) }; } +inline std::ostream &operator<<(std::ostream &os, const Point &pt) +{ + os << unscale_(pt.x()) << "," << unscale_(pt.y()); + return os; +} + inline bool is_approx(const Point &p1, const Point &p2, coord_t epsilon = coord_t(SCALED_EPSILON)) { Point d = (p2 - p1).cwiseAbs(); diff --git a/src/libslic3r/Print.hpp b/src/libslic3r/Print.hpp index 429d44b84..8c6339a8d 100644 --- a/src/libslic3r/Print.hpp +++ b/src/libslic3r/Print.hpp @@ -352,6 +352,7 @@ public: // Get a layer approximately at print_z. const Layer* get_layer_at_printz(coordf_t print_z, coordf_t epsilon) const; Layer* get_layer_at_printz(coordf_t print_z, coordf_t epsilon); + int get_layer_idx_get_printz(coordf_t print_z, coordf_t epsilon); // BBS const Layer* get_layer_at_bottomz(coordf_t bottom_z, coordf_t epsilon) const; Layer* get_layer_at_bottomz(coordf_t bottom_z, coordf_t epsilon); diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 852d48165..62c43db03 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -177,8 +177,12 @@ static t_config_enum_values s_keys_map_SupportMaterialPattern { CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(SupportMaterialPattern) static t_config_enum_values s_keys_map_SupportMaterialStyle { + { "default", smsDefault }, { "grid", smsGrid }, - { "snug", smsSnug } + { "snug", smsSnug }, + { "tree_slim", smsTreeSlim }, + { "tree_strong", smsTreeStrong }, + { "tree_hybrid", smsTreeHybrid } }; CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(SupportMaterialStyle) @@ -192,7 +196,6 @@ CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(SupportMaterialInterfacePattern) static t_config_enum_values s_keys_map_SupportType{ { "normal(auto)", stNormalAuto }, { "tree(auto)", stTreeAuto }, - { "hybrid(auto)", stHybridAuto }, { "normal(manual)", stNormal }, { "tree(manual)", stTree } }; @@ -2369,16 +2372,14 @@ void PrintConfigDef::init_fff_params() def->label = L("Type"); def->category = L("Support"); def->tooltip = L("normal(auto) and tree(auto) is used to generate support automatically. " - "If normal or tree is selected, only support enforcers are generated"); + "If normal(manual) or tree(manual) is selected, only support enforcers are generated"); def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); def->enum_values.push_back("normal(auto)"); def->enum_values.push_back("tree(auto)"); - def->enum_values.push_back("hybrid(auto)"); def->enum_values.push_back("normal(manual)"); def->enum_values.push_back("tree(manual)"); def->enum_labels.push_back(L("normal(auto)")); def->enum_labels.push_back(L("tree(auto)")); - def->enum_labels.push_back(L("hybrid(auto)")); def->enum_labels.push_back(L("normal(manual)")); def->enum_labels.push_back(L("tree(manual)")); def->mode = comSimple; @@ -2417,7 +2418,7 @@ void PrintConfigDef::init_fff_params() def->label = L("Support critical regions only"); def->category = L("Support"); def->tooltip = L("Only create support for critical regions including sharp tail, cantilever, etc."); - def->mode = comSimple; + def->mode = comAdvanced; def->set_default_value(new ConfigOptionBool(false)); // BBS: change type to common float. @@ -2465,9 +2466,9 @@ void PrintConfigDef::init_fff_params() def = this->add("support_filament", coInt); def->gui_type = ConfigOptionDef::GUIType::i_enum_open; - def->label = L("Support"); + def->label = L("Support base"); def->category = L("Support"); - def->tooltip = L("Filament to print support and raft. \"Default\" means no specific filament for support and current filament is used"); + def->tooltip = L("Filament to print support base and raft. \"Default\" means no specific filament for support and current filament is used"); def->min = 0; def->mode = comSimple; def->set_default_value(new ConfigOptionInt(1)); @@ -2625,16 +2626,27 @@ void PrintConfigDef::init_fff_params() def = this->add("support_style", coEnum); def->label = L("Style"); def->category = L("Support"); - //def->tooltip = L("Style and shape of the support towers. Projecting the supports into a regular grid " - // "will create more stable supports, while snug support towers will save material and reduce " - // "object scarring"); + def->tooltip = L("Style and shape of the support. For normal support, projecting the supports into a regular grid " + "will create more stable supports (default), while snug support towers will save material and reduce " + "object scarring.\n" + "For tree support, tight style will merge branches more aggressively and save " + "a lot of material (default), while hybrid style will create similar structure to normal support " + "under large flat overhangs."); def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); + def->enum_values.push_back("default"); def->enum_values.push_back("grid"); def->enum_values.push_back("snug"); + def->enum_values.push_back("tree_slim"); + def->enum_values.push_back("tree_strong"); + def->enum_values.push_back("tree_hybrid"); + def->enum_labels.push_back(L("Default")); def->enum_labels.push_back(L("Grid")); def->enum_labels.push_back(L("Snug")); - def->mode = comDevelop; - def->set_default_value(new ConfigOptionEnum(smsGrid)); + def->enum_labels.push_back(L("Tree Slim")); + def->enum_labels.push_back(L("Tree Strong")); + def->enum_labels.push_back(L("Tree Hybrid")); + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionEnum(smsDefault)); def = this->add("independent_support_layer_height", coBool); def->label = L("Independent support layer height"); @@ -3816,6 +3828,8 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va value = "normal(manual)"; } else if (opt_key == "support_type" && value == "tree") { value = "tree(manual)"; + } else if (opt_key == "support_type" && value == "hybrid(auto)") { + value = "tree(auto)"; } else if (opt_key == "different_settings_to_system") { std::string copy_value = value; copy_value.erase(std::remove(copy_value.begin(), copy_value.end(), '\"'), copy_value.end()); // remove '"' in string diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index f88bf0a2e..b9569b758 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -98,7 +98,7 @@ enum SupportMaterialPattern { }; enum SupportMaterialStyle { - smsGrid, smsSnug, + smsDefault, smsGrid, smsSnug, smsTreeSlim, smsTreeStrong, smsTreeHybrid }; enum SupportMaterialInterfacePattern { @@ -107,7 +107,19 @@ enum SupportMaterialInterfacePattern { // BBS enum SupportType { - stNormalAuto, stTreeAuto, stHybridAuto, stNormal, stTree + stNormalAuto, stTreeAuto, stNormal, stTree +}; +inline bool is_tree(SupportType stype) +{ + return std::set{stTreeAuto, stTree}.count(stype) != 0; +}; +inline bool is_tree_slim(SupportType type, SupportMaterialStyle style) +{ + return is_tree(type) && (style==smsDefault || style==smsTreeSlim); +}; +inline bool is_auto(SupportType stype) +{ + return std::set{stNormalAuto, stTreeAuto}.count(stype) != 0; }; enum SeamPosition { diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index 05330140d..4cc8b2fc2 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -2864,7 +2864,11 @@ const Layer *PrintObject::get_first_layer_bellow_printz(coordf_t print_z, coordf auto it = Slic3r::lower_bound_by_predicate(m_layers.begin(), m_layers.end(), [limit](const Layer *layer) { return layer->print_z < limit; }); return (it == m_layers.begin()) ? nullptr : *(--it); } - +int PrintObject::get_layer_idx_get_printz(coordf_t print_z, coordf_t epsilon) { + coordf_t limit = print_z + epsilon; + auto it = Slic3r::lower_bound_by_predicate(m_layers.begin(), m_layers.end(), [limit](const Layer *layer) { return layer->print_z < limit; }); + return (it == m_layers.begin()) ? -1 : std::distance(m_layers.begin(), it); +} // BBS const Layer* PrintObject::get_layer_at_bottomz(coordf_t bottom_z, coordf_t epsilon) const { coordf_t limit_upper = bottom_z + epsilon; diff --git a/src/libslic3r/Slicing.cpp b/src/libslic3r/Slicing.cpp index 36c04a523..53f70a81d 100644 --- a/src/libslic3r/Slicing.cpp +++ b/src/libslic3r/Slicing.cpp @@ -110,7 +110,7 @@ SlicingParameters SlicingParameters::create_from_config( params.min_layer_height = std::min(params.min_layer_height, params.layer_height); params.max_layer_height = std::max(params.max_layer_height, params.layer_height); - if (! soluble_interface) { + if (! soluble_interface || is_tree_slim(object_config.support_type.value, object_config.support_style.value)) { params.gap_raft_object = object_config.raft_contact_distance.value; //BBS params.gap_object_support = object_config.support_bottom_z_distance.value; diff --git a/src/libslic3r/SupportMaterial.cpp b/src/libslic3r/SupportMaterial.cpp index 75d8c0052..50c834bf5 100644 --- a/src/libslic3r/SupportMaterial.cpp +++ b/src/libslic3r/SupportMaterial.cpp @@ -790,6 +790,7 @@ public: m_extrusion_width(params.extrusion_width), m_support_material_closing_radius(params.support_closing_radius) { + if (m_style == smsDefault) m_style = smsGrid; switch (m_style) { case smsGrid: { @@ -1578,9 +1579,8 @@ static inline Polygons detect_overhangs( // Offset the support regions back to a full overhang, restrict them to the full overhang. // This is done to increase size of the supporting columns below, as they are calculated by // propagating these contact surfaces downwards. - diff_polygons = - expand(diff(intersection(expand(diff_polygons, lower_layer_offset, SUPPORT_SURFACES_OFFSET_PARAMETERS), layerm_polygons), lower_layer_polygons), - xy_expansion, SUPPORT_SURFACES_OFFSET_PARAMETERS); + diff_polygons = diff(intersection(expand(diff_polygons, lower_layer_offset, SUPPORT_SURFACES_OFFSET_PARAMETERS), layerm_polygons), lower_layer_polygons); + if (xy_expansion != 0) { diff_polygons = expand(diff_polygons, xy_expansion, SUPPORT_SURFACES_OFFSET_PARAMETERS); } } //FIXME add user defined filtering here based on minimal area or minimum radius or whatever. @@ -2191,7 +2191,7 @@ PrintObjectSupportMaterial::MyLayersPtr PrintObjectSupportMaterial::top_contact_ // BBS: tree support is selected so normal supports need not be generated. // Note we still need to go through the following steps if support is disabled but raft is enabled. - if (m_object_config->enable_support.value && (m_object_config->support_type.value == stTreeAuto || m_object_config->support_type.value == stTree || m_object_config->support_type.value == stHybridAuto)) { + if (m_object_config->enable_support.value && (m_object_config->support_type.value != stNormalAuto && m_object_config->support_type.value != stNormal)) { return MyLayersPtr(); } diff --git a/src/libslic3r/TreeSupport.cpp b/src/libslic3r/TreeSupport.cpp index ce8d5ffc8..39b8f3ae8 100644 --- a/src/libslic3r/TreeSupport.cpp +++ b/src/libslic3r/TreeSupport.cpp @@ -15,10 +15,8 @@ #define _L(s) Slic3r::I18N::translate(s) - -#define MAX_BRANCH_RADIUS 10.0 +#define USE_PLAN_LAYER_HEIGHTS 1 #define HEIGHT_TO_SWITCH_INFILL_DIRECTION 30 // change infill direction every 20mm -#define DO_NOT_MOVER_UNDER_MM 5 // do not move contact points under 5mm #ifndef M_PI #define M_PI 3.1415926535897932384626433832795 @@ -36,7 +34,6 @@ namespace Slic3r #define unscale_(val) ((val) * SCALING_FACTOR) #define FIRST_LAYER_EXPANSION 1.2 -static constexpr float tree_support_branch_diameter_angle = 5.0; inline unsigned int round_divide(unsigned int dividend, unsigned int divisor) //!< Return dividend divided by divisor rounded to the nearest integer { @@ -201,7 +198,7 @@ static std::string get_svg_filename(std::string layer_nr_or_z, std::string tag static void draw_contours_and_nodes_to_svg ( - int layer_nr, + std::string layer_nr_or_z, const ExPolygons &overhangs, const ExPolygons &overhangs_after_offset, const ExPolygons &outlines_below, @@ -224,8 +221,8 @@ static void draw_contours_and_nodes_to_svg bbox.max.y() = std::max(bbox.max.y(), (coord_t)scale_(10)); SVG svg; - if(layer_nr>=0) - svg.open(get_svg_filename(std::to_string(layer_nr), name_prefix), bbox); + if(!layer_nr_or_z.empty()) + svg.open(get_svg_filename(layer_nr_or_z, name_prefix), bbox); else svg.open(name_prefix, bbox); if (!svg.is_opened()) return; @@ -265,8 +262,7 @@ static void draw_contours_and_nodes_to_svg } static void draw_layer_mst -( - int layer_nr, +(const std::string &layer_nr_or_z, const std::vector &spanning_trees, const ExPolygons& outline ) @@ -279,11 +275,13 @@ static void draw_layer_mst bbox.merge(bb); } - SVG svg(get_svg_filename(std::to_string(layer_nr), "mstree").c_str(), bbox); + SVG svg(get_svg_filename(layer_nr_or_z, "mstree").c_str(), bbox); if (!svg.is_opened()) return; svg.draw(lines, "blue", coord_t(scale_(0.05))); svg.draw_outline(outline, "yellow"); + for (auto &spanning_tree : spanning_trees) + svg.draw(spanning_tree.vertices(), "black", coord_t(scale_(0.1))); } static void draw_two_overhangs_to_svg(TreeSupportLayer* ts_layer, const ExPolygons& overhangs1, const ExPolygons& overhangs2) @@ -697,6 +695,10 @@ TreeSupport::TreeSupport(PrintObject& object, const SlicingParameters &slicing_p m_object_config->support_interface_pattern == smipConcentric ? ipConcentric : (m_support_params.interface_density > 0.95 ? ipRectilinear : ipSupportBase); + m_support_params.support_extrusion_width = m_object_config->support_line_width.value > 0 ? m_object_config->support_line_width : m_object_config->line_width; + is_slim = is_tree_slim(m_object_config->support_type, m_object_config->support_style); + MAX_BRANCH_RADIUS = is_slim ? 5.0 : 10.0; + tree_support_branch_diameter_angle = 5.0;//is_slim ? 10.0 : 5.0; } @@ -713,6 +715,7 @@ void TreeSupport::detect_object_overhangs() create_tree_support_layers(); m_ts_data = m_object->alloc_tree_support_preview_cache(); + m_ts_data->is_slim = is_slim; const PrintObjectConfig& config = m_object->config(); SupportType stype = config.support_type.value; @@ -729,7 +732,6 @@ void TreeSupport::detect_object_overhangs() // a region is considered well supported if the number of layers below it exceeds this threshold const int thresh_layers_below = 10 / config.layer_height; double obj_height = m_object->size().z(); - bool is_auto = (stype == stTreeAuto || stype == stHybridAuto); struct ExPolygonComp { bool operator()(const ExPolygon& a, const ExPolygon& b) const { @@ -822,7 +824,7 @@ void TreeSupport::detect_object_overhangs() } }; // main part of sharptail detections - if (std::set{stTreeAuto, stHybridAuto, stTree}.count(stype))// == stTreeAuto || stype == stHybridAuto || stype == stTree) + if (is_tree(stype)) { double threshold_rad = (config.support_threshold_angle.value < EPSILON ? 30 : config.support_threshold_angle.value+1) * M_PI / 180.; ExPolygons regions_well_supported; @@ -833,7 +835,7 @@ void TreeSupport::detect_object_overhangs() if (m_object->print()->canceled()) break; - if (!is_auto && layer_nr > enforce_support_layers) + if (!is_auto(stype) && layer_nr > enforce_support_layers) continue; Layer* layer = m_object->get_layer(layer_nr); @@ -881,7 +883,7 @@ void TreeSupport::detect_object_overhangs() ExPolygons overhangs_sharp_tail; - if (is_auto && g_config_support_sharp_tails) + if (is_auto(stype) && g_config_support_sharp_tails) { #if 0 // detect sharp tail and add more supports around @@ -996,13 +998,13 @@ void TreeSupport::detect_object_overhangs() ts_layer->overhang_areas.emplace_back(poly); } - if (is_auto && g_config_remove_small_overhangs) { + if (is_auto(stype) && g_config_remove_small_overhangs) { for (auto& overhang : ts_layer->overhang_areas) { find_and_insert_cluster(overhangClusters, overhang2clusterInd, overhang, layer_nr, extrusion_width_scaled); } } - if (is_auto && /*g_config_support_sharp_tails*/0) + if (is_auto(stype) && /*g_config_support_sharp_tails*/0) { // update well supported regions ExPolygons regions_well_supported2; // regions intersects with lower regions_well_supported or large support are also well supported @@ -1074,7 +1076,7 @@ void TreeSupport::detect_object_overhangs() } } - if (is_auto && g_config_remove_small_overhangs) { + if (is_auto(stype) && g_config_remove_small_overhangs) { if (blockers.size() < m_object->layer_count()) blockers.resize(m_object->layer_count()); for (auto& cluster : overhangClusters) { @@ -1393,7 +1395,7 @@ void TreeSupport::generate_toolpaths() { const PrintConfig &print_config = m_object->print()->config(); const PrintObjectConfig &object_config = m_object->config(); - coordf_t support_extrusion_width = object_config.support_line_width.value > 0 ? object_config.support_line_width : object_config.line_width; + coordf_t support_extrusion_width = m_support_params.support_extrusion_width; coordf_t nozzle_diameter = print_config.nozzle_diameter.get_at(object_config.support_filament - 1); coordf_t layer_height = object_config.layer_height.value; @@ -1862,8 +1864,7 @@ Polygons TreeSupport::contact_nodes_to_polygon(const std::vector& contact void TreeSupport::generate_support_areas() { const PrintObjectConfig &config = m_object->config(); - bool tree_support_enable = config.enable_support.value && - (config.support_type.value == stTreeAuto || config.support_type.value == stTree || config.support_type.value == stHybridAuto); + bool tree_support_enable = config.enable_support.value && is_tree(config.support_type.value); if (!tree_support_enable) return; @@ -1877,8 +1878,6 @@ void TreeSupport::generate_support_areas() detect_object_overhangs(); profiler.stage_finish(STAGE_DETECT_OVERHANGS); - if (!has_overhangs) return; - // Generate contact points of tree support profiler.stage_start(STAGE_GENERATE_CONTACT_NODES); m_object->print()->set_status(56, _L("Support: generate contact points")); @@ -1891,8 +1890,12 @@ void TreeSupport::generate_support_areas() drop_nodes(contact_nodes); profiler.stage_finish(STAGE_DROP_DOWN_NODES); + // smooth_nodes(contact_nodes); + +#if !USE_PLAN_LAYER_HEIGHTS // Adjust support layer heights - // adjust_layer_heights(contact_nodes); + adjust_layer_heights(contact_nodes); +#endif //Generate support areas. profiler.stage_start(STAGE_DRAW_CIRCLES); @@ -1919,23 +1922,40 @@ void TreeSupport::generate_support_areas() BOOST_LOG_TRIVIAL(debug) << "tree support time " << profiler.report(); } -inline coordf_t calc_branch_radius(coordf_t base_radius, size_t layers_to_top, size_t tip_layers, double diameter_angle_scale_factor) +coordf_t TreeSupport::calc_branch_radius(coordf_t base_radius, size_t layers_to_top, size_t tip_layers, double diameter_angle_scale_factor) { double radius; -#if 1 - if ((layers_to_top + 1) > tip_layers) + if (!is_slim) { + if ((layers_to_top + 1) > tip_layers) { + radius = base_radius + base_radius * (layers_to_top + 1) * diameter_angle_scale_factor; + } else { + radius = base_radius * (layers_to_top + 1) / tip_layers; + } + } else { + if ((layers_to_top + 1) > tip_layers * 2) { + radius = base_radius + base_radius * (layers_to_top + 1) * diameter_angle_scale_factor; + } else { + radius = base_radius * (layers_to_top + 1) / (tip_layers * 2); + } + radius = std::max(radius, MIN_BRANCH_RADIUS); + } + radius = std::min(radius, MAX_BRANCH_RADIUS); + return radius; +} + +coordf_t TreeSupport::calc_branch_radius(coordf_t base_radius, coordf_t mm_to_top, double diameter_angle_scale_factor) +{ + double radius; + if (mm_to_top > base_radius) { - radius = base_radius + base_radius * (layers_to_top + 1) * diameter_angle_scale_factor; + radius = base_radius + mm_to_top * diameter_angle_scale_factor; } else { - radius = base_radius * (layers_to_top + 1) / tip_layers; + radius = mm_to_top * diameter_angle_scale_factor; } -#else - double scale = static_cast(layers_to_top + 1) / tip_layers; - scale = layers_to_top < tip_layers ? (0.5 + scale / 2) : (1 + static_cast(layers_to_top - tip_layers) * diameter_angle_scale_factor); - radius = scale * base_radius; -#endif + + radius = std::max(radius, MIN_BRANCH_RADIUS); radius = std::min(radius, MAX_BRANCH_RADIUS); return radius; } @@ -1999,12 +2019,12 @@ void TreeSupport::draw_circles(const std::vector>& contact_no const size_t top_interface_layers = config.support_interface_top_layers.value; const size_t bottom_interface_layers = config.support_interface_bottom_layers.value; const size_t tip_layers = branch_radius / layer_height; //The number of layers to be shrinking the circle to create a tip. This produces a 45 degree angle. - const double diameter_angle_scale_factor = sin(tree_support_branch_diameter_angle * M_PI / 180.) * layer_height / branch_radius; //Scale factor per layer to produce the desired angle. + const double diameter_angle_scale_factor = tan(tree_support_branch_diameter_angle * M_PI / 180.);// * layer_height / branch_radius; //Scale factor per layer to produce the desired angle. const coordf_t line_width = config.support_line_width; const coordf_t line_width_scaled = scale_(line_width); const bool with_lightning_infill = m_support_params.base_fill_pattern == ipLightning; - coordf_t support_extrusion_width = config.support_line_width.value > 0 ? config.support_line_width : config.line_width; + coordf_t support_extrusion_width = m_support_params.support_extrusion_width; const size_t wall_count = config.tree_support_wall_count.value; const PrintObjectConfig& object_config = m_object->config(); @@ -2059,18 +2079,15 @@ void TreeSupport::draw_circles(const std::vector>& contact_no break; const Node& node = *p_node; - ExPolygon area; + ExPolygons area; // Generate directly from overhang polygon if one of the following is true: // 1) node is a normal part of hybrid support - // 2) top interface layers are enabled - // 3) node is virtual - if (node.type == ePolygon || (top_interface_layers>0 &&node.support_roof_layers_below > 0) || node.distance_to_top<0) { + // 2) node is virtual + if (node.type == ePolygon || node.distance_to_top<0) { if (node.overhang->contour.size() > 100 || node.overhang->holes.size()>1) - area = *node.overhang; + area.emplace_back(*node.overhang); else { - auto tmp = offset_ex({ *node.overhang }, scale_(m_ts_data->m_xy_distance)); - if(!tmp.empty()) // can be empty for non-manifold models - area = tmp[0]; + area = offset_ex({ *node.overhang }, scale_(m_ts_data->m_xy_distance)); } } else { @@ -2080,43 +2097,65 @@ void TreeSupport::draw_circles(const std::vector>& contact_no if (top_interface_layers>0) { // if has interface, branch circles should be larger scale = static_cast(layers_to_top + 1) / tip_layers; scale = layers_to_top < tip_layers ? (0.5 + scale / 2) : (1 + static_cast(layers_to_top - tip_layers) * diameter_angle_scale_factor); + } else { // directly calc scale from the radius used in drop_nodes + scale = calc_branch_radius(branch_radius, node.dist_mm_to_top, diameter_angle_scale_factor) / branch_radius; + } + if (is_slim && 0) { + double moveX = node.movement.x() / (scale * branch_radius_scaled); + double moveY = node.movement.y() / (scale * branch_radius_scaled); + const double vsize_inv = 0.5 / (0.01 + std::sqrt(moveX * moveX + moveY * moveY)); + double matrix[2*2] = { + scale * (1 + moveX * moveX * vsize_inv),scale * (0 + moveX * moveY * vsize_inv), + scale * (0 + moveX * moveY * vsize_inv),scale * (1 + moveY * moveY * vsize_inv), + }; + for (auto vertex: branch_circle.points) { + vertex = Point(matrix[0] * vertex.x() + matrix[1] * vertex.y(), matrix[2] * vertex.x() + matrix[3] * vertex.y()); + circle.append(node.position + vertex); + } } else { - scale = calc_branch_radius(1, node.distance_to_top, tip_layers, diameter_angle_scale_factor); - scale = std::min(scale, MAX_BRANCH_RADIUS / branch_radius); + for (auto iter = branch_circle.points.begin(); iter != branch_circle.points.end(); iter++) { + Point corner = (*iter) * scale; + circle.append(node.position + corner); + } } - for (auto iter = branch_circle.points.begin(); iter != branch_circle.points.end(); iter++) - { - Point corner = (*iter) * scale; - circle.append(node.position + corner); - } - if (layer_nr == 0 && m_raft_layers == 0) { double brim_width = layers_to_top * layer_height / (scale * branch_radius) * 0.5; circle = offset(circle, scale_(brim_width))[0]; } - area = ExPolygon(circle); + area.emplace_back(ExPolygon(circle)); + // merge overhang to get a smoother interface surface + if (top_interface_layers > 0 && node.support_roof_layers_below > 0) { + ExPolygons overhang_expanded; + if (node.overhang->contour.size() > 100 || node.overhang->holes.size()>1) + overhang_expanded.emplace_back(*node.overhang); + else { + // 对于有缺陷的模型,overhang膨胀以后可能是空的! + overhang_expanded = offset_ex({ *node.overhang }, scale_(m_ts_data->m_xy_distance)); + } + append(area, overhang_expanded); + } } if (node.distance_to_top < 0) - roof_gap_areas.emplace_back(area); + append(roof_gap_areas, area); else if (node.support_roof_layers_below == 1) { - roof_1st_layer.emplace_back(area); + append(roof_1st_layer, area); max_layers_above_roof1 = std::max(max_layers_above_roof1, node.distance_to_top); } else if (node.support_roof_layers_below > 0) { - roof_areas.emplace_back(area); + append(roof_areas, area); max_layers_above_roof = std::max(max_layers_above_roof, node.distance_to_top); } else { - base_areas.emplace_back(area); + append(base_areas, area); max_layers_above_base = std::max(max_layers_above_base, node.distance_to_top); } if (layer_nr < brim_skirt_layers) - ts_layer->lslices.emplace_back(area); + append(ts_layer->lslices, area); } ts_layer->lslices = std::move(union_ex(ts_layer->lslices)); @@ -2131,7 +2170,7 @@ void TreeSupport::draw_circles(const std::vector>& contact_no m_object->print()->set_status(65, (boost::format( _L("Support: generate polygons at layer %d")) % layer_nr).str()); // join roof segments - double contact_dist_scaled = scale_(m_slicing_params.gap_support_object); + double contact_dist_scaled = scale_(0.5);// scale_(m_slicing_params.gap_support_object); roof_areas = std::move(offset2_ex(roof_areas, contact_dist_scaled, -contact_dist_scaled)); roof_1st_layer = std::move(offset2_ex(roof_1st_layer, contact_dist_scaled, -contact_dist_scaled)); @@ -2180,9 +2219,9 @@ void TreeSupport::draw_circles(const std::vector>& contact_no } if (bottom_gap_layers > 0 && layer_nr > bottom_gap_layers) { const Layer* below_layer = m_object->get_layer(layer_nr - bottom_gap_layers); - ExPolygons bottom_gap = std::move(intersection_ex(floor_areas, below_layer->lslices)); - if (!bottom_gap.empty()) { - floor_areas = std::move(diff_ex(floor_areas, bottom_gap)); + ExPolygons bottom_gap_area = std::move(intersection_ex(floor_areas, below_layer->lslices)); + if (!bottom_gap_area.empty()) { + floor_areas = std::move(diff_ex(floor_areas, bottom_gap_area)); } } auto &area_groups = ts_layer->area_groups; @@ -2397,7 +2436,7 @@ void TreeSupport::draw_circles(const std::vector>& contact_no ExPolygons& floor_areas = ts_layer->floor_areas; if (base_areas.empty() && roof_areas.empty() && roof_1st_layer.empty()) continue; char fname[10]; sprintf(fname, "%d_%.2f", layer_nr, ts_layer->print_z); - draw_contours_and_nodes_to_svg(-1, base_areas, roof_areas, roof_1st_layer, {}, {}, get_svg_filename(fname, "circles"), { "base", "roof", "roof1st" }); + draw_contours_and_nodes_to_svg("", base_areas, roof_areas, roof_1st_layer, {}, {}, get_svg_filename(fname, "circles"), {"base", "roof", "roof1st"}); } // export layer & print_z log @@ -2429,25 +2468,51 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) { const PrintObjectConfig &config = m_object->config(); // Use Minimum Spanning Tree to connect the points on each layer and move them while dropping them down. + const coordf_t support_extrusion_width = m_support_params.support_extrusion_width; const coordf_t layer_height = config.layer_height.value; const double angle = config.tree_support_branch_angle.value * M_PI / 180.; const int wall_count = std::max(1, config.tree_support_wall_count.value); - const double tan_angle = tan(angle); + double tan_angle = tan(angle); // when nodes are thick, they can move further. this is the max angle const coordf_t max_move_distance = (angle < M_PI / 2) ? (coordf_t)(tan_angle * layer_height)*wall_count : std::numeric_limits::max(); const double max_move_distance2 = max_move_distance * max_move_distance; const coordf_t branch_radius = config.tree_support_branch_diameter.value / 2; const size_t tip_layers = branch_radius / layer_height; //The number of layers to be shrinking the circle to create a tip. This produces a 45 degree angle. - const double diameter_angle_scale_factor = sin(tree_support_branch_diameter_angle * M_PI / 180.) * layer_height / branch_radius; //Scale factor per layer to produce the desired angle. + const double diameter_angle_scale_factor = tan(tree_support_branch_diameter_angle * M_PI / 180.);//*layer_height / branch_radius; // Scale factor per layer to produce the desired angle. const coordf_t radius_sample_resolution = m_ts_data->m_radius_sample_resolution; const bool support_on_buildplate_only = config.support_on_build_plate_only.value; const size_t bottom_interface_layers = config.support_interface_bottom_layers.value; const size_t top_interface_layers = config.support_interface_top_layers.value; + float DO_NOT_MOVER_UNDER_MM = is_slim ? 0 : 5; // do not move contact points under 5mm + + auto get_branch_angle = [this,&config](coordf_t radius) { + if (config.tree_support_branch_angle.value < 30.0) return config.tree_support_branch_angle.value; + return (radius - MIN_BRANCH_RADIUS) / (MAX_BRANCH_RADIUS - MIN_BRANCH_RADIUS) * (config.tree_support_branch_angle.value - 30.0) + 30.0; + }; + auto get_max_move_dist = [this, &config, branch_radius, tip_layers, diameter_angle_scale_factor, wall_count, support_extrusion_width](const Node *node, int power = 1) { + double move_dist = node->max_move_dist; + if (node->max_move_dist == 0) { + if (node->radius == 0) node->radius = calc_branch_radius(branch_radius, node->dist_mm_to_top, diameter_angle_scale_factor); + double angle = config.tree_support_branch_angle.value; + if (angle > 30.0 && node->radius > MIN_BRANCH_RADIUS) + angle = (node->radius - MIN_BRANCH_RADIUS) / (MAX_BRANCH_RADIUS - MIN_BRANCH_RADIUS) * (config.tree_support_branch_angle.value - 30.0) + 30.0; + double tan_angle = tan(angle * M_PI / 180); + int wall_count_ = node->radius > 2 * config.support_line_width ? wall_count : 1; + node->max_move_dist = (angle < 90) ? (coordf_t) (tan_angle * node->height) * wall_count_ : std::numeric_limits::max(); + node->max_move_dist = std::min(node->max_move_dist, support_extrusion_width); + move_dist = node->max_move_dist; + } + if (power == 2) move_dist = SQ(move_dist); + return move_dist; + }; + std::vector> layer_heights = plan_layer_heights(contact_nodes); + if (layer_heights.empty()) return; std::unordered_set to_free_node_set; m_spanning_trees.resize(contact_nodes.size()); //m_mst_line_x_layer_contour_caches.resize(contact_nodes.size()); + if (!is_slim) {// get outlines below and avoidance area using tbb //m_object->print()->set_status(59, "Support: preparing avoidance regions "); // get all the possible radiis @@ -2495,9 +2560,11 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) if (layer_contact_nodes.empty()) continue; - int jump_nr = 1; - while (layer_heights[layer_nr - jump_nr].second < EPSILON) - jump_nr++; + int layer_nr_next = layer_nr - 1; + while (layer_nr_next>=0 && layer_heights[layer_nr_next].second < EPSILON) + layer_nr_next--; + coordf_t print_z_next = layer_heights[layer_nr_next].first; + coordf_t height_next = layer_heights[layer_nr_next].second; std::deque> unsupported_branch_leaves; // All nodes that are leaves on this layer that would result in unsupported ('mid-air') branches. const Layer* ts_layer = m_object->get_tree_support_layer(layer_nr); @@ -2535,10 +2602,12 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) const Node& node = *p_node; if (node.distance_to_top < 0) { - // virtual node do not merge or move + // gap nodes do not merge or move Node* next_node = new Node(p_node->position, p_node->distance_to_top + 1, p_node->skin_direction, p_node->support_roof_layers_below - 1, p_node->to_buildplate, p_node, - layer_heights[layer_nr - jump_nr].first, layer_heights[layer_nr - jump_nr].second); - contact_nodes[layer_nr - jump_nr].emplace_back(next_node); + print_z_next, height_next); + get_max_move_dist(next_node); + next_node->is_merged = false; + contact_nodes[layer_nr_next].emplace_back(next_node); continue; } if (support_on_buildplate_only && !node.to_buildplate) //Can't rest on model and unable to reach the build plate. Then we must drop the node and leave parts unsupported. @@ -2555,8 +2624,10 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) // polygon node do not merge or move const bool to_buildplate = !is_inside_ex(m_ts_data->m_layer_outlines[layer_nr], p_node->position); Node *next_node = new Node(p_node->position, p_node->distance_to_top + 1, p_node->skin_direction, p_node->support_roof_layers_below - 1, to_buildplate, p_node, - layer_heights[layer_nr - jump_nr].first, layer_heights[layer_nr - jump_nr].second); - contact_nodes[layer_nr - jump_nr].emplace_back(next_node); + print_z_next, height_next); + next_node->max_move_dist = 0; + next_node->is_merged = false; + contact_nodes[layer_nr_next].emplace_back(next_node); continue; } /* Find which part this node is located in and group the nodes in @@ -2610,7 +2681,7 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) #ifdef SUPPORT_TREE_DEBUG_TO_SVG coordf_t branch_radius_temp = 0; coordf_t max_y = std::numeric_limits::min(); - draw_layer_mst(layer_nr, spanning_trees, m_object->get_layer(layer_nr)->lslices); + draw_layer_mst(std::to_string(layer_nr), spanning_trees, m_object->get_layer(layer_nr)->lslices); #endif for (size_t group_index = 0; group_index < nodes_per_part.size(); group_index++) { @@ -2631,9 +2702,9 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) //Insert a completely new node and let both original nodes fade. Point next_position = (node.position + neighbours[0]) / 2; //Average position of the two nodes. - const coordf_t branch_radius_node = calc_branch_radius(branch_radius, node.distance_to_top, tip_layers, diameter_angle_scale_factor); + const coordf_t branch_radius_node = calc_branch_radius(branch_radius, node.dist_mm_to_top, diameter_angle_scale_factor); - auto avoid_layer = m_ts_data->get_avoidance(branch_radius_node, layer_nr - jump_nr); + auto avoid_layer = m_ts_data->get_avoidance(branch_radius_node, layer_nr_next); if (group_index == 0) { //Avoid collisions. @@ -2644,12 +2715,15 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) Node* neighbour = nodes_per_part[group_index][neighbours[0]]; size_t new_distance_to_top = std::max(node.distance_to_top, neighbour->distance_to_top) + 1; size_t new_support_roof_layers_below = std::max(node.support_roof_layers_below, neighbour->support_roof_layers_below) - 1; + double new_dist_mm_to_top = std::max(node.dist_mm_to_top, neighbour->dist_mm_to_top) + node.height; - const bool to_buildplate = !is_inside_ex(m_ts_data->get_avoidance(0, layer_nr - jump_nr), next_position); + const bool to_buildplate = !is_inside_ex(m_ts_data->get_avoidance(0, layer_nr_next), next_position); Node * next_node = new Node(next_position, new_distance_to_top, node.skin_direction, new_support_roof_layers_below, to_buildplate, p_node, - layer_heights[layer_nr - jump_nr].first, layer_heights[layer_nr - jump_nr].second); + layer_heights[layer_nr_next].first, layer_heights[layer_nr_next].second, new_dist_mm_to_top); next_node->movement = next_position - node.position; - contact_nodes[layer_nr - jump_nr].push_back(next_node); + get_max_move_dist(next_node); + next_node->is_merged = true; + contact_nodes[layer_nr_next].push_back(next_node); // Make sure the next pass doesn't drop down either of these (since that already happened). node.merged_neighbours.push_front(neighbour); @@ -2661,13 +2735,15 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) //Remove all neighbours that are too close and merge them into this node. for (const Point& neighbour : neighbours) { - if (vsize2_with_unscale(neighbour - node.position) < max_move_distance2) + if (vsize2_with_unscale(neighbour - node.position) < /*max_move_distance2*/get_max_move_dist(&node,2)) { Node* neighbour_node = nodes_per_part[group_index][neighbour]; node.distance_to_top = std::max(node.distance_to_top, neighbour_node->distance_to_top); node.support_roof_layers_below = std::max(node.support_roof_layers_below, neighbour_node->support_roof_layers_below); + node.dist_mm_to_top = std::max(node.dist_mm_to_top, neighbour_node->dist_mm_to_top); node.merged_neighbours.push_front(neighbour_node); - node.merged_neighbours.insert_after(node.merged_neighbours.end(), neighbour_node->merged_neighbours.begin(), neighbour_node->merged_neighbours.end()); + node.merged_neighbours.insert(node.merged_neighbours.end(), neighbour_node->merged_neighbours.begin(), neighbour_node->merged_neighbours.end()); + node.is_merged = true; to_delete.insert(neighbour_node); } } @@ -2686,7 +2762,7 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) //If the branch falls completely inside a collision area (the entire branch would be removed by the X/Y offset), delete it. if (group_index > 0 && is_inside_ex(m_ts_data->get_collision(m_ts_data->m_xy_distance, layer_nr), node.position)) { - const coordf_t branch_radius_node = calc_branch_radius(branch_radius, node.distance_to_top, tip_layers, diameter_angle_scale_factor); + const coordf_t branch_radius_node = calc_branch_radius(branch_radius, node.dist_mm_to_top, diameter_angle_scale_factor); Point to_outside = projection_onto_ex(m_ts_data->get_collision(m_ts_data->m_xy_distance, layer_nr), node.position); double dist2_to_outside = vsize2_with_unscale(node.position - to_outside); if (dist2_to_outside >= branch_radius_node * branch_radius_node) //Too far inside. @@ -2715,110 +2791,119 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) } Point next_layer_vertex = node.position; Point move_to_neighbor_center; + std::vector moves; + std::vector weights; const std::vector neighbours = mst.adjacent_nodes(node.position); // 1. do not merge neighbors under 5mm // 2. Only merge node with single neighbor in distance between [max_move_distance, 10mm/layer_height] float dist2_to_first_neighbor = neighbours.empty() ? 0 : vsize2_with_unscale(neighbours[0] - node.position); - float max_dist_to_move = 10.0*tan_angle; // don't move if moving down by 10mm and they still can't merge if (ts_layer->print_z > DO_NOT_MOVER_UNDER_MM && - (neighbours.size() > 1 || (neighbours.size() == 1 && dist2_to_first_neighbor >= max_move_distance2))) //Only nodes that aren't about to collapse. + (neighbours.size() > 1 || (neighbours.size() == 1 && dist2_to_first_neighbor >= max_move_distance2))) // Only nodes that aren't about to collapse. { - //Move towards the average position of all neighbours. + // Move towards the average position of all neighbours. Point sum_direction(0, 0); - for (const Point& neighbour : neighbours) - { - // do not move to neighbor that's too far away - float dist2_to_neighbor = vsize2_with_unscale(neighbour - node.position); - if (dist2_to_neighbor > SQ(max_dist_to_move)) continue; + for (const Point &neighbour : neighbours) { + // do not move to the neighbor to be deleted + Node *neighbour_node = nodes_per_part[group_index][neighbour]; + if (to_delete.find(neighbour_node) != to_delete.end()) continue; Point direction = neighbour - node.position; - Node *neighbour_node = nodes_per_part[group_index][neighbour]; - coordf_t branch_bottom_radius = calc_branch_radius(branch_radius, node.distance_to_top + 1, tip_layers, diameter_angle_scale_factor); - coordf_t neighbour_bottom_radius = calc_branch_radius(branch_radius, neighbour_node->distance_to_top + 1, tip_layers, diameter_angle_scale_factor); - const coordf_t min_overlap = branch_radius; - double max_converge_distance = tan_angle * (ts_layer->print_z - DO_NOT_MOVER_UNDER_MM) + branch_bottom_radius + neighbour_bottom_radius - min_overlap; - if (vsize2_with_unscale(direction) > max_converge_distance * max_converge_distance) - continue; + // do not move to neighbor that's too far away (即使以最大速度移动,在接触热床之前都无法汇聚) + float dist2_to_neighbor = vsize2_with_unscale(direction); - if (is_line_cut_by_contour(node.position, neighbour)) - continue; + coordf_t branch_bottom_radius = calc_branch_radius(branch_radius, node.dist_mm_to_top + node.print_z, diameter_angle_scale_factor); + coordf_t neighbour_bottom_radius = calc_branch_radius(branch_radius, neighbour_node->dist_mm_to_top + neighbour_node->print_z, diameter_angle_scale_factor); + double max_converge_distance = tan_angle * (ts_layer->print_z - DO_NOT_MOVER_UNDER_MM) + std::max(branch_bottom_radius, neighbour_bottom_radius); + if (dist2_to_neighbor > max_converge_distance * max_converge_distance) continue; - sum_direction += direction; + if (is_line_cut_by_contour(node.position, neighbour)) continue; + + if (is_slim) + sum_direction += direction * (1 / dist2_to_neighbor); + else + sum_direction += direction; } - if(vsize2_with_unscale(sum_direction) <= max_move_distance2) - { + if (is_slim) move_to_neighbor_center = sum_direction; - } - else - { - move_to_neighbor_center = normal(sum_direction, scale_(max_move_distance)); - } - // add momentum to force smooth movement - move_to_neighbor_center = move_to_neighbor_center * 0.5 + p_node->movement * 0.5; - } - - const coordf_t branch_radius_node = calc_branch_radius(branch_radius, node.distance_to_top, tip_layers, diameter_angle_scale_factor); -#ifdef SUPPORT_TREE_DEBUG_TO_SVG - if (node.position(1) > max_y) { - max_y = node.position(1); - branch_radius_temp = branch_radius_node; - } -#endif - auto avoid_layer = m_ts_data->get_avoidance(branch_radius_node, layer_nr - jump_nr); - - Point to_outside = projection_onto_ex(avoid_layer, node.position); - Point movement = to_outside - node.position; - double movelength2 = vsize2_with_unscale(movement); - // don't move if - // 1) line of node and to_outside is cut by contour (means supports may intersect with object) - // 2) it's impossible to move to build plate - if (is_line_cut_by_contour(node.position, to_outside) || movelength2 > max_move_distance2 * SQ(layer_nr)) - movement = Point(0, 0); - else if (movelength2 > max_move_distance2) { - if (is_inside_ex(avoid_layer, node.position)) - movement = normal(movement, scale_(max_move_distance)); - else - movement = Point(0, 0); // point is already outside contour, no need to move - } - // move to the averaged direction of neighbor center and contour edge if they are roughly same direction - if (movement.dot(move_to_neighbor_center) >= 0) - movement = movement + move_to_neighbor_center; - // Cant do this. Otherwise we'll get a lot of supports in-the-air (nodes terminated too early) - else - movement = move_to_neighbor_center; // otherwise move to neighbor center first - - if (vsize2_with_unscale(movement) > max_move_distance2) - movement = normal(movement, scale_(max_move_distance)); - - next_layer_vertex += movement; - - - if (/*group_index ==*/ 0) - { - //Avoid collisions. - const coordf_t max_move_between_samples = max_move_distance + radius_sample_resolution + EPSILON; //100 micron extra for rounding errors. - bool is_outside = move_out_expolys(avoid_layer, next_layer_vertex, radius_sample_resolution + EPSILON, max_move_between_samples); - if (!is_outside) { - Point candidate_vertex = node.position; - is_outside = move_out_expolys(avoid_layer, candidate_vertex, radius_sample_resolution + EPSILON, max_move_between_samples); - if (is_outside) { - next_layer_vertex = candidate_vertex; + else { + if (vsize2_with_unscale(sum_direction) <= max_move_distance2) { + move_to_neighbor_center = sum_direction; + } else { + move_to_neighbor_center = normal(sum_direction, scale_(get_max_move_dist(&node))); } } } + const coordf_t branch_radius_node = calc_branch_radius(branch_radius, node.dist_mm_to_top/*+node.print_z*/, diameter_angle_scale_factor); +#ifdef SUPPORT_TREE_DEBUG_TO_SVG + if (node.position(1) > max_y) { + max_y = node.position(1); + branch_radius_temp = branch_radius_node; + } +#endif + auto avoid_layer = m_ts_data->get_avoidance(branch_radius_node, layer_nr_next); + + Point to_outside = projection_onto_ex(avoid_layer, node.position); + Point direction_to_outer = to_outside - node.position; + double dist2_to_outer = vsize2_with_unscale(direction_to_outer); + // don't move if + // 1) line of node and to_outside is cut by contour (means supports may intersect with object) + // 2) it's impossible to move to build plate + if (is_line_cut_by_contour(node.position, to_outside) || dist2_to_outer > max_move_distance2 * SQ(layer_nr) || + !is_inside_ex(avoid_layer, node.position)) { + // try move to outside of lower layer instead + Point candidate_vertex = node.position; + const coordf_t max_move_between_samples = max_move_distance + radius_sample_resolution + EPSILON; // 100 micron extra for rounding errors. + bool is_outside = move_out_expolys(avoid_layer, candidate_vertex, max_move_between_samples, max_move_between_samples); + if (is_outside) { + direction_to_outer = candidate_vertex - node.position; + dist2_to_outer = vsize2_with_unscale(direction_to_outer); + } else { + direction_to_outer = Point(0, 0); + dist2_to_outer = 0; + } + } + // move to the averaged direction of neighbor center and contour edge if they are roughly same direction + Point movement; + if (is_slim) + movement = move_to_neighbor_center*2 + (dist2_to_outer > EPSILON ? direction_to_outer * (1 / dist2_to_outer) : Point(0, 0)); + else { + if (movement.dot(move_to_neighbor_center) >= 0.2 || move_to_neighbor_center == Point(0, 0)) + movement = direction_to_outer + move_to_neighbor_center; + else + movement = move_to_neighbor_center; // otherwise move to neighbor center first + } + + if (vsize2_with_unscale(movement) > get_max_move_dist(&node,2)) + movement = normal(movement, scale_(get_max_move_dist(&node))); + + // add momentum to force smooth movement + //movement = movement * 0.5 + p_node->movement * 0.5; + + next_layer_vertex += movement; + const bool to_buildplate = !is_inside_ex(m_ts_data->m_layer_outlines[layer_nr], next_layer_vertex);// !is_inside_ex(m_ts_data->get_avoidance(m_ts_data->m_xy_distance, layer_nr - 1), next_layer_vertex); Node * next_node = new Node(next_layer_vertex, node.distance_to_top + 1, node.skin_direction, node.support_roof_layers_below - 1, to_buildplate, p_node, - layer_heights[layer_nr - jump_nr].first, layer_heights[layer_nr - jump_nr].second); + print_z_next, height_next); next_node->movement = movement; - contact_nodes[layer_nr - jump_nr].push_back(next_node); + get_max_move_dist(next_node); + next_node->is_merged = false; + contact_nodes[layer_nr_next].push_back(next_node); } } #ifdef SUPPORT_TREE_DEBUG_TO_SVG - draw_contours_and_nodes_to_svg(layer_nr, m_ts_data->get_avoidance(0, layer_nr), m_ts_data->get_avoidance(branch_radius_temp, layer_nr), m_ts_data->m_layer_outlines_below[layer_nr], - contact_nodes[layer_nr], contact_nodes[layer_nr - jump_nr], "contact_points", { "overhang","avoid","outline" }, { "blue","red","yellow" }); + draw_contours_and_nodes_to_svg(std::to_string(ts_layer->print_z), m_ts_data->get_avoidance(0, layer_nr), m_ts_data->get_avoidance(branch_radius_temp, layer_nr), m_ts_data->m_layer_outlines_below[layer_nr], + contact_nodes[layer_nr], contact_nodes[layer_nr_next], "contact_points", { "overhang","avoid","outline" }, { "blue","red","yellow" }); + + if (contact_nodes[layer_nr].empty() == false) { + BOOST_LOG_TRIVIAL(debug) << "drop_nodes layer " << layer_nr << ", print_z=" << ts_layer->print_z; + for (size_t i = 0; i < std::min(size_t(5), contact_nodes[layer_nr].size()); i++) { + auto &node = contact_nodes[layer_nr][i]; + BOOST_LOG_TRIVIAL(debug) << "\t node " << i << ", pos=" << node->position << ", move = " << node->movement << ", is_merged=" << node->is_merged; + } + } #endif // Prune all branches that couldn't find support on either the model or the buildplate (resulting in 'mid-air' branches). @@ -2888,6 +2973,66 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) #endif } +void TreeSupport::smooth_nodes(std::vector> &contact_nodes) +{ + std::map is_processed; + for (int layer_nr = 0; layer_nr < contact_nodes.size(); layer_nr++) { + std::vector &curr_layer_nodes = contact_nodes[layer_nr]; + if (curr_layer_nodes.empty()) continue; + for (Node *node : curr_layer_nodes) { + is_processed.emplace(node, false); + if (layer_nr == 0) node->is_merged = true; // nodes on plate are also merged nodes + } + } + + for (int layer_nr = contact_nodes.size()-1; layer_nr >=0 ; layer_nr--) { + std::vector &curr_layer_nodes = contact_nodes[layer_nr]; + if (curr_layer_nodes.empty()) continue; + for (Node *node : curr_layer_nodes) { + if (!is_processed[node]) { + std::vector pts; + std::vector branch; + Node * p_node = node; + // add head for second path from the merged node if there are multiple ones + if (!node->is_merged && node->parent) { + pts.push_back(p_node->parent->position); + branch.push_back(p_node->parent); + } + do { + pts.push_back(p_node->position); + //is_processed[p_node] = true; + branch.push_back(p_node); + p_node = p_node->child; + } while (p_node && !p_node->is_merged && !is_processed[p_node]); + // TODO is it necessary to add tail also? + if (p_node && p_node->is_merged) { + pts.push_back(p_node->position); + branch.push_back(p_node); + } + if (pts.size() < 3) continue; + + std::vector pts1 = pts; + // TODO here we assume layer height gap is constant. If not true, need to consider height jump + for (size_t k = 0; k < 2; k++) { + for (size_t i = 1; i < pts.size() - 1; i++) { + size_t i2 = i >= 2 ? i - 2 : 0; + size_t i3 = i < pts.size() - 2 ? i + 2 : pts.size() - 1; + Point pt = (pts[i2] + pts[i - 1] + pts[i] + pts[i + 1] + pts[i3]) / 5; + pts1[i] = pt; + } + std::swap(pts, pts1); + } + for (size_t i = 1; i < pts.size() - 1; i++) { + if (!is_processed[branch[i]]) { + branch[i]->position = pts[i]; + is_processed[branch[i]] = true; + } + } + } + } + } +} + void TreeSupport::adjust_layer_heights(std::vector>& contact_nodes) { if (contact_nodes.empty()) @@ -2895,8 +3040,9 @@ void TreeSupport::adjust_layer_heights(std::vector>& contact_ const PrintConfig& print_config = m_object->print()->config(); const PrintObjectConfig& config = m_object->config(); - - if (!print_config.independent_support_layer_height) { + // don't merge layers for Vine support, or the branches will be unsmooth + // TODO can we merge layers in a way that guaranttees smoothness? + if (!print_config.independent_support_layer_height || is_slim) { for (int layer_nr = 0; layer_nr < contact_nodes.size(); layer_nr++) { std::vector& curr_layer_nodes = contact_nodes[layer_nr]; for (Node* node : curr_layer_nodes) { @@ -2995,8 +3141,13 @@ std::vector> TreeSupport::plan_layer_heights(std:: std::vector> layer_heights(contact_nodes.size(), std::pair(0.0, 0.0)); std::vector bounds; - if (layer_height == max_layer_height) - return std::vector>(); + if (!USE_PLAN_LAYER_HEIGHTS || layer_height == max_layer_height) { + for (int layer_nr = 0; layer_nr < contact_nodes.size(); layer_nr++) { + layer_heights[layer_nr].first = m_object->get_layer(layer_nr)->print_z; + layer_heights[layer_nr].second = m_object->get_layer(layer_nr)->height; + } + return layer_heights; + } bounds.push_back(0); // Keep first layer still @@ -3148,11 +3299,12 @@ void TreeSupport::generate_contact_points(std::vector thresh_big_overhang) { + if (config.support_style.value==smsTreeHybrid && overhang_part.area() > thresh_big_overhang) { Point candidate = overhang_bounds.center(); if (!overhang_part.contains(candidate)) move_inside_expoly(overhang_part, candidate); - Node *contact_node = new Node(candidate, -z_distance_top_layers, (layer_nr) % 2, support_roof_layers+ z_distance_top_layers, true, Node::NO_PARENT, print_z, height); + Node *contact_node = new Node(candidate, -z_distance_top_layers, (layer_nr) % 2, support_roof_layers + z_distance_top_layers, true, Node::NO_PARENT, print_z, + height, z_distance_top); contact_node->type = ePolygon; contact_node->overhang = &overhang_part; curr_nodes.emplace_back(contact_node); @@ -3179,7 +3331,8 @@ void TreeSupport::generate_contact_points(std::vectorget_collision(0, layer_nr), candidate)) { constexpr bool to_buildplate = true; - Node* contact_node = new Node(candidate, -z_distance_top_layers, (layer_nr) % 2, support_roof_layers+ z_distance_top_layers, to_buildplate, Node::NO_PARENT,print_z,height); + Node * contact_node = new Node(candidate, -z_distance_top_layers, (layer_nr) % 2, support_roof_layers + z_distance_top_layers, to_buildplate, + Node::NO_PARENT, print_z, height, z_distance_top); contact_node->overhang = &overhang_part; curr_nodes.emplace_back(contact_node); added = true; @@ -3201,7 +3354,8 @@ void TreeSupport::generate_contact_points(std::vectoroverhang = &overhang_part; curr_nodes.emplace_back(contact_node); } @@ -3214,12 +3368,14 @@ void TreeSupport::generate_contact_points(std::vector -0.7) { - Node *contact_node = new Node(pt, -z_distance_top_layers, layer_nr % 2, support_roof_layers+ z_distance_top_layers, true, Node::NO_PARENT, print_z, height); + Node *contact_node = new Node(pt, -z_distance_top_layers, layer_nr % 2, support_roof_layers + z_distance_top_layers, true, Node::NO_PARENT, print_z, + height, z_distance_top); contact_node->overhang = &overhang_part; curr_nodes.emplace_back(contact_node); } } - } else if(ts_layer->overhang_types[&overhang_part] == TreeSupportLayer::Enforced){ + } + if(ts_layer->overhang_types[&overhang_part] == TreeSupportLayer::Enforced || is_slim){ // remove close points in Enforcers auto above_nodes = contact_nodes[layer_nr - 1]; if (!curr_nodes.empty() && !above_nodes.empty()) { @@ -3243,7 +3399,7 @@ void TreeSupport::generate_contact_points(std::vectorposition(0), node->position(1), scale_(node->print_z)); } #ifdef SUPPORT_TREE_DEBUG_TO_SVG - draw_contours_and_nodes_to_svg(layer_nr, overhang, m_ts_data->m_layer_outlines_below[layer_nr], {}, + draw_contours_and_nodes_to_svg(std::to_string(print_z), overhang, m_ts_data->m_layer_outlines_below[layer_nr], {}, contact_nodes[layer_nr], {}, "init_contact_points", { "overhang","outlines","" }); #endif } @@ -3387,39 +3543,37 @@ const ExPolygons& TreeSupportData::calculate_collision(const RadiusLayerPair& ke const ExPolygons& TreeSupportData::calculate_avoidance(const RadiusLayerPair& key) const { const auto& radius = key.first; - const auto& layer_idx = key.second; -#if 0 - if (layer_idx == 0) - { - m_avoidance_cache[key] = get_collision(radius, 0); - return m_avoidance_cache[key]; - } + const auto& layer_nr = key.second; + std::pair::iterator,bool> ret; + if (is_slim) { + if (layer_nr == 0) { + m_avoidance_cache[key] = get_collision(radius, 0); + return m_avoidance_cache[key]; + } - // Avoidance for a given layer depends on all layers beneath it so could have very deep recursion depths if - // called at high layer heights. We can limit the reqursion depth to N by checking if the layer N - // below the current one exists and if not, forcing the calculation of that layer. This may cause another recursion - // if the layer at 2N below the current one but we won't exceed our limit unless there are N*N uncalculated layers - // below our current one. - constexpr auto max_recursion_depth = 100; - // Check if we would exceed the recursion limit by trying to process this layer - if (layer_nr >= max_recursion_depth - && m_avoidance_cache.find({radius, layer_nr - max_recursion_depth}) == m_avoidance_cache.end()) - { - // Force the calculation of the layer `max_recursion_depth` below our current one, ignoring the result. - get_avoidance(radius, layer_nr - max_recursion_depth); - } + // Avoidance for a given layer depends on all layers beneath it so could have very deep recursion depths if + // called at high layer heights. We can limit the reqursion depth to N by checking if the layer N + // below the current one exists and if not, forcing the calculation of that layer. This may cause another recursion + // if the layer at 2N below the current one but we won't exceed our limit unless there are N*N uncalculated layers + // below our current one. + constexpr auto max_recursion_depth = 100; + // Check if we would exceed the recursion limit by trying to process this layer + if (layer_nr >= max_recursion_depth && m_avoidance_cache.find({radius, layer_nr - max_recursion_depth}) == m_avoidance_cache.end()) { + // Force the calculation of the layer `max_recursion_depth` below our current one, ignoring the result. + get_avoidance(radius, layer_nr - max_recursion_depth); + } - ExPolygons avoidance_areas = std::move(offset_ex(get_avoidance(radius, layer_nr - 1), scale_(-m_max_move))); - const ExPolygons& collision = get_collision(radius, layer_nr); - avoidance_areas.insert(avoidance_areas.end(), collision.begin(), collision.end()); - avoidance_areas = std::move(union_ex(avoidance_areas)); - const auto ret = m_avoidance_cache.insert({key, std::move(avoidance_areas)}); - assert(ret.second); -#else - ExPolygons avoidance_areas = std::move(offset_ex(m_layer_outlines_below[layer_idx], scale_(m_xy_distance+radius))); - const auto ret = m_avoidance_cache.insert({ key, std::move(avoidance_areas) }); - assert(ret.second); -#endif + ExPolygons avoidance_areas = std::move(offset_ex(get_avoidance(radius, layer_nr - 1), scale_(-m_max_move))); + const ExPolygons &collision = get_collision(radius, layer_nr); + avoidance_areas.insert(avoidance_areas.end(), collision.begin(), collision.end()); + avoidance_areas = std::move(union_ex(avoidance_areas)); + ret = m_avoidance_cache.insert({key, std::move(avoidance_areas)}); + assert(ret.second); + } else { + ExPolygons avoidance_areas = std::move(offset_ex(m_layer_outlines_below[layer_nr], scale_(m_xy_distance + radius))); + ret = m_avoidance_cache.insert({key, std::move(avoidance_areas)}); + assert(ret.second); + } return ret.first->second; } diff --git a/src/libslic3r/TreeSupport.hpp b/src/libslic3r/TreeSupport.hpp index 26abb74c5..1e7cc6398 100644 --- a/src/libslic3r/TreeSupport.hpp +++ b/src/libslic3r/TreeSupport.hpp @@ -121,6 +121,7 @@ private: ExPolygon m_machine_border; public: + bool is_slim = false; /*! * \brief The required clearance between the model and the tree branches */ @@ -224,7 +225,7 @@ public: {} Node(const Point position, const int distance_to_top, const bool skin_direction, const int support_roof_layers_below, const bool to_buildplate, Node* parent, - coordf_t print_z_, coordf_t height_) + coordf_t print_z_, coordf_t height_, coordf_t dist_mm_to_top_=0) : distance_to_top(distance_to_top) , position(position) , skin_direction(skin_direction) @@ -234,10 +235,13 @@ public: , parent(parent) , print_z(print_z_) , height(height_) + , dist_mm_to_top(dist_mm_to_top_) { if (parent) { type = parent->type; overhang = parent->overhang; + if (dist_mm_to_top==0) + dist_mm_to_top = parent->dist_mm_to_top + parent->height; parent->child = this; } } @@ -255,6 +259,7 @@ public: * Negative value means it's a virtual node between support and overhang, which doesn't need to be extruded. */ int distance_to_top; + coordf_t dist_mm_to_top = 0; // dist to bottom contact in mm /*! * \brief The position of this node on the layer. @@ -262,8 +267,10 @@ public: Point position; Point movement; // movement towards neighbor center or outline - double radius; + mutable double radius = 0.0; + mutable double max_move_dist = 0.0; NodeType type = eCircle; + bool is_merged = false; // this node is generated by merging upper nodes const ExPolygon* overhang = nullptr; // when type==ePolygon, set this value to get original overhang area /*! @@ -311,7 +318,7 @@ public: * can't be on the model and the path to the buildplate isn't clear), * the entire branch needs to be known. */ - std::forward_list merged_neighbours; + std::list merged_neighbours; coordf_t print_z; coordf_t height; @@ -328,6 +335,7 @@ public: Flow support_material_flow; Flow support_material_interface_flow; Flow support_material_bottom_interface_flow; + coordf_t support_extrusion_width; // Is merging of regions allowed? Could the interface & base support regions be printed with the same extruder? bool can_merge_support_regions; @@ -372,6 +380,11 @@ private: size_t m_highest_overhang_layer; std::vector> m_spanning_trees; std::vector< std::unordered_map> m_mst_line_x_layer_contour_caches; + coordf_t MAX_BRANCH_RADIUS = 10.0; + coordf_t MIN_BRANCH_RADIUS = 0.5; + float tree_support_branch_diameter_angle = 5.0; + bool is_slim = false; + /*! * \brief Draws circles around each node of the tree into the final support. @@ -397,7 +410,9 @@ private: * dropped down. The nodes are dropped to lower layers inside the same * vector of layers. */ - void drop_nodes(std::vector>& contact_nodes); + void drop_nodes(std::vector> &contact_nodes); + + void smooth_nodes(std::vector> &contact_nodes); void adjust_layer_heights(std::vector>& contact_nodes); @@ -432,6 +447,8 @@ private: void generate_toolpaths(); Polygons spanning_tree_to_polygon(const std::vector& spanning_trees, Polygons layer_contours, int layer_nr); Polygons contact_nodes_to_polygon(const std::vector& contact_nodes, Polygons layer_contours, int layer_nr, std::vector& radiis, std::vector& is_interface); + coordf_t calc_branch_radius(coordf_t base_radius, size_t layers_to_top, size_t tip_layers, double diameter_angle_scale_factor); + coordf_t calc_branch_radius(coordf_t base_radius, coordf_t mm_to_top, double diameter_angle_scale_factor); }; } diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index a711b2eab..6659a7b69 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -349,6 +349,30 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con is_msg_dlg_already_exist = false; } + // BBS + if (config->opt_bool("enable_support") && is_tree(config->opt_enum("support_type")) + && (config->opt_enum("support_style")==smsDefault || config->opt_enum("support_style")==smsTreeSlim) + && !(config->opt_float("support_top_z_distance")==0 && config->opt_int("support_interface_top_layers")==0 && config->opt_int("tree_support_wall_count")==2)) + { + wxString msg_text = _(L("We have added an experimental style \"Tree Slim\" that features smaller support volume but weaker strength.\n" + "We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n")); + if (is_global_config) + msg_text += "\n" + _(L("Change these settings automatically? \n" + "Yes - Change these settings automatically\n" + "No - Do not change these settings for me")); + MessageDialog dialog(m_msg_dlg_parent, msg_text, "", wxICON_WARNING | (is_global_config ? wxYES | wxNO : wxOK)); + DynamicPrintConfig new_conf = *config; + is_msg_dlg_already_exist = true; + auto answer = dialog.ShowModal(); + if (!is_global_config || answer == wxID_YES) { + new_conf.set_key_value("support_top_z_distance", new ConfigOptionFloat(0)); + new_conf.set_key_value("support_interface_top_layers", new ConfigOptionInt(0)); + new_conf.set_key_value("tree_support_wall_count", new ConfigOptionInt(2)); + } + apply(config, &new_conf); + is_msg_dlg_already_exist = false; + } + // BBS int filament_cnt = wxGetApp().preset_bundle->filament_presets.size(); #if 0 @@ -571,19 +595,16 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co "support_type", "support_on_build_plate_only", "support_critical_regions_only", "support_object_xy_distance", "independent_support_layer_height"}) toggle_field(el, have_support_material); - toggle_field("support_threshold_angle", have_support_material && (support_type == stNormalAuto || support_type == stTreeAuto || support_type==stHybridAuto)); + toggle_field("support_threshold_angle", have_support_material && is_auto(support_type)); //toggle_field("support_closing_radius", have_support_material && support_style == smsSnug); + bool support_is_tree = config->opt_bool("enable_support") && is_tree(support_type); for (auto el : {"tree_support_branch_angle", "tree_support_wall_count", "tree_support_branch_distance", "tree_support_branch_diameter"}) - toggle_field(el, config->opt_bool("enable_support") && (support_type == stTreeAuto || support_type == stTree || support_type == stHybridAuto)); + toggle_field(el, support_is_tree); // hide tree support settings when normal is selected - bool support_is_tree = std::set{stTreeAuto, stHybridAuto, stTree}.count(support_type) != 0; - toggle_line("tree_support_branch_distance", support_is_tree); - toggle_line("tree_support_branch_diameter", support_is_tree); - toggle_line("tree_support_branch_angle", support_is_tree); - toggle_line("tree_support_wall_count", support_is_tree); - toggle_line("max_bridge_length", support_is_tree); + for (auto el : {"tree_support_branch_angle", "tree_support_wall_count", "tree_support_branch_distance", "tree_support_branch_diameter", "max_bridge_length"}) + toggle_line(el, support_is_tree); // tree support use max_bridge_length instead of bridge_no_support toggle_line("bridge_no_support", !support_is_tree); diff --git a/src/slic3r/GUI/GUI_Factories.cpp b/src/slic3r/GUI/GUI_Factories.cpp index f4aed3f87..c79a4d5f3 100644 --- a/src/slic3r/GUI/GUI_Factories.cpp +++ b/src/slic3r/GUI/GUI_Factories.cpp @@ -78,7 +78,7 @@ std::map> SettingsFactory::OBJECT_C }}, { L("Support"), {{"brim_type", "",1},{"brim_width", "",2},{"brim_object_gap", "",3}, {"enable_support", "",4},{"support_type", "",5},{"support_threshold_angle", "",6},{"support_on_build_plate_only", "",7}, - {"support_filament", "",8},{"support_interface_filament", "",9},{"support_expansion", "",24}, + {"support_filament", "",8},{"support_interface_filament", "",9},{"support_expansion", "",24},{"support_style", "",25}, {"tree_support_branch_angle", "",10}, {"tree_support_wall_count", "",11},//tree support {"support_top_z_distance", "",13},{"support_bottom_z_distance", "",12},{"support_base_pattern", "",14},{"support_base_pattern_spacing", "",15}, {"support_interface_top_layers", "",16},{"support_interface_bottom_layers", "",17},{"support_interface_spacing", "",18},{"support_bottom_interface_spacing", "",19}, diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp index 22bebc27d..1f2a15979 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp @@ -540,10 +540,7 @@ int GLGizmoFdmSupports::get_selection_support_threshold_angle() SupportType support_type = obj_cfg.option("support_type") ? obj_cfg.opt_enum("support_type") : glb_cfg.opt_enum("support_type"); int support_threshold_angle = obj_cfg.option("support_threshold_angle") ? obj_cfg.opt_int("support_threshold_angle") : glb_cfg.opt_int("support_threshold_angle"); - bool auto_support = enable_support && - (support_type == SupportType::stHybridAuto || - support_type == SupportType::stTreeAuto || - support_type == SupportType::stNormalAuto); + bool auto_support = enable_support && is_auto(support_type); return auto_support ? support_threshold_angle : 0; } @@ -725,8 +722,7 @@ void GLGizmoFdmSupports::init_print_instance() const PrintObjectConfig& config = m_print_instance.print_object->config(); m_angle_threshold_deg = config.support_angle; - m_is_tree_support = config.enable_support.value && - (config.support_type.value == stTreeAuto || config.support_type.value == stTree || config.support_type.value==stHybridAuto); + m_is_tree_support = config.enable_support.value && is_tree(config.support_type.value); BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ",get support_angle "<< m_angle_threshold_deg<<", is_tree "<new_optgroup(L("Support"), L"param_support"); optgroup->append_single_option_line("enable_support", "support"); optgroup->append_single_option_line("support_type", "support#support-types"); + optgroup->append_single_option_line("support_style", "support#support-styles"); optgroup->append_single_option_line("support_threshold_angle", "support#threshold-angle"); optgroup->append_single_option_line("support_on_build_plate_only"); optgroup->append_single_option_line("support_critical_regions_only"); @@ -1889,7 +1890,6 @@ void TabPrint::build() optgroup->append_single_option_line("support_interface_filament", "support#support-filament"); //optgroup = page->new_optgroup(L("Options for support material and raft")); - //optgroup->append_single_option_line("support_style"); //BBS optgroup = page->new_optgroup(L("Advanced"), L"param_advanced"); From efb7106eccff89d97e5f5e720c6a4918cd873aeb Mon Sep 17 00:00:00 2001 From: "tao.jin" Date: Fri, 16 Dec 2022 09:34:05 +0800 Subject: [PATCH 03/28] FIX: version info and img in About Bambu Studio Change-Id: I7c3ed0b13f09d6e97fdbb11b24cdeddc8439df88 --- resources/images/BambuStudio_about.png | Bin 12907 -> 0 bytes resources/images/BambuStudio_about.svg | 87 +++++++++++++++++++++++++ src/slic3r/GUI/AboutDialog.cpp | 2 +- 3 files changed, 88 insertions(+), 1 deletion(-) delete mode 100644 resources/images/BambuStudio_about.png create mode 100644 resources/images/BambuStudio_about.svg diff --git a/resources/images/BambuStudio_about.png b/resources/images/BambuStudio_about.png deleted file mode 100644 index 70ee6c37fd9ce991fe5ed1a2a28847771603411a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12907 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%0DL}WTO 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 f(*KX5bSK48h!<`c^(*k + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/slic3r/GUI/AboutDialog.cpp b/src/slic3r/GUI/AboutDialog.cpp index 75812b362..17b542808 100644 --- a/src/slic3r/GUI/AboutDialog.cpp +++ b/src/slic3r/GUI/AboutDialog.cpp @@ -255,7 +255,7 @@ AboutDialog::AboutDialog() #endif version_font.SetPointSize(FromDIP(16)); version->SetFont(version_font); - version->SetForegroundColour(wxColour("#FFFFFE")); + version->SetForegroundColour(wxColour("#FFFFFD")); version->SetBackgroundColour(wxColour("#00AF42")); vesizer->Add(version, 0, wxALL | wxALIGN_CENTER_HORIZONTAL, FromDIP(5)); vesizer->Add(0, 0, 1, wxEXPAND, FromDIP(5)); From 030efb339a93220948bbfc02c16c6b55e34aa182 Mon Sep 17 00:00:00 2001 From: tao wang Date: Tue, 20 Dec 2022 13:11:23 +0800 Subject: [PATCH 04/28] ENH: hide some functions which are not ready on U2 version Change-Id: I6ff7f98d55d9734938b65aaa72727320dd3c5f6e --- src/slic3r/GUI/CameraPopup.cpp | 10 ++++++++-- src/slic3r/GUI/DeviceManager.cpp | 9 +++++++++ src/slic3r/GUI/DeviceManager.hpp | 5 +++++ src/slic3r/GUI/StatusPanel.cpp | 2 +- src/slic3r/GUI/Widgets/AMSControl.cpp | 14 +++++++++++--- src/slic3r/GUI/Widgets/AMSControl.hpp | 2 +- 6 files changed, 35 insertions(+), 7 deletions(-) diff --git a/src/slic3r/GUI/CameraPopup.cpp b/src/slic3r/GUI/CameraPopup.cpp index 99b18be55..d102ecafe 100644 --- a/src/slic3r/GUI/CameraPopup.cpp +++ b/src/slic3r/GUI/CameraPopup.cpp @@ -257,17 +257,23 @@ void CameraPopup::check_func_supported() allow_alter_resolution = (m_obj->is_function_supported(PrinterFunction::FUNC_ALTER_RESOLUTION) && m_obj->has_ipcam); + //check u2 version + DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager(); + if (!dev) return; + MachineObject* obj = dev->get_selected_machine(); + if (!obj) return; + //resolution supported std::vector resolution_supported = m_obj->get_resolution_supported(); auto support_count = resolution_supported.size(); for (int i = 0; i < (int)RESOLUTION_OPTIONS_NUM; ++i){ auto curr_res = to_resolution_msg_string(CameraResolution(i)); std::vector ::iterator it = std::find(resolution_supported.begin(), resolution_supported.end(), curr_res); - if ((it == resolution_supported.end())||(support_count <= 1)) + if ((it == resolution_supported.end())||(support_count <= 1) || !obj->is_support_1080dpi) m_resolution_options[i] -> Hide(); } //hide resolution if there is only one choice - if (support_count <= 1) { + if (support_count <= 1 || !obj->is_support_1080dpi) { m_text_resolution->Hide(); } } diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index c7372a98e..159169d6c 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -1271,12 +1271,18 @@ void MachineObject::parse_version_func() is_xcam_buildplate_supported = false; xcam_support_recovery_step_loss = false; is_support_send_to_sdcard = false; + is_support_1080dpi = false; + is_support_ai_monitoring = false; + is_support_ams_humidity = false; } else { ams_support_remain = true; ams_support_auto_switch_filament_flag = true; is_xcam_buildplate_supported = true; xcam_support_recovery_step_loss = true; is_support_send_to_sdcard = true; + is_support_1080dpi = true; + is_support_ai_monitoring = true; + is_support_ams_humidity = true; } } } @@ -2010,6 +2016,9 @@ bool MachineObject::is_function_supported(PrinterFunction func) func_name = "FUNC_FIRSTLAYER_INSPECT"; break; case FUNC_AI_MONITORING: + parse_version_func(); + if (!is_support_ai_monitoring) + return false; func_name = "FUNC_AI_MONITORING"; break; case FUNC_BUILDPLATE_MARKER_DETECT: diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 9d778fe57..90245aa20 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -589,6 +589,11 @@ public: int xcam_auto_recovery_hold_count = 0; int ams_print_option_count = 0; + /*not support U2*/ + bool is_support_1080dpi {false}; + bool is_support_ai_monitoring {false}; + bool is_support_ams_humidity {false}; + /* sdcard */ MachineObject::SdcardState sdcard_state { NO_SDCARD }; MachineObject::SdcardState get_sdcard_state(); diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 93eb1cf8a..1c915cf38 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -1843,7 +1843,7 @@ void StatusPanel::update_ams(MachineObject *obj) for (auto ams = obj->amsList.begin(); ams != obj->amsList.end(); ams++) { AMSinfo info; info.ams_id = ams->first; - if (ams->second->is_exists && info.parse_ams_info(ams->second, obj->ams_calibrate_remain_flag)) ams_info.push_back(info); + if (ams->second->is_exists && info.parse_ams_info(ams->second, obj->ams_calibrate_remain_flag, obj->is_support_ams_humidity)) ams_info.push_back(info); } //if (obj->ams_exist_bits != last_ams_exist_bits || obj->tray_exist_bits != last_tray_exist_bits || obj->tray_is_bbl_bits != last_tray_is_bbl_bits || // obj->tray_read_done_bits != last_read_done_bits || obj->ams_version != last_ams_version) { diff --git a/src/slic3r/GUI/Widgets/AMSControl.cpp b/src/slic3r/GUI/Widgets/AMSControl.cpp index 8027ac3e9..4eb30cc29 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.cpp +++ b/src/slic3r/GUI/Widgets/AMSControl.cpp @@ -35,11 +35,18 @@ wxDEFINE_EVENT(EVT_AMS_CLIBRATION_CANCEL, wxCommandEvent); wxDEFINE_EVENT(EVT_AMS_GUIDE_WIKI, wxCommandEvent); wxDEFINE_EVENT(EVT_AMS_RETRY, wxCommandEvent); -bool AMSinfo::parse_ams_info(Ams *ams, bool remain_flag) +bool AMSinfo::parse_ams_info(Ams *ams, bool remain_flag, bool humidity_flag) { if (!ams) return false; this->ams_id = ams->id; - this->ams_humidity = ams->humidity; + + if (humidity_flag) { + this->ams_humidity = ams->humidity; + } + else { + this->ams_humidity = -1; + } + cans.clear(); for (int i = 0; i < 4; i++) { auto it = ams->trayList.find(std::to_string(i)); @@ -917,7 +924,8 @@ void AMSRoad::doRender(wxDC &dc) dc.DrawBitmap(ams_humidity_0.bmp(), wxPoint(size.x - ams_humidity_0.GetBmpSize().x - FromDIP(4), size.y - ams_humidity_0.GetBmpSize().y - FromDIP(8))); } else { - dc.DrawBitmap(ams_humidity_4.bmp(), wxPoint(size.x - ams_humidity_4.GetBmpSize().x - FromDIP(4), size.y - ams_humidity_4.GetBmpSize().y - FromDIP(8))); + /*dc.DrawBitmap(ams_humidity_4.bmp(), wxPoint(size.x - ams_humidity_4.GetBmpSize().x - FromDIP(4), size.y - ams_humidity_4.GetBmpSize().y - FromDIP(8)));*/ + //to do ... } } } diff --git a/src/slic3r/GUI/Widgets/AMSControl.hpp b/src/slic3r/GUI/Widgets/AMSControl.hpp index 73a91f8a4..a7390afed 100644 --- a/src/slic3r/GUI/Widgets/AMSControl.hpp +++ b/src/slic3r/GUI/Widgets/AMSControl.hpp @@ -126,7 +126,7 @@ public: int curreent_filamentstep; int ams_humidity = 0; - bool parse_ams_info(Ams *ams, bool remain_flag = false); + bool parse_ams_info(Ams *ams, bool remain_flag = false, bool humidity_flag = false); }; /************************************************* From 400ce3bcfdd4fb78d8ac7868d1dc59665bc5fe96 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Tue, 20 Dec 2022 22:34:50 +0800 Subject: [PATCH 05/28] FIX: fix a shader loading failed issue on macos 11.x of m1 processor Change-Id: I39a4d387a0c80743cd5b7a78547c416b387608fd --- src/slic3r/GUI/GLShadersManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/GUI/GLShadersManager.cpp b/src/slic3r/GUI/GLShadersManager.cpp index e4ed4555c..454f18ed2 100644 --- a/src/slic3r/GUI/GLShadersManager.cpp +++ b/src/slic3r/GUI/GLShadersManager.cpp @@ -72,7 +72,7 @@ std::pair GLShadersManager::init() // triangle normals inside fragment shader have the right direction. if (platform_flavor() == PlatformFlavor::OSXOnArm && wxPlatformInfo::Get().GetOSMajorVersion() < 12) { //if (GUI::wxGetApp().is_gl_version_greater_or_equal_to(3, 0)) - valid &= append_shader("mm_gouraud", {"mm_gouraud_130.vs", "mm_gouraud_130.fs"}, {"FLIP_TRIANGLE_NORMALS"sv}); + valid &= append_shader("mm_gouraud", {"mm_gouraud_wireframe.vs", "mm_gouraud_wireframe.fs"}, {"FLIP_TRIANGLE_NORMALS"sv}); //else // valid &= append_shader("mm_gouraud", {"mm_gouraud.vs", "mm_gouraud.fs"}, {"FLIP_TRIANGLE_NORMALS"sv}); } From 7596b3fed96ee7f028c22c4bfa99af9e2102b53d Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 20 Dec 2022 18:32:13 +0800 Subject: [PATCH 06/28] ENH: improve auto arranging and by-object printing 1. In auto arranging bed temp can be higher than vitrify temp by no more than 15 degrees. 2. In by-object printing we use max radius for clearance 3. Add P1P max radius Change-Id: If595f3e19fd74f6f36d2f394edbb835c413cc800 (cherry picked from commit 2af42420ad3770f0728adb583082600544519a58) --- resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json | 1 + src/libslic3r/Arrange.cpp | 5 +++-- src/libslic3r/Print.cpp | 2 +- src/slic3r/GUI/Jobs/ArrangeJob.cpp | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json index ca2133229..8d3282f9f 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json @@ -22,6 +22,7 @@ "18x28", "0x28" ], + "extruder_clearance_max_radius": "56", "machine_pause_gcode": "M400 U1\n", "machine_start_gcode": ";===== machine: P1P ========================\n;===== date: 202201114 =====================\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG0 Z12 F300 ; lower the hotbed , to prevent the nozzle is below the hotbed\nG0 Z-6;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z0.0 ; clear z-trim value first\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_tool]==\"PLA\"}\n {if (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on \nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_tool]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_tool]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_tool]A\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_tool]==\"PLA\"}\n {if (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY \n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90 \nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60} \nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60} \nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z-0.04 ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan \nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression", "machine_end_gcode": ";===== date: 20221202 =====================\n{if timelapse_type == 0}\nM991 S0 P-1 ;end traditional timelapse immediately\n{endif}\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X65 Y245 F12000 ; move to safe pos \nG1 Y265 F3000\n{if timelapse_type == 1}\nM991 S0 P-1 ;end smooth timelapse at safe pos\n{endif}\n\nG1 X65 Y245 F12000\nG1 Y265 F3000\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\nG1 X100 F12000 ; wipe\n; pull back filament to AMS\nM620 S255\nG1 X20 Y50 F12000\nG1 Y-3\nT255\nG1 X65 F12000\nG1 Y265\nG1 X100 F12000 ; wipe\nM621 S255\nM104 S0 ; turn off hotend\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 250}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z250 F600\n G1 Z248\n{endif}\nM400 P100\nM17 R ; restore z current\n\nG90\nG1 X128 Y250 F3600\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n\nM17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power\n", diff --git a/src/libslic3r/Arrange.cpp b/src/libslic3r/Arrange.cpp index 4aa959a61..83c803b3c 100644 --- a/src/libslic3r/Arrange.cpp +++ b/src/libslic3r/Arrange.cpp @@ -78,6 +78,7 @@ using ItemGroup = std::vector>; // A coefficient used in separating bigger items and smaller items. const double BIG_ITEM_TRESHOLD = 0.02; +#define VITRIFY_TEMP_DIFF_THRSH 15 // bed temp can be higher than vitrify temp, but not higher than this thresh // Fill in the placer algorithm configuration with values carefully chosen for // Slic3r. @@ -423,9 +424,9 @@ protected: for (int i = 0; i < m_items.size(); i++) { Item& p = m_items[i]; if (p.is_virt_object) continue; - score += lambda3 * (item.bed_temp - p.vitrify_temp > 0); + score += lambda3 * (item.bed_temp - p.vitrify_temp > VITRIFY_TEMP_DIFF_THRSH); } - score += lambda3 * (item.bed_temp - item.vitrify_temp > 0); + score += lambda3 * (item.bed_temp - item.vitrify_temp > VITRIFY_TEMP_DIFF_THRSH); score += lambda4 * hasRowHeightConflict + lambda4 * hasLidHeightConflict; } else { diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index ec4137d83..6f527bd81 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -448,7 +448,7 @@ StringObjectException Print::sequential_print_clearance_valid(const Print &print convex_hull = offset(convex_hull_no_offset, // Shrink the extruder_clearance_radius a tiny bit, so that if the object arrangement algorithm placed the objects // exactly by satisfying the extruder_clearance_radius, this test will not trigger collision. - float(scale_(0.5 * print.config().extruder_clearance_radius.value - EPSILON)), + float(scale_(0.5 * print.config().extruder_clearance_max_radius.value - EPSILON)), jtRound, scale_(0.1)).front(); // instance.shift is a position of a centered object, while model object may not be centered. // Convert the shift from the PrintObject's coordinates into ModelObject's coordinates by removing the centering offset. diff --git a/src/slic3r/GUI/Jobs/ArrangeJob.cpp b/src/slic3r/GUI/Jobs/ArrangeJob.cpp index fc7b6025a..187e1dc27 100644 --- a/src/slic3r/GUI/Jobs/ArrangeJob.cpp +++ b/src/slic3r/GUI/Jobs/ArrangeJob.cpp @@ -388,7 +388,7 @@ void ArrangeJob::prepare() params.clearance_height_to_rod = print.config().extruder_clearance_height_to_rod.value; params.clearance_height_to_lid = print.config().extruder_clearance_height_to_lid.value; - params.cleareance_radius = print.config().extruder_clearance_radius.value; + params.cleareance_radius = print.config().extruder_clearance_max_radius.value; params.printable_height = print.config().printable_height.value; params.allow_rotations = settings.enable_rotation; params.allow_multi_materials_on_same_plate = settings.allow_multi_materials_on_same_plate; From 629e68f4a0de685a00ff434544fcf6e893f84e48 Mon Sep 17 00:00:00 2001 From: "tao.jin" Date: Wed, 21 Dec 2022 10:42:02 +0800 Subject: [PATCH 07/28] ENH: add chinese translation Change-Id: Ib0ced81990d5f34190775ae38861538bdbba71db --- bbl/i18n/BambuStudio.pot | 45 +++++++++++++--- bbl/i18n/de/BambuStudio_de.po | 59 ++++++++++++++++---- bbl/i18n/en/BambuStudio_en.po | 59 ++++++++++++++++---- bbl/i18n/es/BambuStudio_es.po | 58 ++++++++++++++++---- bbl/i18n/fr/BambuStudio_fr.po | 59 ++++++++++++++++---- bbl/i18n/hu/BambuStudio_hu.po | 59 ++++++++++++++++---- bbl/i18n/nl/BambuStudio_nl.po | 59 ++++++++++++++++---- bbl/i18n/sv/BambuStudio_sv.po | 59 ++++++++++++++++---- bbl/i18n/zh_cn/BambuStudio_zh_CN.po | 80 +++++++++++++++++++++++----- resources/i18n/de/BambuStudio.mo | Bin 153879 -> 153504 bytes resources/i18n/en/BambuStudio.mo | Bin 141090 -> 140738 bytes resources/i18n/es/BambuStudio.mo | Bin 154506 -> 154167 bytes resources/i18n/fr/BambuStudio.mo | Bin 157634 -> 157263 bytes resources/i18n/hu/BambuStudio.mo | Bin 160188 -> 159795 bytes resources/i18n/nl/BambuStudio.mo | Bin 153623 -> 153238 bytes resources/i18n/sv/BambuStudio.mo | Bin 145630 -> 145276 bytes resources/i18n/zh_cn/BambuStudio.mo | Bin 193017 -> 193295 bytes 17 files changed, 447 insertions(+), 90 deletions(-) diff --git a/bbl/i18n/BambuStudio.pot b/bbl/i18n/BambuStudio.pot index f0bdc6226..1391a6374 100644 --- a/bbl/i18n/BambuStudio.pot +++ b/bbl/i18n/BambuStudio.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-17 12:28+0800\n" +"POT-Creation-Date: 2022-12-21 10:35+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1794,6 +1794,18 @@ msgid "" "No - Give up using arachne this time" msgstr "" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" + msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -6679,7 +6691,8 @@ msgstr "" msgid "" "normal(auto) and tree(auto) is used to generate support automatically. If " -"normal or tree is selected, only support enforcers are generated" +"normal(manual) or tree(manual) is selected, only support enforcers are " +"generated" msgstr "" msgid "normal(auto)" @@ -6688,9 +6701,6 @@ msgstr "" msgid "tree(auto)" msgstr "" -msgid "hybrid(auto)" -msgstr "" - msgid "normal(manual)" msgstr "" @@ -6735,9 +6745,12 @@ msgstr "" msgid "The z gap between the bottom support interface and object" msgstr "" +msgid "Support base" +msgstr "" + msgid "" -"Filament to print support and raft. \"Default\" means no specific filament " -"for support and current filament is used" +"Filament to print support base and raft. \"Default\" means no specific " +"filament for support and current filament is used" msgstr "" msgid "Line width of support" @@ -6815,9 +6828,27 @@ msgstr "" msgid "Style" msgstr "" +msgid "" +"Style and shape of the support. For normal support, projecting the supports " +"into a regular grid will create more stable supports (default), while snug " +"support towers will save material and reduce object scarring.\n" +"For tree support, tight style will merge branches more aggressively and save " +"a lot of material (default), while hybrid style will create similar " +"structure to normal support under large flat overhangs." +msgstr "" + msgid "Snug" msgstr "" +msgid "Tree Slim" +msgstr "" + +msgid "Tree Strong" +msgstr "" + +msgid "Tree Hybrid" +msgstr "" + msgid "Independent support layer height" msgstr "" diff --git a/bbl/i18n/de/BambuStudio_de.po b/bbl/i18n/de/BambuStudio_de.po index 0543ff90d..54a133481 100644 --- a/bbl/i18n/de/BambuStudio_de.po +++ b/bbl/i18n/de/BambuStudio_de.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-17 12:28+0800\n" +"POT-Creation-Date: 2022-12-21 10:35+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -1930,6 +1930,18 @@ msgid "" "No - Give up using arachne this time" msgstr "" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" + msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -7169,11 +7181,9 @@ msgstr "Support-Erzeugung aktivieren." msgid "" "normal(auto) and tree(auto) is used to generate support automatically. If " -"normal or tree is selected, only support enforcers are generated" +"normal(manual) or tree(manual) is selected, only support enforcers are " +"generated" msgstr "" -"Normal(automatisch) und Baum(automatisch) wird verwendet, um automatischen " -"Support zu erzeugen. Wenn Normal oder Baum ausgewählt ist, werden nur " -"Support Enforcer erzeugt" msgid "normal(auto)" msgstr "Normal(automatisch)" @@ -7181,9 +7191,6 @@ msgstr "Normal(automatisch)" msgid "tree(auto)" msgstr "Baum(automatisch)" -msgid "hybrid(auto)" -msgstr "Hybrid(automatisch)" - msgid "normal(manual)" msgstr "" @@ -7232,9 +7239,12 @@ msgstr "" msgid "The z gap between the bottom support interface and object" msgstr "" +msgid "Support base" +msgstr "" + msgid "" -"Filament to print support and raft. \"Default\" means no specific filament " -"for support and current filament is used" +"Filament to print support base and raft. \"Default\" means no specific " +"filament for support and current filament is used" msgstr "" msgid "Line width of support" @@ -7318,9 +7328,27 @@ msgstr "Druckgeschwindigkeit für Supports" msgid "Style" msgstr "Stil" +msgid "" +"Style and shape of the support. For normal support, projecting the supports " +"into a regular grid will create more stable supports (default), while snug " +"support towers will save material and reduce object scarring.\n" +"For tree support, tight style will merge branches more aggressively and save " +"a lot of material (default), while hybrid style will create similar " +"structure to normal support under large flat overhangs." +msgstr "" + msgid "Snug" msgstr "Nahtlos" +msgid "Tree Slim" +msgstr "" + +msgid "Tree Strong" +msgstr "" + +msgid "Tree Hybrid" +msgstr "" + msgid "Independent support layer height" msgstr "Unabhängige Support-Schichthöhe" @@ -7988,6 +8016,17 @@ msgid "" "density to improve the strength of the model?" msgstr "" +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal or tree is selected, only support enforcers are generated" +#~ msgstr "" +#~ "Normal(automatisch) und Baum(automatisch) wird verwendet, um " +#~ "automatischen Support zu erzeugen. Wenn Normal oder Baum ausgewählt ist, " +#~ "werden nur Support Enforcer erzeugt" + +#~ msgid "hybrid(auto)" +#~ msgstr "Hybrid(automatisch)" + #~ msgid "" #~ "Spiral mode only works when wall loops is 1, \n" #~ "support is disabled, top shell layers is 0 and sparse infill density is " diff --git a/bbl/i18n/en/BambuStudio_en.po b/bbl/i18n/en/BambuStudio_en.po index 8940fa6ae..58dac11e0 100644 --- a/bbl/i18n/en/BambuStudio_en.po +++ b/bbl/i18n/en/BambuStudio_en.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-17 12:28+0800\n" +"POT-Creation-Date: 2022-12-21 10:35+0800\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1886,6 +1886,18 @@ msgid "" "No - Give up using arachne this time" msgstr "" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" + msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -7046,11 +7058,9 @@ msgstr "This enables support generation." msgid "" "normal(auto) and tree(auto) is used to generate support automatically. If " -"normal or tree is selected, only support enforcers are generated" +"normal(manual) or tree(manual) is selected, only support enforcers are " +"generated" msgstr "" -"normal(auto), hybrid(auto) and tree(auto) are used to generate support " -"automatically. If normal or tree is selected, only support enforcers are " -"generated." msgid "normal(auto)" msgstr "normal(auto)" @@ -7058,9 +7068,6 @@ msgstr "normal(auto)" msgid "tree(auto)" msgstr "tree(auto)" -msgid "hybrid(auto)" -msgstr "hybrid(auto)" - msgid "normal(manual)" msgstr "" @@ -7106,9 +7113,12 @@ msgstr "" msgid "The z gap between the bottom support interface and object" msgstr "" +msgid "Support base" +msgstr "" + msgid "" -"Filament to print support and raft. \"Default\" means no specific filament " -"for support and current filament is used" +"Filament to print support base and raft. \"Default\" means no specific " +"filament for support and current filament is used" msgstr "" msgid "Line width of support" @@ -7192,9 +7202,27 @@ msgstr "This is the speed for support." msgid "Style" msgstr "Style" +msgid "" +"Style and shape of the support. For normal support, projecting the supports " +"into a regular grid will create more stable supports (default), while snug " +"support towers will save material and reduce object scarring.\n" +"For tree support, tight style will merge branches more aggressively and save " +"a lot of material (default), while hybrid style will create similar " +"structure to normal support under large flat overhangs." +msgstr "" + msgid "Snug" msgstr "Snug" +msgid "Tree Slim" +msgstr "" + +msgid "Tree Strong" +msgstr "" + +msgid "Tree Hybrid" +msgstr "" + msgid "Independent support layer height" msgstr "Independent support layer height" @@ -7851,6 +7879,17 @@ msgid "" "density to improve the strength of the model?" msgstr "" +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal or tree is selected, only support enforcers are generated" +#~ msgstr "" +#~ "normal(auto), hybrid(auto) and tree(auto) are used to generate support " +#~ "automatically. If normal or tree is selected, only support enforcers are " +#~ "generated." + +#~ msgid "hybrid(auto)" +#~ msgstr "hybrid(auto)" + #~ msgid "" #~ "Spiral mode only works when wall loops is 1, \n" #~ "support is disabled, top shell layers is 0 and sparse infill density is " diff --git a/bbl/i18n/es/BambuStudio_es.po b/bbl/i18n/es/BambuStudio_es.po index c491143c2..0f50cbf2a 100644 --- a/bbl/i18n/es/BambuStudio_es.po +++ b/bbl/i18n/es/BambuStudio_es.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-17 12:28+0800\n" +"POT-Creation-Date: 2022-12-21 10:35+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -1923,6 +1923,18 @@ msgid "" "No - Give up using arachne this time" msgstr "" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" + msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -7160,10 +7172,9 @@ msgstr "Habilitar la generación de soporte." msgid "" "normal(auto) and tree(auto) is used to generate support automatically. If " -"normal or tree is selected, only support enforcers are generated" +"normal(manual) or tree(manual) is selected, only support enforcers are " +"generated" msgstr "" -"normal(auto) y tree(auto) se utiliza para generar soporte automáticamente. " -"Si se selecciona normal o árbol, sólo se generan los soportes" msgid "normal(auto)" msgstr "normal(auto)" @@ -7171,9 +7182,6 @@ msgstr "normal(auto)" msgid "tree(auto)" msgstr "árbol(auto)" -msgid "hybrid(auto)" -msgstr "híbrido(auto)" - msgid "normal(manual)" msgstr "" @@ -7220,9 +7228,12 @@ msgstr "" msgid "The z gap between the bottom support interface and object" msgstr "" +msgid "Support base" +msgstr "" + msgid "" -"Filament to print support and raft. \"Default\" means no specific filament " -"for support and current filament is used" +"Filament to print support base and raft. \"Default\" means no specific " +"filament for support and current filament is used" msgstr "" msgid "Line width of support" @@ -7308,9 +7319,27 @@ msgstr "Velocidad de la asistencia" msgid "Style" msgstr "Estilo" +msgid "" +"Style and shape of the support. For normal support, projecting the supports " +"into a regular grid will create more stable supports (default), while snug " +"support towers will save material and reduce object scarring.\n" +"For tree support, tight style will merge branches more aggressively and save " +"a lot of material (default), while hybrid style will create similar " +"structure to normal support under large flat overhangs." +msgstr "" + msgid "Snug" msgstr "Ajustado" +msgid "Tree Slim" +msgstr "" + +msgid "Tree Strong" +msgstr "" + +msgid "Tree Hybrid" +msgstr "" + msgid "Independent support layer height" msgstr "Altura de la capa de soporte independiente" @@ -7976,6 +8005,17 @@ msgid "" "density to improve the strength of the model?" msgstr "" +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal or tree is selected, only support enforcers are generated" +#~ msgstr "" +#~ "normal(auto) y tree(auto) se utiliza para generar soporte " +#~ "automáticamente. Si se selecciona normal o árbol, sólo se generan los " +#~ "soportes" + +#~ msgid "hybrid(auto)" +#~ msgstr "híbrido(auto)" + #~ msgid "" #~ "Spiral mode only works when wall loops is 1, \n" #~ "support is disabled, top shell layers is 0 and sparse infill density is " diff --git a/bbl/i18n/fr/BambuStudio_fr.po b/bbl/i18n/fr/BambuStudio_fr.po index 331ac228c..5eb2533fa 100644 --- a/bbl/i18n/fr/BambuStudio_fr.po +++ b/bbl/i18n/fr/BambuStudio_fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-17 12:28+0800\n" +"POT-Creation-Date: 2022-12-21 10:35+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -1904,6 +1904,18 @@ msgid "" "No - Give up using arachne this time" msgstr "" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" + msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -7156,11 +7168,9 @@ msgstr "Activer la génération de support." msgid "" "normal(auto) and tree(auto) is used to generate support automatically. If " -"normal or tree is selected, only support enforcers are generated" +"normal(manual) or tree(manual) is selected, only support enforcers are " +"generated" msgstr "" -"normal(auto) et tree(auto) sont utilisés pour générer automatiquement le " -"support. Si normal ou arbre est sélectionné, seuls les exécuteurs de support " -"sont générés" msgid "normal(auto)" msgstr "normale (auto)" @@ -7168,9 +7178,6 @@ msgstr "normale (auto)" msgid "tree(auto)" msgstr "arbre (auto)" -msgid "hybrid(auto)" -msgstr "hybride (auto)" - msgid "normal(manual)" msgstr "" @@ -7219,9 +7226,12 @@ msgstr "" msgid "The z gap between the bottom support interface and object" msgstr "" +msgid "Support base" +msgstr "" + msgid "" -"Filament to print support and raft. \"Default\" means no specific filament " -"for support and current filament is used" +"Filament to print support base and raft. \"Default\" means no specific " +"filament for support and current filament is used" msgstr "" msgid "Line width of support" @@ -7306,9 +7316,27 @@ msgstr "Vitesse pour les supports" msgid "Style" msgstr "Style" +msgid "" +"Style and shape of the support. For normal support, projecting the supports " +"into a regular grid will create more stable supports (default), while snug " +"support towers will save material and reduce object scarring.\n" +"For tree support, tight style will merge branches more aggressively and save " +"a lot of material (default), while hybrid style will create similar " +"structure to normal support under large flat overhangs." +msgstr "" + msgid "Snug" msgstr "Confortable" +msgid "Tree Slim" +msgstr "" + +msgid "Tree Strong" +msgstr "" + +msgid "Tree Hybrid" +msgstr "" + msgid "Independent support layer height" msgstr "Hauteur de la couche de support indépendante" @@ -7977,6 +8005,17 @@ msgid "" "density to improve the strength of the model?" msgstr "" +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal or tree is selected, only support enforcers are generated" +#~ msgstr "" +#~ "normal(auto) et tree(auto) sont utilisés pour générer automatiquement le " +#~ "support. Si normal ou arbre est sélectionné, seuls les exécuteurs de " +#~ "support sont générés" + +#~ msgid "hybrid(auto)" +#~ msgstr "hybride (auto)" + #~ msgid "" #~ "Spiral mode only works when wall loops is 1, \n" #~ "support is disabled, top shell layers is 0 and sparse infill density is " diff --git a/bbl/i18n/hu/BambuStudio_hu.po b/bbl/i18n/hu/BambuStudio_hu.po index 84357a177..eeef42b08 100644 --- a/bbl/i18n/hu/BambuStudio_hu.po +++ b/bbl/i18n/hu/BambuStudio_hu.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-17 12:28+0800\n" +"POT-Creation-Date: 2022-12-21 10:35+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -1920,6 +1920,18 @@ msgid "" "No - Give up using arachne this time" msgstr "" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" + msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -7148,11 +7160,9 @@ msgstr "Engedélyezi a támasz generálását." msgid "" "normal(auto) and tree(auto) is used to generate support automatically. If " -"normal or tree is selected, only support enforcers are generated" +"normal(manual) or tree(manual) is selected, only support enforcers are " +"generated" msgstr "" -"A normál (auto), hibrid (auto) és fa (auto) támaszok automatikus " -"generálására szolgál. Ha normál vagy fa van kiválasztva, akkor csak a támasz " -"kényszerítők kerülnek legenerálásra." msgid "normal(auto)" msgstr "normál (auto)" @@ -7160,9 +7170,6 @@ msgstr "normál (auto)" msgid "tree(auto)" msgstr "fa (auto)" -msgid "hybrid(auto)" -msgstr "hibrid (auto)" - msgid "normal(manual)" msgstr "" @@ -7210,9 +7217,12 @@ msgstr "" msgid "The z gap between the bottom support interface and object" msgstr "" +msgid "Support base" +msgstr "" + msgid "" -"Filament to print support and raft. \"Default\" means no specific filament " -"for support and current filament is used" +"Filament to print support base and raft. \"Default\" means no specific " +"filament for support and current filament is used" msgstr "" msgid "Line width of support" @@ -7297,9 +7307,27 @@ msgstr "Támaszok sebessége" msgid "Style" msgstr "Stílus" +msgid "" +"Style and shape of the support. For normal support, projecting the supports " +"into a regular grid will create more stable supports (default), while snug " +"support towers will save material and reduce object scarring.\n" +"For tree support, tight style will merge branches more aggressively and save " +"a lot of material (default), while hybrid style will create similar " +"structure to normal support under large flat overhangs." +msgstr "" + msgid "Snug" msgstr "Szoros" +msgid "Tree Slim" +msgstr "" + +msgid "Tree Strong" +msgstr "" + +msgid "Tree Hybrid" +msgstr "" + msgid "Independent support layer height" msgstr "Független támasz rétegmagassága" @@ -7960,6 +7988,17 @@ msgid "" "density to improve the strength of the model?" msgstr "" +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal or tree is selected, only support enforcers are generated" +#~ msgstr "" +#~ "A normál (auto), hibrid (auto) és fa (auto) támaszok automatikus " +#~ "generálására szolgál. Ha normál vagy fa van kiválasztva, akkor csak a " +#~ "támasz kényszerítők kerülnek legenerálásra." + +#~ msgid "hybrid(auto)" +#~ msgstr "hibrid (auto)" + #~ msgid "" #~ "Spiral mode only works when wall loops is 1, \n" #~ "support is disabled, top shell layers is 0 and sparse infill density is " diff --git a/bbl/i18n/nl/BambuStudio_nl.po b/bbl/i18n/nl/BambuStudio_nl.po index bde61dd92..d80aa0641 100644 --- a/bbl/i18n/nl/BambuStudio_nl.po +++ b/bbl/i18n/nl/BambuStudio_nl.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-17 12:28+0800\n" +"POT-Creation-Date: 2022-12-21 10:35+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -1925,6 +1925,18 @@ msgid "" "No - Give up using arachne this time" msgstr "" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" + msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -7180,11 +7192,9 @@ msgstr "Dit maakt het genereren van support mogelijk." msgid "" "normal(auto) and tree(auto) is used to generate support automatically. If " -"normal or tree is selected, only support enforcers are generated" +"normal(manual) or tree(manual) is selected, only support enforcers are " +"generated" msgstr "" -"normal (auto), hybride (auto) en tree (auto) worden gebruikt om automatisch " -"support te genereren. Als normaal of tree is geselecteerd, worden alleen " -"vereiste support gegenereerd." msgid "normal(auto)" msgstr "Normaal (automatisch)" @@ -7192,9 +7202,6 @@ msgstr "Normaal (automatisch)" msgid "tree(auto)" msgstr "tree(auto)" -msgid "hybrid(auto)" -msgstr "Hybride (automatisch)" - msgid "normal(manual)" msgstr "" @@ -7242,9 +7249,12 @@ msgstr "" msgid "The z gap between the bottom support interface and object" msgstr "" +msgid "Support base" +msgstr "" + msgid "" -"Filament to print support and raft. \"Default\" means no specific filament " -"for support and current filament is used" +"Filament to print support base and raft. \"Default\" means no specific " +"filament for support and current filament is used" msgstr "" msgid "Line width of support" @@ -7330,9 +7340,27 @@ msgstr "Dit is de snelheid voor het printen van support." msgid "Style" msgstr "Stijl" +msgid "" +"Style and shape of the support. For normal support, projecting the supports " +"into a regular grid will create more stable supports (default), while snug " +"support towers will save material and reduce object scarring.\n" +"For tree support, tight style will merge branches more aggressively and save " +"a lot of material (default), while hybrid style will create similar " +"structure to normal support under large flat overhangs." +msgstr "" + msgid "Snug" msgstr "Nauwsluitend" +msgid "Tree Slim" +msgstr "" + +msgid "Tree Strong" +msgstr "" + +msgid "Tree Hybrid" +msgstr "" + msgid "Independent support layer height" msgstr "Onafhankelijke support laaghoogte" @@ -7998,6 +8026,17 @@ msgid "" "density to improve the strength of the model?" msgstr "" +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal or tree is selected, only support enforcers are generated" +#~ msgstr "" +#~ "normal (auto), hybride (auto) en tree (auto) worden gebruikt om " +#~ "automatisch support te genereren. Als normaal of tree is geselecteerd, " +#~ "worden alleen vereiste support gegenereerd." + +#~ msgid "hybrid(auto)" +#~ msgstr "Hybride (automatisch)" + #~ msgid "" #~ "Spiral mode only works when wall loops is 1, \n" #~ "support is disabled, top shell layers is 0 and sparse infill density is " diff --git a/bbl/i18n/sv/BambuStudio_sv.po b/bbl/i18n/sv/BambuStudio_sv.po index 17d2b5e46..a94d3eeca 100644 --- a/bbl/i18n/sv/BambuStudio_sv.po +++ b/bbl/i18n/sv/BambuStudio_sv.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-17 12:28+0800\n" +"POT-Creation-Date: 2022-12-21 10:35+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -1895,6 +1895,18 @@ msgid "" "No - Give up using arachne this time" msgstr "" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" + msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -7049,11 +7061,9 @@ msgstr "Aktivera support generering." msgid "" "normal(auto) and tree(auto) is used to generate support automatically. If " -"normal or tree is selected, only support enforcers are generated" +"normal(manual) or tree(manual) is selected, only support enforcers are " +"generated" msgstr "" -"normal(auto), hybrid(auto) och tree(auto) används för att skapa support " -"automatiskt. Om normal eller tree är vald, kommer endast tvingande support " -"skapas" msgid "normal(auto)" msgstr "normal (auto)" @@ -7061,9 +7071,6 @@ msgstr "normal (auto)" msgid "tree(auto)" msgstr "träd(auto)" -msgid "hybrid(auto)" -msgstr "hybrid(auto)" - msgid "normal(manual)" msgstr "" @@ -7111,9 +7118,12 @@ msgstr "" msgid "The z gap between the bottom support interface and object" msgstr "" +msgid "Support base" +msgstr "" + msgid "" -"Filament to print support and raft. \"Default\" means no specific filament " -"for support and current filament is used" +"Filament to print support base and raft. \"Default\" means no specific " +"filament for support and current filament is used" msgstr "" msgid "Line width of support" @@ -7197,9 +7207,27 @@ msgstr "Support hastighet" msgid "Style" msgstr "Stil" +msgid "" +"Style and shape of the support. For normal support, projecting the supports " +"into a regular grid will create more stable supports (default), while snug " +"support towers will save material and reduce object scarring.\n" +"For tree support, tight style will merge branches more aggressively and save " +"a lot of material (default), while hybrid style will create similar " +"structure to normal support under large flat overhangs." +msgstr "" + msgid "Snug" msgstr "Tight" +msgid "Tree Slim" +msgstr "" + +msgid "Tree Strong" +msgstr "" + +msgid "Tree Hybrid" +msgstr "" + msgid "Independent support layer height" msgstr "Oberoende support lagerhöjd" @@ -7854,6 +7882,17 @@ msgid "" "density to improve the strength of the model?" msgstr "" +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal or tree is selected, only support enforcers are generated" +#~ msgstr "" +#~ "normal(auto), hybrid(auto) och tree(auto) används för att skapa support " +#~ "automatiskt. Om normal eller tree är vald, kommer endast tvingande " +#~ "support skapas" + +#~ msgid "hybrid(auto)" +#~ msgstr "hybrid(auto)" + #~ msgid "" #~ "Spiral mode only works when wall loops is 1, \n" #~ "support is disabled, top shell layers is 0 and sparse infill density is " diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index 65d618edb..9596147ae 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-17 12:28+0800\n" +"POT-Creation-Date: 2022-12-21 10:35+0800\n" "PO-Revision-Date: 2022-12-13 20:18+0800\n" "Last-Translator: Jiang Yue \n" "Language-Team: \n" @@ -708,7 +708,7 @@ msgid "Set filament for selected items" msgstr "设置所选项的耗材丝" msgid "Default" -msgstr "默认" +msgstr "缺省" #, c-format, boost-format msgid "Filament %d" @@ -1823,7 +1823,9 @@ msgstr "" msgid "" "Spiral mode only works when wall loops is 1, support is disabled, top shell " "layers is 0, sparse infill density is 0 and timelapse type is traditional" -msgstr "旋转模式只能在外墙层数为1,关闭支撑,顶层层数为0,稀疏填充密度为0,传统延时摄影时有效" +msgstr "" +"旋转模式只能在外墙层数为1,关闭支撑,顶层层数为0,稀疏填充密度为0,传统延时摄" +"影时有效" msgid "" "Change these settings automatically? \n" @@ -1850,6 +1852,21 @@ msgstr "" "是 - 使用arachne并关闭悬垂降速\n" "否 - 此次放弃使用arachne" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" +"自动调整这些设置?\n" +"是 - 自动调整这些设置\n" +"否 - 不用为我调整这些设置" + msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -2475,7 +2492,7 @@ msgid "No" msgstr "否" msgid " will be closed before creating a new model. Do you want to continue?" -msgstr "会被关闭以创建新模型。是否继续?" +msgstr "将会被关闭以创建新模型。是否继续?" msgid "Slice" msgstr "切片" @@ -6886,10 +6903,11 @@ msgstr "开启支撑生成。" msgid "" "normal(auto) and tree(auto) is used to generate support automatically. If " -"normal or tree is selected, only support enforcers are generated" +"normal(manual) or tree(manual) is selected, only support enforcers are " +"generated" msgstr "" -"普通(自动)和树状(自动)用于自动生成支撑体。如果选择普通或树状,仅会在支撑" -"强制面上生成支撑。" +"普通(自动)和树状(自动)用于自动生成支撑体。如果选择普通(手动)" +"或树状(手动),仅会在支撑强制面上生成支撑。" msgid "normal(auto)" msgstr "普通(自动)" @@ -6897,9 +6915,6 @@ msgstr "普通(自动)" msgid "tree(auto)" msgstr "树状(自动)" -msgid "hybrid(auto)" -msgstr "混合(自动)" - msgid "normal(manual)" msgstr "普通(手动)" @@ -6944,10 +6959,13 @@ msgstr "底部Z距离" msgid "The z gap between the bottom support interface and object" msgstr "支撑生成于模型表面时,支撑面底部和模型之间的z间隙" +msgid "Support base" +msgstr "支撑主体" + msgid "" -"Filament to print support and raft. \"Default\" means no specific filament " -"for support and current filament is used" -msgstr "打印支撑和筏层的耗材丝。“默认”代表不指定特定的耗材丝,并使用当前耗材" +"Filament to print support base and raft. \"Default\" means no specific " +"filament for support and current filament is used" +msgstr "打印支撑主体和筏层的耗材丝。\"缺省\"代表不指定特定的耗材丝,并使用当前耗材" msgid "Line width of support" msgstr "支撑的线宽" @@ -6962,7 +6980,7 @@ msgstr "使用圈形走线覆盖顶部接触面。默认关闭。" msgid "" "Filament to print support interface. \"Default\" means no specific filament " "for support interface and current filament is used" -msgstr "打印支撑接触面的耗材丝。“默认”代表不指定特定的耗材丝,并使用当前耗材" +msgstr "打印支撑接触面的耗材丝。\"缺省\"代表不指定特定的耗材丝,并使用当前耗材" msgid "Top interface layers" msgstr "顶部接触面层数" @@ -7026,9 +7044,27 @@ msgstr "支撑打印速度" msgid "Style" msgstr "样式" +msgid "" +"Style and shape of the support. For normal support, projecting the supports " +"into a regular grid will create more stable supports (default), while snug " +"support towers will save material and reduce object scarring.\n" +"For tree support, tight style will merge branches more aggressively and save " +"a lot of material (default), while hybrid style will create similar " +"structure to normal support under large flat overhangs." +msgstr "" + msgid "Snug" msgstr "紧贴" +msgid "Tree Slim" +msgstr "" + +msgid "Tree Strong" +msgstr "" + +msgid "Tree Hybrid" +msgstr "" + msgid "Independent support layer height" msgstr "支撑独立层高" @@ -7749,6 +7785,22 @@ msgstr "" "提高强度\n" "你知道吗?你可以使用更多的墙层数和更高的疏散填充密度来提高模型的强度。" +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal or tree is selected, only support enforcers are generated" +#~ msgstr "" +#~ "普通(自动)和树状(自动)用于自动生成支撑体。如果选择普通或树状,仅会在支" +#~ "撑强制面上生成支撑。" + +#~ msgid "hybrid(auto)" +#~ msgstr "混合(自动)" + +#~ msgid "" +#~ "Filament to print support and raft. \"Default\" means no specific " +#~ "filament for support and current filament is used" +#~ msgstr "" +#~ "打印支撑和筏层的耗材丝。\"缺省\"代表不指定特定的耗材丝,并使用当前耗材" + #~ msgid "" #~ "Spiral mode only works when wall loops is 1, \n" #~ "support is disabled, top shell layers is 0 and sparse infill density is " diff --git a/resources/i18n/de/BambuStudio.mo b/resources/i18n/de/BambuStudio.mo index ffedd6d910d382876d1525c3bb471a2370e0fc0f..788d58153bac75355a84bb96ebc06174e1ac3333 100644 GIT binary patch delta 27075 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 delta 27450 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 diff --git a/resources/i18n/en/BambuStudio.mo b/resources/i18n/en/BambuStudio.mo index 03f553c6b6e52fa240dbb61ce4188850c35bb82e..36e18fbd24075176fd06e824ef860d3955cda1cb 100644 GIT binary patch delta 26643 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 X>ALuyq}vfX$T!Q~(P6N!M~eRgn|m&_ delta 27951 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 diff --git a/resources/i18n/nl/BambuStudio.mo b/resources/i18n/nl/BambuStudio.mo index b4b4d309bb58ccdadd9ab5c2b627fc6b54d632c0..2d7f8394f962c1b2243a7e2327711735ac828640 100644 GIT binary patch delta 27072 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 delta 27457 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

hP>Tlpn2Fp)cBn{2qmnWfbw7+i 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 diff --git a/resources/i18n/sv/BambuStudio.mo b/resources/i18n/sv/BambuStudio.mo index 99556705d929862603bf7562dac9251fb2367a35..ba155ddc914f6a4c0b2d9eccae43d2dfa5c0451a 100644 GIT binary patch delta 27010 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 krMW5J$X{yKROYEx~0c;ye2M2Z#zzm;e9( From 8b5a49f37870b25623d75336d46065653bd645cc Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Thu, 22 Dec 2022 11:50:02 +0800 Subject: [PATCH 12/28] ENH: disable wireframe currently for some macos has performance issue Change-Id: I7646927352b0097e1a7b4fa97da4730976996b80 --- src/slic3r/GUI/GLShadersManager.cpp | 12 ++++++------ src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp | 8 ++++---- src/slic3r/GUI/Plater.cpp | 5 +++-- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/slic3r/GUI/GLShadersManager.cpp b/src/slic3r/GUI/GLShadersManager.cpp index 454f18ed2..33e5a0954 100644 --- a/src/slic3r/GUI/GLShadersManager.cpp +++ b/src/slic3r/GUI/GLShadersManager.cpp @@ -71,16 +71,16 @@ std::pair GLShadersManager::init() // Since macOS 12 (Monterey), this issue with the opposite direction on Apple's Arm CPU seems to be fixed, and computed // triangle normals inside fragment shader have the right direction. if (platform_flavor() == PlatformFlavor::OSXOnArm && wxPlatformInfo::Get().GetOSMajorVersion() < 12) { - //if (GUI::wxGetApp().is_gl_version_greater_or_equal_to(3, 0)) - valid &= append_shader("mm_gouraud", {"mm_gouraud_wireframe.vs", "mm_gouraud_wireframe.fs"}, {"FLIP_TRIANGLE_NORMALS"sv}); + //if (GUI::wxGetApp().plater() && GUI::wxGetApp().plater()->is_wireframe_enabled()) + // valid &= append_shader("mm_gouraud", {"mm_gouraud_wireframe.vs", "mm_gouraud_wireframe.fs"}, {"FLIP_TRIANGLE_NORMALS"sv}); //else - // valid &= append_shader("mm_gouraud", {"mm_gouraud.vs", "mm_gouraud.fs"}, {"FLIP_TRIANGLE_NORMALS"sv}); + valid &= append_shader("mm_gouraud", {"mm_gouraud.vs", "mm_gouraud.fs"}, {"FLIP_TRIANGLE_NORMALS"sv}); } else { - //if (GUI::wxGetApp().is_gl_version_greater_or_equal_to(3, 0)) - valid &= append_shader("mm_gouraud", {"mm_gouraud_wireframe.vs", "mm_gouraud_wireframe.fs"}); + //if (GUI::wxGetApp().plater() && GUI::wxGetApp().plater()->is_wireframe_enabled()) + // valid &= append_shader("mm_gouraud", {"mm_gouraud_wireframe.vs", "mm_gouraud_wireframe.fs"}); //else - // valid &= append_shader("mm_gouraud", {"mm_gouraud.vs", "mm_gouraud.fs"}); + valid &= append_shader("mm_gouraud", {"mm_gouraud.vs", "mm_gouraud.fs"}); } //BBS: add shader for outline diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp index 45d7373d8..6b5e0d82f 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp @@ -321,16 +321,16 @@ void GLGizmoMmuSegmentation::show_tooltip_information(float caption_max, float x std::vector tip_items; switch (m_tool_type) { case ToolType::BRUSH: - tip_items = {"paint", "erase", "cursor_size", "clipping_of_view", "toggle_wireframe"}; + tip_items = {"paint", "erase", "cursor_size", "clipping_of_view"}; break; case ToolType::BUCKET_FILL: - tip_items = {"paint", "erase", "smart_fill_angle", "clipping_of_view", "toggle_wireframe"}; + tip_items = {"paint", "erase", "smart_fill_angle", "clipping_of_view"}; break; case ToolType::SMART_FILL: // TODO: break; case ToolType::GAP_FILL: - tip_items = {"gap_area", "toggle_wireframe"}; + tip_items = {"gap_area"}; break; default: break; @@ -357,7 +357,7 @@ void GLGizmoMmuSegmentation::on_render_input_window(float x, float y, float bott // First calculate width of all the texts that are could possibly be shown. We will decide set the dialog width based on that: const float space_size = m_imgui->get_style_scaling() * 8; - const float clipping_slider_left = std::max(m_imgui->calc_text_size(m_desc.at("clipping_of_view")).x + m_imgui->scaled(1.5f), + const float clipping_slider_left = std::max(m_imgui->calc_text_size(m_desc.at("clipping_of_view")).x + m_imgui->scaled(1.5f), m_imgui->calc_text_size(m_desc.at("reset_direction")).x + m_imgui->scaled(1.5f) + ImGui::GetStyle().FramePadding.x * 2); const float cursor_slider_left = m_imgui->calc_text_size(m_desc.at("cursor_size")).x + m_imgui->scaled(1.5f); const float smart_fill_slider_left = m_imgui->calc_text_size(m_desc.at("smart_fill_angle")).x + m_imgui->scaled(1.5f); diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 2c257e153..6ae4c87f8 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1082,7 +1082,7 @@ void Sidebar::update_presets(Preset::Type preset_type) Tab* print_tab = wxGetApp().get_tab(Preset::TYPE_PRINT); if (print_tab) { print_tab->get_combo_box()->update(); - } + } break; } case Preset::TYPE_SLA_PRINT: @@ -1097,7 +1097,7 @@ void Sidebar::update_presets(Preset::Type preset_type) { update_all_preset_comboboxes(); p->show_preset_comboboxes(); - + /* update bed shape */ Tab* printer_tab = wxGetApp().get_tab(Preset::TYPE_PRINTER); if (printer_tab) { @@ -7344,6 +7344,7 @@ Plater::Plater(wxWindow *parent, MainFrame *main_frame) , p(new priv(this, main_frame)) { // Initialization performed in the private c-tor + enable_wireframe(false); } bool Plater::Show(bool show) From 697d945ca1e6f9a3817aeae63deb4e310e2d991a Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Thu, 22 Dec 2022 14:40:34 +0800 Subject: [PATCH 13/28] ENH: add the logic to prompt user to update network plugins Change-Id: I73cce20e58783a365ad2665c8e095dcf2e9c02ea --- src/slic3r/GUI/GUI_App.cpp | 6 + src/slic3r/GUI/NotificationManager.hpp | 12 ++ src/slic3r/GUI/Plater.cpp | 26 ++++ src/slic3r/GUI/Plater.hpp | 1 + src/slic3r/GUI/ReleaseNote.cpp | 170 +++++++++++++++++++++++-- src/slic3r/GUI/ReleaseNote.hpp | 14 ++ src/slic3r/Utils/PresetUpdater.cpp | 78 +++++++++++- 7 files changed, 289 insertions(+), 18 deletions(-) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 8777eb064..9f46f4bc7 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -2495,11 +2495,14 @@ bool GUI_App::on_init_inner() void GUI_App::copy_network_if_available() { + if (app_config->get("update_network_plugin") != "true") + return; std::string network_library, player_library, network_library_dst, player_library_dst; std::string data_dir_str = data_dir(); boost::filesystem::path data_dir_path(data_dir_str); auto plugin_folder = data_dir_path / "plugins"; auto cache_folder = data_dir_path / "ota"; + std::string changelog_file = cache_folder.string() + "/network_plugins.json"; #if defined(_MSC_VER) || defined(_WIN32) network_library = cache_folder.string() + "/bambu_networking.dll"; player_library = cache_folder.string() + "/BambuSource.dll"; @@ -2548,6 +2551,9 @@ void GUI_App::copy_network_if_available() fs::remove(player_library); BOOST_LOG_TRIVIAL(info) << __FUNCTION__<< ": Copying player library from" << player_library << " to " << player_library_dst<<" successfully."; } + if (boost::filesystem::exists(changelog_file)) + fs::remove(changelog_file); + app_config->set("update_network_plugin", "false"); } bool GUI_App::on_init_network(bool try_backup) diff --git a/src/slic3r/GUI/NotificationManager.hpp b/src/slic3r/GUI/NotificationManager.hpp index b71f487d2..abf83fd58 100644 --- a/src/slic3r/GUI/NotificationManager.hpp +++ b/src/slic3r/GUI/NotificationManager.hpp @@ -135,6 +135,7 @@ enum class NotificationType BBLSeqPrintInfo, //BBL: plugin install hint BBLPluginInstallHint, + BBLPluginUpdateAvailable, BBLPreviewOnlyMode, }; @@ -873,6 +874,17 @@ private: _u8L("Integration failed.") }, NotificationData{NotificationType::UndoDesktopIntegrationSuccess, NotificationLevel::RegularNotificationLevel, 10, _u8L("Undo integration was successful.") }, + + NotificationData{NotificationType::BBLPluginUpdateAvailable, NotificationLevel::ImportantNotificationLevel, BBL_NOTICE_MAX_INTERVAL, + _L("New network plug-in available.").ToStdString(), + _L("Details").ToStdString(), + [](wxEvtHandler* evnthndlr) { + //BBS set feishu release page by default + wxCommandEvent* evt = new wxCommandEvent(EVT_UPDATE_PLUGINS_WHEN_LAUNCH); + wxQueueEvent(wxGetApp().plater(), evt); + return true; + }}, + NotificationData{NotificationType::UndoDesktopIntegrationFail, NotificationLevel::WarningNotificationLevel, 10, _u8L("Undo integration failed.") }, NotificationData{NotificationType::ExportOngoing, NotificationLevel::RegularNotificationLevel, 0, _u8L("Exporting.")}, diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 6ae4c87f8..ff480beb7 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -160,6 +160,7 @@ wxDEFINE_EVENT(EVT_PUBLISH_FINISHED, wxCommandEvent); wxDEFINE_EVENT(EVT_REPAIR_MODEL, wxCommandEvent); wxDEFINE_EVENT(EVT_FILAMENT_COLOR_CHANGED, wxCommandEvent); wxDEFINE_EVENT(EVT_INSTALL_PLUGIN_NETWORKING, wxCommandEvent); +wxDEFINE_EVENT(EVT_UPDATE_PLUGINS_WHEN_LAUNCH, wxCommandEvent); wxDEFINE_EVENT(EVT_INSTALL_PLUGIN_HINT, wxCommandEvent); wxDEFINE_EVENT(EVT_PREVIEW_ONLY_MODE_HINT, wxCommandEvent); //BBS: change light/dark mode @@ -2116,6 +2117,7 @@ private: void update_after_undo_redo(const UndoRedo::Snapshot& snapshot, bool temp_snapshot_was_taken = false); void on_action_export_to_sdcard(SimpleEvent&); void on_action_export_to_sdcard_all(SimpleEvent&); + void update_plugin_when_launch(wxCommandEvent& event); // path to project folder stored with no extension boost::filesystem::path m_project_folder; @@ -2210,6 +2212,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) this->q->Bind(EVT_FILAMENT_COLOR_CHANGED, &priv::on_filament_color_changed, this); this->q->Bind(EVT_INSTALL_PLUGIN_NETWORKING, &priv::install_network_plugin, this); this->q->Bind(EVT_INSTALL_PLUGIN_HINT, &priv::show_install_plugin_hint, this); + this->q->Bind(EVT_UPDATE_PLUGINS_WHEN_LAUNCH, &priv::update_plugin_when_launch, this); this->q->Bind(EVT_PREVIEW_ONLY_MODE_HINT, &priv::show_preview_only_hint, this); this->q->Bind(EVT_GLCANVAS_COLOR_MODE_CHANGED, &priv::on_change_color_mode, this); this->q->Bind(wxEVT_SYS_COLOUR_CHANGED, &priv::on_apple_change_color_mode, this); @@ -6185,6 +6188,29 @@ void Plater::priv::install_network_plugin(wxCommandEvent &event) return; } +void Plater::priv::update_plugin_when_launch(wxCommandEvent &event) +{ + std::string data_dir_str = data_dir(); + boost::filesystem::path data_dir_path(data_dir_str); + auto cache_folder = data_dir_path / "ota"; + std::string changelog_file = cache_folder.string() + "/network_plugins.json"; + + UpdatePluginDialog dlg(wxGetApp().mainframe); + dlg.update_info(changelog_file); + auto result = dlg.ShowModal(); + + auto app_config = wxGetApp().app_config; + if (!app_config) return; + + if (result == wxID_OK) { + app_config->set("update_network_plugin", "true"); + } + else if (result == wxID_NO) { + app_config->set("update_network_plugin", "false"); + } + app_config->save(); +} + void Plater::priv::show_install_plugin_hint(wxCommandEvent &event) { notification_manager->bbl_show_plugin_install_notification(into_u8(_L("Network Plug-in is not detected. Network related features are unavailable."))); diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index 9402b8877..1b930a0fd 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -87,6 +87,7 @@ wxDECLARE_EVENT(EVT_REPAIR_MODEL, wxCommandEvent); wxDECLARE_EVENT(EVT_FILAMENT_COLOR_CHANGED, wxCommandEvent); wxDECLARE_EVENT(EVT_INSTALL_PLUGIN_NETWORKING, wxCommandEvent); wxDECLARE_EVENT(EVT_INSTALL_PLUGIN_HINT, wxCommandEvent); +wxDECLARE_EVENT(EVT_UPDATE_PLUGINS_WHEN_LAUNCH, wxCommandEvent); wxDECLARE_EVENT(EVT_PREVIEW_ONLY_MODE_HINT, wxCommandEvent); wxDECLARE_EVENT(EVT_GLCANVAS_COLOR_MODE_CHANGED, SimpleEvent); diff --git a/src/slic3r/GUI/ReleaseNote.cpp b/src/slic3r/GUI/ReleaseNote.cpp index fca89f4f2..446aea37c 100644 --- a/src/slic3r/GUI/ReleaseNote.cpp +++ b/src/slic3r/GUI/ReleaseNote.cpp @@ -44,7 +44,7 @@ ReleaseNoteDialog::ReleaseNoteDialog(Plater *plater /*= nullptr*/) m_sizer_body->Add(0, 0, 0, wxLEFT, FromDIP(38)); - auto sm = create_scaled_bitmap("BambuStudio", nullptr, 70); + auto sm = create_scaled_bitmap("BambuStudio", nullptr, 70); auto brand = new wxStaticBitmap(this, wxID_ANY, sm, wxDefaultPosition, wxSize(FromDIP(70), FromDIP(70))); m_sizer_body->Add(brand, 0, wxALL, 0); @@ -85,8 +85,8 @@ void ReleaseNoteDialog::on_dpi_changed(const wxRect &suggested_rect) { } -void ReleaseNoteDialog::update_release_note(wxString release_note, std::string version) -{ +void ReleaseNoteDialog::update_release_note(wxString release_note, std::string version) +{ m_text_up_info->SetLabel(wxString::Format(_L("version %s update information :"), version)); wxBoxSizer * sizer_text_release_note = new wxBoxSizer(wxVERTICAL); auto m_staticText_release_note = new wxStaticText(m_vebview_release_note, wxID_ANY, release_note, wxDefaultPosition, wxDefaultSize, 0); @@ -97,6 +97,154 @@ void ReleaseNoteDialog::update_release_note(wxString release_note, std::string v m_vebview_release_note->Fit(); } +UpdatePluginDialog::UpdatePluginDialog(wxWindow* parent /*= nullptr*/) + : DPIDialog(static_cast(wxGetApp().mainframe), wxID_ANY, _L("Network plug-in update"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX) +{ + std::string icon_path = (boost::format("%1%/images/BambuStudioTitle.ico") % resources_dir()).str(); + SetIcon(wxIcon(encode_path(icon_path.c_str()), wxBITMAP_TYPE_ICO)); + + SetBackgroundColour(*wxWHITE); + wxBoxSizer* m_sizer_main = new wxBoxSizer(wxVERTICAL); + auto m_line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1)); + m_line_top->SetBackgroundColour(wxColour(166, 169, 170)); + m_sizer_main->Add(m_line_top, 0, wxEXPAND, 0); + m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(30)); + + wxBoxSizer* m_sizer_body = new wxBoxSizer(wxHORIZONTAL); + + + + auto sm = create_scaled_bitmap("BambuStudio", nullptr, 55); + auto brand = new wxStaticBitmap(this, wxID_ANY, sm, wxDefaultPosition, wxSize(FromDIP(55), FromDIP(55))); + + wxBoxSizer* m_sizer_right = new wxBoxSizer(wxVERTICAL); + + m_text_up_info = new wxStaticText(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0); + m_text_up_info->SetFont(::Label::Head_13); + m_text_up_info->SetMaxSize(wxSize(FromDIP(260), -1)); + m_text_up_info->Wrap(FromDIP(260)); + m_text_up_info->SetForegroundColour(wxColour(0x26, 0x2E, 0x30)); + + + operation_tips = new ::Label(this, _L("Click OK to update the Network plug-in when Bambu Studio launches next time.")); + operation_tips->SetFont(::Label::Body_12); + operation_tips->SetSize(wxSize(FromDIP(260), -1)); + operation_tips->Wrap(FromDIP(260)); + operation_tips->SetForegroundColour(*wxBLACK); + + + m_vebview_release_note = new wxScrolledWindow(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL); + m_vebview_release_note->SetScrollRate(5, 5); + m_vebview_release_note->SetBackgroundColour(wxColour(0xF8, 0xF8, 0xF8)); + m_vebview_release_note->SetMinSize(wxSize(FromDIP(260), FromDIP(150))); + m_vebview_release_note->SetMaxSize(wxSize(FromDIP(260), FromDIP(150))); + + auto sizer_button = new wxBoxSizer(wxHORIZONTAL); + + StateColor btn_bg_green(std::pair(wxColour(27, 136, 68), StateColor::Pressed), std::pair(wxColour(61, 203, 115), StateColor::Hovered), + std::pair(AMS_CONTROL_BRAND_COLOUR, StateColor::Normal)); + + StateColor btn_bg_white(std::pair(wxColour(206, 206, 206), StateColor::Pressed), std::pair(wxColour(238, 238, 238), StateColor::Hovered), + std::pair(*wxWHITE, StateColor::Normal)); + + auto m_button_ok = new Button(this, _L("OK")); + m_button_ok->SetBackgroundColor(btn_bg_green); + m_button_ok->SetBorderColor(*wxWHITE); + m_button_ok->SetTextColor(wxColour(0xFFFFFE)); + m_button_ok->SetFont(Label::Body_12); + m_button_ok->SetSize(wxSize(FromDIP(58), FromDIP(24))); + m_button_ok->SetMinSize(wxSize(FromDIP(58), FromDIP(24))); + m_button_ok->SetCornerRadius(FromDIP(12)); + + m_button_ok->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent& e) { + EndModal(wxID_OK); + }); + + auto m_button_cancel = new Button(this, _L("Cancel")); + m_button_cancel->SetBackgroundColor(btn_bg_white); + m_button_cancel->SetBorderColor(wxColour(38, 46, 48)); + m_button_cancel->SetFont(Label::Body_12); + m_button_cancel->SetSize(wxSize(FromDIP(58), FromDIP(24))); + m_button_cancel->SetMinSize(wxSize(FromDIP(58), FromDIP(24))); + m_button_cancel->SetCornerRadius(FromDIP(12)); + + m_button_cancel->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent& e) { + EndModal(wxID_NO); + }); + + sizer_button->AddStretchSpacer(); + sizer_button->Add(m_button_ok, 0, wxALL, FromDIP(5)); + sizer_button->Add(m_button_cancel, 0, wxALL, FromDIP(5)); + + m_sizer_right->Add(m_text_up_info, 0, 0, 0); + m_sizer_right->Add(0, 0, 0, wxTOP, FromDIP(5)); + m_sizer_right->Add(m_vebview_release_note, 0, wxEXPAND | wxRIGHT, FromDIP(20)); + m_sizer_right->Add(0, 0, 0, wxTOP, FromDIP(5)); + m_sizer_right->Add(operation_tips, 1, wxEXPAND | wxRIGHT, FromDIP(20)); + m_sizer_right->Add(0, 0, 0, wxTOP, FromDIP(5)); + m_sizer_right->Add(sizer_button, 0, wxEXPAND | wxRIGHT, FromDIP(20)); + + m_sizer_body->Add(0, 0, 0, wxLEFT, FromDIP(24)); + m_sizer_body->Add(brand, 0, wxALL, 0); + m_sizer_body->Add(0, 0, 0, wxRIGHT, FromDIP(20)); + m_sizer_body->Add(m_sizer_right, 1, wxBOTTOM | wxEXPAND, FromDIP(18)); + m_sizer_main->Add(m_sizer_body, 0, wxEXPAND, 0); + + SetSizer(m_sizer_main); + Layout(); + m_sizer_main->Fit(this); + + Centre(wxBOTH); + wxGetApp().UpdateDlgDarkUI(this); +} + +UpdatePluginDialog::~UpdatePluginDialog() {} + + +void UpdatePluginDialog::on_dpi_changed(const wxRect& suggested_rect) +{ +} + +void UpdatePluginDialog::update_info(std::string json_path) +{ + std::string version_str, description_str; + wxString version; + wxString description; + + try { + boost::nowide::ifstream ifs(json_path); + json j; + ifs >> j; + + version_str = j["version"]; + description_str = j["description"]; + } + catch(nlohmann::detail::parse_error &err) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__<< ": parse "<SetMaxSize(wxSize(FromDIP(260), -1)); + m_text_up_info->Wrap(FromDIP(260)); + wxBoxSizer* sizer_text_release_note = new wxBoxSizer(wxVERTICAL); + auto m_text_label = new ::Label(m_vebview_release_note, description); + m_text_label->SetFont(::Label::Body_13); + m_text_label->SetForegroundColour(*wxBLACK); + m_text_label->SetMaxSize(wxSize(FromDIP(235), -1)); + m_text_label->Wrap(FromDIP(235)); + + sizer_text_release_note->Add(m_text_label, 0, wxALL, 5); + m_vebview_release_note->SetSizer(sizer_text_release_note); + m_vebview_release_note->Layout(); + m_vebview_release_note->Fit(); + Layout(); + Fit(); +} + void UpdateVersionDialog::alter_choice(wxCommandEvent& event) { wxGetApp().set_skip_version(m_remind_choice->GetValue()); @@ -174,7 +322,7 @@ UpdateVersionDialog::UpdateVersionDialog(wxWindow *parent) auto sizer_button = new wxBoxSizer(wxHORIZONTAL); - + StateColor btn_bg_green(std::pair(wxColour(27, 136, 68), StateColor::Pressed), std::pair(wxColour(61, 203, 115), StateColor::Hovered), std::pair(AMS_CONTROL_BRAND_COLOUR, StateColor::Normal)); @@ -202,19 +350,19 @@ UpdateVersionDialog::UpdateVersionDialog(wxWindow *parent) m_button_cancel->SetMinSize(wxSize(FromDIP(58), FromDIP(24))); m_button_cancel->SetCornerRadius(FromDIP(12)); - m_button_cancel->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent &e) { - EndModal(wxID_NO); + m_button_cancel->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent &e) { + EndModal(wxID_NO); }); - + sizer_button->Add(m_remind_choice, 0, wxALL | wxEXPAND, FromDIP(5)); sizer_button->AddStretchSpacer(); sizer_button->Add(m_button_ok, 0, wxALL, FromDIP(5)); sizer_button->Add(m_button_cancel, 0, wxALL, FromDIP(5)); - + m_sizer_right->Add(m_simplebook_release_note, 0, wxEXPAND | wxRIGHT, FromDIP(20)); m_sizer_right->Add(sizer_button, 0, wxEXPAND | wxRIGHT, FromDIP(20)); - + m_sizer_body->Add(m_sizer_right, 1, wxBOTTOM | wxEXPAND, FromDIP(8)); m_sizer_main->Add(m_sizer_body, 0, wxEXPAND, 0); m_sizer_main->Add(0, 0, 0, wxBOTTOM, 10); @@ -312,7 +460,7 @@ std::vector UpdateVersionDialog::splitWithStl(std::string str,std:: } void UpdateVersionDialog::update_version_info(wxString release_note, wxString version) -{ +{ //bbs check whether the web display is used bool use_web_link = false; std::string url_line = ""; @@ -341,7 +489,7 @@ void UpdateVersionDialog::update_version_info(wxString release_note, wxString ve m_scrollwindows_release_note->SetSizer(sizer_text_release_note); m_scrollwindows_release_note->Layout(); m_scrollwindows_release_note->Fit(); - } + } } SecondaryCheckDialog::SecondaryCheckDialog(wxWindow* parent, wxWindowID id, const wxString& title, enum ButtonStyle btn_style, const wxPoint& pos, const wxSize& size, long style, bool not_show_again_check) diff --git a/src/slic3r/GUI/ReleaseNote.hpp b/src/slic3r/GUI/ReleaseNote.hpp index 19fbdc25a..0031431c7 100644 --- a/src/slic3r/GUI/ReleaseNote.hpp +++ b/src/slic3r/GUI/ReleaseNote.hpp @@ -53,6 +53,20 @@ public: wxScrolledWindow *m_vebview_release_note {nullptr}; }; +class UpdatePluginDialog : public DPIDialog +{ +public: + UpdatePluginDialog(wxWindow* parent = nullptr); + ~UpdatePluginDialog(); + + void on_dpi_changed(const wxRect& suggested_rect) override; + void update_info(std::string json_path); + + wxStaticText* m_text_up_info{ nullptr }; + Label* operation_tips{ nullptr }; + wxScrolledWindow* m_vebview_release_note{ nullptr }; +}; + class UpdateVersionDialog : public DPIDialog { public: diff --git a/src/slic3r/Utils/PresetUpdater.cpp b/src/slic3r/Utils/PresetUpdater.cpp index 2f6953395..b6a4a5ed6 100644 --- a/src/slic3r/Utils/PresetUpdater.cpp +++ b/src/slic3r/Utils/PresetUpdater.cpp @@ -231,10 +231,11 @@ struct PresetUpdater::priv void prune_tmps() const; void sync_version() const; void parse_version_string(const std::string& body) const; - void sync_resources(std::string http_url, std::map &resources, bool check_patch = false, std::string current_version=""); + void sync_resources(std::string http_url, std::map &resources, bool check_patch = false, std::string current_version="", std::string changelog_file=""); void sync_config(std::string http_url, const VendorMap vendors); void sync_tooltip(std::string http_url, std::string language); void sync_plugins(std::string http_url, std::string plugin_version); + bool get_cached_plugins_version(std::string& cached_version); //BBS: refine preset update logic bool install_bundles_rsrc(std::vector bundles, bool snapshot) const; @@ -482,7 +483,7 @@ void PresetUpdater::priv::parse_version_string(const std::string& body) const //BBS: refine the Preset Updater logic // Download vendor indices. Also download new bundles if an index indicates there's a new one available. // Both are saved in cache. -void PresetUpdater::priv::sync_resources(std::string http_url, std::map &resources, bool check_patch, std::string current_version_str) +void PresetUpdater::priv::sync_resources(std::string http_url, std::map &resources, bool check_patch, std::string current_version_str, std::string changelog_file) { std::map resource_list; @@ -616,15 +617,26 @@ void PresetUpdater::priv::sync_resources(std::string http_url, std::mapsecond.description.empty()) { - // save the description to disk - std::string changelog_file = (cache_path / "changelog").string(); + // save the description to disk + if (changelog_file.empty()) + changelog_file = (cache_path / "changelog.json").string(); + else + changelog_file = (cache_path / changelog_file).string(); + + try { + json j; + //record the headers + j["version"] = resource_update->second.version; + j["description"] = resource_update->second.description; boost::nowide::ofstream c; c.open(changelog_file, std::ios::out | std::ios::trunc); - c << resource_update->second.description << std::endl; + c << std::setw(4) << j << std::endl; c.close(); } + catch(std::exception &err) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__<< ": save to "<> j; + + cached_version = j["version"]; + } + catch(nlohmann::detail::parse_error &err) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__<< ": parse "< resources { {"slicer/plugins/cloud", { using_version, "", "", cache_path.string(), {"plugins"}}} }; - sync_resources(http_url, resources, true, plugin_version); + sync_resources(http_url, resources, true, plugin_version, "network_plugins.json"); } catch (std::exception& e) { BOOST_LOG_TRIVIAL(warning) << format("[BBL Updater] sync_plugins: %1%", e.what()); } + + bool result = get_cached_plugins_version(cached_version); + if (result) { + BOOST_LOG_TRIVIAL(info) << format("[BBL Updater] found new plugins: %1%, prompt to update", cached_version); + GUI::wxGetApp().plater()->get_notification_manager()->push_notification(GUI::NotificationType::BBLPluginUpdateAvailable); + } } From 8ccf3cbd7c183a06ea021c53669a8ef9a55e4fb4 Mon Sep 17 00:00:00 2001 From: tao wang Date: Fri, 16 Dec 2022 09:45:10 +0800 Subject: [PATCH 14/28] FIX:fixed can not change filaments on objecttable Change-Id: Ic4a301a71af1406f02075edaf9ef24a273c82105 --- src/slic3r/GUI/GUI_ObjectTable.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/GUI_ObjectTable.cpp b/src/slic3r/GUI/GUI_ObjectTable.cpp index 79628e222..06eeefc65 100644 --- a/src/slic3r/GUI/GUI_ObjectTable.cpp +++ b/src/slic3r/GUI/GUI_ObjectTable.cpp @@ -171,6 +171,16 @@ void GridCellFilamentsEditor::Create(wxWindow* parent, } m_control = bitmap_combo; wxGridCellEditor::Create(parent, id, evtHandler); + + /* bitmap_combo->GetDropDown().Bind(wxEVT_COMBOBOX, [this](wxCommandEvent& e) { + const wxString value = Combo()->GetValue(); + if (value == m_value) + return false; + + m_value = value; + return true; + e.Skip(); + });*/ } void GridCellFilamentsEditor::SetSize(const wxRect& rect) @@ -242,7 +252,7 @@ void GridCellFilamentsEditor::BeginEdit(int row, int col, wxGrid* grid) // When dropping down the menu, a kill focus event // happens after this point, so we can't reset the flag yet. #if !defined(__WXGTK20__) - evtHandler->SetInSetFocus(false); + //evtHandler->SetInSetFocus(false); #endif } } From 6899947da8e3872ecd050489bf1cb130a8386286 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Thu, 22 Dec 2022 21:28:39 +0800 Subject: [PATCH 15/28] ENH: Update version to 1.4.1 Change-Id: Id21f3ffd8bdeab2cada64c74e87d606cb0ea7856 --- resources/profiles/BBL.json | 2 +- resources/profiles/Creality.json | 2 +- resources/profiles/Voron.json | 2 +- version.inc | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index 2799ed2c8..8d7bad3bd 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -1,7 +1,7 @@ { "name": "Bambulab", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json", - "version": "01.04.00.15", + "version": "01.04.01.00", "force_update": "0", "description": "the initial version of BBL configurations", "machine_model_list": [ diff --git a/resources/profiles/Creality.json b/resources/profiles/Creality.json index b85402ad3..10460ee63 100644 --- a/resources/profiles/Creality.json +++ b/resources/profiles/Creality.json @@ -1,6 +1,6 @@ { "name": "Creality", - "version": "01.04.00.00", + "version": "01.04.01.00", "force_update": "0", "description": "Creality configurations", "machine_model_list": [ diff --git a/resources/profiles/Voron.json b/resources/profiles/Voron.json index dbf3d9151..db6ae9233 100644 --- a/resources/profiles/Voron.json +++ b/resources/profiles/Voron.json @@ -1,6 +1,6 @@ { "name": "Voron", - "version": "01.04.00.00", + "version": "01.04.01.00", "force_update": "0", "description": "Voron configurations", "machine_model_list": [ diff --git a/version.inc b/version.inc index d2949c8ac..d1abbfdb1 100644 --- a/version.inc +++ b/version.inc @@ -10,4 +10,4 @@ endif() if(NOT DEFINED BBL_INTERNAL_TESTING) set(BBL_INTERNAL_TESTING "1") endif() -set(SLIC3R_VERSION "01.04.00.18") +set(SLIC3R_VERSION "01.04.01.50") From 3c386f37397ab4b4ca8e0074b57f94fe0a32780f Mon Sep 17 00:00:00 2001 From: gerrit Date: Thu, 22 Dec 2022 22:01:25 +0800 Subject: [PATCH 16/28] ENH: update networking version Change-Id: Ic670cf14c1171268ed0ade38145e8e39a16ad7ea --- src/slic3r/Utils/bambu_networking.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/Utils/bambu_networking.hpp b/src/slic3r/Utils/bambu_networking.hpp index 41c5049f4..939f4f5d3 100644 --- a/src/slic3r/Utils/bambu_networking.hpp +++ b/src/slic3r/Utils/bambu_networking.hpp @@ -39,7 +39,7 @@ namespace BBL { #define BAMBU_NETWORK_LIBRARY "bambu_networking" #define BAMBU_NETWORK_AGENT_NAME "bambu_network_agent" -#define BAMBU_NETWORK_AGENT_VERSION "01.04.00.12" +#define BAMBU_NETWORK_AGENT_VERSION "01.04.01.01" //iot preset type strings From 3f9c74c86e217a6b96d42c70555d296f38788b9f Mon Sep 17 00:00:00 2001 From: Stone Li Date: Fri, 23 Dec 2022 16:22:14 +0800 Subject: [PATCH 17/28] ENH: reorder the judgement when sending print job Change-Id: I1a33bba1d33388a61d12c00a11e84c2ee5c00287 Signed-off-by: Stone Li --- src/slic3r/GUI/SendToPrinter.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/slic3r/GUI/SendToPrinter.cpp b/src/slic3r/GUI/SendToPrinter.cpp index 92f439571..b5fa7ba4a 100644 --- a/src/slic3r/GUI/SendToPrinter.cpp +++ b/src/slic3r/GUI/SendToPrinter.cpp @@ -892,6 +892,12 @@ void SendToPrinterDialog::update_show_status() reset_timeout(); + bool is_suppt = obj_->is_function_supported(PrinterFunction::FUNC_SEND_TO_SDCARD); + if (!is_suppt) { + show_status(PrintDialogStatus::PrintStatusNotSupportedSendToSDCard); + return; + } + // reading done if (obj_->is_in_upgrading()) { show_status(PrintDialogStatus::PrintStatusInUpgrading); @@ -914,12 +920,6 @@ void SendToPrinterDialog::update_show_status() show_status(PrintDialogStatus::PrintStatusNotOnTheSameLAN); return; } - - bool is_suppt = obj_->is_function_supported(PrinterFunction::FUNC_SEND_TO_SDCARD); - if (!is_suppt) { - show_status(PrintDialogStatus::PrintStatusNotSupportedSendToSDCard); - return; - } show_status(PrintDialogStatus::PrintStatusReadingFinished); } From 58aaa94fc76330770e0167a5eda5dbf45eea9b21 Mon Sep 17 00:00:00 2001 From: Arthur Date: Fri, 23 Dec 2022 15:19:57 +0800 Subject: [PATCH 18/28] FIX: empty layers and dangling hybrid support 1. fix possible empty layers (caused by continues walls) 2. fix normal node may be absorbed in drop_nodes in "tree hybrid" 3. popup message to ask the user to select best parameters for tree strong and tree hybrid. 4. auto select lightning infill for tree hybrid. Change-Id: I7d172887a9b0e4f268267684e83fc02dc7ec6a0c (cherry picked from commit bc6d130e86c252d7fc1f84c4df7da95050dd5d51) --- src/libslic3r/TreeSupport.cpp | 94 +++++++++++++++++++++-------------- src/libslic3r/TreeSupport.hpp | 1 + src/slic3r/GUI/Tab.cpp | 16 ++++++ 3 files changed, 74 insertions(+), 37 deletions(-) diff --git a/src/libslic3r/TreeSupport.cpp b/src/libslic3r/TreeSupport.cpp index f4c3d8e76..66ff20831 100644 --- a/src/libslic3r/TreeSupport.cpp +++ b/src/libslic3r/TreeSupport.cpp @@ -245,7 +245,7 @@ static void draw_contours_and_nodes_to_svg // draw layer nodes svg.draw(layer_pts, "green", coord_t(scale_(0.1))); - +#if 0 // lower layer points layer_pts.clear(); for (TreeSupport::Node *node : lower_layer_nodes) { @@ -260,6 +260,7 @@ static void draw_contours_and_nodes_to_svg layer_pts.push_back(node->parent->position); } svg.draw(layer_pts, "blue", coord_t(scale_(0.1))); +#endif } static void draw_layer_mst @@ -685,6 +686,7 @@ TreeSupport::TreeSupport(PrintObject& object, const SlicingParameters &slicing_p m_raft_layers = slicing_params.base_raft_layers + slicing_params.interface_raft_layers; SupportMaterialPattern support_pattern = m_object_config->support_base_pattern; + if (m_object_config->support_style == smsTreeHybrid && support_pattern == smpDefault) support_pattern = smpLightning; m_support_params.base_fill_pattern = support_pattern == smpLightning ? ipLightning : support_pattern == smpHoneycomb ? ipHoneycomb : @@ -700,6 +702,8 @@ TreeSupport::TreeSupport(PrintObject& object, const SlicingParameters &slicing_p is_slim = is_tree_slim(m_object_config->support_type, m_object_config->support_style); MAX_BRANCH_RADIUS = is_slim ? 5.0 : 10.0; tree_support_branch_diameter_angle = 5.0;//is_slim ? 10.0 : 5.0; + // by default tree support needs no infill, unless it's tree hybrid which contains normal nodes. + with_infill = support_pattern != smpNone && support_pattern != smpDefault; } @@ -1301,7 +1305,8 @@ static void _make_loops(ExtrusionEntitiesPtr& loops_entities, ExPolygons &suppor } // draw connected loops - if (wall_count > 1 && wall_count<5) { + if (/*wall_count > 1 && wall_count<5*/0) { + // TODO this method may drop some contours wall_count = std::min(wall_count, loops.size()); Polylines polylines; polylines.push_back(Polyline()); @@ -1418,9 +1423,7 @@ void TreeSupport::generate_toolpaths() coordf_t support_extrusion_width = m_support_params.support_extrusion_width; coordf_t nozzle_diameter = print_config.nozzle_diameter.get_at(object_config.support_filament - 1); coordf_t layer_height = object_config.layer_height.value; - const size_t wall_count = object_config.tree_support_wall_count.value; - const bool with_infill = object_config.support_base_pattern != smpNone && object_config.support_base_pattern != smpDefault; // coconut: use same intensity settings as SupportMaterial.cpp auto m_support_material_interface_flow = support_material_interface_flow(m_object, float(m_slicing_params.layer_height)); @@ -1593,7 +1596,7 @@ void TreeSupport::generate_toolpaths() // base_areas filler_support->spacing = support_flow.spacing(); Flow flow = (layer_id == 0 && m_raft_layers == 0) ? m_object->print()->brim_flow() : support_flow; - if (area_group.dist_to_top < 10 && !with_infill) { + if (area_group.dist_to_top < 10 && !with_infill && m_object_config->support_style!=smsTreeHybrid) { // at least 2 walls for the top tips make_perimeter_and_inner_brim(ts_layer->support_fills.entities, poly, std::max(wall_count, size_t(2)), flow, erSupportMaterial); } else { @@ -1883,8 +1886,7 @@ Polygons TreeSupport::contact_nodes_to_polygon(const std::vector& contact void TreeSupport::generate_support_areas() { - const PrintObjectConfig &config = m_object->config(); - bool tree_support_enable = config.enable_support.value && is_tree(config.support_type.value); + bool tree_support_enable = m_object_config->enable_support.value && is_tree(m_object_config->support_type.value); if (!tree_support_enable) return; @@ -2007,7 +2009,6 @@ void TreeSupport::draw_circles(const std::vector>& contact_no const PrintObjectConfig &config = m_object->config(); const Print* print = m_object->print(); bool has_brim = print->has_brim(); - bool has_infill = config.support_base_pattern.value != smpNone && config.support_base_pattern != smpDefault; int bottom_gap_layers = round(m_slicing_params.gap_object_support / m_slicing_params.layer_height); const coordf_t branch_radius = config.tree_support_branch_diameter.value / 2; const coordf_t branch_radius_scaled = scale_(branch_radius); @@ -2328,7 +2329,7 @@ void TreeSupport::draw_circles(const std::vector>& contact_no generator = std::make_unique(m_object, contours, overhangs, []() {}, support_density); } - else if (!has_infill) { + else if (!with_infill) { // move the holes to contour so they can be well supported // check if poly's contour intersects with expoly's contour @@ -2634,16 +2635,7 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) nodes_per_part[0][node.position] = p_node; continue; } - if (node.type == ePolygon) { - // polygon node do not merge or move - const bool to_buildplate = !is_inside_ex(m_ts_data->m_layer_outlines[layer_nr], p_node->position); - Node *next_node = new Node(p_node->position, p_node->distance_to_top + 1, p_node->skin_direction, p_node->support_roof_layers_below - 1, to_buildplate, p_node, - print_z_next, height_next); - next_node->max_move_dist = 0; - next_node->is_merged = false; - contact_nodes[layer_nr_next].emplace_back(next_node); - continue; - } + /* Find which part this node is located in and group the nodes in * the same part together. Since nodes have a radius and the * avoidance areas are offset by that radius, the set of parts may @@ -2711,7 +2703,29 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) continue; //Delete this node (don't create a new node for it on the next layer). } const std::vector& neighbours = mst.adjacent_nodes(node.position); - if (neighbours.size() == 1 && vsize2_with_unscale(neighbours[0] - node.position) < max_move_distance2 && mst.adjacent_nodes(neighbours[0]).size() == 1) //We have just two nodes left, and they're very close! + if (node.type == ePolygon) { + #if 1 + // Remove all neighbours that are completely inside the polygon and merge them into this node. + for (const Point &neighbour : neighbours) { + Node * neighbour_node = nodes_per_part[group_index][neighbour]; + coord_t neighbour_radius = scale_(calc_branch_radius(branch_radius, neighbour_node->dist_mm_to_top, diameter_angle_scale_factor)); + Point pt_north = neighbour + Point(0, neighbour_radius), pt_south = neighbour - Point(0, neighbour_radius), + pt_west = neighbour - Point(neighbour_radius, 0), pt_east = neighbour + Point(neighbour_radius, 0); + if (is_inside_ex(*node.overhang, neighbour) && is_inside_ex(*node.overhang, pt_north) && is_inside_ex(*node.overhang, pt_south) + && is_inside_ex(*node.overhang, pt_west) && is_inside_ex(*node.overhang, pt_east)){ + node.distance_to_top = std::max(node.distance_to_top, neighbour_node->distance_to_top); + node.support_roof_layers_below = std::max(node.support_roof_layers_below, neighbour_node->support_roof_layers_below); + node.dist_mm_to_top = std::max(node.dist_mm_to_top, neighbour_node->dist_mm_to_top); + node.merged_neighbours.push_front(neighbour_node); + node.merged_neighbours.insert(node.merged_neighbours.end(), neighbour_node->merged_neighbours.begin(), neighbour_node->merged_neighbours.end()); + node.is_merged = true; + to_delete.insert(neighbour_node); + } + } + #endif + } + else if (neighbours.size() == 1 && vsize2_with_unscale(neighbours[0] - node.position) < max_move_distance2 && mst.adjacent_nodes(neighbours[0]).size() == 1 && + nodes_per_part[group_index][neighbours[0]]->type!=ePolygon) // We have just two nodes left, and they're very close, and the only neighbor is not ePolygon { //Insert a completely new node and let both original nodes fade. Point next_position = (node.position + neighbours[0]) / 2; //Average position of the two nodes. @@ -2739,7 +2753,7 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) parent = neighbour->parent; const bool to_buildplate = !is_inside_ex(m_ts_data->get_avoidance(0, layer_nr_next), next_position); - Node * next_node = new Node(next_position, new_distance_to_top, node.skin_direction, new_support_roof_layers_below, to_buildplate, parent, + Node * next_node = new Node(next_position, new_distance_to_top, node.skin_direction, new_support_roof_layers_below, to_buildplate, p_node, layer_heights[layer_nr_next].first, layer_heights[layer_nr_next].second, new_dist_mm_to_top); next_node->movement = next_position - node.position; get_max_move_dist(next_node); @@ -2759,6 +2773,8 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) if (vsize2_with_unscale(neighbour - node.position) < /*max_move_distance2*/get_max_move_dist(&node,2)) { Node* neighbour_node = nodes_per_part[group_index][neighbour]; + if (neighbour_node->type == ePolygon) continue; + node.distance_to_top = std::max(node.distance_to_top, neighbour_node->distance_to_top); node.support_roof_layers_below = std::max(node.support_roof_layers_below, neighbour_node->support_roof_layers_below); node.dist_mm_to_top = std::max(node.dist_mm_to_top, neighbour_node->dist_mm_to_top); @@ -2780,6 +2796,17 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) { continue; } + if (node.type == ePolygon) { + // polygon node do not merge or move + const bool to_buildplate = !is_inside_ex(m_ts_data->m_layer_outlines[layer_nr], p_node->position); + Node * next_node = new Node(p_node->position, p_node->distance_to_top + 1, p_node->skin_direction, p_node->support_roof_layers_below - 1, to_buildplate, + p_node, print_z_next, height_next); + next_node->max_move_dist = 0; + next_node->is_merged = false; + contact_nodes[layer_nr_next].emplace_back(next_node); + continue; + } + //If the branch falls completely inside a collision area (the entire branch would be removed by the X/Y offset), delete it. if (group_index > 0 && is_inside_ex(m_ts_data->get_collision(m_ts_data->m_xy_distance, layer_nr), node.position)) { @@ -2926,10 +2953,12 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) } #ifdef SUPPORT_TREE_DEBUG_TO_SVG - draw_contours_and_nodes_to_svg(std::to_string(ts_layer->print_z), m_ts_data->get_avoidance(0, layer_nr), m_ts_data->get_avoidance(branch_radius_temp, layer_nr), m_ts_data->m_layer_outlines_below[layer_nr], + if (contact_nodes[layer_nr].empty() == false) { + draw_contours_and_nodes_to_svg((boost::format("%.2f") % contact_nodes[layer_nr][0]->print_z).str(), m_ts_data->get_avoidance(0, layer_nr), + m_ts_data->get_avoidance(branch_radius_temp, layer_nr), + m_ts_data->m_layer_outlines_below[layer_nr], contact_nodes[layer_nr], contact_nodes[layer_nr_next], "contact_points", { "overhang","avoid","outline" }, { "blue","red","yellow" }); - if (contact_nodes[layer_nr].empty() == false) { BOOST_LOG_TRIVIAL(debug) << "drop_nodes layer " << layer_nr << ", print_z=" << ts_layer->print_z; for (size_t i = 0; i < std::min(size_t(5), contact_nodes[layer_nr].size()); i++) { auto &node = contact_nodes[layer_nr][i]; @@ -2960,7 +2989,7 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) } } } - + #if 0 // delete nodes with no children (means either it's a single layer nodes, or the branch has been deleted but not completely) for (size_t layer_nr = contact_nodes.size() - 1; layer_nr > 0; layer_nr--){ auto layer_contact_nodes = contact_nodes[layer_nr]; @@ -2974,7 +3003,7 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) } } } - + #endif BOOST_LOG_TRIVIAL(debug) << "after m_avoidance_cache.size()=" << m_ts_data->m_avoidance_cache.size(); for (Node *node : to_free_node_set) @@ -3242,16 +3271,6 @@ std::vector> TreeSupport::plan_layer_heights(std:: } #ifdef SUPPORT_TREE_DEBUG_TO_SVG - // export all print_z and layer height into .txt - std::ofstream layer_heights_out; - layer_heights_out.open("./SVG/layer_heights_out.txt"); - //layer_heights_out.open("layer_heights_out.txt"); - if (layer_heights_out.is_open()) { - for (int i = 0; i < layer_heights.size(); i++) { - layer_heights_out << layer_heights[i].first << " " << layer_heights[i].second << std::endl; - } - layer_heights_out.close(); - } // check bounds if (1) { @@ -3264,6 +3283,7 @@ std::vector> TreeSupport::plan_layer_heights(std:: } } #endif + for (int i = 0; i < layer_heights.size(); i++) { BOOST_LOG_TRIVIAL(info) << "plan_layer_heights print_z, height: "<< layer_heights[i].first << " " << layer_heights[i].second << std::endl; } return layer_heights; } @@ -3549,7 +3569,7 @@ Polygons TreeSupportData::get_contours_with_holes(size_t layer_nr) const coordf_t TreeSupportData::ceil_radius(coordf_t radius) const { -#if 0 +#if 1 size_t factor = (size_t)(radius / m_radius_sample_resolution); coordf_t remains = radius - m_radius_sample_resolution * factor; if (remains > EPSILON) { @@ -3604,7 +3624,7 @@ const ExPolygons& TreeSupportData::calculate_avoidance(const RadiusLayerPair& ke avoidance_areas.insert(avoidance_areas.end(), collision.begin(), collision.end()); avoidance_areas = std::move(union_ex(avoidance_areas)); ret = m_avoidance_cache.insert({key, std::move(avoidance_areas)}); - assert(ret.second); + //assert(ret.second); } else { ExPolygons avoidance_areas = std::move(offset_ex(m_layer_outlines_below[layer_nr], scale_(m_xy_distance + radius))); ret = m_avoidance_cache.insert({key, std::move(avoidance_areas)}); diff --git a/src/libslic3r/TreeSupport.hpp b/src/libslic3r/TreeSupport.hpp index 608b64af9..cbaa0bcf3 100644 --- a/src/libslic3r/TreeSupport.hpp +++ b/src/libslic3r/TreeSupport.hpp @@ -384,6 +384,7 @@ private: coordf_t MIN_BRANCH_RADIUS = 0.5; float tree_support_branch_diameter_angle = 5.0; bool is_slim = false; + bool with_infill = false; /*! diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index bd024695e..40a46b621 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1434,6 +1434,22 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value) m_config_manipulation.apply(m_config, &new_conf); } wxGetApp().plater()->update(); + } else if ((m_config->opt_enum("support_type")==stTreeAuto && (m_config->opt_enum("support_style")==smsTreeStrong || m_config->opt_enum("support_style") == smsTreeHybrid)) && + !((m_config->opt_float("support_top_z_distance") >=0.1 || is_support_filament(m_config->opt_int("support_interface_filament") - 1)) + && m_config->opt_int("support_interface_top_layers") >1) ) { + wxString msg_text = _L("For \"Tree Strong\" and \"Tree Hybrid\" styles, we recommand the following settings: at least 2 interface layers, at least 0.1 top z distance or using support materials on interface."); + msg_text += "\n\n" + _L("Change these settings automatically? \n" + "Yes - Change these settings automatically\n" + "No - Do not change these settings for me"); + MessageDialog dialog(wxGetApp().plater(), msg_text, "Suggestion", wxICON_WARNING | wxYES | wxNO); + DynamicPrintConfig new_conf = *m_config; + if (dialog.ShowModal() == wxID_YES) { + if (!is_support_filament(m_config->opt_int("support_interface_filament") - 1) && m_config->opt_float("support_top_z_distance") < 0.1) + new_conf.set_key_value("support_top_z_distance", new ConfigOptionFloat(0.2)); + new_conf.set_key_value("support_interface_top_layers", new ConfigOptionInt(2)); + m_config_manipulation.apply(m_config, &new_conf); + } + wxGetApp().plater()->update(); } } From d287b885488bead7cf5c8c16758cc5781975ae0b Mon Sep 17 00:00:00 2001 From: "qing.zhang" Date: Fri, 23 Dec 2022 10:07:52 +0800 Subject: [PATCH 19/28] ENH: add metal PLA-CF & PAHT-CF Signed-off-by: qing.zhang Change-Id: I698cca7e9a8f62d16361184f0ab8428dc177eacf --- resources/profiles/BBL.json | 54 +++++++++++++++++- .../BBL/filament/Bambu PA-CF @base.json | 4 +- .../BBL/filament/Bambu PAHT-CF @BBL X1C.json | 16 ++++++ .../BBL/filament/Bambu PAHT-CF @base.json | 56 +++++++++++++++++++ .../BBL/filament/Bambu PLA Metal @BBL X1.json | 19 +++++++ .../Bambu PLA Metal @BBL X1C 0.2 nozzle.json | 15 +++++ .../filament/Bambu PLA Metal @BBL X1C.json | 5 +- .../BBL/filament/Bambu PLA Metal @base.json | 6 +- .../Bambu PLA-CF @BBL X1C 0.8 nozzle.json | 23 ++++++++ .../BBL/filament/Bambu PLA-CF @BBL X1C.json | 24 ++++++++ .../BBL/filament/Bambu PLA-CF @base.json | 35 ++++++++++++ .../filament/P1P/Bambu PAHT-CF @BBL P1P.json | 13 +++++ .../Bambu PLA Metal @BBL P1P 0.2 nozzle.json | 32 +++++++++++ .../P1P/Bambu PLA Metal @BBL P1P.json | 37 ++++++++++++ .../P1P/Bambu PLA-CF @BBL P1P 0.8 nozzle.json | 39 +++++++++++++ .../filament/P1P/Bambu PLA-CF @BBL P1P.json | 41 ++++++++++++++ 16 files changed, 411 insertions(+), 8 deletions(-) create mode 100644 resources/profiles/BBL/filament/Bambu PAHT-CF @BBL X1C.json create mode 100644 resources/profiles/BBL/filament/Bambu PAHT-CF @base.json create mode 100644 resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1.json create mode 100644 resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json create mode 100644 resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json create mode 100644 resources/profiles/BBL/filament/Bambu PLA-CF @base.json create mode 100644 resources/profiles/BBL/filament/P1P/Bambu PAHT-CF @BBL P1P.json create mode 100644 resources/profiles/BBL/filament/P1P/Bambu PLA Metal @BBL P1P 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/P1P/Bambu PLA Metal @BBL P1P.json create mode 100644 resources/profiles/BBL/filament/P1P/Bambu PLA-CF @BBL P1P 0.8 nozzle.json create mode 100644 resources/profiles/BBL/filament/P1P/Bambu PLA-CF @BBL P1P.json diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index 8d7bad3bd..bc24f9935 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -1,7 +1,7 @@ { "name": "Bambulab", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json", - "version": "01.04.01.00", + "version": "01.04.01.01", "force_update": "0", "description": "the initial version of BBL configurations", "machine_model_list": [ @@ -529,6 +529,38 @@ "name":"Generic PETG @0.2 nozzle", "sub_path":"filament/Generic PETG @0.2 nozzle.json" }, + { + "name":"Bambu PLA Metal @BBL X1C 0.2 nozzle", + "sub_path":"filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json" + }, + { + "name":"Bambu PLA Metal @BBL X1", + "sub_path":"filament/Bambu PLA Metal @BBL X1.json" + }, + { + "name":"Bambu PLA Metal @BBL X1C", + "sub_path":"filament/Bambu PLA Metal @BBL X1C.json" + }, + { + "name":"Bambu PLA-CF @base", + "sub_path":"filament/Bambu PLA-CF @base.json" + }, + { + "name":"Bambu PLA-CF @BBL X1C 0.8 nozzle", + "sub_path":"filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json" + }, + { + "name":"Bambu PLA-CF @BBL X1C", + "sub_path":"filament/Bambu PLA-CF @BBL X1C.json" + }, + { + "name":"Bambu PAHT-CF @base", + "sub_path":"filament/Bambu PAHT-CF @base.json" + }, + { + "name":"Bambu PAHT-CF @BBL X1C", + "sub_path":"filament/Bambu PAHT-CF @BBL X1C.json" + }, { "name": "Generic PETG @BBL P1P", "sub_path": "filament/P1P/Generic PETG @BBL P1P.json" @@ -577,9 +609,29 @@ "name":"Generic PETG @BBL P1P 0.2 nozzle", "sub_path":"filament/P1P/Generic PETG @BBL P1P 0.2 nozzle.json" }, + { + "name":"Bambu PAHT-CF @BBL P1P", + "sub_path":"filament/P1P/Bambu PAHT-CF @BBL P1P.json" + }, + { + "name":"Bambu PLA Metal @BBL P1P 0.2 nozzle", + "sub_path":"filament/P1P/Bambu PLA Metal @BBL P1P 0.2 nozzle.json" + }, + { + "name":"Bambu PLA Metal @BBL P1P", + "sub_path":"filament/P1P/Bambu PLA Metal @BBL P1P.json" + }, + { + "name":"Bambu PLA-CF @BBL P1P", + "sub_path":"filament/P1P/Bambu PLA-CF @BBL P1P.json" + }, { "name":"Generic PLA-CF @BBL P1P", "sub_path":"filament/P1P/Generic PLA-CF @BBL P1P.json" + }, + { + "name":"Bambu PLA-CF @BBL P1P 0.8 nozzle", + "sub_path":"filament/P1P/Bambu PLA-CF @BBL P1P 0.8 nozzle.json" } ], "machine_list": [ diff --git a/resources/profiles/BBL/filament/Bambu PA-CF @base.json b/resources/profiles/BBL/filament/Bambu PA-CF @base.json index 609159713..894ebb411 100644 --- a/resources/profiles/BBL/filament/Bambu PA-CF @base.json +++ b/resources/profiles/BBL/filament/Bambu PA-CF @base.json @@ -6,7 +6,7 @@ "instantiation": "false", "inherits": "fdm_filament_pa", "required_nozzle_HRC": [ - "55" + "40" ], "filament_vendor": [ "Bambu Lab" @@ -30,7 +30,7 @@ "PA-CF" ], "filament_cost": [ - "44.99" + "84.99" ], "nozzle_temperature": [ "280" diff --git a/resources/profiles/BBL/filament/Bambu PAHT-CF @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PAHT-CF @BBL X1C.json new file mode 100644 index 000000000..78d7c2937 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PAHT-CF @BBL X1C.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "setting_id": "GFSN04", + "name": "Bambu PAHT-CF @BBL X1C", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PAHT-CF @base", + "compatible_printers": [ + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab X1 Carbon 0.6 nozzle", + "Bambu Lab X1 Carbon 0.8 nozzle", + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PAHT-CF @base.json b/resources/profiles/BBL/filament/Bambu PAHT-CF @base.json new file mode 100644 index 000000000..5f0e6cfec --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PAHT-CF @base.json @@ -0,0 +1,56 @@ +{ + "type": "filament", + "filament_id": "GFN04", + "name": "Bambu PAHT-CF @base", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_pa", + "filament_max_volumetric_speed": [ + "8" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "10" + ], + "fan_cooling_layer_time": [ + "5" + ], + "full_fan_speed_layer": [ + "2" + ], + "required_nozzle_HRC": [ + "40" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "filament_density": [ + "1.06" + ], + "filament_flow_ratio": [ + "0.96" + ], + "nozzle_temperature_initial_layer": [ + "290" + ], + "overhang_fan_threshold": [ + "0%" + ], + "overhang_fan_speed": [ + "40" + ], + "filament_type": [ + "PA-CF" + ], + "filament_cost": [ + "94.99" + ], + "temperature_vitrification": [ + "180" + ], + "nozzle_temperature": [ + "290" + ] +} diff --git a/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1.json b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1.json new file mode 100644 index 000000000..93217b3f8 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1.json @@ -0,0 +1,19 @@ +{ + "type": "filament", + "setting_id": "GFSA02_02", + "name": "Bambu PLA Metal @BBL X1", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PLA Metal @base", + "filament_max_volumetric_speed": [ + "21" + ], + "slow_down_layer_time": [ + "8" + ], + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json new file mode 100644 index 000000000..e68814b8e --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "setting_id": "GFSA02_01", + "name": "Bambu PLA Metal @BBL X1C 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PLA Metal @base", + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Bambu Lab X1 Carbon 0.2 nozzle", + "Bambu Lab X1 0.2 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C.json index 186b47e7a..b21c661b2 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C.json @@ -6,10 +6,11 @@ "instantiation": "true", "inherits": "Bambu PLA Metal @base", "filament_max_volumetric_speed": [ - "25" + "21" ], "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", - "Bambu Lab X1 0.4 nozzle" + "Bambu Lab X1 Carbon 0.6 nozzle", + "Bambu Lab X1 Carbon 0.8 nozzle" ] } diff --git a/resources/profiles/BBL/filament/Bambu PLA Metal @base.json b/resources/profiles/BBL/filament/Bambu PLA Metal @base.json index 46719729e..c456f963a 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Metal @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Metal @base.json @@ -9,12 +9,12 @@ "Bambu Lab" ], "filament_cost": [ - "25.4" + "29.99" ], "filament_flow_ratio": [ - "0.95" + "0.98" ], "filament_density": [ - "1.24" + "1.25" ] } diff --git a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json new file mode 100644 index 000000000..c7dfbb3d5 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "setting_id": "GFSA50_02", + "name": "Bambu PLA-CF @BBL X1C 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PLA-CF @base", + "filament_max_volumetric_speed": [ + "18" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature": [ + "230" + ], + "compatible_printers": [ + "Bambu Lab X1 Carbon 0.6 nozzle", + "Bambu Lab X1 Carbon 0.8 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json new file mode 100644 index 000000000..c93d5803d --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "setting_id": "GFSA50_01", + "name": "Bambu PLA-CF @BBL X1C", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PLA-CF @base", + "filament_max_volumetric_speed": [ + "15" + ], + "slow_down_layer_time": [ + "2" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature": [ + "230" + ], + "compatible_printers": [ + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab X1 0.4 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/Bambu PLA-CF @base.json b/resources/profiles/BBL/filament/Bambu PLA-CF @base.json new file mode 100644 index 000000000..23eea6444 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PLA-CF @base.json @@ -0,0 +1,35 @@ +{ + "type": "filament", + "filament_id": "GFA50", + "name": "Bambu PLA-CF @base", + "from": "system", + "instantiation": "false", + "inherits": "fdm_filament_pla", + "filament_vendor": [ + "Bambu Lab" + ], + "filament_cost": [ + "34.99" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_density": [ + "1.22" + ], + "required_nozzle_HRC": [ + "40" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "filament_type": [ + "PLA-CF" + ] +} diff --git a/resources/profiles/BBL/filament/P1P/Bambu PAHT-CF @BBL P1P.json b/resources/profiles/BBL/filament/P1P/Bambu PAHT-CF @BBL P1P.json new file mode 100644 index 000000000..7d988b566 --- /dev/null +++ b/resources/profiles/BBL/filament/P1P/Bambu PAHT-CF @BBL P1P.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "setting_id": "GFSN04_10", + "name": "Bambu PAHT-CF @BBL P1P", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PAHT-CF @base", + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab P1P 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/P1P/Bambu PLA Metal @BBL P1P 0.2 nozzle.json b/resources/profiles/BBL/filament/P1P/Bambu PLA Metal @BBL P1P 0.2 nozzle.json new file mode 100644 index 000000000..76b9e91b8 --- /dev/null +++ b/resources/profiles/BBL/filament/P1P/Bambu PLA Metal @BBL P1P 0.2 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "setting_id": "GFSA02_11", + "name": "Bambu PLA Metal @BBL P1P 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PLA Metal @base", + "filament_max_volumetric_speed": [ + "2" + ], + "hot_plate_temp" : [ + "65" + ], + "hot_plate_temp_initial_layer" : [ + "65" + ], + "textured_plate_temp" : [ + "65" + ], + "textured_plate_temp_initial_layer" : [ + "65" + ], + "fan_min_speed": [ + "50" + ], + "fan_cooling_layer_time": [ + "80" + ], + "compatible_printers": [ + "Bambu Lab P1P 0.2 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/P1P/Bambu PLA Metal @BBL P1P.json b/resources/profiles/BBL/filament/P1P/Bambu PLA Metal @BBL P1P.json new file mode 100644 index 000000000..80918deaf --- /dev/null +++ b/resources/profiles/BBL/filament/P1P/Bambu PLA Metal @BBL P1P.json @@ -0,0 +1,37 @@ +{ + "type": "filament", + "setting_id": "GFSA02_10", + "name": "Bambu PLA Metal @BBL P1P", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PLA Metal @base", + "filament_max_volumetric_speed": [ + "21" + ], + "slow_down_layer_time": [ + "8" + ], + "hot_plate_temp" : [ + "65" + ], + "hot_plate_temp_initial_layer" : [ + "65" + ], + "textured_plate_temp" : [ + "65" + ], + "textured_plate_temp_initial_layer" : [ + "65" + ], + "fan_min_speed": [ + "50" + ], + "fan_cooling_layer_time": [ + "80" + ], + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab P1P 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/P1P/Bambu PLA-CF @BBL P1P 0.8 nozzle.json b/resources/profiles/BBL/filament/P1P/Bambu PLA-CF @BBL P1P 0.8 nozzle.json new file mode 100644 index 000000000..370f48f5d --- /dev/null +++ b/resources/profiles/BBL/filament/P1P/Bambu PLA-CF @BBL P1P 0.8 nozzle.json @@ -0,0 +1,39 @@ +{ + "type": "filament", + "setting_id": "GFSA50_11", + "name": "Bambu PLA-CF @BBL P1P 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PLA-CF @base", + "filament_max_volumetric_speed": [ + "18" + ], + "hot_plate_temp" : [ + "65" + ], + "hot_plate_temp_initial_layer" : [ + "65" + ], + "textured_plate_temp" : [ + "65" + ], + "textured_plate_temp_initial_layer" : [ + "65" + ], + "fan_min_speed": [ + "50" + ], + "fan_cooling_layer_time": [ + "80" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "compatible_printers": [ + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab P1P 0.8 nozzle" + ] +} diff --git a/resources/profiles/BBL/filament/P1P/Bambu PLA-CF @BBL P1P.json b/resources/profiles/BBL/filament/P1P/Bambu PLA-CF @BBL P1P.json new file mode 100644 index 000000000..66eca224d --- /dev/null +++ b/resources/profiles/BBL/filament/P1P/Bambu PLA-CF @BBL P1P.json @@ -0,0 +1,41 @@ +{ + "type": "filament", + "setting_id": "GFSA50_10", + "name": "Bambu PLA-CF @BBL P1P", + "from": "system", + "instantiation": "true", + "inherits": "Bambu PLA-CF @base", + "filament_max_volumetric_speed": [ + "15" + ], + "slow_down_layer_time": [ + "2" + ], + "hot_plate_temp" : [ + "65" + ], + "hot_plate_temp_initial_layer" : [ + "65" + ], + "textured_plate_temp" : [ + "65" + ], + "textured_plate_temp_initial_layer" : [ + "65" + ], + "fan_min_speed": [ + "50" + ], + "fan_cooling_layer_time": [ + "80" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle" + ] +} From e7e26b4b1abf2c30976b517e557fa73593a061f6 Mon Sep 17 00:00:00 2001 From: Arthur Date: Sat, 24 Dec 2022 11:28:05 +0800 Subject: [PATCH 20/28] FIX: fix typos Change-Id: Iba3727626d9102aa6c87d336ee1d49bbfbb7c479 (cherry picked from commit bf58651fffb94f9aeb4e85ff6c8a7b9feb3cab83) --- src/libslic3r/PrintConfig.cpp | 4 ++-- src/slic3r/GUI/Tab.cpp | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index c55c472f3..ba77f529e 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -2629,7 +2629,7 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("Style and shape of the support. For normal support, projecting the supports into a regular grid " "will create more stable supports (default), while snug support towers will save material and reduce " "object scarring.\n" - "For tree support, tight style will merge branches more aggressively and save " + "For tree support, slim style will merge branches more aggressively and save " "a lot of material (default), while hybrid style will create similar structure to normal support " "under large flat overhangs."); def->enum_keys_map = &ConfigOptionEnum::get_enum_values(); @@ -2731,7 +2731,7 @@ void PrintConfigDef::init_fff_params() def = this->add("bed_temperature_difference", coInts); def->label = L("Bed temperature difference"); - def->tooltip = L("Do not recommand bed temperature of other layer to be lower than initial layer for more than this threshold. " + def->tooltip = L("Do not recommend bed temperature of other layer to be lower than initial layer for more than this threshold. " "Too low bed temperature of other layer may cause the model broken free from build plate"); def->sidetext = L("°C"); def->min = 0; diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 40a46b621..16cb034e2 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1421,7 +1421,7 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value) if (is_tree_slim(m_config->opt_enum("support_type"), m_config->opt_enum("support_style")) && !(m_config->opt_float("support_top_z_distance") == 0 && m_config->opt_int("support_interface_top_layers") == 0 && m_config->opt_int("tree_support_wall_count") == 2)) { wxString msg_text = _L("We have added an experimental style \"Tree Slim\" that features smaller support volume but weaker strength.\n" - "We recommand using it with: 0 interface layers, 0 top distance, 2 walls."); + "We recommend using it with: 0 interface layers, 0 top distance, 2 walls."); msg_text += "\n\n" + _L("Change these settings automatically? \n" "Yes - Change these settings automatically\n" "No - Do not change these settings for me"); @@ -1437,7 +1437,7 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value) } else if ((m_config->opt_enum("support_type")==stTreeAuto && (m_config->opt_enum("support_style")==smsTreeStrong || m_config->opt_enum("support_style") == smsTreeHybrid)) && !((m_config->opt_float("support_top_z_distance") >=0.1 || is_support_filament(m_config->opt_int("support_interface_filament") - 1)) && m_config->opt_int("support_interface_top_layers") >1) ) { - wxString msg_text = _L("For \"Tree Strong\" and \"Tree Hybrid\" styles, we recommand the following settings: at least 2 interface layers, at least 0.1 top z distance or using support materials on interface."); + wxString msg_text = _L("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."); msg_text += "\n\n" + _L("Change these settings automatically? \n" "Yes - Change these settings automatically\n" "No - Do not change these settings for me"); @@ -1458,8 +1458,8 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value) int interface_filament_id = m_config->opt_int("support_interface_filament") - 1; // the displayed id is based from 1, while internal id is based from 0 if (is_support_filament(interface_filament_id) && !(m_config->opt_float("support_top_z_distance") == 0 && m_config->opt_float("support_interface_spacing") == 0 && m_config->opt_enum("support_interface_pattern") == SupportMaterialInterfacePattern::smipConcentric)) { - wxString msg_text = _L("When using support material for the support interface, We recommand the following settings:\n" - "0 top distance, 0 interface spacing, concentric pattern."); + wxString msg_text = _L("When using support material for the support interface, We recommend the following settings:\n" + "0 top z distance, 0 interface spacing, concentric pattern."); msg_text += "\n\n" + _L("Change these settings automatically? \n" "Yes - Change these settings automatically\n" "No - Do not change these settings for me"); From f4519a45e98a3c8f368bdd7e3ababe9959e0c261 Mon Sep 17 00:00:00 2001 From: Arthur Date: Fri, 23 Dec 2022 15:19:57 +0800 Subject: [PATCH 21/28] FIX: tree hybrid may hang duing lightning infill auto select grid infill for tree hybrid, and set default wall count to 1. Change-Id: Icbecd540d06f353da2e63533f8f7cf7d7f20fbdb (cherry picked from commit 246335cc195c88a4101dddd1eeda42d9ca16589f) --- resources/profiles/BBL/process/fdm_process_bbl_common.json | 2 +- src/libslic3r/TreeSupport.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/profiles/BBL/process/fdm_process_bbl_common.json b/resources/profiles/BBL/process/fdm_process_bbl_common.json index 9bc03d927..24a8d2df5 100644 --- a/resources/profiles/BBL/process/fdm_process_bbl_common.json +++ b/resources/profiles/BBL/process/fdm_process_bbl_common.json @@ -92,7 +92,7 @@ "support_object_xy_distance": "0.35", "tree_support_branch_diameter": "2", "tree_support_branch_angle": "45", - "tree_support_wall_count": "0", + "tree_support_wall_count": "1", "detect_thin_wall": "0", "top_surface_pattern": "monotonicline", "top_surface_line_width": "0.42", diff --git a/src/libslic3r/TreeSupport.cpp b/src/libslic3r/TreeSupport.cpp index 66ff20831..a9b06ac67 100644 --- a/src/libslic3r/TreeSupport.cpp +++ b/src/libslic3r/TreeSupport.cpp @@ -686,7 +686,7 @@ TreeSupport::TreeSupport(PrintObject& object, const SlicingParameters &slicing_p m_raft_layers = slicing_params.base_raft_layers + slicing_params.interface_raft_layers; SupportMaterialPattern support_pattern = m_object_config->support_base_pattern; - if (m_object_config->support_style == smsTreeHybrid && support_pattern == smpDefault) support_pattern = smpLightning; + if (m_object_config->support_style == smsTreeHybrid && support_pattern == smpDefault) support_pattern = smpRectilinear; m_support_params.base_fill_pattern = support_pattern == smpLightning ? ipLightning : support_pattern == smpHoneycomb ? ipHoneycomb : From 35da8592ba49099b9e09f9ce66ab2a744a6f4129 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Sat, 24 Dec 2022 14:13:28 +0800 Subject: [PATCH 22/28] FIX: fix the chinese text display issue for network plugin update Change-Id: I50efd56f2b4a29237e76f5329c0423cfc2c7fff0 --- src/slic3r/GUI/NotificationManager.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/NotificationManager.hpp b/src/slic3r/GUI/NotificationManager.hpp index abf83fd58..a821acc90 100644 --- a/src/slic3r/GUI/NotificationManager.hpp +++ b/src/slic3r/GUI/NotificationManager.hpp @@ -876,8 +876,8 @@ private: _u8L("Undo integration was successful.") }, NotificationData{NotificationType::BBLPluginUpdateAvailable, NotificationLevel::ImportantNotificationLevel, BBL_NOTICE_MAX_INTERVAL, - _L("New network plug-in available.").ToStdString(), - _L("Details").ToStdString(), + _u8L("New network plug-in available."), + _u8L("Details"), [](wxEvtHandler* evnthndlr) { //BBS set feishu release page by default wxCommandEvent* evt = new wxCommandEvent(EVT_UPDATE_PLUGINS_WHEN_LAUNCH); From 3871dfa03e982ad0a50209be41a50ee1191807c7 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Sat, 24 Dec 2022 13:51:54 +0800 Subject: [PATCH 23/28] ENH: update translation Change-Id: Ibe4bbb671b08ae0e94506d629b711963a58907b5 --- bbl/i18n/BambuStudio.pot | 50 ++++++--- bbl/i18n/de/BambuStudio_de.po | 127 ++++++++-------------- bbl/i18n/en/BambuStudio_en.po | 127 ++++++++-------------- bbl/i18n/es/BambuStudio_es.po | 127 ++++++++-------------- bbl/i18n/fr/BambuStudio_fr.po | 127 ++++++++-------------- bbl/i18n/hu/BambuStudio_hu.po | 137 +++++++++--------------- bbl/i18n/it/BambuStudio_it.po | 127 ++++++++-------------- bbl/i18n/nl/BambuStudio_nl.po | 127 ++++++++-------------- bbl/i18n/sv/BambuStudio_sv.po | 131 +++++++++-------------- bbl/i18n/zh_cn/BambuStudio_zh_CN.po | 157 +++++++++++----------------- resources/i18n/de/BambuStudio.mo | Bin 153306 -> 153472 bytes resources/i18n/en/BambuStudio.mo | Bin 141012 -> 141172 bytes resources/i18n/es/BambuStudio.mo | Bin 153950 -> 154135 bytes resources/i18n/fr/BambuStudio.mo | Bin 156773 -> 156933 bytes resources/i18n/hu/BambuStudio.mo | Bin 158335 -> 158930 bytes resources/i18n/it/BambuStudio.mo | Bin 142633 -> 142793 bytes resources/i18n/nl/BambuStudio.mo | Bin 152684 -> 152840 bytes resources/i18n/sv/BambuStudio.mo | Bin 144491 -> 144639 bytes resources/i18n/zh_cn/BambuStudio.mo | Bin 191561 -> 194731 bytes 19 files changed, 464 insertions(+), 773 deletions(-) diff --git a/bbl/i18n/BambuStudio.pot b/bbl/i18n/BambuStudio.pot index 281e82ec5..6efd0fac6 100644 --- a/bbl/i18n/BambuStudio.pot +++ b/bbl/i18n/BambuStudio.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-22 17:44+0800\n" +"POT-Creation-Date: 2022-12-24 13:01+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1785,7 +1785,7 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly" +"This may cause decline in the quality of overhang surface when print fastly\n" msgstr "" msgid "" @@ -1823,7 +1823,7 @@ msgstr "" msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly" +"No - reset density to default non 100% value automaticlly\n" msgstr "" msgid "Auto bed leveling" @@ -2736,7 +2736,7 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets" +"3. The Printer presets\n" msgstr "" msgid "Synchronization" @@ -3101,6 +3101,12 @@ msgstr "" msgid "Undo integration was successful." msgstr "" +msgid "New network plug-in available." +msgstr "" + +msgid "Details" +msgstr "" + msgid "Undo integration failed." msgstr "" @@ -3383,7 +3389,7 @@ msgstr "" #, possible-c-format, possible-boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:" +"unrecognized:\n" msgstr "" msgid "You'd better upgrade your software.\n" @@ -3395,7 +3401,7 @@ msgstr "" #, possible-c-format, possible-boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software." +"software.\n" msgstr "" msgid "The 3mf is not compatible, load geometry data only!" @@ -3664,7 +3670,7 @@ msgid "" msgstr "" #, possible-c-format, possible-boost-format -msgid "Plate %d: %s does not support filament %s (%s)." +msgid "Plate %d: %s does not support filament %s (%s).\n" msgstr "" msgid "Switching the language requires application restart.\n" @@ -4132,13 +4138,13 @@ msgstr "" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:" +"print:\n" msgstr "" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type." +"selecting the same printer type.\n" msgstr "" #, possible-c-format, possible-boost-format @@ -4244,6 +4250,12 @@ msgid "" "No - Do not change these settings for me" msgstr "" +msgid "" +"For \"Tree Strong\" and \"Tree Hybrid\" styles, we recommand the following " +"settings: at least 2 interface layers, at least 0.1 top z distance or using " +"support materials on interface." +msgstr "" + msgid "" "When using support material for the support interface, We recommand the " "following settings:\n" @@ -4254,7 +4266,7 @@ 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\"." +"\"->\"Timelapse Wipe Tower\".\n" msgstr "" msgid "Line width" @@ -4964,6 +4976,17 @@ msgstr "" msgid "version %s update information :" msgstr "" +msgid "Network plug-in update" +msgstr "" + +msgid "" +"Click OK to update the Network plug-in when Bambu Studio launches next time." +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "A new Network plug-in(%s) available, Do you want to install it?" +msgstr "" + msgid "New version of Bambu Studio" msgstr "" @@ -5264,10 +5287,11 @@ msgstr "" msgid "%1% is too tall, and collisions will be caused." msgstr "" -msgid " is too close to others, there may be collisions when printing." +msgid " is too close to others, there may be collisions when printing.\n" msgstr "" -msgid " is too close to exclusion area, there may be collisions when printing." +msgid "" +" is too close to exclusion area, there may be collisions when printing.\n" msgstr "" msgid "Prime Tower" @@ -5350,7 +5374,7 @@ msgid "Layer height cannot exceed nozzle diameter" msgstr "" #, possible-c-format, possible-boost-format -msgid "Plate %d: %s does not support filament %s" +msgid "Plate %d: %s does not support filament %s\n" msgstr "" msgid "Generating skirt & brim" diff --git a/bbl/i18n/de/BambuStudio_de.po b/bbl/i18n/de/BambuStudio_de.po index 740f11f13..d3bd7c213 100644 --- a/bbl/i18n/de/BambuStudio_de.po +++ b/bbl/i18n/de/BambuStudio_de.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-22 17:44+0800\n" +"POT-Creation-Date: 2022-12-24 13:01+0800\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1918,7 +1918,7 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly" +"This may cause decline in the quality of overhang surface when print fastly\n" msgstr "" msgid "" @@ -1970,7 +1970,7 @@ msgstr "Das %1%-Infill-Muster unterstützt keine 100%% Dichte." msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly" +"No - reset density to default non 100% value automaticlly\n" msgstr "" msgid "Auto bed leveling" @@ -2891,7 +2891,7 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets" +"3. The Printer presets\n" msgstr "" msgid "Synchronization" @@ -3256,6 +3256,12 @@ msgstr "Die Integration ist gescheitert." msgid "Undo integration was successful." msgstr "Die Rückgängigmachung der Integration war erfolgreich." +msgid "New network plug-in available." +msgstr "" + +msgid "Details" +msgstr "" + msgid "Undo integration failed." msgstr "Die Rückgängigmachung der Integration war nicht erfolgreich." @@ -3544,8 +3550,10 @@ msgstr "" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:" +"unrecognized:\n" msgstr "" +"Die Version %s von 3mf ist neuer als die Version %s von %s, folgende " +"Schlüssel wurden nicht erkannt:\n" msgid "You'd better upgrade your software.\n" msgstr "Sie sollten Ihre Software aktualisieren.\n" @@ -3553,11 +3561,11 @@ msgstr "Sie sollten Ihre Software aktualisieren.\n" msgid "Newer 3mf version" msgstr "Neuere 3mf-Version" -#, c-format, boost-format +#, fuzzy, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software." -msgstr "" +"software.\n" +msgstr "\n" msgid "The 3mf is not compatible, load geometry data only!" msgstr "" @@ -3838,9 +3846,9 @@ msgid "" "on Bambu Studio(windows) or CAD softwares." msgstr "" -#, c-format, boost-format -msgid "Plate %d: %s does not support filament %s (%s)." -msgstr "" +#, fuzzy, c-format, boost-format +msgid "Plate %d: %s does not support filament %s (%s).\n" +msgstr "\n" msgid "Switching the language requires application restart.\n" msgstr "Der Wechsel der Sprache erfordert einen Neustart der Anwendung.\n" @@ -4332,13 +4340,13 @@ msgstr "" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:" +"print:\n" msgstr "" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type." +"selecting the same printer type.\n" msgstr "" #, c-format, boost-format @@ -4449,6 +4457,12 @@ msgid "" "No - Do not change these settings for me" msgstr "" +msgid "" +"For \"Tree Strong\" and \"Tree Hybrid\" styles, we recommand the following " +"settings: at least 2 interface layers, at least 0.1 top z distance or using " +"support materials on interface." +msgstr "" + msgid "" "When using support material for the support interface, We recommand the " "following settings:\n" @@ -4459,7 +4473,7 @@ 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\"." +"\"->\"Timelapse Wipe Tower\".\n" msgstr "" msgid "Line width" @@ -5226,6 +5240,17 @@ msgstr "" msgid "version %s update information :" msgstr "" +msgid "Network plug-in update" +msgstr "" + +msgid "" +"Click OK to update the Network plug-in when Bambu Studio launches next time." +msgstr "" + +#, c-format, boost-format +msgid "A new Network plug-in(%s) available, Do you want to install it?" +msgstr "" + msgid "New version of Bambu Studio" msgstr "Neue Version von Bambu Studio" @@ -5542,10 +5567,11 @@ msgstr "" msgid "%1% is too tall, and collisions will be caused." msgstr "%1% ist zu hoch und es kommt zu Kollisionen." -msgid " is too close to others, there may be collisions when printing." +msgid " is too close to others, there may be collisions when printing.\n" msgstr "" -msgid " is too close to exclusion area, there may be collisions when printing." +msgid "" +" is too close to exclusion area, there may be collisions when printing.\n" msgstr "" msgid "Prime Tower" @@ -5647,9 +5673,9 @@ msgstr "" msgid "Layer height cannot exceed nozzle diameter" msgstr "Schichthöhe kann Druckdüsendurchmesser nicht überschreiten" -#, c-format, boost-format -msgid "Plate %d: %s does not support filament %s" -msgstr "" +#, fuzzy, c-format, boost-format +msgid "Plate %d: %s does not support filament %s\n" +msgstr "\n" msgid "Generating skirt & brim" msgstr "Erzeugen von Schürze und Rand (skirt & brim)" @@ -8049,12 +8075,6 @@ msgstr "" #~ "Lösen Sie das Problem, indem Sie es vollständig innerhalb oder außerhalb " #~ "der Druckplatte verschieben." -#~ msgid "" -#~ "Arachne engine only works when overhang slowing down is disabled.\n" -#~ "This may cause decline in the quality of overhang surface when print " -#~ "fastly\n" -#~ msgstr "\n" - #~ msgid "Auto arrange" #~ msgstr "Automatische Anordnung" @@ -8142,14 +8162,6 @@ msgstr "" #~ "2. Filament-Voreinstellungen\n" #~ "3. Drucker-Voreinstellungen\n" -#~ msgid "" -#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" -#~ "It contains the following information:\n" -#~ "1. The Process presets\n" -#~ "2. The Filament presets\n" -#~ "3. The Printer presets\n" -#~ msgstr "\n" - #~ msgid "" #~ "Don't retract when the travel is in infill area absolutely. That means " #~ "the oozing can't been seen" @@ -8343,20 +8355,9 @@ msgstr "" #~ msgid "Per object edit" #~ msgstr "Je Objekt bearbeiten" -#~ msgid "Plate %d: %s does not support filament %s\n" -#~ msgstr "\n" - #~ msgid "Plate %d: %s does not support filament %s.\n" #~ msgstr "Druckplatte %d: %s unterstützt kein Filament %s.\n" -#~ msgid "Plate %d: %s does not support filament %s (%s).\n" -#~ msgstr "\n" - -#~ msgid "" -#~ "Please check the following infomation and click Confirm to continue " -#~ "sending print:\n" -#~ msgstr "\n" - #~ msgid "Please fill report first." #~ msgstr "Bitte füllen Sie zuerst den Bericht aus." @@ -8487,12 +8488,6 @@ msgstr "" #~ "Supportlücken, kann aber zusätzliche Filamentwechsel verursachen, wenn " #~ "die Supportschicht von einem anderen Filament gedruckt wird" -#~ msgid "" -#~ "Switch to rectilinear pattern?\n" -#~ "Yes - switch to rectilinear pattern automaticlly\n" -#~ "No - reset density to default non 100% value automaticlly\n" -#~ msgstr "\n" - #~ msgid "" #~ "Switch to zig-zag pattern?\n" #~ "Yes - switch to zig-zag pattern automaticlly\n" @@ -8506,18 +8501,6 @@ msgstr "" #~ msgid "Swith cloud environment, Please login again!" #~ msgstr "Cloud-Umgebung wechseln, bitte erneut anmelden!" -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " -#~ "unrecognized:\n" -#~ msgstr "" -#~ "Die Version %s von 3mf ist neuer als die Version %s von %s, folgende " -#~ "Schlüssel wurden nicht erkannt:\n" - -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " -#~ "your software.\n" -#~ msgstr "\n" - #~ msgid "The Config is not compatible and can not be loaded." #~ msgstr "" #~ "Die Konfiguration ist nicht kompatibel und kann nicht geladen werden." @@ -8540,12 +8523,6 @@ msgstr "" #~ "Ergebnisse überprüfen oder die Eingabedatei reparieren und es erneut " #~ "versuchen." -#~ msgid "" -#~ "The printer type used to generate G-code is not the same type as the " -#~ "currently selected physical printer. It is recommend to re-slice by " -#~ "selecting the same printer type.\n" -#~ msgstr "\n" - #~ msgid "" #~ "This object will be used to purge the nozzle after a filament change to " #~ "save filament and decrease the print time. Colours of the objects will be " @@ -8593,13 +8570,6 @@ msgstr "" #~ msgid "Waiting" #~ msgstr "Warten" -#~ 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\".\n" -#~ msgstr "\n" - #~ msgid "" #~ "You have changed some preset settings. \n" #~ "Would you like to keep these changed settings after switching preset?" @@ -8614,18 +8584,11 @@ msgstr "" #~ msgid " Object:" #~ msgstr " Objekt:" -#~ msgid "" -#~ " is too close to exclusion area, there may be collisions when printing.\n" -#~ msgstr "\n" - #~ msgid "" #~ " is too close to exclusion area, there will be collisions when printing.\n" #~ msgstr "" #~ " ist zu nahe am Sperrbereich, es kommt beim Drucken zu Kollisionen.\n" -#~ msgid " is too close to others, there may be collisions when printing.\n" -#~ msgstr "\n" - #~ msgid " is too close to others, there will be collisions when printing.\n" #~ msgstr " zu nahe an anderen, es kommt beim Drucken zu Kollisionen.\n" diff --git a/bbl/i18n/en/BambuStudio_en.po b/bbl/i18n/en/BambuStudio_en.po index 38c567c7e..7a5e2f3e6 100644 --- a/bbl/i18n/en/BambuStudio_en.po +++ b/bbl/i18n/en/BambuStudio_en.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-22 17:44+0800\n" +"POT-Creation-Date: 2022-12-24 13:01+0800\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1876,7 +1876,7 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly" +"This may cause decline in the quality of overhang surface when print fastly\n" msgstr "" msgid "" @@ -1927,7 +1927,7 @@ msgstr "%1% infill pattern doesn't support 100%% density." msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly" +"No - reset density to default non 100% value automaticlly\n" msgstr "" msgid "Auto bed leveling" @@ -2848,7 +2848,7 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets" +"3. The Printer presets\n" msgstr "" msgid "Synchronization" @@ -3213,6 +3213,12 @@ msgstr "Integration failed." msgid "Undo integration was successful." msgstr "Undo integration was successful." +msgid "New network plug-in available." +msgstr "" + +msgid "Details" +msgstr "" + msgid "Undo integration failed." msgstr "Undo integration failed." @@ -3500,8 +3506,10 @@ msgstr "" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:" +"unrecognized:\n" msgstr "" +"The 3mf file's version %s is newer than %s's version %s, Found the following " +"unrecognized keys:\n" msgid "You'd better upgrade your software.\n" msgstr "You should update your software.\n" @@ -3509,11 +3517,11 @@ msgstr "You should update your software.\n" msgid "Newer 3mf version" msgstr "Newer 3mf version" -#, c-format, boost-format +#, fuzzy, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software." -msgstr "" +"software.\n" +msgstr "\n" msgid "The 3mf is not compatible, load geometry data only!" msgstr "" @@ -3786,9 +3794,9 @@ msgid "" "on Bambu Studio(windows) or CAD softwares." msgstr "" -#, c-format, boost-format -msgid "Plate %d: %s does not support filament %s (%s)." -msgstr "" +#, fuzzy, c-format, boost-format +msgid "Plate %d: %s does not support filament %s (%s).\n" +msgstr "\n" msgid "Switching the language requires application restart.\n" msgstr "Switching languages requires the application to restart.\n" @@ -4267,13 +4275,13 @@ msgstr "" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:" +"print:\n" msgstr "" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type." +"selecting the same printer type.\n" msgstr "" #, c-format, boost-format @@ -4379,6 +4387,12 @@ msgid "" "No - Do not change these settings for me" msgstr "" +msgid "" +"For \"Tree Strong\" and \"Tree Hybrid\" styles, we recommand the following " +"settings: at least 2 interface layers, at least 0.1 top z distance or using " +"support materials on interface." +msgstr "" + msgid "" "When using support material for the support interface, We recommand the " "following settings:\n" @@ -4389,7 +4403,7 @@ 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\"." +"\"->\"Timelapse Wipe Tower\".\n" msgstr "" msgid "Line width" @@ -5137,6 +5151,17 @@ msgstr "" msgid "version %s update information :" msgstr "" +msgid "Network plug-in update" +msgstr "" + +msgid "" +"Click OK to update the Network plug-in when Bambu Studio launches next time." +msgstr "" + +#, c-format, boost-format +msgid "A new Network plug-in(%s) available, Do you want to install it?" +msgstr "" + msgid "New version of Bambu Studio" msgstr "New version of Bambu Studio" @@ -5443,10 +5468,11 @@ msgstr "%1% is too close to others, and collisions may be caused." msgid "%1% is too tall, and collisions will be caused." msgstr "%1% is too tall, and collisions will be caused." -msgid " is too close to others, there may be collisions when printing." +msgid " is too close to others, there may be collisions when printing.\n" msgstr "" -msgid " is too close to exclusion area, there may be collisions when printing." +msgid "" +" is too close to exclusion area, there may be collisions when printing.\n" msgstr "" msgid "Prime Tower" @@ -5544,9 +5570,9 @@ msgstr "" msgid "Layer height cannot exceed nozzle diameter" msgstr "Layer height cannot exceed nozzle diameter." -#, c-format, boost-format -msgid "Plate %d: %s does not support filament %s" -msgstr "" +#, fuzzy, c-format, boost-format +msgid "Plate %d: %s does not support filament %s\n" +msgstr "\n" msgid "Generating skirt & brim" msgstr "Generating skirt & brim" @@ -7911,12 +7937,6 @@ msgstr "" #~ "Please solve the problem by moving it totally on or off the plate, and " #~ "confirming that the height is within the build volume." -#~ msgid "" -#~ "Arachne engine only works when overhang slowing down is disabled.\n" -#~ "This may cause decline in the quality of overhang surface when print " -#~ "fastly\n" -#~ msgstr "\n" - #~ msgid "Auto arrange" #~ msgstr "Auto Arrange" @@ -8003,14 +8023,6 @@ msgstr "" #~ "2. Filament presets\n" #~ "3. Printer presets\n" -#~ msgid "" -#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" -#~ "It contains the following information:\n" -#~ "1. The Process presets\n" -#~ "2. The Filament presets\n" -#~ "3. The Printer presets\n" -#~ msgstr "\n" - #~ msgid "" #~ "Don't retract when the travel is in infill area absolutely. That means " #~ "the oozing can't been seen" @@ -8205,20 +8217,9 @@ msgstr "" #~ msgid "Per object edit" #~ msgstr "Per Object Edit" -#~ msgid "Plate %d: %s does not support filament %s\n" -#~ msgstr "\n" - #~ msgid "Plate %d: %s does not support filament %s.\n" #~ msgstr "Plate %d: %s does not support filament %s.\n" -#~ msgid "Plate %d: %s does not support filament %s (%s).\n" -#~ msgstr "\n" - -#~ msgid "" -#~ "Please check the following infomation and click Confirm to continue " -#~ "sending print:\n" -#~ msgstr "\n" - #~ msgid "Please fill report first." #~ msgstr "Please fill report first." @@ -8347,12 +8348,6 @@ msgstr "" #~ "to support custom support gaps, but may cause extra filament switches if " #~ "support is specified as a different filament from the object." -#~ msgid "" -#~ "Switch to rectilinear pattern?\n" -#~ "Yes - switch to rectilinear pattern automaticlly\n" -#~ "No - reset density to default non 100% value automaticlly\n" -#~ msgstr "\n" - #~ msgid "" #~ "Switch to zig-zag pattern?\n" #~ "Yes - switch to zig-zag pattern automaticlly\n" @@ -8365,18 +8360,6 @@ msgstr "" #~ msgid "Swith cloud environment, Please login again!" #~ msgstr "Cloud environment has switched; please login again!" -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " -#~ "unrecognized:\n" -#~ msgstr "" -#~ "The 3mf file's version %s is newer than %s's version %s, Found the " -#~ "following unrecognized keys:\n" - -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " -#~ "your software.\n" -#~ msgstr "\n" - #~ msgid "The Config is not compatible and can not be loaded." #~ msgstr "The configuration is not compatible and cannot be loaded!" @@ -8396,12 +8379,6 @@ msgstr "" #~ "attempted, however we recommend checking the results or repairing the " #~ "input file and retrying." -#~ msgid "" -#~ "The printer type used to generate G-code is not the same type as the " -#~ "currently selected physical printer. It is recommend to re-slice by " -#~ "selecting the same printer type.\n" -#~ msgstr "\n" - #~ msgid "" #~ "This object will be used to purge the nozzle after a filament change to " #~ "save filament and decrease the print time. Colours of the objects will be " @@ -8448,13 +8425,6 @@ msgstr "" #~ msgid "Waiting" #~ msgstr "Waiting" -#~ 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\".\n" -#~ msgstr "\n" - #~ msgid "" #~ "You have changed some preset settings. \n" #~ "Would you like to keep these changed settings after switching preset?" @@ -8468,19 +8438,12 @@ msgstr "" #~ msgid " Object:" #~ msgstr " Object:" -#~ msgid "" -#~ " is too close to exclusion area, there may be collisions when printing.\n" -#~ msgstr "\n" - #~ msgid "" #~ " is too close to exclusion area, there will be collisions when printing.\n" #~ msgstr "" #~ " is too close to an exclusion area, there will be collisions when " #~ "printing.\n" -#~ msgid " is too close to others, there may be collisions when printing.\n" -#~ msgstr "\n" - #~ msgid " is too close to others, there will be collisions when printing.\n" #~ msgstr " is too close to others, there will be collisions when printing.\n" diff --git a/bbl/i18n/es/BambuStudio_es.po b/bbl/i18n/es/BambuStudio_es.po index f692f9f29..9a3c1a72c 100644 --- a/bbl/i18n/es/BambuStudio_es.po +++ b/bbl/i18n/es/BambuStudio_es.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-22 17:44+0800\n" +"POT-Creation-Date: 2022-12-24 13:01+0800\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1911,7 +1911,7 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly" +"This may cause decline in the quality of overhang surface when print fastly\n" msgstr "" msgid "" @@ -1965,7 +1965,7 @@ msgstr "El patrón de relleno %1% no soporta el 100%% de densidad." msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly" +"No - reset density to default non 100% value automaticlly\n" msgstr "" msgid "Auto bed leveling" @@ -2889,7 +2889,7 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets" +"3. The Printer presets\n" msgstr "" msgid "Synchronization" @@ -3254,6 +3254,12 @@ msgstr "La integración ha fallado." msgid "Undo integration was successful." msgstr "La operación de deshacer se ha realizado con éxito." +msgid "New network plug-in available." +msgstr "" + +msgid "Details" +msgstr "" + msgid "Undo integration failed." msgstr "La operación de deshacer ha fallado." @@ -3543,8 +3549,10 @@ msgstr "" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:" +"unrecognized:\n" msgstr "" +"La versión %s de 3mf es más reciente que la versión %s de %s, se han " +"encontrado las siguientes claves no reconocidas:\n" msgid "You'd better upgrade your software.\n" msgstr "Será mejor que actualices tu software.\n" @@ -3552,11 +3560,11 @@ msgstr "Será mejor que actualices tu software.\n" msgid "Newer 3mf version" msgstr "Nueva versión 3mf" -#, c-format, boost-format +#, fuzzy, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software." -msgstr "" +"software.\n" +msgstr "\n" msgid "The 3mf is not compatible, load geometry data only!" msgstr "" @@ -3839,9 +3847,9 @@ msgid "" "on Bambu Studio(windows) or CAD softwares." msgstr "" -#, c-format, boost-format -msgid "Plate %d: %s does not support filament %s (%s)." -msgstr "" +#, fuzzy, c-format, boost-format +msgid "Plate %d: %s does not support filament %s (%s).\n" +msgstr "\n" msgid "Switching the language requires application restart.\n" msgstr "El cambio de idioma requiere el reinicio de la aplicación.\n" @@ -4330,13 +4338,13 @@ msgstr "" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:" +"print:\n" msgstr "" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type." +"selecting the same printer type.\n" msgstr "" #, c-format, boost-format @@ -4446,6 +4454,12 @@ msgid "" "No - Do not change these settings for me" msgstr "" +msgid "" +"For \"Tree Strong\" and \"Tree Hybrid\" styles, we recommand the following " +"settings: at least 2 interface layers, at least 0.1 top z distance or using " +"support materials on interface." +msgstr "" + msgid "" "When using support material for the support interface, We recommand the " "following settings:\n" @@ -4456,7 +4470,7 @@ 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\"." +"\"->\"Timelapse Wipe Tower\".\n" msgstr "" msgid "Line width" @@ -5217,6 +5231,17 @@ msgstr "" msgid "version %s update information :" msgstr "" +msgid "Network plug-in update" +msgstr "" + +msgid "" +"Click OK to update the Network plug-in when Bambu Studio launches next time." +msgstr "" + +#, c-format, boost-format +msgid "A new Network plug-in(%s) available, Do you want to install it?" +msgstr "" + msgid "New version of Bambu Studio" msgstr "Nueva versión de Bambu Studio" @@ -5530,10 +5555,11 @@ msgstr "%1% está demasiado cerca de otros, y pueden producirse colisiones." msgid "%1% is too tall, and collisions will be caused." msgstr "%1% es demasiado alto, y se producirán colisiones." -msgid " is too close to others, there may be collisions when printing." +msgid " is too close to others, there may be collisions when printing.\n" msgstr "" -msgid " is too close to exclusion area, there may be collisions when printing." +msgid "" +" is too close to exclusion area, there may be collisions when printing.\n" msgstr "" msgid "Prime Tower" @@ -5637,9 +5663,9 @@ msgstr "" msgid "Layer height cannot exceed nozzle diameter" msgstr "La altura de la capa no puede superar el diámetro de la boquilla" -#, c-format, boost-format -msgid "Plate %d: %s does not support filament %s" -msgstr "" +#, fuzzy, c-format, boost-format +msgid "Plate %d: %s does not support filament %s\n" +msgstr "\n" msgid "Generating skirt & brim" msgstr "Generando falda y ala" @@ -8038,12 +8064,6 @@ msgstr "" #~ "Por favor, resuelva el problema moviéndolo totalmente dentro o fuera de " #~ "la placa." -#~ msgid "" -#~ "Arachne engine only works when overhang slowing down is disabled.\n" -#~ "This may cause decline in the quality of overhang surface when print " -#~ "fastly\n" -#~ msgstr "\n" - #~ msgid "Auto arrange" #~ msgstr "Auto posicionamiento" @@ -8131,14 +8151,6 @@ msgstr "" #~ "2. Preajustese de filamentos\n" #~ "3. Preajustes de la impresora\n" -#~ msgid "" -#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" -#~ "It contains the following information:\n" -#~ "1. The Process presets\n" -#~ "2. The Filament presets\n" -#~ "3. The Printer presets\n" -#~ msgstr "\n" - #~ msgid "" #~ "Don't retract when the travel is in infill area absolutely. That means " #~ "the oozing can't been seen" @@ -8335,20 +8347,9 @@ msgstr "" #~ msgid "Per object edit" #~ msgstr "Por objeto editar" -#~ msgid "Plate %d: %s does not support filament %s\n" -#~ msgstr "\n" - #~ msgid "Plate %d: %s does not support filament %s.\n" #~ msgstr "La placa %d: %s no admite el filamento %s.\n" -#~ msgid "Plate %d: %s does not support filament %s (%s).\n" -#~ msgstr "\n" - -#~ msgid "" -#~ "Please check the following infomation and click Confirm to continue " -#~ "sending print:\n" -#~ msgstr "\n" - #~ msgid "Please fill report first." #~ msgstr "Por favor, rellene primero el informe." @@ -8480,12 +8481,6 @@ msgstr "" #~ "personalizada, pero puede causar cambios de filamento adicionales si el " #~ "soporte se especifica como un extrusor diferente con el objeto" -#~ msgid "" -#~ "Switch to rectilinear pattern?\n" -#~ "Yes - switch to rectilinear pattern automaticlly\n" -#~ "No - reset density to default non 100% value automaticlly\n" -#~ msgstr "\n" - #~ msgid "" #~ "Switch to zig-zag pattern?\n" #~ "Yes - switch to zig-zag pattern automaticlly\n" @@ -8499,18 +8494,6 @@ msgstr "" #~ msgid "Swith cloud environment, Please login again!" #~ msgstr "Cambiar el entorno de la nube, ¡Por favor, inicie sesión de nuevo!" -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " -#~ "unrecognized:\n" -#~ msgstr "" -#~ "La versión %s de 3mf es más reciente que la versión %s de %s, se han " -#~ "encontrado las siguientes claves no reconocidas:\n" - -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " -#~ "your software.\n" -#~ msgstr "\n" - #~ msgid "The Config is not compatible and can not be loaded." #~ msgstr "La configuración no es compatible y no se puede cargar." @@ -8531,12 +8514,6 @@ msgstr "" #~ "repararlo, sin embargo, es posible que desee comprobar los resultados o " #~ "reparar el archivo de entrada y volver a intentarlo." -#~ msgid "" -#~ "The printer type used to generate G-code is not the same type as the " -#~ "currently selected physical printer. It is recommend to re-slice by " -#~ "selecting the same printer type.\n" -#~ msgstr "\n" - #~ msgid "" #~ "This object will be used to purge the nozzle after a filament change to " #~ "save filament and decrease the print time. Colours of the objects will be " @@ -8584,13 +8561,6 @@ msgstr "" #~ msgid "Waiting" #~ msgstr "Esperando" -#~ 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\".\n" -#~ msgstr "\n" - #~ msgid "" #~ "You have changed some preset settings. \n" #~ "Would you like to keep these changed settings after switching preset?" @@ -8604,19 +8574,12 @@ msgstr "" #~ msgid " Object:" #~ msgstr "Objeto" -#~ msgid "" -#~ " is too close to exclusion area, there may be collisions when printing.\n" -#~ msgstr "\n" - #~ msgid "" #~ " is too close to exclusion area, there will be collisions when printing.\n" #~ msgstr "" #~ " está demasiado cerca del área de exclusión, habrá colisiones al " #~ "imprimir.\n" -#~ msgid " is too close to others, there may be collisions when printing.\n" -#~ msgstr "\n" - #~ msgid " is too close to others, there will be collisions when printing.\n" #~ msgstr " está demasiado cerca de otros, habrá colisiones al imprimir.\n" diff --git a/bbl/i18n/fr/BambuStudio_fr.po b/bbl/i18n/fr/BambuStudio_fr.po index 9e87dc7f2..da7001479 100644 --- a/bbl/i18n/fr/BambuStudio_fr.po +++ b/bbl/i18n/fr/BambuStudio_fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-22 17:44+0800\n" +"POT-Creation-Date: 2022-12-24 13:01+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -1895,7 +1895,7 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly" +"This may cause decline in the quality of overhang surface when print fastly\n" msgstr "" msgid "" @@ -1946,7 +1946,7 @@ msgstr "" msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly" +"No - reset density to default non 100% value automaticlly\n" msgstr "" msgid "Auto bed leveling" @@ -2866,7 +2866,7 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets" +"3. The Printer presets\n" msgstr "" msgid "Synchronization" @@ -3231,6 +3231,12 @@ msgstr "L'intégration a échoué." msgid "Undo integration was successful." msgstr "Annuler l'intégration a réussi." +msgid "New network plug-in available." +msgstr "" + +msgid "Details" +msgstr "" + msgid "Undo integration failed." msgstr "L'annulation de l'intégration a échoué." @@ -3516,8 +3522,10 @@ msgstr "" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:" +"unrecognized:\n" msgstr "" +"La version %s de 3mf est plus récente que la version %s de %s, Clés " +"suivantes non reconnues :\n" msgid "You'd better upgrade your software.\n" msgstr "Vous feriez mieux de mettre à jour votre logiciel.\n" @@ -3525,11 +3533,11 @@ msgstr "Vous feriez mieux de mettre à jour votre logiciel.\n" msgid "Newer 3mf version" msgstr "Nouvelle version 3mf" -#, c-format, boost-format +#, fuzzy, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software." -msgstr "" +"software.\n" +msgstr "\n" msgid "The 3mf is not compatible, load geometry data only!" msgstr "" @@ -3812,9 +3820,9 @@ msgid "" "on Bambu Studio(windows) or CAD softwares." msgstr "" -#, c-format, boost-format -msgid "Plate %d: %s does not support filament %s (%s)." -msgstr "" +#, fuzzy, c-format, boost-format +msgid "Plate %d: %s does not support filament %s (%s).\n" +msgstr "\n" msgid "Switching the language requires application restart.\n" msgstr "Le changement de langue nécessite le redémarrage de l'application.\n" @@ -4306,13 +4314,13 @@ msgstr "" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:" +"print:\n" msgstr "" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type." +"selecting the same printer type.\n" msgstr "" #, c-format, boost-format @@ -4423,6 +4431,12 @@ msgid "" "No - Do not change these settings for me" msgstr "" +msgid "" +"For \"Tree Strong\" and \"Tree Hybrid\" styles, we recommand the following " +"settings: at least 2 interface layers, at least 0.1 top z distance or using " +"support materials on interface." +msgstr "" + msgid "" "When using support material for the support interface, We recommand the " "following settings:\n" @@ -4433,7 +4447,7 @@ 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\"." +"\"->\"Timelapse Wipe Tower\".\n" msgstr "" msgid "Line width" @@ -5199,6 +5213,17 @@ msgstr "" msgid "version %s update information :" msgstr "" +msgid "Network plug-in update" +msgstr "" + +msgid "" +"Click OK to update the Network plug-in when Bambu Studio launches next time." +msgstr "" + +#, c-format, boost-format +msgid "A new Network plug-in(%s) available, Do you want to install it?" +msgstr "" + msgid "New version of Bambu Studio" msgstr "Nouvelle version de Bambu Studio" @@ -5511,10 +5536,11 @@ msgstr "" msgid "%1% is too tall, and collisions will be caused." msgstr "%1% est trop grand, cela pourrait provoquer des collisions." -msgid " is too close to others, there may be collisions when printing." +msgid " is too close to others, there may be collisions when printing.\n" msgstr "" -msgid " is too close to exclusion area, there may be collisions when printing." +msgid "" +" is too close to exclusion area, there may be collisions when printing.\n" msgstr "" msgid "Prime Tower" @@ -5621,9 +5647,9 @@ msgstr "" msgid "Layer height cannot exceed nozzle diameter" msgstr "La hauteur de la couche ne peut pas dépasser le diamètre de la buse" -#, c-format, boost-format -msgid "Plate %d: %s does not support filament %s" -msgstr "" +#, fuzzy, c-format, boost-format +msgid "Plate %d: %s does not support filament %s\n" +msgstr "\n" msgid "Generating skirt & brim" msgstr "Génération jupe et bord" @@ -8039,12 +8065,6 @@ msgstr "" #~ "problème en le déplaçant totalement à l'intérieur ou à l'extérieur de la " #~ "plaque." -#~ msgid "" -#~ "Arachne engine only works when overhang slowing down is disabled.\n" -#~ "This may cause decline in the quality of overhang surface when print " -#~ "fastly\n" -#~ msgstr "\n" - #~ msgid "Auto arrange" #~ msgstr "Organisation automatique" @@ -8133,14 +8153,6 @@ msgstr "" #~ "2. Préréglages du filament\n" #~ "3. Préréglages de l'imprimante\n" -#~ msgid "" -#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" -#~ "It contains the following information:\n" -#~ "1. The Process presets\n" -#~ "2. The Filament presets\n" -#~ "3. The Printer presets\n" -#~ msgstr "\n" - #~ msgid "" #~ "Don't retract when the travel is in infill area absolutely. That means " #~ "the oozing can't been seen" @@ -8336,20 +8348,9 @@ msgstr "" #~ msgid "Per object edit" #~ msgstr "Modification par objet" -#~ msgid "Plate %d: %s does not support filament %s\n" -#~ msgstr "\n" - #~ msgid "Plate %d: %s does not support filament %s.\n" #~ msgstr "Plaque %d : %s ne prend pas en charge le filament %s.\n" -#~ msgid "Plate %d: %s does not support filament %s (%s).\n" -#~ msgstr "\n" - -#~ msgid "" -#~ "Please check the following infomation and click Confirm to continue " -#~ "sending print:\n" -#~ msgstr "\n" - #~ msgid "Please fill report first." #~ msgstr "Veuillez d'abord remplir le rapport." @@ -8481,12 +8482,6 @@ msgstr "" #~ "supplémentaires si le support est spécifié comme extrudeuse différente " #~ "avec l'objet" -#~ msgid "" -#~ "Switch to rectilinear pattern?\n" -#~ "Yes - switch to rectilinear pattern automaticlly\n" -#~ "No - reset density to default non 100% value automaticlly\n" -#~ msgstr "\n" - #~ msgid "" #~ "Switch to zig-zag pattern?\n" #~ "Yes - switch to zig-zag pattern automaticlly\n" @@ -8500,18 +8495,6 @@ msgstr "" #~ msgid "Swith cloud environment, Please login again!" #~ msgstr "Changez d'environnement cloud, veuillez vous reconnecter !" -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " -#~ "unrecognized:\n" -#~ msgstr "" -#~ "La version %s de 3mf est plus récente que la version %s de %s, Clés " -#~ "suivantes non reconnues :\n" - -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " -#~ "your software.\n" -#~ msgstr "\n" - #~ msgid "The Config is not compatible and can not be loaded." #~ msgstr "La Config n'est pas compatible et ne peut pas être chargée." @@ -8531,12 +8514,6 @@ msgstr "" #~ "La vitesse d'impression minimale lors du ralentissement pour le " #~ "refroidissement" -#~ msgid "" -#~ "The printer type used to generate G-code is not the same type as the " -#~ "currently selected physical printer. It is recommend to re-slice by " -#~ "selecting the same printer type.\n" -#~ msgstr "\n" - #~ msgid "" #~ "This object will be used to purge the nozzle after a filament change to " #~ "save filament and decrease the print time. Colours of the objects will be " @@ -8584,13 +8561,6 @@ msgstr "" #~ msgid "Waiting" #~ msgstr "Attente" -#~ 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\".\n" -#~ msgstr "\n" - #~ msgid "" #~ "You have changed some preset settings. \n" #~ "Would you like to keep these changed settings after switching preset?" @@ -8604,19 +8574,12 @@ msgstr "" #~ msgid " Object:" #~ msgstr "Objet:" -#~ msgid "" -#~ " is too close to exclusion area, there may be collisions when printing.\n" -#~ msgstr "\n" - #~ msgid "" #~ " is too close to exclusion area, there will be collisions when printing.\n" #~ msgstr "" #~ "est trop proche de la zone d'exclusion, il y aura des collisions lors de " #~ "l'impression.\n" -#~ msgid " is too close to others, there may be collisions when printing.\n" -#~ msgstr "\n" - #~ msgid " is too close to others, there will be collisions when printing.\n" #~ msgstr "" #~ "est trop proche des autres, il y aura des collisions lors de " diff --git a/bbl/i18n/hu/BambuStudio_hu.po b/bbl/i18n/hu/BambuStudio_hu.po index 1b2e09b5c..ab452d3fb 100644 --- a/bbl/i18n/hu/BambuStudio_hu.po +++ b/bbl/i18n/hu/BambuStudio_hu.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-22 17:44+0800\n" +"POT-Creation-Date: 2022-12-24 13:01+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1908,7 +1908,7 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly" +"This may cause decline in the quality of overhang surface when print fastly\n" msgstr "" msgid "" @@ -1960,7 +1960,7 @@ msgstr "%1% kitöltési mintázat nem támogatja a 100%%-os kitöltés." msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly" +"No - reset density to default non 100% value automaticlly\n" msgstr "" msgid "Auto bed leveling" @@ -2885,8 +2885,13 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets" +"3. The Printer presets\n" msgstr "" +"Szeretnéd szinkronizálni személyes adataidat a Bambu Cloudból?\n" +"Ezek az adatok a következő információkat tartalmazzák:\n" +"1. Folyamat beállítások\n" +"2. Filament beállítások\n" +"3. Nyomtató beállítások\n" msgid "Synchronization" msgstr "Szinkronizálás" @@ -3250,6 +3255,12 @@ msgstr "Az integráció nem sikerült." msgid "Undo integration was successful." msgstr "Az integráció visszavonása sikeres volt." +msgid "New network plug-in available." +msgstr "" + +msgid "Details" +msgstr "" + msgid "Undo integration failed." msgstr "Az integráció visszavonása nem sikerült." @@ -3537,8 +3548,10 @@ msgstr "" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:" +"unrecognized:\n" msgstr "" +"A 3mf fájl %s verziója újabb, mint a(z) %s verziója %s, a következő " +"ismeretlen kulcsokat találtuk:\n" msgid "You'd better upgrade your software.\n" msgstr "Jobb lenne, ha frissítenéd a szoftvert.\n" @@ -3546,11 +3559,11 @@ msgstr "Jobb lenne, ha frissítenéd a szoftvert.\n" msgid "Newer 3mf version" msgstr "Újabb 3mf verzió" -#, c-format, boost-format +#, fuzzy, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software." -msgstr "" +"software.\n" +msgstr "\n" msgid "The 3mf is not compatible, load geometry data only!" msgstr "" @@ -3830,9 +3843,9 @@ msgid "" "on Bambu Studio(windows) or CAD softwares." msgstr "" -#, c-format, boost-format -msgid "Plate %d: %s does not support filament %s (%s)." -msgstr "" +#, fuzzy, c-format, boost-format +msgid "Plate %d: %s does not support filament %s (%s).\n" +msgstr "\n" msgid "Switching the language requires application restart.\n" msgstr "A nyelvváltáshoz az alkalmazás újraindítása szükséges.\n" @@ -4314,13 +4327,13 @@ msgstr "" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:" +"print:\n" msgstr "" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type." +"selecting the same printer type.\n" msgstr "" #, c-format, boost-format @@ -4428,6 +4441,12 @@ msgid "" "No - Do not change these settings for me" msgstr "" +msgid "" +"For \"Tree Strong\" and \"Tree Hybrid\" styles, we recommand the following " +"settings: at least 2 interface layers, at least 0.1 top z distance or using " +"support materials on interface." +msgstr "" + msgid "" "When using support material for the support interface, We recommand the " "following settings:\n" @@ -4438,7 +4457,7 @@ 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\"." +"\"->\"Timelapse Wipe Tower\".\n" msgstr "" msgid "Line width" @@ -5195,6 +5214,17 @@ msgstr "" msgid "version %s update information :" msgstr "" +msgid "Network plug-in update" +msgstr "" + +msgid "" +"Click OK to update the Network plug-in when Bambu Studio launches next time." +msgstr "" + +#, c-format, boost-format +msgid "A new Network plug-in(%s) available, Do you want to install it?" +msgstr "" + msgid "New version of Bambu Studio" msgstr "A Bambu Studio új verziója" @@ -5509,10 +5539,11 @@ msgstr "" msgid "%1% is too tall, and collisions will be caused." msgstr "%1% túl magas, a nyomtatás során előfordulhatnak ütközések." -msgid " is too close to others, there may be collisions when printing." +msgid " is too close to others, there may be collisions when printing.\n" msgstr "" -msgid " is too close to exclusion area, there may be collisions when printing." +msgid "" +" is too close to exclusion area, there may be collisions when printing.\n" msgstr "" msgid "Prime Tower" @@ -5614,9 +5645,9 @@ msgstr "" msgid "Layer height cannot exceed nozzle diameter" msgstr "A rétegmagasság nem lehet nagyobb a fúvóka átmérőjénél." -#, c-format, boost-format -msgid "Plate %d: %s does not support filament %s" -msgstr "" +#, fuzzy, c-format, boost-format +msgid "Plate %d: %s does not support filament %s\n" +msgstr "\n" msgid "Generating skirt & brim" msgstr "Szoknya & perem generálása" @@ -8009,12 +8040,6 @@ msgstr "" #~ "Kérjük, orvosold a problémát a tárgy tálcára helyezésével vagy a tálcáról " #~ "való eltávolításával és a tárgy magasságának ellenőrzésével." -#~ msgid "" -#~ "Arachne engine only works when overhang slowing down is disabled.\n" -#~ "This may cause decline in the quality of overhang surface when print " -#~ "fastly\n" -#~ msgstr "\n" - #~ msgid "Auto arrange" #~ msgstr "Automatikus elrendezés" @@ -8103,19 +8128,6 @@ msgstr "" #~ "2. Filament beállítások\n" #~ "3. Nyomtató beállítások\n" -#~ msgid "" -#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" -#~ "It contains the following information:\n" -#~ "1. The Process presets\n" -#~ "2. The Filament presets\n" -#~ "3. The Printer presets\n" -#~ msgstr "" -#~ "Szeretnéd szinkronizálni személyes adataidat a Bambu Cloudból?\n" -#~ "Ezek az adatok a következő információkat tartalmazzák:\n" -#~ "1. Folyamat beállítások\n" -#~ "2. Filament beállítások\n" -#~ "3. Nyomtató beállítások\n" - #~ msgid "" #~ "Don't retract when the travel is in infill area absolutely. That means " #~ "the oozing can't been seen" @@ -8316,20 +8328,9 @@ msgstr "" #~ msgid "Per object edit" #~ msgstr "Szerkesztés objektumonként" -#~ msgid "Plate %d: %s does not support filament %s\n" -#~ msgstr "\n" - #~ msgid "Plate %d: %s does not support filament %s.\n" #~ msgstr "%d. tálca: %s nem használható %s filamenttel.\n" -#~ msgid "Plate %d: %s does not support filament %s (%s).\n" -#~ msgstr "\n" - -#~ msgid "" -#~ "Please check the following infomation and click Confirm to continue " -#~ "sending print:\n" -#~ msgstr "\n" - #~ msgid "Please fill report first." #~ msgstr "Kérjük, először töltsd ki a riportot." @@ -8466,12 +8467,6 @@ msgstr "" #~ "támasz között, de előfordulhat, hogy extra filament váltást okoz, ha más " #~ "anyagú filamentet használsz támaszként." -#~ msgid "" -#~ "Switch to rectilinear pattern?\n" -#~ "Yes - switch to rectilinear pattern automaticlly\n" -#~ "No - reset density to default non 100% value automaticlly\n" -#~ msgstr "\n" - #~ msgid "" #~ "Switch to zig-zag pattern?\n" #~ "Yes - switch to zig-zag pattern automaticlly\n" @@ -8485,18 +8480,6 @@ msgstr "" #~ msgid "Swith cloud environment, Please login again!" #~ msgstr "Felhőkörnyezet váltása, kérjük, jelentkezz be újra!" -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " -#~ "unrecognized:\n" -#~ msgstr "" -#~ "A 3mf fájl %s verziója újabb, mint a(z) %s verziója %s, a következő " -#~ "ismeretlen kulcsokat találtuk:\n" - -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " -#~ "your software.\n" -#~ msgstr "\n" - #~ msgid "The Config is not compatible and can not be loaded." #~ msgstr "A konfiguráció nem kompatibilis és nem tölthető be!" @@ -8516,12 +8499,6 @@ msgstr "" #~ "Megkíséreltük a javítást, azonban javasoljuk az eredmények ellenőrzését " #~ "vagy a bemeneti fájl javítását és az újbóli próbálkozást." -#~ msgid "" -#~ "The printer type used to generate G-code is not the same type as the " -#~ "currently selected physical printer. It is recommend to re-slice by " -#~ "selecting the same printer type.\n" -#~ msgstr "\n" - #~ msgid "" #~ "This object will be used to purge the nozzle after a filament change to " #~ "save filament and decrease the print time. Colours of the objects will be " @@ -8571,13 +8548,6 @@ msgstr "" #~ msgid "Waiting" #~ msgstr "Várakozás" -#~ 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\".\n" -#~ msgstr "\n" - #~ msgid "" #~ "You have changed some preset settings. \n" #~ "Would you like to keep these changed settings after switching preset?" @@ -8592,19 +8562,12 @@ msgstr "" #~ msgid " Object:" #~ msgstr " Objektum:" -#~ msgid "" -#~ " is too close to exclusion area, there may be collisions when printing.\n" -#~ msgstr "\n" - #~ msgid "" #~ " is too close to exclusion area, there will be collisions when printing.\n" #~ msgstr "" #~ " túl közel van a tiltott területhez, a nyomtatás során előfordulhatnak " #~ "ütközések.\n" -#~ msgid " is too close to others, there may be collisions when printing.\n" -#~ msgstr "\n" - #~ msgid " is too close to others, there will be collisions when printing.\n" #~ msgstr "" #~ " túl közel van a tiltott területhez, a nyomtatás során előfordulhatnak " diff --git a/bbl/i18n/it/BambuStudio_it.po b/bbl/i18n/it/BambuStudio_it.po index 732133031..091e73bc1 100644 --- a/bbl/i18n/it/BambuStudio_it.po +++ b/bbl/i18n/it/BambuStudio_it.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-22 17:44+0800\n" +"POT-Creation-Date: 2022-12-24 13:01+0800\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1878,7 +1878,7 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly" +"This may cause decline in the quality of overhang surface when print fastly\n" msgstr "" msgid "" @@ -1929,7 +1929,7 @@ msgstr "%1% infill pattern doesn't support 100%% density." msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly" +"No - reset density to default non 100% value automaticlly\n" msgstr "" msgid "Auto bed leveling" @@ -2850,7 +2850,7 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets" +"3. The Printer presets\n" msgstr "" msgid "Synchronization" @@ -3215,6 +3215,12 @@ msgstr "Integration failed." msgid "Undo integration was successful." msgstr "Undo integration was successful." +msgid "New network plug-in available." +msgstr "" + +msgid "Details" +msgstr "" + msgid "Undo integration failed." msgstr "Undo integration failed." @@ -3502,8 +3508,10 @@ msgstr "" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:" +"unrecognized:\n" msgstr "" +"The 3mf file's version %s is newer than %s's version %s, Found the following " +"unrecognized keys:\n" msgid "You'd better upgrade your software.\n" msgstr "You should update your software.\n" @@ -3511,11 +3519,11 @@ msgstr "You should update your software.\n" msgid "Newer 3mf version" msgstr "Newer 3mf version" -#, c-format, boost-format +#, fuzzy, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software." -msgstr "" +"software.\n" +msgstr "\n" msgid "The 3mf is not compatible, load geometry data only!" msgstr "" @@ -3788,9 +3796,9 @@ msgid "" "on Bambu Studio(windows) or CAD softwares." msgstr "" -#, c-format, boost-format -msgid "Plate %d: %s does not support filament %s (%s)." -msgstr "" +#, fuzzy, c-format, boost-format +msgid "Plate %d: %s does not support filament %s (%s).\n" +msgstr "\n" msgid "Switching the language requires application restart.\n" msgstr "Switching languages requires the application to restart.\n" @@ -4269,13 +4277,13 @@ msgstr "" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:" +"print:\n" msgstr "" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type." +"selecting the same printer type.\n" msgstr "" #, c-format, boost-format @@ -4381,6 +4389,12 @@ msgid "" "No - Do not change these settings for me" msgstr "" +msgid "" +"For \"Tree Strong\" and \"Tree Hybrid\" styles, we recommand the following " +"settings: at least 2 interface layers, at least 0.1 top z distance or using " +"support materials on interface." +msgstr "" + msgid "" "When using support material for the support interface, We recommand the " "following settings:\n" @@ -4391,7 +4405,7 @@ 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\"." +"\"->\"Timelapse Wipe Tower\".\n" msgstr "" msgid "Line width" @@ -5140,6 +5154,17 @@ msgstr "" msgid "version %s update information :" msgstr "" +msgid "Network plug-in update" +msgstr "" + +msgid "" +"Click OK to update the Network plug-in when Bambu Studio launches next time." +msgstr "" + +#, c-format, boost-format +msgid "A new Network plug-in(%s) available, Do you want to install it?" +msgstr "" + msgid "New version of Bambu Studio" msgstr "New version of Bambu Studio" @@ -5446,10 +5471,11 @@ msgstr "%1% is too close to others, and collisions may be caused." msgid "%1% is too tall, and collisions will be caused." msgstr "%1% is too tall, and collisions will be caused." -msgid " is too close to others, there may be collisions when printing." +msgid " is too close to others, there may be collisions when printing.\n" msgstr "" -msgid " is too close to exclusion area, there may be collisions when printing." +msgid "" +" is too close to exclusion area, there may be collisions when printing.\n" msgstr "" msgid "Prime Tower" @@ -5547,9 +5573,9 @@ msgstr "" msgid "Layer height cannot exceed nozzle diameter" msgstr "Layer height cannot exceed nozzle diameter." -#, c-format, boost-format -msgid "Plate %d: %s does not support filament %s" -msgstr "" +#, fuzzy, c-format, boost-format +msgid "Plate %d: %s does not support filament %s\n" +msgstr "\n" msgid "Generating skirt & brim" msgstr "Generating skirt & brim" @@ -7914,12 +7940,6 @@ msgstr "" #~ "Please solve the problem by moving it totally on or off the plate, and " #~ "confirming that the height is within the build volume." -#~ msgid "" -#~ "Arachne engine only works when overhang slowing down is disabled.\n" -#~ "This may cause decline in the quality of overhang surface when print " -#~ "fastly\n" -#~ msgstr "\n" - #~ msgid "Auto arrange" #~ msgstr "Auto Arrange" @@ -8006,14 +8026,6 @@ msgstr "" #~ "2. Filament presets\n" #~ "3. Printer presets\n" -#~ msgid "" -#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" -#~ "It contains the following information:\n" -#~ "1. The Process presets\n" -#~ "2. The Filament presets\n" -#~ "3. The Printer presets\n" -#~ msgstr "\n" - #~ msgid "" #~ "Don't retract when the travel is in infill area absolutely. That means " #~ "the oozing can't been seen" @@ -8208,20 +8220,9 @@ msgstr "" #~ msgid "Per object edit" #~ msgstr "Per Object Edit" -#~ msgid "Plate %d: %s does not support filament %s\n" -#~ msgstr "\n" - #~ msgid "Plate %d: %s does not support filament %s.\n" #~ msgstr "Plate %d: %s does not support filament %s.\n" -#~ msgid "Plate %d: %s does not support filament %s (%s).\n" -#~ msgstr "\n" - -#~ msgid "" -#~ "Please check the following infomation and click Confirm to continue " -#~ "sending print:\n" -#~ msgstr "\n" - #~ msgid "Please fill report first." #~ msgstr "Please fill report first." @@ -8350,12 +8351,6 @@ msgstr "" #~ "to support custom support gaps, but may cause extra filament switches if " #~ "support is specified as a different filament from the object." -#~ msgid "" -#~ "Switch to rectilinear pattern?\n" -#~ "Yes - switch to rectilinear pattern automaticlly\n" -#~ "No - reset density to default non 100% value automaticlly\n" -#~ msgstr "\n" - #~ msgid "" #~ "Switch to zig-zag pattern?\n" #~ "Yes - switch to zig-zag pattern automaticlly\n" @@ -8368,18 +8363,6 @@ msgstr "" #~ msgid "Swith cloud environment, Please login again!" #~ msgstr "Cloud environment has switched; please login again!" -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " -#~ "unrecognized:\n" -#~ msgstr "" -#~ "The 3mf file's version %s is newer than %s's version %s, Found the " -#~ "following unrecognized keys:\n" - -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " -#~ "your software.\n" -#~ msgstr "\n" - #~ msgid "The Config is not compatible and can not be loaded." #~ msgstr "The configuration is not compatible and cannot be loaded!" @@ -8399,12 +8382,6 @@ msgstr "" #~ "attempted, however we recommend checking the results or repairing the " #~ "input file and retrying." -#~ msgid "" -#~ "The printer type used to generate G-code is not the same type as the " -#~ "currently selected physical printer. It is recommend to re-slice by " -#~ "selecting the same printer type.\n" -#~ msgstr "\n" - #~ msgid "" #~ "This object will be used to purge the nozzle after a filament change to " #~ "save filament and decrease the print time. Colours of the objects will be " @@ -8451,13 +8428,6 @@ msgstr "" #~ msgid "Waiting" #~ msgstr "Waiting" -#~ 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\".\n" -#~ msgstr "\n" - #~ msgid "" #~ "You have changed some preset settings. \n" #~ "Would you like to keep these changed settings after switching preset?" @@ -8471,19 +8441,12 @@ msgstr "" #~ msgid " Object:" #~ msgstr " Object:" -#~ msgid "" -#~ " is too close to exclusion area, there may be collisions when printing.\n" -#~ msgstr "\n" - #~ msgid "" #~ " is too close to exclusion area, there will be collisions when printing.\n" #~ msgstr "" #~ " is too close to an exclusion area, there will be collisions when " #~ "printing.\n" -#~ msgid " is too close to others, there may be collisions when printing.\n" -#~ msgstr "\n" - #~ msgid " is too close to others, there will be collisions when printing.\n" #~ msgstr " is too close to others, there will be collisions when printing.\n" diff --git a/bbl/i18n/nl/BambuStudio_nl.po b/bbl/i18n/nl/BambuStudio_nl.po index 3b6432c6f..f64d14892 100644 --- a/bbl/i18n/nl/BambuStudio_nl.po +++ b/bbl/i18n/nl/BambuStudio_nl.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-22 17:44+0800\n" +"POT-Creation-Date: 2022-12-24 13:01+0800\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1913,7 +1913,7 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly" +"This may cause decline in the quality of overhang surface when print fastly\n" msgstr "" msgid "" @@ -1965,7 +1965,7 @@ msgstr "%1% het gekozen vulling patroon ondersteund geen 100%% dichtheid." msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly" +"No - reset density to default non 100% value automaticlly\n" msgstr "" msgid "Auto bed leveling" @@ -2886,7 +2886,7 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets" +"3. The Printer presets\n" msgstr "" msgid "Synchronization" @@ -3251,6 +3251,12 @@ msgstr "Integratie is mislukt." msgid "Undo integration was successful." msgstr "Het ongedaan maken van de integratie is gelukt." +msgid "New network plug-in available." +msgstr "" + +msgid "Details" +msgstr "" + msgid "Undo integration failed." msgstr "Het ongedaan maken van de integratie is mislukt." @@ -3546,8 +3552,10 @@ msgstr "" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:" +"unrecognized:\n" msgstr "" +"De 3mf-versie %s is nieuwer dan %s-versie %s, Gevonden volgende sleutels " +"zijn niet herkend:\n" msgid "You'd better upgrade your software.\n" msgstr "U dient de software te upgraden.\n" @@ -3555,11 +3563,11 @@ msgstr "U dient de software te upgraden.\n" msgid "Newer 3mf version" msgstr "Nieuwere versie 3mf" -#, c-format, boost-format +#, fuzzy, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software." -msgstr "" +"software.\n" +msgstr "\n" msgid "The 3mf is not compatible, load geometry data only!" msgstr "" @@ -3841,9 +3849,9 @@ msgid "" "on Bambu Studio(windows) or CAD softwares." msgstr "" -#, c-format, boost-format -msgid "Plate %d: %s does not support filament %s (%s)." -msgstr "" +#, fuzzy, c-format, boost-format +msgid "Plate %d: %s does not support filament %s (%s).\n" +msgstr "\n" msgid "Switching the language requires application restart.\n" msgstr "" @@ -4335,13 +4343,13 @@ msgstr "" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:" +"print:\n" msgstr "" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type." +"selecting the same printer type.\n" msgstr "" #, c-format, boost-format @@ -4449,6 +4457,12 @@ msgid "" "No - Do not change these settings for me" msgstr "" +msgid "" +"For \"Tree Strong\" and \"Tree Hybrid\" styles, we recommand the following " +"settings: at least 2 interface layers, at least 0.1 top z distance or using " +"support materials on interface." +msgstr "" + msgid "" "When using support material for the support interface, We recommand the " "following settings:\n" @@ -4459,7 +4473,7 @@ 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\"." +"\"->\"Timelapse Wipe Tower\".\n" msgstr "" msgid "Line width" @@ -5223,6 +5237,17 @@ msgstr "" msgid "version %s update information :" msgstr "" +msgid "Network plug-in update" +msgstr "" + +msgid "" +"Click OK to update the Network plug-in when Bambu Studio launches next time." +msgstr "" + +#, c-format, boost-format +msgid "A new Network plug-in(%s) available, Do you want to install it?" +msgstr "" + msgid "New version of Bambu Studio" msgstr "Nieuwe versie van Bambu Studio" @@ -5535,10 +5560,11 @@ msgstr "%1% staat te dicht bij anderen en er kunnen botsingen ontstaan." msgid "%1% is too tall, and collisions will be caused." msgstr "%1% is te hoog en er kunnen botsingen ontstaan." -msgid " is too close to others, there may be collisions when printing." +msgid " is too close to others, there may be collisions when printing.\n" msgstr "" -msgid " is too close to exclusion area, there may be collisions when printing." +msgid "" +" is too close to exclusion area, there may be collisions when printing.\n" msgstr "" msgid "Prime Tower" @@ -5642,9 +5668,9 @@ msgstr "" msgid "Layer height cannot exceed nozzle diameter" msgstr "De laaghoogte kan niet groter zijn dan de diameter van de nozzle" -#, c-format, boost-format -msgid "Plate %d: %s does not support filament %s" -msgstr "" +#, fuzzy, c-format, boost-format +msgid "Plate %d: %s does not support filament %s\n" +msgstr "\n" msgid "Generating skirt & brim" msgstr "Skirt en brim worden gegenereerd" @@ -8054,12 +8080,6 @@ msgstr "" #~ "Los dit probleem op door het object geheel binnen of buiten de printplaat " #~ "te plaatsen." -#~ msgid "" -#~ "Arachne engine only works when overhang slowing down is disabled.\n" -#~ "This may cause decline in the quality of overhang surface when print " -#~ "fastly\n" -#~ msgstr "\n" - #~ msgid "Auto arrange" #~ msgstr "Automatisch rangschikken" @@ -8147,14 +8167,6 @@ msgstr "" #~ "2. Voorinstellingen voor filament\n" #~ "3. Voorinstellingen voor printers\n" -#~ msgid "" -#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" -#~ "It contains the following information:\n" -#~ "1. The Process presets\n" -#~ "2. The Filament presets\n" -#~ "3. The Printer presets\n" -#~ msgstr "\n" - #~ msgid "" #~ "Don't retract when the travel is in infill area absolutely. That means " #~ "the oozing can't been seen" @@ -8347,20 +8359,9 @@ msgstr "" #~ msgid "Per object edit" #~ msgstr "Instellingen per object" -#~ msgid "Plate %d: %s does not support filament %s\n" -#~ msgstr "\n" - #~ msgid "Plate %d: %s does not support filament %s.\n" #~ msgstr "Printbed %d: %s onderstand filament %s niet.\n" -#~ msgid "Plate %d: %s does not support filament %s (%s).\n" -#~ msgstr "\n" - -#~ msgid "" -#~ "Please check the following infomation and click Confirm to continue " -#~ "sending print:\n" -#~ msgstr "\n" - #~ msgid "Please fill report first." #~ msgstr "Gelieve eerst het rapport in te vullen." @@ -8488,12 +8489,6 @@ msgstr "" #~ "filament wisselingen veroorzaken indien support is gespecificeerd als een " #~ "andere extruder dan het object" -#~ msgid "" -#~ "Switch to rectilinear pattern?\n" -#~ "Yes - switch to rectilinear pattern automaticlly\n" -#~ "No - reset density to default non 100% value automaticlly\n" -#~ msgstr "\n" - #~ msgid "" #~ "Switch to zig-zag pattern?\n" #~ "Yes - switch to zig-zag pattern automaticlly\n" @@ -8506,18 +8501,6 @@ msgstr "" #~ msgid "Swith cloud environment, Please login again!" #~ msgstr "De cloud omgeving is aangepast. Log opnieuw in aub." -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " -#~ "unrecognized:\n" -#~ msgstr "" -#~ "De 3mf-versie %s is nieuwer dan %s-versie %s, Gevonden volgende sleutels " -#~ "zijn niet herkend:\n" - -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " -#~ "your software.\n" -#~ msgstr "\n" - #~ msgid "The Config is not compatible and can not be loaded." #~ msgstr "De configuratie is niet compatibel en kan niet geladen worden!" @@ -8537,12 +8520,6 @@ msgstr "" #~ "heeft geprobeerd om het te repareren, maar misschien wilt u de resultaten " #~ "controleren of het invoerbestand repareren en het opnieuw proberen." -#~ msgid "" -#~ "The printer type used to generate G-code is not the same type as the " -#~ "currently selected physical printer. It is recommend to re-slice by " -#~ "selecting the same printer type.\n" -#~ msgstr "\n" - #~ msgid "" #~ "This object will be used to purge the nozzle after a filament change to " #~ "save filament and decrease the print time. Colours of the objects will be " @@ -8590,13 +8567,6 @@ msgstr "" #~ msgid "Waiting" #~ msgstr "Wachten" -#~ 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\".\n" -#~ msgstr "\n" - #~ msgid "" #~ "You have changed some preset settings. \n" #~ "Would you like to keep these changed settings after switching preset?" @@ -8611,19 +8581,12 @@ msgstr "" #~ msgid " Object:" #~ msgstr "Object" -#~ msgid "" -#~ " is too close to exclusion area, there may be collisions when printing.\n" -#~ msgstr "\n" - #~ msgid "" #~ " is too close to exclusion area, there will be collisions when printing.\n" #~ msgstr "" #~ " komt te dichtbij het uitgesloten gebied, er zullen botsingen optreden " #~ "tijdens het printen.\n" -#~ msgid " is too close to others, there may be collisions when printing.\n" -#~ msgstr "\n" - #~ msgid " is too close to others, there will be collisions when printing.\n" #~ msgstr "" #~ " bevindt zich te dichtbij andere objecten, er zullen botsingen optreden " diff --git a/bbl/i18n/sv/BambuStudio_sv.po b/bbl/i18n/sv/BambuStudio_sv.po index b90fe4a3f..1994d80d0 100644 --- a/bbl/i18n/sv/BambuStudio_sv.po +++ b/bbl/i18n/sv/BambuStudio_sv.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-22 17:44+0800\n" +"POT-Creation-Date: 2022-12-24 13:01+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1883,7 +1883,7 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly" +"This may cause decline in the quality of overhang surface when print fastly\n" msgstr "" msgid "" @@ -1934,7 +1934,7 @@ msgstr "%1% ifyllnads mönster stöds ej 100%% densitet." msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly" +"No - reset density to default non 100% value automaticlly\n" msgstr "" msgid "Auto bed leveling" @@ -2855,7 +2855,7 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets" +"3. The Printer presets\n" msgstr "" msgid "Synchronization" @@ -3220,6 +3220,12 @@ msgstr "Integrationen misslyckades." msgid "Undo integration was successful." msgstr "Återställande av integrationen lyckades." +msgid "New network plug-in available." +msgstr "" + +msgid "Details" +msgstr "" + msgid "Undo integration failed." msgstr "Återställande av integrationen misslyckades." @@ -3505,8 +3511,10 @@ msgstr "" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:" +"unrecognized:\n" msgstr "" +"3mf's version %s är nyare än %s's version %s, Följande nycklar känns inte " +"igen:\n" msgid "You'd better upgrade your software.\n" msgstr "Uppdatera mjukvaran.\n" @@ -3514,11 +3522,11 @@ msgstr "Uppdatera mjukvaran.\n" msgid "Newer 3mf version" msgstr "Nyare 3mf version" -#, c-format, boost-format +#, fuzzy, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software." -msgstr "" +"software.\n" +msgstr "\n" msgid "The 3mf is not compatible, load geometry data only!" msgstr "" @@ -3791,9 +3799,9 @@ msgid "" "on Bambu Studio(windows) or CAD softwares." msgstr "" -#, c-format, boost-format -msgid "Plate %d: %s does not support filament %s (%s)." -msgstr "" +#, fuzzy, c-format, boost-format +msgid "Plate %d: %s does not support filament %s (%s).\n" +msgstr "\n" msgid "Switching the language requires application restart.\n" msgstr "Byte av språk krävs för omstart.\n" @@ -4271,13 +4279,13 @@ msgstr "" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:" +"print:\n" msgstr "" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type." +"selecting the same printer type.\n" msgstr "" #, c-format, boost-format @@ -4383,6 +4391,12 @@ msgid "" "No - Do not change these settings for me" msgstr "" +msgid "" +"For \"Tree Strong\" and \"Tree Hybrid\" styles, we recommand the following " +"settings: at least 2 interface layers, at least 0.1 top z distance or using " +"support materials on interface." +msgstr "" + msgid "" "When using support material for the support interface, We recommand the " "following settings:\n" @@ -4393,7 +4407,7 @@ 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\"." +"\"->\"Timelapse Wipe Tower\".\n" msgstr "" msgid "Line width" @@ -5147,6 +5161,17 @@ msgstr "" msgid "version %s update information :" msgstr "" +msgid "Network plug-in update" +msgstr "" + +msgid "" +"Click OK to update the Network plug-in when Bambu Studio launches next time." +msgstr "" + +#, c-format, boost-format +msgid "A new Network plug-in(%s) available, Do you want to install it?" +msgstr "" + msgid "New version of Bambu Studio" msgstr "Ny version av Bambu Studio" @@ -5454,10 +5479,11 @@ msgstr "%1% är för nära andra och kan orsaka kollisioner." msgid "%1% is too tall, and collisions will be caused." msgstr "%1% är för hög, och kollisioner kommer att uppstå." -msgid " is too close to others, there may be collisions when printing." +msgid " is too close to others, there may be collisions when printing.\n" msgstr "" -msgid " is too close to exclusion area, there may be collisions when printing." +msgid "" +" is too close to exclusion area, there may be collisions when printing.\n" msgstr "" msgid "Prime Tower" @@ -5551,9 +5577,9 @@ msgstr "" msgid "Layer height cannot exceed nozzle diameter" msgstr "Lagerhöjden kan inte överstiga nozzel diametern" -#, c-format, boost-format -msgid "Plate %d: %s does not support filament %s" -msgstr "" +#, fuzzy, c-format, boost-format +msgid "Plate %d: %s does not support filament %s\n" +msgstr "\n" msgid "Generating skirt & brim" msgstr "Skapar Skirt & Brim" @@ -7184,8 +7210,8 @@ msgid "" "interface is Concentric" msgstr "" "Linje mönster för support gränssnittsytan .Standardmönstret för olösligt " -"(material) support gränssnittet är Räta medan standardmönstret för lösligt" -"(material) stödgränssnittet är koncentriskt" +"(material) support gränssnittet är Räta medan standardmönstret för " +"lösligt(material) stödgränssnittet är koncentriskt" msgid "Base pattern spacing" msgstr "Basens mönster mellanrum" @@ -7906,12 +7932,6 @@ msgstr "" #~ "Ett objekt är placerad över byggplattans begränsningar.\n" #~ "Flytta objektet så det är helt inom eller utom byggplattans begränsningar." -#~ msgid "" -#~ "Arachne engine only works when overhang slowing down is disabled.\n" -#~ "This may cause decline in the quality of overhang surface when print " -#~ "fastly\n" -#~ msgstr "\n" - #~ msgid "Auto arrange" #~ msgstr "Auto arrangera" @@ -7997,14 +8017,6 @@ msgstr "" #~ "2. Filament förinställningar\n" #~ "3. Skrivare förinställningar\n" -#~ msgid "" -#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" -#~ "It contains the following information:\n" -#~ "1. The Process presets\n" -#~ "2. The Filament presets\n" -#~ "3. The Printer presets\n" -#~ msgstr "\n" - #~ msgid "" #~ "Don't retract when the travel is in infill area absolutely. That means " #~ "the oozing can't been seen" @@ -8200,20 +8212,9 @@ msgstr "" #~ msgid "Per object edit" #~ msgstr "Redigera per objekt" -#~ msgid "Plate %d: %s does not support filament %s\n" -#~ msgstr "\n" - #~ msgid "Plate %d: %s does not support filament %s.\n" #~ msgstr "Plattan %d: %s stöds ej av filament %s.\n" -#~ msgid "Plate %d: %s does not support filament %s (%s).\n" -#~ msgstr "\n" - -#~ msgid "" -#~ "Please check the following infomation and click Confirm to continue " -#~ "sending print:\n" -#~ msgstr "\n" - #~ msgid "Please fill report first." #~ msgstr "Fyll i rapporten först." @@ -8342,12 +8343,6 @@ msgstr "" #~ "stöda custom support mellanrum, detta kan orsaka extra filament byten om " #~ "support (materialet) är vald som en annan extruder än objektets" -#~ msgid "" -#~ "Switch to rectilinear pattern?\n" -#~ "Yes - switch to rectilinear pattern automaticlly\n" -#~ "No - reset density to default non 100% value automaticlly\n" -#~ msgstr "\n" - #~ msgid "" #~ "Switch to zig-zag pattern?\n" #~ "Yes - switch to zig-zag pattern automaticlly\n" @@ -8360,18 +8355,6 @@ msgstr "" #~ msgid "Swith cloud environment, Please login again!" #~ msgstr "Byte av moln miljö, Logga in igen!" -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " -#~ "unrecognized:\n" -#~ msgstr "" -#~ "3mf's version %s är nyare än %s's version %s, Följande nycklar känns inte " -#~ "igen:\n" - -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " -#~ "your software.\n" -#~ msgstr "\n" - #~ msgid "The Config is not compatible and can not be loaded." #~ msgstr "Ej kompatibel konfiguration; kan inte laddas." @@ -8390,12 +8373,6 @@ msgstr "" #~ "Modellen har överlappande eller självkorsande aspekter.Reparation utförd, " #~ "men kontrollera resultaten eller reparera indatafilen och försöka igen." -#~ msgid "" -#~ "The printer type used to generate G-code is not the same type as the " -#~ "currently selected physical printer. It is recommend to re-slice by " -#~ "selecting the same printer type.\n" -#~ msgstr "\n" - #~ msgid "" #~ "This object will be used to purge the nozzle after a filament change to " #~ "save filament and decrease the print time. Colours of the objects will be " @@ -8443,13 +8420,6 @@ msgstr "" #~ msgid "Waiting" #~ msgstr "Väntar" -#~ 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\".\n" -#~ msgstr "\n" - #~ msgid "" #~ "You have changed some preset settings. \n" #~ "Would you like to keep these changed settings after switching preset?" @@ -8463,17 +8433,10 @@ msgstr "" #~ msgid " Object:" #~ msgstr " Objekt:" -#~ msgid "" -#~ " is too close to exclusion area, there may be collisions when printing.\n" -#~ msgstr "\n" - #~ msgid "" #~ " is too close to exclusion area, there will be collisions when printing.\n" #~ msgstr " för tätt inpå den isolerade ytan, utskriften kolliderar.\n" -#~ msgid " is too close to others, there may be collisions when printing.\n" -#~ msgstr "\n" - #~ msgid " is too close to others, there will be collisions when printing.\n" #~ msgstr " för tätt inpå andra, utskriften kolliderar.\n" diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index 79b0a4d1f..f3d1a210f 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-22 17:44+0800\n" +"POT-Creation-Date: 2022-12-24 13:01+0800\n" "PO-Revision-Date: 2022-12-22 17:47+0800\n" "Last-Translator: Jiang Yue \n" "Language-Team: \n" @@ -1838,8 +1838,10 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly" +"This may cause decline in the quality of overhang surface when print fastly\n" msgstr "" +"Arachne引擎只在关闭悬垂降速时起作用。\n" +"这可能会导致高速打印时悬垂表面质量的下降\n" msgid "" "Disable overhang slowing down automatically? \n" @@ -1891,8 +1893,11 @@ msgstr "%1% 填充图案不支持 100%% 密度。" msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly" +"No - reset density to default non 100% value automaticlly\n" msgstr "" +"切换到直线图案?\n" +"是 - 自动切换到直线图案\n" +"否 - 自动重置为非100%填充密度\n" msgid "Auto bed leveling" msgstr "自动热床调平" @@ -1976,10 +1981,10 @@ msgid "Unknown" msgstr "未定义" msgid "Fatal" -msgstr "" +msgstr "致命" msgid "Serious" -msgstr "" +msgstr "严重" msgid "Common" msgstr "" @@ -2812,8 +2817,13 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets" +"3. The Printer presets\n" msgstr "" +"想从Bambu 云同步你的个人数据吗?\n" +"包含如下信息:\n" +"1. 工艺预设\n" +"2. 打印丝预设\n" +"3. 打印机预设\n" msgid "Synchronization" msgstr "同步" @@ -3184,6 +3194,12 @@ msgstr "集成失败。" msgid "Undo integration was successful." msgstr "集成取消成功。" +msgid "New network plug-in available." +msgstr "新的网络插件可用。" + +msgid "Details" +msgstr "详情" + msgid "Undo integration failed." msgstr "集成取消失败。" @@ -3468,8 +3484,8 @@ msgstr "该3mf文件来自旧版本的Bambu Lab,将只加载几何数据。" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:" -msgstr "" +"unrecognized:\n" +msgstr "该3mf的版本%s比%s的版本%s新,发现以下参数键值无法识别;\n" msgid "You'd better upgrade your software.\n" msgstr "建议升级您的软件版本。\n" @@ -3480,8 +3496,8 @@ msgstr "较新的3mf版本" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software." -msgstr "" +"software.\n" +msgstr "该3mf文件的版本%s 比%s的版本%s更新,建议升级您的软件。\n" msgid "The 3mf is not compatible, load geometry data only!" msgstr "该3mf文件与软件不兼容,将只加载几何数据。" @@ -3759,8 +3775,8 @@ msgstr "" "模型。" #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s (%s)." -msgstr "" +msgid "Plate %d: %s does not support filament %s (%s).\n" +msgstr "盘%d:%s不支持耗材丝%s (%s)。\n" msgid "Switching the language requires application restart.\n" msgstr "切换语言要求重启应用程序。\n" @@ -4234,14 +4250,16 @@ msgstr "错误" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:" -msgstr "" +"print:\n" +msgstr "请检查以下信息,点击确认后继续发送打印:\n" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type." +"selecting the same printer type.\n" msgstr "" +"用于生成G-code的打印机类型与当前选定的物理打印机类型不同,建议选择相同的打印" +"机类型重新切片。\n" #, c-format, boost-format msgid "The %s filament is too soft to be used with the AMS" @@ -4357,6 +4375,12 @@ msgstr "" "是 - 自动调整这些设置\n" "否 - 不用为我调整这些设置" +msgid "" +"For \"Tree Strong\" and \"Tree Hybrid\" styles, we recommand the following " +"settings: at least 2 interface layers, at least 0.1 top z distance or using " +"support materials on interface." +msgstr "" + msgid "" "When using support material for the support interface, We recommand the " "following settings:\n" @@ -4369,8 +4393,10 @@ 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\"." +"\"->\"Timelapse Wipe Tower\".\n" msgstr "" +"在录制无工具头延时摄影视频时,建议添加“延时摄影擦料塔”\n" +"右键单击构建板的空白位置,选择“添加标准模型”->“延时摄影擦料塔”。\n" msgid "Line width" msgstr "线宽" @@ -5091,6 +5117,17 @@ msgstr "更新说明" msgid "version %s update information :" msgstr "版本 %s 更新信息" +msgid "Network plug-in update" +msgstr "网络插件升级" + +msgid "" +"Click OK to update the Network plug-in when Bambu Studio launches next time." +msgstr "点击OK将在Bambu Studio下次启动之后自动升级网络插件" + +#, c-format, boost-format +msgid "A new Network plug-in(%s) available, Do you want to install it?" +msgstr "新的网络插件(%s) 可用,您是否需要安装它?" + msgid "New version of Bambu Studio" msgstr "新版本的Bambu Studio" @@ -5397,11 +5434,12 @@ msgstr "%1%离其它对象太近,可能会发生碰撞。" msgid "%1% is too tall, and collisions will be caused." msgstr "%1%太高,会发生碰撞。" -msgid " is too close to others, there may be collisions when printing." -msgstr "" +msgid " is too close to others, there may be collisions when printing.\n" +msgstr "到其他对象的距离太近了,可能在打印过程中发生碰撞。\n" -msgid " is too close to exclusion area, there may be collisions when printing." -msgstr "" +msgid "" +" is too close to exclusion area, there may be collisions when printing.\n" +msgstr "到屏蔽区域的距离太近了,可能在打印过程中发生碰撞。\n" msgid "Prime Tower" msgstr "擦拭塔" @@ -5484,8 +5522,8 @@ msgid "Layer height cannot exceed nozzle diameter" msgstr "层高不能超过喷嘴直径" #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s" -msgstr "" +msgid "Plate %d: %s does not support filament %s\n" +msgstr "盘%d: %s 不支持耗材丝 %s\n" msgid "Generating skirt & brim" msgstr "正在生成skirt和brim" @@ -7785,81 +7823,6 @@ msgstr "" "提高强度\n" "你知道吗?你可以使用更多的墙层数和更高的疏散填充密度来提高模型的强度。" -#~ msgid "" -#~ "Arachne engine only works when overhang slowing down is disabled.\n" -#~ "This may cause decline in the quality of overhang surface when print " -#~ "fastly\n" -#~ msgstr "" -#~ "Arachne引擎只在关闭悬垂降速时起作用。\n" -#~ "这可能会导致高速打印时悬垂表面质量的下降\n" - -#~ msgid "" -#~ "Switch to rectilinear pattern?\n" -#~ "Yes - switch to rectilinear pattern automaticlly\n" -#~ "No - reset density to default non 100% value automaticlly\n" -#~ msgstr "" -#~ "切换到直线图案?\n" -#~ "是 - 自动切换到直线图案\n" -#~ "否 - 自动重置为非100%填充密度\n" - -#~ msgid "" -#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" -#~ "It contains the following information:\n" -#~ "1. The Process presets\n" -#~ "2. The Filament presets\n" -#~ "3. The Printer presets\n" -#~ msgstr "" -#~ "想从Bambu 云同步你的个人数据吗?\n" -#~ "包含如下信息:\n" -#~ "1. 工艺预设\n" -#~ "2. 打印丝预设\n" -#~ "3. 打印机预设\n" - -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " -#~ "unrecognized:\n" -#~ msgstr "该3mf的版本%s比%s的版本%s新,发现以下参数键值无法识别;\n" - -#~ msgid "" -#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " -#~ "your software.\n" -#~ msgstr "该3mf文件的版本%s 比%s的版本%s更新,建议升级您的软件。\n" - -#~ msgid "Plate %d: %s does not support filament %s (%s).\n" -#~ msgstr "盘%d:%s不支持耗材丝%s (%s)。\n" - -#~ msgid "" -#~ "Please check the following infomation and click Confirm to continue " -#~ "sending print:\n" -#~ msgstr "请检查以下信息,点击确认后继续发送打印:\n" - -#~ msgid "" -#~ "The printer type used to generate G-code is not the same type as the " -#~ "currently selected physical printer. It is recommend to re-slice by " -#~ "selecting the same printer type.\n" -#~ msgstr "" -#~ "用于生成G-code的打印机类型与当前选定的物理打印机类型不同,建议选择相同的打" -#~ "印机类型重新切片。\n" - -#~ 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\".\n" -#~ msgstr "" -#~ "在录制无工具头延时摄影视频时,建议添加“延时摄影擦料塔”\n" -#~ "右键单击构建板的空白位置,选择“添加标准模型”->“延时摄影擦料塔”。\n" - -#~ msgid " is too close to others, there may be collisions when printing.\n" -#~ msgstr "到其他对象的距离太近了,可能在打印过程中发生碰撞。\n" - -#~ msgid "" -#~ " is too close to exclusion area, there may be collisions when printing.\n" -#~ msgstr "到屏蔽区域的距离太近了,可能在打印过程中发生碰撞。\n" - -#~ msgid "Plate %d: %s does not support filament %s\n" -#~ msgstr "盘%d: %s 不支持耗材丝 %s\n" - #~ msgid "" #~ "normal(auto) and tree(auto) is used to generate support automatically. If " #~ "normal or tree is selected, only support enforcers are generated" diff --git a/resources/i18n/de/BambuStudio.mo b/resources/i18n/de/BambuStudio.mo index 5ab08aaff7e0bd14627e3f4fb00906416881bc0b..7828a4c39e0f4051a3fd1a51fc67c4a16a33bdff 100644 GIT binary patch delta 29730 zcmZAA2Yk*~|HuFD6@nm$6|)HuK_X`Cy+UoV_llS?Vz0{{rPjAr?LAsst0+aOs=eFV zT2zhNtJMGXzRtNH|KIy<~Uv_m_%6$>R=HZkJ)htrp1$(6MshyeGoqGq@eljGN@0c^v}__KX}4U3Y$fpM7ObH{0n zT~U$w7IWYmo6j_Zh|s^&j6_;&g@M=&qi`T^pjkEnVlQ8Rd9^~^E( zbQnZ=PE>tJnchk0== z>iID&hQDD$O!I{qa2w1-J|0zX7}m$Bs0my~Ey zERS6=3YXjGCsAvD3AMI&P#r(F`DF7PCyaa$7Q`5v_jVwm(2PfoXeDZwZ$gEBJ7&Z0 zQ3Je)8rUsV$RFEsXTI6}X>mK{6)^)oK^;ra0@F`!EK0rt(w^7pLqZ)5!>KqPbxZ;m znot)&4X7@1M>&m9Gi!m_Fafoh#-KV}irOn%a5P@R5N!6P<0RoAjKupmjsBf1iyUVP z1uIZ9E40|`?$W4;)I-g*1!@=fK-KGm8u)Nj$S0r%Fb6fjRj7&Vz+rd_$6)OxW?;u~ zht7ZPrR-3Aj~Zc*Wn9O24F_Vw<&HBB5936PU19dbNz`V%gzD%mYM_}{n!S)86|or9 z5?4TN$~LH_?2F!D5+g_`l&-DtHD)D$0JW(u+x%VBvH5^%IN2)GP-@f?Wkp3KCn|E` zs7Mq=y;lX*aV=E+CaZ|Qc6SR3^kPR;2z#Pl9D#aa8fL`#r~z-pEO-bt^IxscQT5ZU zHtpm<%{US@!OEB&TViG$u$uTQF_{82xES@qc2p>T!UFg!GHJ)N#)Nz|DgsAQ13QJ~ z@D^%sv=skBZ<@)POdl2Cx?k;yG0N-uEO@kO&T ziK#X^PAM#jC9#*yFGof8GUmdESOEjRG83qUOvvlhBcV-}U>^*|$>c|(8chDR>9{QF zBI%8az!cPbGcYYKv2L{GyHFGR$$AnMkqf9L`xA5N{J$olhBI$s$6`@Tjm`sbP)l*jmfy!b~)i){HSRD{1%p8lN^Bm(gkKE!`eFI?SX zX7(p)Z#+efJlR$=fUKy27PD4By%%erH?;OdO<*EwLaR^{UXNZie3(Q5yoCAjBL-mp zZRUldsF25CJuHvfOj9r&E<+7$v&|pG4CK$CI=qE?|1N4t9-=1vd>iqvO2V_kH zE%{hfh@0AcUra@QBu3yw%!`{)13iO^#P65}@1O?u6nmhv!$hVhs{H||`@pOFSG#fn z1*P#K>VgT}X+CDdQ6uhz>Y%$d2{nMxs7(yynzb+bBw~EZ_Gd{VI}gl zyd(;dn236DD{6#4TF+n>^4Cxicy7zzqt-g$Tl=|=naRiCSo{>V1SfDhUPEopp1Vx@ z+fWnp?kAy!kDvx{3Y+3BR0pNLGZCqTpOSBmDqn%oxB+!)e#IvEA1d^XceAgsBWAcf2hfWdNvPv|s1cSxEk#+IuZLROCa4G{V168h zTEo?-=U-t69zd1fL~XKr7>W50ntqy~o_9j8j!$fB)IPY3YWN;1bZ<}t zD9u(bjt#LIj>Awqf(rRvjKLH~%u-aq2=a|l5g3LIa5`4TE0_~=dVewlD2)nfENbK( zQIY6r^FvV)8i)S45VgyfVHkd8%TJ?bd=V9q>!^D7Q4@QKidc%HW-ocOkIr(v@h)*_po%!~` zIt<{!*QhoA)|Q_^4e%mrMt4zr<0&eHX@4=1DS)b185Oxk7>(_1`RACA{8IFIxM49) z=l{rY^Qo5ogsIRC^H6abDiWKl=aDPGd5fv=+mmKSKcJT6Fs8;|PE#Hc&cMy}|&!~x9?V8{u*|v|)05wTipXx%DY=Vx@#FvU=S;ni7(jXY z^X5}EJ4TYPff_(RRHR1X7x?9Q;$MqIkqhQ7AB@WH$2j!AXg>8?VJ7mcQEUGl`eu$g zmOrCregk9hF=obmm(0Y=gO8yzDolL))z2c1^p%B+X?cU}Xgq=_wCt+5cfO>He z>ey{T)jN(lj@M8Fc!LUcy5GzIa$;ffMX@xtM@4EL(!SSOLqePHThxpDt;caL`Cm~p zN&MZ+csv#(KN~ghA5rh0NA3PAw)`C`lButldbu$N`NB3|8&m51w96@xL$H3p4^F)v;~uU>pjA}9J? zH-3WI$d^Oi^>LUFhuHGPsI~qEHIw70J@T6^e}aloiW|mEs0oE)2`r8=*zE@KSH;B? zsDTYw77w6i`p)Wi)66V2D%3ep1Bgb=tOlx`wy3?*1GRZaqb4#F_1=0^{qIo|zi`uQ zLV1G%h5k>}?tF~e6CY3^&2Y;!5Q-XDNmK(BPb=$I zhg-UnP=ni19qvJe^dxE^S5Pzh8`Z!^)Sd{q&4$Gcs1Ew0LOcjH!^yY(+zxEc%KVO0G`)(m${zJ#?oY9_<( z@Qq4|DYjs~buH>(eq%jjePB&-*L-2m<1Wl*rr=W2j5k)HKfc8j_z@MP6!%O%112LM zj0#Fl)M}PM?f2@asdTV;FXkh^2sNbxsNns9x$(_C_NzL|`j=Uy+^B{lt<|k?#J}E7XB}M#c&*i zsc;dd#?`2+WD6F=`?fsOBNLfVP#s31A`pWbU|rNi;!sQ75;edMNWWgE7l}X$MxZ*H ziq-K8oPfWgUTpW+*cElMd!YtC8pq=dTb}VBb18;nHOgCIC@w~IyblBM7zWY5bD4x@ zb{{{%uqVc9=tsU2Y5-kPA?$?}aFosO!3^Y2U{Ab;5m@`F*_{1Q9Zx_-WEQ5y1(N=q zH6%iDyRC2@70N59-F*k6@GW-6{LjpQrlO9~EG&teZT=6;Pu}y~{2{3ThLRtGzK$`7 z{2KJCU>Avuco;L`WlWC`uoV7_+I+=dnDZTrs+WM8(FoLD8ISpJIx1q@P?7l#)z2|o zehGCPue~7tdhmy>@B}rG54K{4mu61{qeh$;)nG|1fHg4$6Hx=1ff~p>Ooz)*YrPq@ zX}`DScTpG8%a_DoGs*VK6hxs$))4h#Gt}|vf|=2a+Ra~}2C@)G<3`ld6nss&hX~*i z@=M;BNOpN^+D$@5b{ML?sa_K5XsNC6H7X+8F&F-TTH~u2jqflD3%)aZq&aHF9Z?bJ zVeOBa*f7-Q`y5qoA!>pvQA^}qPeR9T3s%8Bs0-#_Y=`vHUT0xI+mQA?ZkgBeIcBobbyI0^0cYN(OcLxr{_`euZRNPpCfMq^E! zgSqfm)IeUMj$fhwjB`=#IUh~P)1unTg%vR$`s@66CZUSmtpjle`7wAI(>oq#HQqxF zWIBJ^RR|YiBV2~{@Cj-n75U37ZO&NKChUhX=*8mrjV=ERb9pIvO+vdnb28IFe$FHrS1p!U)pRC_;T2>y`(zIX4+6)zm zPAR>n;Q;aRrA0?bK%gUug7?cz(QncPP$!4v!3Kb6P#IiD5vyeR6}l|~J; z3TkN^*?b2ti6RvAwJyWLaP_tV6W4WghJF8{ctF1tw*359D@q+G}IyGxLQw;aL3LCP z)lO~H3>%=@X@;6eXPfVXYHzs8b^d3O(5701n!#q&ruzvs)7z+1Lt2OoJE25z)IAMU!g+zopnE|p~I+w zTt~h47&QD- zmSiPr^KC>$V6V*|$M)o}q9Rv5vl(!0)Nb#9+I-Vc@6SUGa2;yk-mmS0pRhIsmoW)L zvzSft1r{g21vP`)r~&}#0K2FnRH8ZM*T9WbD4rilw`#)CyU^CF1NPAwVfGvo| z##Ahi8tLb_43}aQR?6ma+F&m%fk#oh|6i9d>7)c}W(Pek1tcTth}7u9Y=4l}Vb zSV-qTjzkO(Mx*w^PU~LWNd6FN=6!OSkR@Re@}Hx2^*)To2dIJO$YnZ;MeTu>sP_|W zz7J{%M`9}acczojZk~%;!*!?u?ZiU(H)^I?a+?7bM6F>_)MkybRzh_Yi#lfYQA^ba z)!`si1SX>Tn}^=|B-Yypuk3@ApO}i-QG240%_pIb*96p3%}1Sv`>2Ry3NfLrj@n%9 zQKx4p>f?DPhT>+-kEcU8|GJ4@*@B=@bAgn>2+EtHMmiF;mNQVBYZYo!ZL=Q53goZZ ze2zS(!=hN3@`k90&P2U`1Qn6A(ag(|4y*#I@5)~Ji6 zH)g8OwQ`13Ld#mB1zC&2DX9!MwN>HREeG zU#OzTIZeI?KE|?@JidQ-u|Q?Brd?6H`Wotfc!c_!lxL{OmSTMZa3t#aB=l;RPa~lZ zi5Zv*7os{^iCXgkRn766j|%PAsPYT8{4J`%bk$4;nXI|dcjcl^M;X-jiYlmx)TqY! zSA~ugsN?>qD|0yNyiY|PucfGZJ24X;vH9On$MSDm{tDBQPhH*YgjX!!~~d^}-$NKd2YpqW+-rABJLZP4j*kRER5~I;e$tusLc1 zLv6X&=4YbX_s+8qmZJu+6*c1Hs24AwmgEZR?*ALLnLeOGSiP26lE$bdi$@)^;TVgj zP{%TBtg!&9UOA*)uhWo(8fuRUS#Q+HhN1>E4t4C7phADaKEH+BGtL7H!$+tOo1ogJ zg950CRKx;U6Z2ytD&li7xz7J066$Cy%J-+=0%c5?zM za^q2_X*#N-`Kb4o*yn4o82QcU)%m|k;yQNZLgq?zD%UkHE<}ZD8EWl!q9U~$6^Wy$ z0bf83_;1waeUF-HnR=$Y18UFoN7erf)!uUS79p|57Fjiy_KP%{r(?Jfo4z;HNx_!}uSEB0eK)rtmHPZ{IQ}Y|@qPmGXjxSI*ZSuyZpOn@dUJ`n-uq`N#YPcq9 z08LSwD<0L+Sk!ky7uC^z>k-t_ov@xkb$9{Q{$*7Ct2Y0K)%%xy@CdbgUtm7`fLgP> zO-#o{FqV8(RHUY&8eEJzhO1CBUV{q#Zq!7sp*H11td0fZ%)ojh&%I7x5?YJVs0JsX zHs3T<=;ooW*tMwL|08OkXE87Sjym@rPy@)^)C{ly`t}m4{l=&Wwm|Kn9+*n!zds38 z9F7XvEL136REP6X16hL~@EcTQb~H1e83(W?`DD#a2X#;pX@ga;9k#`#7>WO)zHdad zpdX$8t|S!F?x>q?1lGpw7={0$_CSG_=7y|+$~Qvok>02aY!vF|T!8uzT8VjZ4{F9& zQA_eCD#Fjv_wTFyM?#@b)ykM2RWU0n)Zx}>R76UnW>^!oxnfaER1bA*d)VjWu`2nA zI2Mm$SFF?82eW6;Ml96ZIL>47FD}wd4HjY8*s?E|3|h{3`4B7)t&kD%7t~p-tJ|bR2>T zeOc6>aGGL%OhRqWFHs%uL$!MnHKDtx$UXOxP{lW>W0$jo`5s>dwJCd|{va_1$KXfQ z490XcA0pFHGudxFXT6JBs&}aRsXCdj^_j65`A@MRdY6+>1HYg`dmRrZq8;ctG8dQUuQ5Ve~R6}P`GkSp91D*u4l(|sPD`OpOg*R~(Y7b24ZoZH#!7!cw zpGY*szftG9To2Q5bKFh7H)_-5?`i(%RRR@}?x^#ggj&K;sAD)ALvS-{v!24zco)av zC%w!-SD<$p1&2wL!LGeM&P-f_)39(KGxOc3ksm>Id>u98`=|jVPc#Eghgzb1sL&Tj zef(BO-*H0?a1d_5IfUbt^{X4L39Hii%VsHo*y~iCsnw;7{u-4c5TaBTWPvqSmf6M&V@Cn(o9lxCbX;)=}oBTY_=qpQAQq>}b6$8Pr-|LtQlQu>sa#@6<;ZHPc(DQ&e({Der^z$nV82m};!K za(kotn}_Y_-#JP`AHU(_%vwjG*19%oFSNl;*bUWS=JBS3PN==H1vTK~r~#iv-!Vl+ z^uF~as-9x{lu^4W}MtB<)p%N3#W^97t z!{J!Y!y2QG)1k>`Pn{cpcQ9X@b!>1VeG{6xK`?j#8kH;WMby@Ej{(x~b+bi|V2Vi7$_rx32rp@q~xexN9W?T&Qek|&~XliZiC7~C(qBV(nNpkdDRjI0bb) z4x?UtiRvihOf%3>)PRbjW*Td4f(mUr)cf(M0nEdna3^X2BW8J=gE$LE>HIgDZI<8+ zY9P1KcWh7{y~J*qc8*z+B+O5K6vp9dR7Boj6nb29I-*hcLr2t7Y({@J^C8qt`tujm z)A_$eLKjG;xn`!_P%jKbMPLf8P14K}Bji`qms3p);uCd<9G3 zOPen^pYxxbg6bqXU~SY3>rn&PfjVYKQK9@D+u<9WhRqk4EB7`wU}lvTn!g|T{7dsU zsSnYmUdKh|G`v7XB-vu~g{1Lf&cAm5R00RF?x+s?q9QRA3*&gyIp2ob-D#JZ zJ(3sIQ8ebkI+zZ7VO1QCisbjGiJn1S*|$;c{O2X1waL8P+(^-=7aF40z6)w?$Doea zT+~gsA9bNzx8)B|9b{f%-p`MEUJiYy#O9lzCfETrP;Yk<+AKrtgUP4?%tA$GHLBrn zust3{g*5+4^J&)z^|3n@b?4tfUA1XenZGqJipr0}(zp&a;TzaP=l?BRL>OwO)lpY<9aM*%um}#pQn(Hk^6RJwCEI9>#A4** zP{(>A`u_R<0up?Ua}HoL9+dmq{rh)QUh-??@417#}H|p4}-)#Q)z7;jl zov0<*gQ0i~HL<@@6L`6q^RJNvZZUso3`JGwg1X5P@fMCmg}D7zvozCC4J^U{+=04M z_n|iJB@D%Ts87XI+e}0vQD0OVp^jnSZC-P}r%|AR>_#286R3u7p=R>H=AWWE{ui~T znYNn&7e?)gGN=ox9wx&$)ahwqpZBo&QK*5=^pfaCV!16yxx+ljW-W*sKsnS^T?N%~ zP2}U#>42Ky0<6Fi?nTY;%}!G<_!~38VpxUp3Ro3Kp$6dnfrKuaGq?vIq0agGZ_Q^y z%3UU(fL$s72|HrscP3KPQIT4K+QeU>E~;Iq5Z}Zq_#QRzio4BwEsz0to!%sLhmXQM zxCnJ#_u-HD6KZWg+hdk!6>8Uiiz+{XiqIX@o_T;e|8G$phV3=&S41sQ8}zL`M(O-d zBcTv}hq~*ppw=wldo!b)s67#Z3RwjV#roDn>r7O=t*B#n1U0}%sP|IrGx=cDhgDH5 zuk+u9ggRV?s<;h(Hx}v+KaM&^zv3~xhiZ7+elxRQP{;HyRK2ht%$gU+Xz~?Nk?4)u z8QjHPFVkygjOeeztrP zRwVDDmiVkKe|~`Tug&8eG##Wyt!0ok7!{G+r~yTz22u&tVNIKFf_kqNs=W@V&DaC= z{vgyT|vxDq;z!J@W->Gwnhx z$$8X39@_F}sF0^SY$i|`6`6{t_Ts!Gw04PD9XFst{0Oxq|Dw)oh9hQAG(p`1ZBR?l z5!LYk)CD#T^;xkLb(8K#?fPS=&z5VbnZH0q#GCFXGs5DiP1hLpVr$f1h(|?aAgY0h zHow^BH=&m1Fe>yHQ0-htEzv#H0AFB!3_NP~Oi84^*Qr249o9lWY>aB4DJlZ(Py-lX z9ghm(7pM+5qBh}9OvLYPKJsTX(-Npp#rk*;C!iwK`;A7Kz$a)PGsyEh* zznFZKwH6lOc}FaUQ*C~)&HstoLs^g8e?tNl@>bSSQs;k#EjWUj>3!=vYnl_LJQr#+ z6}Hy1_OgD44SBu+wYlC}GoLj1BGykap6BuC)p0sbLY_l~{x|DwOh*0z>Sp{0byep+ zd%rv}wOIYR^rs1T z3u;g7L2a(nsLgd1b>3g1Hm&E3IffZfrzI=u6y!whnIfoxl|94x*XC(XfnIEn*RT(& z;kswd+IF?hv;J&-hq?!%&Y77vM4gf`s2R^kb+`|8JddLK`yDml+g=h1@nh6TpP?f0 z8nxEx&zryfibgF>5_ZRtr~%(W-4`!V5%RlWmLw3>VI->EN*IIHQF~(;YU#XRkkF^m zcJwufz6P-Z<$f2<-(purg?uXN`8?}t)G67HTGJD#8}KS>>29Oiy^q@5Z%{K2xa6zv zb+VACPeC{?!X#9P(qA?+3Pzpxyr|HY!EM;kmV16R0}aNels82!$p%!%Cs6NQK}F;l zHbVd3^gV&|*PMhdgfXZKXgO-+t57d&L=A8sY6fY3H#5zJ)5%9+LEMds#2=^`en3qm z;EKryp|0%Q7>z|RrOtnQ5?Z@%s9oA0wN?{x0`5f(sLECIEjAXbk?)P#WLr=d(M62K z|1c73T{96FfI2l}QA;!rwYk@#SBW1;sN-L;CO$-ky!dsqt81e^<%Xd);at?NUW%Ie zden^1q29ZWzCDDh=Xb-rmlm}oSx}M8cZ2h5%L3+v$xoQP2mjN4JixXeS-VM}W#Y(aTXRLBpZ2Jo{_ z&fj?wTPV1W|Kf~C=1)SOJvQgL=0E1e4yfZAkNxltYELwO;_>}&9CShL>W!$S+>4d) zC2C1ZJ~hWR7Ih5!pzq)R9YsPFCfNrIts78lycQwN1|r381;>16RLr;s3m!aY9P}Kvq!>F z=R6kGUSrgNTA?;!H`HF}gL-cw>X^=d!TFy|Vl4$)ljxVGgR-a>o1h}o3bl!Pqe3?b zLvbQD!L`^1-=aR%n!PgZC0R$KA~qFu8kS)`{OT3wU&rYT1?uQJYNk(77e$WOCWO(b z8CFNlq(16-JSuX-P!m{yYHt;)!)>U~grlhUZecNei^Vb0`^MZv?XeIAQ&1ImV17J~ zTJvW%pZ=}spcLx7*RZxhy*B_gkk3#{I2SdLwf6b<_W1==guORN=$zk0b(HFzc@U18 zNffH1a;WEx?ej!b#0FtcoPurfIkvz?|C#};M|HFtRsR5LkDNz8o&PH&6x!>k5&wm{ z``@BAOP2R$1`(*uS<&X(*?baeEnU=Z{|@yH=OpT)`U}G`@`E{+jZytg!=gISb4h4d z|AY$p4O9au{xcotL2atisL(b;?e31Kne{=B(>s0h@=#@GoJ(jBM<(hxW`kP9_{lBfZdM=e!tRH!?kIv#+Uz;x6e z+lV>^7tyOL@fHa+bPo&TW7NoVdHj4cDQc~PnqebrXH>%jQ4ySD^IxGpevhHr`w!zW z%FoYtZ0Df%)($^EzW1_+ zccb>iRn+EuikfhP!=Am#z8v&{%QPt$87{2 z<-t6xiS5(+`Tj}eYE-^(pjq1_R4C_Re!PvFFd&^-nq63#`~}or$ei9xtTYxQ-wE~H z#SA+C=SgU$f8u`p8?^)*GMLS`6}6jBV{uF#L(TX! zYH!>?Md}4ALLbog-~SKFXd3(k)nIef1vDKskaeiju^F{_cA%DIpDjOvio`Fr{3+_= z^(|^(sWO?pk`t527e)V^i`ounPWxI?nmBnWd?Q+Qf0FJvB5N=U*M{r@#*{qSoeD)Ls7& zwWhC8kxG@_JpTl>G{vzSmc@y<9M@s~9DdH%cnTGv5jp*Q-!YeB7xE2q`8l0%yO+cQ z5}9+Gt8x=IB7X&|Vbmvn&Pwcyy1_DrmLwK#{|p~ZI0_WY)yU_mdA`m%$heqU0h$_6!rKk z35B{-QPc2h>_Pqr*1#gg%*+R3d-Ch?Q%qUh&v}7Oa3IE(@bmrk+xMtlp0=c)@1KrE z;ZyQCWBmA=DgFku6rUNGt~3+WjB}Oo^ZoBtPsUE;T1Km{K z&-ZUQJwcu0Ar;L1Fc}r<>DUqfMs4D{70rdz92tVs7Smt{^!@w4y+~+;gRn3rR5GVx zF6zqs8ubT@>!{5WSlQfU;i%IQjcTwm>NwX$-6!#w90#Jl9}GjCqB*Gd)>r2IE3umb zozq`X=l(C$vGlKEI?QD)iMk)^q3X9s-EbpO^=G2?#9Gwx+=FWWAZkG8Py@Y%+8d9m zc+JOe?W*Q#U5vU~*J57WjB4;KYUFoNyZ>L*0P=)D>e+kv`O{|13und-{Zl3qH4n{>_3>HBb)$xzk6R7qsT5q6^ z^?lR?y{T%L3X!Og#h^l20X2X)?2ZYj8J39pPs4dpA$3s$dW>qvQ_Dmy z8>&3oS{2z#UZ*JuZI0fk%{LLX`*&a%zOm19#ro;=I5AipOQW9mL=9vHD)d`X5&I4+ z;%iidV``h{be#N$XGjoDn+zgX@|XpP@qb7S(WudgiNBc2o!XQOB<&>fG1E z+SnGgmTOR7G=4_4a}Bj=U!XQ!>iXtpOpnUfK=wcX{Emb+Up?%PEwKasf@85z1M|86 zHP$4533UVJYG{@&0eg`jgZi%b5OwU{qC%g#kud}6e#nZNK+#5=e{H5J6zGdZd;4Gt z>K<5t3gtJb0q#RZ;23Hb-$F&oX>6|O0MuTnh+2vcm=C+5I-G`jZxO2fJ&l>aLUx&g zP<)6QVPF&UMI!>WDXXK-aeq{($Dq#hDpW`7P@&#zJ&cO%?>2wU`WzLJfH+e>y_bYW z7H$h-P`kRW&G$v^_KB!-{2eO9hfo7JZ9R|b@G@#`e@6}MhRxr#KCtCaQ0;kNlPF2T z)6|@TQm6raicPRJYG#{IOYtMJd7a~^r8|k*-49Ta%+t(#yq3Z`bG?aVAv06l(X^!6MiKwWgC%Yxp(lJK-_ZfbO7Xo~(s=o*Fgq z2-J*=p!Psn^wnrdLL+R0nn4HD2nV)sb0p*ss>XUPWyUdt_YmpxZsUaUo?!Q4LS0WW zH&6G-imB*IL(WjNx#A#sL=6uJ^aCsxzfud(yd9aQ;+NTVNDx~$(*?rkPEMOS9b3D1`=IPNT%QX9JpKbG7@(tXDJ&JgK zcaQam^Sp6$_YC%|a$|Z%g#W;^5vD1p2KC3-cSkYy0pxEoirVhjo^?G{-IF~l2kqv0 z4O>UA^>B0diuAN}>-5SQvw-q;yfeVI*9RwP^YJsDXXzRDBiiNbj5C9J6=}P!yRcVS z_ANZ^My=%3&<}qh=`7~W824hYkn9zCI)eKC{OV^NdHrN@1AF)KY;=e9_6D4x>;i91 zay@-Q0veF3M(y@)!9H<;eQ33-9mikp)ILSBe97}iwj_?Xa#3Tud$Lb(_#NA}2P^Y? zoPIpi=uW!5uUF>h1|)`gcDaQUBRnnKX8h-$?x@5fo*eF`#M1t~XzP`GKe2?TnVY+B z>B2S0kD&$qY^9Ye{QmFfE@PNs$5EMjm))^_GX*ZTHO?@DkM4@ToZ$521~P?uY(Gf@)G@s*Q63=^bvx0YyAPZl3`m?10Y)M0lpU z-wX%|&&pftX-Pj9sISkhQ`FbbI!5suW!c@g1BwJDQo5CzVf;39W0Jx=``lJZMGAJL zh4MV(JEoJ3-*n{Lknhe|&hV?B<+QZK-ImlV%VFELN>A8`?R1L`{OIwz#Rj#=a*OAa zc-Edb^`Whw=kAh0bv+~9`-AER9_0COdRf7{W8JEQGkN}Yn+*=}eD4k#9F`@HzV&mI z-xJi*&qR0A;G7k6+9%6+zcA?#o^YW!0i*~0pE12+zI|!CCgr6W!&2&Xa{Y&d#k{n& zqA0D(?_+9Z-lYW z!;lh%H~gQ`RHvVIw0V-UKD_ajeRjz!hO4~9L{q(curFKhx8~&d@z9jz% z`K;85vn`#ZY>qoCIQq@=8$ zyKPuV_I#w8*d7w><5|4b)V)6}!M`<6ySmMWM`rI&ovw^nKe42r@w=ZEZ@LSIhXk}G zmz%fpx(9~`=lPXfGTzkB4bn~Rd#A0f+_${*kSE{r&KGW;5s{wzZv7F#^htjfn6Mq(-QFZNyAZDYwta z2v2@@F8{gO-8VACzc#JCb#IN#lskhRZ9V#mqMbcF$z$6p;s%Wh4k$}WYo4ZZi;c=z z@E>wxdESh^9#E>EnUv}0bF4&JH!SB48dW*wXHxvr5vMS}2Y3=}TP{jZlX>=-{0!7j z5Osbe{hxb(RCUj2xA5q?p6Twe(FvY%?yb=wdD=442DI@h22gJ&_4U)1w)9z@+s)$* z_Ed1odP{VwMx8(G^Lo_%n)mvW|C)4F-&_Che^j7sGtd5GEGtM4B>gk>GmuV4+n-`I z`TuyODC*}s_oO!>ypE0CF>2_io6RfTob);LbF+^r;(6fK855QzBW0avahGjH^_se4 z#{_#yx(mnj@*Hse$Hq46Lu*~Ab%Wo}_{~aw9={R1J)W`M;w^ny(oZMKdfJ#~qHYI% zzoEP{^@I4;kN&vQ#a%HrI7@w-LwDT>$&F#Fa zy9dXGc~ZD{#zh1*=ABCXX0>e$b#spo_7rzx#)oRIYh z@)K=U!E=G1lT&Keg$xg6*{t@9n3&E;hm+ zYy{fyeirKREzjx7v%c=22_Y%Asf85omlL`LE+V-}S$;~pffHKLG^a~Obo8L zhTLs(`m(8?jx;ohM(^5pRCfA*@AK?6&-9}&sb$@R6N5c%+}|d~#ayLMxE)kyJVu+d zC_8H3ZD=Q=cRTW|6#4pYr%5?I_1#gELbA-JUT50w$Ma0Qf0q0RciW^0&tvzuNhPZO zWZN0c^BKIKWb^l|k120L03MN_N;-=4d_AL|aTw{=pB(8)bcapOnPmw1eEjaEzok5X zNBW4nVR9SK1lNB`<)AdY%imBq-}1VCzHysPsqVS%E}RlpO#e@qYfQ1zoA>IH{*t;S zC|^#Ve?0EYCO?IAC)yw7KAIBY|DIf)9oeUjTNqcOPq&Dq(82Kol6v$_3=K~T?U59k z7(XO_Ky?^{ZDJi~p=#W7Jy2dAlCidvkePC$(fL@&v69>}W+iZTfD*itX4$1ET delta 29587 zcmYk_2Xs|MzxVNdLJdt?2t5fQgcw2y5JHF0d+!jCPUyWz+4NrB6zNT>Akw7?s5BKR zQbehu6s0O4h`{^(otbC7_pFusnVCI%%74lU=;Ix`E%4{9f$sIJDHk|=`loiBytu4{ z<19@}y1PmpXX-S^3B+kw89hwE3z!}=Om`d~=EOwIja9K77RFUr6i;Cae2MAsKa6u6 z*GV(Oamr9o24is$=EAj@0S{pw{1!EkJD3BXAmen>%ygX0m>E?s4AWo*%!JiZ9X3O~ z-vLu$vR~J6`jN;$!4Ugkymcz3r+hYQhD$IdE<+7qHD<>z?DNxDjQkmFiq0&@X$;L! zky($q@t)16m`z0J->FU_1J=fj*aC}S7t{>r+2>0znEVE8hKI2wW}jms&>JzK637gL|1K5eGcL+6u->grqZ!rty z=|3{<k!BK}(A2NV>>m#7(pd8VN#)QrnuEv%0Pa3N~I z`!EhqVMBb4idfzG=Dp^qddXNHN1!Hf0<|O;T${Lo8pt20(7ixad}s3+IHVQH2VpsE zhDC5Ls{SF=njc54?L}0_w{8A!3@7hf=r~arfy%oLNhmafP$T*Xwab^IX0irz;uh2Z zkD&&34i)n2w)_beBmW=nz?em5Q{F@!%crP*GJb686+zl_og@f{WAk;B=g9>%d z#b!X|kUPq$jG9?Z%!w^go2fr$#@VR7vJ%JOaSXxgOK2OrVl-aC8T9X@TFNa)!93K= zaxXKxI}#O<@~D~CMD60%sCr4Lf%im(d@yPN<52_jP!m~;Bk)Tci=~&Ff$hVcI{&3t zI8JYTfEr=zm5wt2Pvc;$w2DS?7f!;2)ppHM5ju|Q=ss$oDc6|2kOLL52vq2cU^c9a zTFMUS29xMTLZO^sD=fntups1x2Sf~ePU*u z2Q|T1%!RcuJ9hen_$x7t0yQ`j6{0n$Q0~FPcoLbU^Aro<{B5Y=J&4dz=gA8H2mQP10>W;zN};UX-7%dr!l!y;I6 zqp>3@g0oQrT7eqCrx=A_q1tyJkVsA94W`AEn@j{UqB;n}cx;ZvaR!#bFEJWlVks=R zna;5-DnAz$*%O!-uVQ(8g_=OAPyG{eo$@5K$y%Zwbi*mw8`a=5RL4pXIYon@(rko?Xez0MdTaQl3l>OI{$Y`=!QzUm7{{8m=0@TN^Fc;f)-dC2cwqa zOIv;g!^r=GH89s_X67HD_S6tegEMTohuUKsm8XB_Ac>544j{Eie2jsZW4n1F6czFa ztcTI4%`_Y{;T+V!R@nS@%uN0Ws>5@r_b;KADOaW>C%M zJD@gaZ;ZqtsAISsHP9odCHofB<3-fKZecP$K}Dv`PSbuT)P2xT_pf&4R0H=@C+*Sx3LKNcAJ3|#fs!hxg_2vF$DGE zD$Ia8tw%73{ApAKZrkz)s2RP&aP;jln=S&!kuQr{f`d2{Pop+xo4uy})u^R#KO>=r zccTXIB{suzs16E!VIoo#>yWR3DxZf%aWU%DoWv&h2o?IoeH=AxggG&2zo}Og%aU(~ zMAUWWkkCk%U=V(aGw>*CVD%4}P_{rd+!M3l2-K3yu;mL;n{6Fx4{XLL+=IFCCTbJD zM(sJ@K}CS|uS!B|SO?WX8`KNQSRN;0XFQ4uVZ$Kr6_XDTvUmu2qa?z9EFweJIsUW-Q#8ek*JU+phn&Z6^S-B-vbq) zftU)Xp?3Kk49BIm{4i?9$50XZ0afn`YGS{mBK88cm)x``%!B+mg@Ra&z`fWRuc2H)h223vE zT3{FzN1`IJ-1;?g1vvLHEv`Rp2EGloB)c#j?nmvJV>W*cHKBW`$OQag?uB5?NdHbf z5}B|K?!sg&g89#w2J50WQ436?=ctGbKrO*|%!~6eKW;~D%Co4BpP(X^?yMPD1ggCX z=&GScB-C(6)J&2wHTJ{II25%9rl6K;sV!fHs<$0e;1{Tg97J{Soy}jz4CEhTFZ|c$ zyPdP=f6zIzX5&yD%(2eL_sB0sMPw7|lw86)`1pVM^QPWo45a)WzK?-FnwzgAY5*Ug zBGm`y2B+a9ROsHjY}U2_>cx_n4XdLf)EYBld(kk}daLHIWTMEp;er=^|CG^B+$_9al!}-s-4^8=_w5Xv=$`W;zg6 z|3h2uqLywNYG(5>5x?h`%b%q(BWU#xnRhYNmf!|3b~| zUsR~m-82KpkD6IYR6F%hd!;pM^Y+D@=%U{H7*&4@YU1DAbWJGFP@vFXK<&=!s6Fuz z)v{oJu!5)tilFvH0%`yitaY#``Ie}gaWbm?>8SVSV*svnNvOd!s17%yLV5@_ zknd14`We;0W7M8_g&&~vtLdO4YR_~<&2Sj*#5t((QahPs&^++!Puk$7n<#RidwWEtgo$w z|1jmvQ3rcGY7IU{ou8ekfqjpGcn5X9o?u$^xqq4m=`aNa*-<0SiK>_n6}qCBfK@RK zj>Jkh0TrRIF+H9`b#x82GsqJ*HbiyY7BlK=tQQG&Gy<#QM4X5xQ7_hi zWNd~y=xtFA^u-A{#+C;>Hg{wYR-wE$hT=?A$6GNY?n6c71eT$H=L(7Z6l8m1ERF%> z8>0r$4D~`=ERTI`elun!e-L}(X^h0uPtE510M+qeR7A#N2ApbLfT8s7tg#ioMuqY_ z)b75BMesg$!W@5@0gXT%qp?^LSJ?cIScv>nY=AlcHWBEK{*EyVd_XfjqPoo#$pxq(O~1E2_bQSQz6m1lywqG6pq}$(RY}pw@Z?YSV79<(E(w((kB= zq3MP9wR^NrHN$ISEk+0 zsK_Rx+8crDXSQoAEJHuqOX4$(!KnY(57-h_ZyN^V zH>l8GMJ;XWH)bHYP?0ErY1k>yMxAG_Wr^Yy&2mSFfzQa%Ovg7j)WE6k+)r-@x z5zfJScoTJOWB9u*ZO#PLCj0>7u^$%4b+-H`)CBIL|F5x9rZ5fUK)o1>ibO1G29;4W zXoS(&3Ki;!sCtW0n`txZw0waf_$}(aKT!4l!bnV!(&zujWYOp<#LG#j;${rO9hd`8 z+VUH={4VCE{0(YNbEYx_j7EKnmP56ZggPx zzx}#XpoYiV3R5u;`NcNB8#UwOsF_?rEx}Fu{5j?#pE|919*R14k*I+dL(RCd%{RnY z@*P~8n1eb_hpi7$OOPkf=l{Mgj>@+{g|H7QQj<^(&#*2*b+`$2zW1Rf_Khw79uT9(F};agDO88G zQ3Gy-M96hIkO-il2Wm}vp&IOu3h_wPCY_6#*>YRH)#krKMdUo{Sp9)I4QVo%wGTp_ znlRJ^>!W@H>Vc_r{%4Yiq~Ie|NBdE``2^}T+(*s)9cnO??a1-g|sSHo{oc0LNzL{A&OoQJ@!>qC&aR`WdRBU8sTlfO_#dY9LSS z^S9`~kg}Ni(Wt#p9W~QVs7*H=8{lHpQr*kK`L9XhF$Ee(LRNcDQOB(zDzx1&3VWdj zxBxY%?IvQ8v zY%GFBbNZaN*cMCRUeu}h6D#67)aI&~%Y28lM;+5ks7U;YYBxBynOI?bpL|t}*ZJ>D zLYv_e>!-Mx{0`L2lk%95b;eloqfxthD;C9HPyPtoL_(oigz@+ZYJ@+dW|}IW8DK8d8it}8h_Dt#b(DaLLl$|26g<``{l`#lZY#Pvl1BJEM-*VAN7gL7j#xsEDKpF`+Gi+FT7#r>6(%>)FLn zT!Dq~FzO<@6TFyk72Hv$ukPHX88-4FQXXL3&l|9xFTvmbx;>eJJdi%ph7(d$KWDd zhB?B0&T8C=`Yvf+(C5s0Rf`8lX#9T??vhGP?~+UJZywLNb>pXthCN%9>~=X^d!;CEP=2A}FV7BA}a{~F#s*3>(XBdHfy%uHw!w$^*t7$f5R z<*qY~L_G=)q5de9uDIDGeNg4|aS7f+eQ%E{VSWKwg<6uYQG4bh*2XueJynxYHO0QD z34Mi?@dawnB*g2&wwH zF_@YMQ&BhB98?FJY<>^w{GYWxME&ZPu9_KG0aOP?QISbN4JZ*6vBs!@wLsl~?OalD-r^H6_1w-7^d8>)e`s1RR5b#NWS@DXYPnX8-fU{pR5)qYW1UK%w3w-yPF zxHGC^Z`6_uLf!e}QJZN2DulnFmgGL_YJP({W?5^P-=w;smf|z(5mdeNsCMt7+IfL2 zrR$`uX-1YAHKN?8V;7GKeQ*1G1ai+f6HxcSB-EG8CR7JUP!YL^h4C5|!ql})#9~kp zErIH%GzRJXHzlDFCu12LiE3!KEk9&EgSt9zp?32-ROIs1Hpi(TYH4Co@5iH_SHL)| zfjaKP@jAZ5)+)Hn#jF?O>YAA(phj8`6{^OlNOVA*j^3yNk4N1H^HDQBYs>#Z?U}%O zrhWlbd!;cJE7*J=bag%llF)@P6g%QLtcJI-Jr=HS&i@pwM1BkE3VnduBT)^^9w?9M zXfA5N3s4hVgW6jgQ3Ky*J=%ctuNnPFfsWgK)Ok(O&@`MK70O8ThZfa9JZjBr+UM<1 zd!h?!iKe3Jug6f_V)Lg_@BfGz`0oul|Js!=DNx608X0q1qpW37_3EM;XoH$*Z`8~N zpiaeb)N!1Nx@wo9I$CMnfqL(l&425XP{Y?y19*ViTyIbvCPlkki-Jin(aq*d;)9Y71RvEnwSPlqK;uX)Ql^j zLf;rQks+u}IT5Sk5!Ap^HZ{-Fpq3^FGCsDV_#LQJ(jDl&tc zn=g%VSe^Vgs1DM#FcHa%mC5JFcGv;+2atoP({c~hPee;I;3zDm^Ix7sEgXbJ@E~dr z+(&)erD|pJSx|c<26cl~MBVAFQC~uxF$_ndX1pA=BOx*3+mj;H}GL;p-r9qz)>_yaD-dhJX||3KA$gIdDWNhX3hPSip3 zx<48wasE}%#XcB~q2w2$LcJFi+LNe`Z=yo~FXqRf_U7s>iQ1fPQ5}y#wL2R%p$({G zxeHZqAL`UybxA~#@O3b|G8)H_PsFi!1hoeeKQLb+^-(i%t)6uQYN-yO>Yu`Ryok*) zeMi$zN7VZ>P?2(1l2B+jqR#tX``{hwSf%Y`29^i4mT?%13sKLHV->uDJuz=*)9@73 zF`J93w;sphKGXoqcJW8Xb!w1MK~q!UbU^La-l!Q3vrfW#3+||6_4Ygzg zZGHl3$>yLYxCsm67g!u`VT{gy_HO0|tAYwiH`IXop)Q({sD?g5&1eg14}67M%WL+z z)7|_5BsboqybEd%RPSLrZja&Qr(i?;6!Yl(zb2uEgOh#EK8!(an!8vMpP?cW)zh5c zlBhMTh&qN%Fa-OdHtQTrzzsMaZ=eR+sh9bil}T8dd_-@~{~QwSNzA}UsF{D*$BcY3 zs^gWY8E-~iAjePxK7(4K-%+9e8};>@vadaEr~#J3P1qDa!#DUjZt2JQzd$0Xzt35S z#RvGDrFaT;uDcF2BTg~ML}o1>QvJauLV1RmKcEywb=(LwpuVV0HwyJ#Fb8$q7NC}N zKkDi}H^epP_%;P$6a)-4AuNcRVR=+TO;G2(E9z>Uh}u*$Q4K9cMP{pgz84j_!>FbC z7IoA9fg0db)DpjQNvL9mVJ7s!sJlNL)o~?T-o)nHqh>k)wIp*;9c;Gc-=dcA9%^9E zP&Zxb;bs%(LA@7mbsO0Sy-;g43Dw{l)b9NX%i=Hi1LhcEeh2&=HRFg6O{8M63Hj=% znSG2Jz&h(*ROnCPX1s|E)OBWzG@)OFdSM?{!|zZL$UMrdT{spYUkkOSL$EE5#L0LW zn`8UY=9kf3s7;x6jAlLVr<`6c(RP2@d*bFt( zHK=3s+?E#|Yc8l!*qQQE7=r(twf38>dr=S^kp zG?HBul*cnz0y9iA1FDQ#tNN$`HN!U89(C33Lv7k~sQchHYQ}$|BA9l%xi5mO`B3#E zQ2i#jB(!UrpgP!y3f&G=WKN)F{0KGjfEi|h=}|MNgj)MfsCs=+zkrNG4R9V##Z9R9 zi_bLA%b}jTbxBkt(HRqQ4eFf!hKk5*)QhEOnVT!o+7JsX=PMg>oq- z;Xa&!!5^C|cP%zxX78{)-oSd@ZV- z!>FaXh@tq{C7~BGuQF?25H-_8)bVP8y6Ifhg|gC?Z$Wi%5%vCE`}{TfPswUiKO1U- zp{NTg3bj{C+j6%S2{q6d6`HQ7hKHiob}A~QcTwjz%Nnx>>R<%<^{8L1zQ@M+)aI+M zHEZ4jHRDy7jQg<}7W~Bjp6iStp^>dX&2%ejPn<@D`Zt?@hmquStTSIq6;bb1Lk+O0 zEgy}V@dQ*PW}=pE5o+dZQA@GYugmweeQ*QU^58M*>h;!}3u8YjLZvsDE3+Qz+;>4W zG|##L_3e2GHRD?th_CTuOtsMrd{yZuYzoEWBob{Tg>lzM^P33 z!}qb^R%1haME*legUO$nztI?g8t4$zl8nSqoQ|5HNRJ*fNT2dsj(KI8nWLcwk3 zCX2;e;9P+tYvwElo+Mz-^7XNF--@SD5qW_5G0S#y42z+TcRkcV zKHTn_<2H)|HM|BjlPxyC1J&_C)S6yE4fqjiPrO21P#JfaNMuJXVNTTZ_ier+YM_l! z-z^<&{-kRYSFC@a2JjknSNnFFj#HzKUnpvZt+707I0`kxeY;G(pHKt*3oGLrOvH-2 z%>c%tzGLR$esn)0p>v+R$9yTAMCA+bHGkfpf*+87fV!CKe_ni9h`mLPNoG7?&|Z&5S4iW>1f)SA7)P|S4D7;9~W zsy6_2S|+0g_!;WG6E^=7>dWdW@*9s+@Q~^61I(=RKahm~#zNikGf~HAF`mMWsD=lA zX=XM9%aY%Os`nde&Hu)t_!bq3n8Rjo)I>$F8!7^$Py^qDt{V7~gs#TZsL)n8k9RA82 zi?gV!_aW-bC*#*9WQ9?ira5Yt4@WJ@eAGa;+VY*K<9G%&fk&vwyhXK_{Ts7%u~?OS zPnU#3{26LZ4x-NMInsNb%WJI4Y&hp54fmZKOOZgx&k%x-KdD1 zK@IS4RQqn$#f_W;O{G`UR+lR-%?@BWi%Vu@L@%+B45l z_1~Zdn&yQ6p9{E7RuXC;2o-_+r~#C)RzrobIjVtPs0N2%UmR`o4^T6GhWb{_bke8) z-HKBk6``0@W(n$Bd-&!2O|S(kPz~&}{%Cz@P4lg}>B2CMdUb4ml+CY0U9Fcf0-vEm zp8GpvMQbPPWb~i^%}P-5fc1OpHPl)?vS$3=35n#CG*hV!ql*F*|bp*3oR$*4`zAGIe&qBhrD)aF`_I`4Z>oAxWzF+7L* z*1U{51y@mf<_T(G|DyIz@LBU-$XU++H42JSpoTM?Giw`RZE2lmJ%G9g9-?NR`MfzL ziKrR3LUlL>bv&n{I$Vkx@LE)ax1k2Q(hJ-o;ddC1DKD74Q5IFNIqJ)35UM?QJqdqF@TcS31ck5Wx=~#?z zbrM@iDCB>mc6H!&^DS2vwFz6Gc6A5T%#%?w_E7JwME@Q_)%zOt-f7g5TtY?ichtaN z*ykZPIRARF@D0;pDbx})L0z$3u?Q|gb@&acgR`g^{fz41Z!C!cH_glwP{*_$YNq{A z1D}A}tXom{$C$LEQy@Eli@54dIi<+M*Q*+-~<^*Mi0KH#?Lu*+{| zU?Wf$%>?Tz)C3QqI{wb)&tVzzH(U~7By#<3emN|MdN2%i8n&YvIEenuWy{Z_27C<_ zv1h0~lje?zR3>X~R6B+6LyW@)xCKX``il8;0FnzM$qvVQ zxC$rXL+hYF%{hLB>M+*>V*zYQJ{lGB38(=~v(CqDRzZN8-*2d4{AxCV+5vsYK~!1)Ickup4U{lI%s1n z^hB-khgb^7qe8V0b<8fIX7T_vkbkf!ru@siR|0kJ%VA+`gwt^ZD#9uMHuZ9#zH9QM z8$zN23C$!4^&3lHR0AKOmgE4cfeWb3dIzb)AMW7-O* zV0Y9+9zWy!tAl?j(2Logo6zJ&g(?PhgO$Qitbt9iJGRCBsBg6#FHD0at(8y_tAn~X zKEQ(58+DrIp_X9f3(mi0x`P5;6u+QC_!u?Al>eBSWI{bJgbH0*)C^jq8tj7Va3JQw zsi+97!8qKH#qj~^A_{qF{zj#?OF|U~VXk7s>b(-Efz(AU zVGGniy4&ZY?ehhw2(Lmd;RaMc?kW4=4yvPvsE%IS3R(X(FUF!mRtkG!ZET0Tuq9@B zZ3d8x>gYpM{c)&GJs$&b87i_Xkpa8TCKCE1)qd1wxrCa*J=ErWYxDX4Gx?IJwQPo3 zsu8H)erKb;B{!jt-2>FI%=*T3SPzSlZ-Lr#Q?QT@_$m@=-~_7UUs0RtB`UNz-kRMV zhMHMX)QsX$1FnGDqzzGfqyuUX3_>l*EYwo1K=rc+HL-K(|IgSxC7}qUerNs)wE!xl zgHa89k80o=Y5>ns$L&AVQUwxNg*p_~aS7A}>f`&^3v~(>qHe@BsCG7@8$)6n361<3 zY9>#uK3{-;hFPrPsD|TFA#7^%y-{Dk(^2gm#;*7fL$PTRa~XfB@G& zlI0X=hM%C0*FjtH7xWJZ)v+%{fPcmz7)rhr>U+MW^+VL2SdQA9J5V!zFJ*xLpRxs^ zBG(Hw;o&J=)9_3Rw5FRe8h4;BpzEk(a@U$Nm6=Hxs-sv`=&PYRYKaPU64u3J)NbF6 zs&^Qh;(65GD&(d%YY~T9yV9sNZGs9_GWJ5%(`Ne<6^S=k9`mFz^;)6c?~9tqRMb^I z7d6ve_yL~8br_X4z<&|BXGm0{;1y~HWdcnDl~Bj5Cf3H@SQYo6BJ(eH!xZUE2R*H0 zP$B*ZwR9^{6WWGD@HpxelusX^zlw34mL#fE5RxIl|4%BrqVkVWYg;m-31v$xM1C!9 z#cxqdGdz=-zyehLi>NF1CF<%e@Sb_z40W33qb9lzzts8vl!T5$&&+1?4M6SYxmX;J zVFJFycr2F1tYtS;gCkH4PDjmnE^2SALPcsfY6-qXMdm!Jy&D)$|4wjL6O#ISkPxUGWg=o(K;%AuWf^$T!5w_z7xYzoV8WMNYGcv!nJ@ z8C3f&2H?V+oPVv&VhVH~x1wJB0(JaOp`PDBEzRFJ3ID|nI5t;+vjq$1wwn*Pk$;Ju zabunUrz2*_8{q$EKz&g+WSV>d{y&t)yCkYmFd5h2Db&r?JHKh*6e?6PAp!nhRN7!= z@)K|ceuMR~b7+9G3b*5GANNO?iPWoTZg)*W?&xu{by71iKk)Hz;B6Jbe@pVjr4^a_$ijnvNwKVywn1K~U4WyV$LNh6g6|n)9##y$)aqC%B1b)U? ze2D5eUsYovRD-eBGN=Jp#RAyLmQO-mWOLAe6D}m70c^z{coa3m_p6zim&Y*jZLmL% zLWT4pYCyHBn}*t=A~z6KKGnJuwX~n1_QrA4=DUH_*ji4;8s;~ZCa4NSkwf6j!Qwd2 zKK}+akb9`mr>kiqmK7_IZ;T4@9Mtm#sL(IRa6E>Z=zY|0PH!-+&VSijX2eykEijY{ z$*4Ur9Tn=Gm=O=6LijDJqjUE86^tkUD=x*HwfXX5CcAJX`LlJ*d-dv?h&9EuI{!UM z=of=Qs1C-WLN*(9?$={2+=E)ncbFXu)H4kwphDjOwduN`ZpLJrUxB(0)}l_udK`c| z(Et5kuzr9uj)I98g{d2uE3_EaAwLwgG)J)){)`%MjfUpfHARKKi?t`}e&~;yz;x6p zT7qi-3tRqcL(ac0g1;zGDBo*jMi`8WKsag_mqRT<8!UmHQF~z#YAN<%K|F%$@ORXE z&r$7XZ)_qKhoR(apa$5zG3Q^uV2qBAsnM88tB1=I5X`<+}eBoT5Ox{RZkBXKiXioEJ5KC~FL=!#LDhmqZP$jLlcJ zR=4GKQ0+BF?TNOiQ!p3(1NwwS6AE^rHc^^pW-0O^o7agztz9H)cUMPkzL8iJ=VEQV zfEsB2=4MY6Ky9`XsHLlfx>stU?uRx=gk7hPEtrei{cAB6x1-kd7HSPsw=hc;jv7!U z)XbAm&%2=Z&^XkLr=j+Mhl#@BR_}C=@StBQZBM;sv|ov|J{`SO$>D*+$(`rPRWB~NbI^4A?2v79 zH~ISBrsP=P74HiF^QeEkn4ZDDHD2|ekr7|=OqY&6)u`{v)@bh3EQ=r`@QPf*Shp7m>~~-Yn_;-YXeky+SSx;V{>|Va!y?mRz zX}#URGn8H6tw~;%J|Thi$yK3tl2@ir(~P}owTm6cU2k!p*r3Hce`rgZ@>U*dZ1=A9 z36A*9w(Y};{Cr10K5BF)-QM3Tf0^&)>KpFc<5lPz>1*M2<^SIHX7!Er#xUECqayV#dGq>Z%ed6mILi#)dfWSz z^96ek`!x;xj`DJ}6y??KUn$p5bLe&xRYO?~^lj05WW zhIp+9L}#o{`}3*OkGk!>c>|(-?Yu(+Y6d1y9zq)*dl?7DW~oMvX*SN?Nbm6K4~+F? z_C^m3VFxT980nkp9UB-D5yV>?X-S_8)YtdZY3l2Vv|42fgG$u~8jpp)Ak%ozlt4Pe$@>$oF6@XZg`*6)i3Ejt=S-^tEkUrQh3#?er4) ztFJL$;*gd>H+eppXYF~jyejee%iB7nu5YCGYDnFTM|l1ry{zWlv0me$*?jlCu0un7 z2fRr`!-Ja8w>~HM`JP((O!N*7%~K(_eX@f0i;xcC2^WHsmh|BNGo}~Jw;yd+qdb8z ztf1ZpUeK`c_-D3O5lR#Jc|@(O{Jfw%j9Te=gI`trpVgEdq@{1YKEuMJy71(GpLV26 z^W+&nHU3Yzp5OBJ4J#3|@&AmbD*YtU=J%BK;f>Aq*(KZD2rt+0=)_Z$wqqpv^tTqE zb}N1w{GUFSkk3ax2X&g*mQGVP&zm$n($~e?Iy_IV_LM)i&-(H#f)TW01l_$`!<+h+ zd+{Se`t;;^2YxE>vx+{qQSS-q|9v9t82Ao#V(D)e&kvBUMum0MyI`Ns!HeYo;aLpz z{-WMye*X7KO<6zh=!lS9;iMYd9=hAdb9t+&_i9AB5NhsX_WF zKVQ<~4R6zjA%Shl<>Rd|@7#yMVVB7T@TNZ3NjJ0aow2s^0!M}f{>hU)yyJOsBcpxy zyrhxA^*^HQE@dff&4HxvGM6OE^_hl?>6O2b_J7LK3t#h2Im*)W)1I_G-FRNuJ32Bl zRR(H=cn?R;@x^=F4{s81H^d`0?=_iA)i-)OJGn7Y0h-n22@ePz6-V?x5(GSUXLQ5yrP zw~PAvw4*HzGOris2K&l+wcQdO6RC6CKCesNExgx{{HLT7{crvM|5J{#&v^Ehv8*CJ znDj~NXC|GAwrgWi@^5*i80xdvyXHnl)UvTVNez9v+Pu=uNuNib7d1B4_lMVdY z$~w~GUfYW5@gL9~8|*9LZ5rFlci0OWSF?FUQ8~H{~6vpM@WN^qX2IZ~M65p#0RnLG4aF`IIsIhsoZxalyVw@Ald-!Q#=Uv4+H$L2#%6mROGD{=gslZPT+r}_2Wp~^vwwJ|kN!MS+B-KX*w@CpKdEW_ zFVu;!gX)B*Xmbu_$L+ff?L_qM2Rti9zMeN=avonjZ`S0Hpt;oRMBDn)cQ)QXOa4Re z=;TP>L+}3N5{bubJ41OsoA(FW{2l8f${Q1a2jr)bjwZcO&**0yzV9VXiT3sJrcKEc zG?aWneh$#z3ZB0r{f)P8N?YFqFKB9|Ea`Zczj<)>@VY*`ysrGGQm%QMriRDq{}JXo zQ|$EOy}G2AP`5bcE6MYZ!<~8Lr;zSQ`=h)!QzKKoCKtLhYTEe4dsBq_{)j8wsA031 zssp=r9Gu**Z%nn0gS(auEncj6@tC;cF~y6A#wC<3Su(m<>0-t9K4|7^{LS7^as^zi G@c#hgGH)vY diff --git a/resources/i18n/en/BambuStudio.mo b/resources/i18n/en/BambuStudio.mo index 09b14d79f0b9769d452deab9366c9b33d0be2985..381beada5e150ff56fc61dfa252b83dd0bf4811e 100644 GIT binary patch delta 29596 zcma*vb$C_B9`5nIg9b<;gb;$oNJ0o6ELhOu?p{2>9fED#eIdmu6gYT+7AsJsw552l zV#VD`u@(y4@4IKtbI<+n?&rz*%*>iK@|&5pcA%VdC(^z;nbz}1=9KeXe7dD}xpHEU zIG1a2T9<2Y7nQnPc_+JEz8HfQFb+%N08Eb?(T%&XBJRP;_%G(g3R7IJf|!IU@JmdG zOR$K`<#DYg5l_J-EQA45U9MoPj2W;E=D=>~ixV&_&O*lNT8o+R8&ti6mBlt#5v71d8e^kgLQg}u-R{mG9&g?1(?WMA6rD=~ol7SzlSV`lsv zwPcS`p-(l--0z3VXGIMpH|EB0%!L(a5&tL>?I_5I6R<7L$2RyHHGoF5UEX?aP%{{3 zoo!u){*-UPg18U01W!;MR+wX!tQ~6Y2cedB_#EP|T{?*ZjdUw&AiGgBJ&M)w8ir$( zW3Jc0BIH|OJ)DXGcm;L;bF71(Py?yJxZ9}zp8`aNqoUHTz4+$NMv0s`HFGC%( zgUB<<^%H7lComgcLv5Zns1CC%GYa36Zt{3{co+Nh3tqXs$!wHKD4BDMi@<2DSyGpNwt z#UOlvilpyK;;#zfB(h=&R6})azBTH&^hY(EjB02UYKf+yA~G8lxy7iZT7$Z82de&F zRQ+F26FGsp@4`yruMpm#KsUZX-QZqj9xQ&S5r<+RmO{p-TOZ>q40o7jSuZh2I$osVkWm(KizAiEr*I*3C?5j-#%3)^mRj@QRL+y<@s0l2$ zZb3!#2b_f$Py_9{#%$jHsHL0jAyJ6LD%1?l+6s42Gxb?(LYWKW$VXrYY=-%9kM%xk z09pQH29yUifFc-!)lu#D!_+ty)1qez2}Qs`b+8tT;}tB5{_D)^xeCUTABiP!Jr={8 zHlKC932`0FNqGk>iylmcdr=cQgxX`*Ou5JPgv3M&{z5f4bc5-53+5ny3)R3!)Qu@O zni&RILs8`gP%|rQt&ECDP1KULL=CJbs@*9Vsq?>vL^=wNV@kY;dca)88u$)1@+zB5 zc{>avKLS6;<*3bd54EY@V;c0|Y|4XC5iV%+mC%oTGkik-uFfQML&Gg*W-U>hqbq9U z$*2KLLk)DTbsOrwefIhh>kZTd-lHZI{EeA$ZdALaF)!9ePZWuPBz$oR>V`F_kZ-`+ zxD~aTKH_H>xYZ0S52}7iRQ>dX!)UyM zI(8|xnSn*2W?mT6V;R&ys$mi~MMdHOs=Z%O=l?uv6F$R|7`xp(PdZ{5^24?he~ox2 z1?phG^(blp=P)C_MU6Pkw`S(y7(l)_D%3SFKXye8WGh3*=Z)01=Vg2)By5eV=Rek z-!qLw5Q({16F1rmZ?PcxPZ)^>cdKoyQ*SPoCcg(2(buSfy7rif z`r}lx(a69&uI(hWrh8E#{RP#*RrJTlsD?h+^0eQZO&5f^FDJ%eUd)aSQJb+RYV-9+ zE%A4#rQC~Z|2SsX`M*L!o8%34#JIgClnc&b<_+}A28SbFvP{$qsl8` zd8~o4I0@C!x2WrfQOEmN)S90|ZSJe+sY2ot35BN0L32Z6RK68zZM&mpIu48AOjHL4 zQRnNNJmIaESP8&Dv2AghNpyoP)u*2-V=Xs8Ak3 z4dkNr7HVcsQM>#tYGAIzW&jyc*F$VR#u|@mx5iLUadH;d|6B zcmHIb1AeITBB&XcL`9?ms$MPB%$lJhmWbL*Lv8sioJjsFj6_e&&t})xLmj{EsG0nX z5qKHZ&_`55nSL?5JPH+o`ly+7#sSzHQ{o-ej2~M6vE{x;P5sZ1CHA)RmQ=c;5?;}u~vJ$G}4ycF?M-6NNs=Y0!b`GK1 zJ&T&i74)Pgann|KfZ7B9pq9k%w7D@es$K-9z3&kqc7!sF&_@YSX_e|z;CEXUB|ij zFMf`*&zeX1@2Gs}IpVL)(e<2p`+bj!Kj|OSRCtP7My^Z;bP2$ z>umWR3?+XG)y|(d8Q)@N9PPPa)^;xH#x_kQ87^>mZs4p6SU?BdBTI0+Y%>eRQ z6EKwW#;A4%Vs4y_8Sy`;&ASWz(Q}xDIzEqC@gC~N52$13|GTMJ0JXUiPy=X*3Uwb; z1V&&1oP#Ct04h>{quNh%$!xxCsQW^V9#;Vp^C&2dYUnh2HwzXa{}MIw$jhdI;;0#w zLzTBig|dgudoVlsnKr*3wd?nw>K#Hw_B^K5`M+#0+{W}=c!N3~K3B|0)1pEZh>A?K zEiZ%GeAR7ve^h8EqSks2Y9b45`C3%R+fbW#C;IFBA0(k0&e{u?Q6s*Cy5Wf}e}U@Y zJ!W74RK!Z4B3Tg?`p;3Dv;GZ_*%a+4P{;jH z4U9nzXg;ceWvD%|4mE%+*1cGe{87}C@o!WI|Dx_oeUp8J{;2k{pf+Jn)ZQpmpM*wI z4mG3Ns0P}j_C$C50{fvlIExDLMN~u{;&yc3GWUPytP9HF{X^Y%lqlHgZX3g_rL6T( zyQ2&0**O^_@H@|E4LlYVqT;Cgs$fd2Y0K+9U|;H4)RuxU>}D%WLzU0QdAJm{ALAaHMXO-#Xy)YaV;t8mcPC-?iiQ2a-uq1wmY49l~ z;A>O_i$694uZ-%b9%^Y?p!V}X^udW3fu1QOw1%5eM|(d;;ziWJK43ab{lq*={4s`n zEmZkH%z&d%9Zp9@U;%1?n@|(^4z<*KFg+eb`t`U@kkH7lp&ERQmGKRZ!_rU9jXzj_ zLLKcBsDao%YBPqRb?u^Z(H7>(;uoAWnR$M;YX`3p1PJ4yepG%w5uv!E&zM}@K+ zs)1^lA6sDuoP-+CW7IMF3yWcoMGDr%4HLe2OPDgwu>XHgTog4%q~QT5)V zCYbV_Sqe`&5(=?DR=}L72TU7mgYz&FU!q1F{N7wIh{ecv!2-A#o8eJZy|91Hqr3zv z^mS27I|Mb5sYoO|uDK*Mldn-D-HZzD9`w!#6_K;38Qs9D_zH7k=?`Wg%}~d0n)NNJ zy$&Bu$a|sM8;Rv`0($>m`bQF~_^b5-&LDpaFJj+M3=V6!+}?paLxu1?)<-wL{no~Y zsEI7cytodv*?z;~coU0akdG;^i8#Pd-z zS%PY4Gb%#cQ620Km>Z%|GcJXiNiEb8G_=>dVleq3_WB&uZeNHR=t|U{*k-HX}BGz`OC76zSUw>`$zo0^R9Tlm!sD?jSGx(YgbD)lQENWsUYjilBlHYv0IyK>-eE;dmCo&bj#NXP1`jH7|3UTlJu+aA z>ktWr=nVScWzC;P3n{0%q%0SJjCXUp(0WR^;~F;da@>?)_x-D)HtXK z{(upB|6eAd8GOWOOqs!SlpnR5<58!f6>8>vQ5}y#4Risjqa~U0&3tse*d)HO6>Mw63(}SFL}d29)wMGh<)Wk_DpL ziAHValBftYLXT$Li-eY7K5COJ#}v30^#Iv`YTy`ZMpsZXetImUHyZ2XR~b3~8sT3QXaFgBcj`tzR4B7sLs1Pyp*pT$^L0^?OSJi6sI{Mm zn%Fkfskn@F@gZtyO8L9Jf7OuS&-qu!6Dd%|S*YW-92LqP7=z!V26PuSkjK_knN7VA z)ctu-n=KAiKLHh?s#pT++57}ly;&X-TGJ)A-~wt1ZlN~YBUI?$+kE-}xA(u?$%%^8 zFw}r2p?3Fj)Mh(|y8i-dBKJ`Pe`3p1XK{P~gBwo}iT+&p0<|g5VNraJnn8G=8Bku# zMZPfV^;s7+qiLumIgD-a3~F~5%4)2N8fYt2dxj5?N4!6p)AQ0;a_O>79}LkElFeoU?N|H_*n#JHXd zKH1GkH=#nd9Sh+J)Gq#j1u-^<8E8vXM-x$d;7im@*V_Ch)DrGR?X}~mO@AJ}-~aEE z(1>24MwltI{3hrm&nEW z*M({%RIvqC$8I*i9d*2ZMApi65p^13a+`=WLWOoLDpJc(n{gNFb$kj#@fk*8#t>7# z1S;Pkg!8W_(hv%CUgx3)v=_COCsCX0HfmG7u%-!hdw&JXg(`1}>aY(c;7n9RPoeHl z6=ot5fT83gP!p*V<}qv5ivqoTMxbsOg*u-zPyg(7H@8d{J2zR@d z;C}oHTSb_6$OoKFJ|vHM5N*YJQf|c|D#w~`{+uDk9OM1@+^*r2d#;jDs9MCD5Y9v$x6POb zZ(%V^li!^8vKUFeKUSc@g;)$P7jS#OerGIX>J7zV)Z2=hP=Ug3R}0;T+Dj*pa*r#d zi23^589Q)c8)|a|7B%H%aS{2+sBb`d;>;J1>ZqmZj@mmTum-M1-TxdLVOB<`33bB? zxC|Ak>)2oCKWB0C#G8eoTsVvx;T_Zyu0#p*4W=hnAU_}V0J@0VFl$M(2acl3!%CUA z;1_tF{BS&q4ddOe1DLb4@fs%3ziU|;bK@Uan|!XaCf^NDkza?;Fu9!DRR$Bwn>GC! zbHt2oiqE5#U)c1%{sAE3PUSEOgcWXua{eKSy>hLJ)c>Q53zQO?V zsVbRg7@swHKP9B9eruFc~!<59(OYLUp_hE8*Ho9uv|>6lf+Rz?@4I$_*XYy#UfA*wLz74whl&p1DcH5&1+GSJB&I`$59Bxc_SU%MApe$;pLu~nS)SlUj zI!(W#+Pi^;@UG1V)@DFDpV>)h2D!04#$Xkkif!>U=D|XB%Jd5@wMWjN_P`xf zN2ThT0hdEftR`wx)<+GznKh{{=U*cnMuCpoY}9$(fNFRzDwLQP$-)loHTOH_n<+I&9`2{k+(HGsLO&9xfU(LvOA!n3H3K3Y>XFpt&@ z)=a1lv!FT%Le7v11XMrVkMwv&=R#*I->T<0Mra;p+fv6s>8LY`?sMYve$YD)z2^J(S`H&!WGn8 z>?Uf4Pf?rcIV$9@P{%HPb8|fuW66hO6Re9#_%&9+&svy)H$p|K7b?=*Cy#tfjS;Y-veTaB9eZq#NwiCVIo=pC>%Woxq(eyD*2Vr~pZ)h~rn z*bp^=WDkjkB&J|vyoMS;(Ke=HS=0pawn#wW*e1dpwEiuy9*5@Or2v?uc62 zBvk!@s6FFZOF|*pf|}_MSRK!zj$6)l=6V9^#(G!}N2BVWvDfdS-W9J=18)3W(yW#1um>a{pNEUb&SH=n;Yt**0=>~EfY}#A7t|rFc0~;m=AZ` z{2dG-@7uu)CX)@Xv-&JVe$@sgFm9ya9~Gs3@4yM zzY-OxgQ)giqL%a%&PCr&=2R@haGn3%Bs8L{s7LHg)XW~BzFhu|dLm}(Y&tA}+C=4X z40cA%@Bt3Mv|Y@x9Dx))lONrk^FM_|iXLv)mpB6# zV{}im=7&+6@HncY=coas>t*&rPE^EVQK2u2+LR4Yq3?`}U|-Y{Pqx=rq8?~FdU;Gk zCv3r0)Ny%iL$2Oti87!f;*W}44pbzfQ1_KU)h~-$((0()UI%qwQ`DaM0(D3CEqS702j!IpR#^JDP=#tx_u&O{ApIcfkKQRn|KD%8(V zOZf@46sZTA2xP=!I{y(QG_&Sd6lY)=JczOQ0ZU-aAoC|7U!WdP^H3o^i`sk-P~VEv z3^o&}f|^iG)Pt+DEgyhw$PdM0I{&|uP{)2l%oq7GCn0*gk3td!xDbyGuq$fhyHQJX4#V&-tch8Mnwhsl zZK?sNm&p{==AC29*P|kI0QJZ|k1z2ys{X}c_Wgf-m|2r2R@ZPdfGntER>)c!bz@a~ zy^b{zHPErB34Mi{@fy^oJA`@h97f>>)N#x+g7dE%3XU+LjKk*S<58Pw4r&S3p+dR~ zRsR?&^rumwzkr(IHPknq$EYW1fstnEil8D|-sW4NHe(kL3GM3Ms3+YL)X087&HO0p z7@b26ebSyZU+qXwR8v>8ZI>`1;emc(VK`!1jc_|W9JXKH=Xo9P;J8I4S zCz&P9jsZIVQ6$tsY19mBpc-mr%e$Z=GZ3{GhGGm(K+W(Q)Mh+}+I(kFkqDSt}Y6x2Ci zjGD3lP&k1ZOXHu+RcmF-0`RZc!rQDN@5l&G>0)1edm~v=R>{y zYND26G-^ikQ4!dWdSafz3YgC^kKXR60Zl|L?E=(9HlZT3)8sv_BP2AEQ>aaHAGOP$ zqMqUZ*z&-+X2v;Ck;sFpR|qw;GN_2vMs?WMmJh&*?p_!b- zf_M|vP^S5&p>T{RUkVk0eyEvD!~r-Pbv#oqFf&eX&4DV9Mb$5iTH?~SyfJ3d`ENl& zGwOyq&jV32pM`n}ZA8uRFe-HCPy@YX%l*GJU*WWr`VbqiF z8EOF8zcP`E#tr1FU<3RU8)BuECO;2bkiT#9o{FnX#|~=k*P=r74Qli4M9usp7RPI- zwGQ~&%rGx1lqFE*)i4xWquLpP%WxbjauKV|(w0E(^SG*$(9Bz)Levv=uKS@*!AN_3 z5$arTMm6-K^&)C-JVNam-!#%cC}1UDWj!r~!A!tUCY0NoW8Ls>8LYiif=w z_|}T*_z5c1K5NZPGhzYqd9WllL`7-}s)L27m(P0CecP-*-~#f;F^kTBr~jBxCSwuu z6Hz1IjcVX1YKCWQ`Jbo=@Lw2u>jj`rL4?hhN8MK!Rj(;3vPq~V?q$mdqer2hLPE!5 zK5C>(P!U*%ip=-6{1j@_UA5(D*PGDhM6GqSwIJ%$6i0O&kJ`NDQSDYo)o;0;^REl- zDbR?!qi*PrDj$McyD_MUOvhrl6zkz{7>VH<+^+pt9SdWcjpn{ms3on8dXBV1JvWA9 z1kT^+F^|SQ6zI5JN3HeWsDXU8$((`!RCzvBgeq9;pmu#rjKkho99P-vmr$qZ9>(Jb z)I>{eHYRvTXwy_fg}N!Kqi(1t+9*_qU!po%joMs$Py;@Oy6+CE{@3&^0r-An%!W+J!3Q=j@mRkQ8PS>hw&zQBeK=ZWRLY%>t*XB z)Dpb2`foG&yk0qf2_*EZS5wsPPDX8x)tDcTqFy?0FfV4^Zt5pkJ6OkC|AU(8G3#aP zL+jtDcR6}=JhqU~43DAmk1-FX*!OZhV_V(=_25dxC>&s~FSg|?a4Y2- zQSGdY=QR`+fJh_5awz@BbupVLj%>eW-@+VJODzHyzhRb=VXY zkxp0x2ceem0BSEhK}9Oy2Qz@IsQS6E8Wyto!I(+!|H&kJa$ynX!?Xv??u(FtMWpsYbBY>a0iFN8wqQAWBY^cNzlWh% z;*jaM8G2`K^Mg>48;k02J}R{9QJZZKYV*B79q-hKO}!}8gi53LzyGO3LYt=+YJ`1J zyLSj`#*=ONeAIDVYRgwyzd;RTAL{?Jq6j_eEIyz?K;MVNk5xVHvYvl+zA!hZm0%_q6RqAUSEoe)GE{$jc-s-$`hz# z_ZT&i>_^QWsfL9`q4F4USvp>}&I)Ickt zLR%L#p?0YIx}qjD0Cij^p(6AfG7yjJIf-r*@%$7t+_eQ^kl# zQKA3c=C7eP-Cfk)c!HW~%JXIk0&pq$5Y*D_Lrvr`s-5$w2wg_Ce+LzrC+9i;8qvQL zG{+nl+}{7chykeM^F3;fFIn%RBJl#%u+K&F_Dh3mI23g~FY5fq+k6w$jJu#Fl8jn{ zQ5QM?x?vs#`o&<4t#AN!?0!a#^fYS5H*EenvU^>hti^se-~W@aDCJ90OK=+Xy1sAo z=`WcGhNB`?+CxGOSFqMYb=VelzI&l&mTb#MqXs-1HItS0`a0Bi$gQX)I*z*k4r(c$ zqwaHGHc!yZr~!D2lTgJns0YO7SQtlRUfhNX-4#@a&rnP98Wkb;74y1HhguRpRC}3G zAru{ngA;WJc7eXp7s6u@Zmaj5%R zp*C|O>NHG2&3pxFKwD7*{R#ba{*RGRC@!I9cpcTyJ=9EI+WbdUgXyoC@-S3n@}nk@ zfZBA;P&4h1dh(4$eFa-!J!8w$|G{NrNC_xu+kp$-zz8$#4+NW=m-2G!s7wD!NE_qd==Mf#iO<&+(@ zH2ts|CZlG45LNG2)N#9nisYXdgRfBo3b|zl5@}69)oXFfV;X2nfkNLCbwe^LL>?@O zlTjTVMAbWuTGOjGpY^s`f^gJk%ZCbm8Jn+#iR4?OB6S3{XMXdL(C&VO+H6_xmHVMPkvXrEuq+qWquvSkQEQm`vH44;!l)a+K<$MY)_JG_EI|#l)f2PU?XeK~VW|5y zU_rcu`7!NNO@Q-PoP^f)b5sLOY`zt04ZEQ>+fdZ5AB&32JS>GPQC~{0pw9b8)BrO- zGfNnZx<9uy8r4r>4AJ>7K|*WQ6xCr{RA_slI`m*2oQ+zd>$dzgs$QDs=C9?mq4FJ3 z52gXw5GSG{c^MUvlz*B%Qw%*ie)UM`_#~l1KMF%}IY!|D)F!)c^FA-k^CAYLDX)s^ zxF_m#j6^@2f*SCb*3GCT{?X>$f7$nc&|l`SUQ3{k)gV*@-=HG0A4BmZ=ELWxCCmQO zynJF%_4A_!P#P7v&r#2n=BR-TL`8Zkeu2(Q&i^- z;gmP#-|zf^lgJl%YX-IhwL}-O97g_a{*t;QY6;$AE3EmC*)wZUoAA1aghG!gRNfcQ^lo$>fXr_;~-xzXZR-tJqfOe@;4c;RWg~SR}oV_uuW* z!4u>oGWfU-;0rv3+x$$V#(d`EeK&lMn(<52fGcG5ah*jE{)vq;`FOusRq^-n{!=Uu zYE%D>DRutSX7=&^U5y`V?c1R*Zb!WX_Ms0RLcJr7pdKivQ3JY!g>YSfkM|qSB`iw* z8LB)iiz#n_YOf2b{qE>dVju~fUk~bd%tC#U_!1S7CHDF*RL4hA$L}}PSE`$+sYit6|Wtc1T{8BCwm z%%mFXk=p?EKx>W}u%FF)P|tyd)*Yy~>e;LwGqT4NsDrnti12^X;9aA1sE}nx4J-up zB#cDWt6;5ZZH%hl7WECMBZlH|)cs3Q5nhGb0~;BqdPK{;H@`(;OAS`51s-qawWv8>8n02_2*GU~?|JS%;%4&OkN13f0gy z)LI@u4eU5-Ko>9$U!X!CncZA3iacjrWl>-4%A+1+9gy}tu4EDl$qdYk^Dzp4K!xlc zDx^V|9~ron=!T_0!jgHXqF80vZ8K|T4VU{!p8?XX~|k1GskpxzbVU=w_VYQI7l z6Kg=CDG81IKd3d`go?;c)aKfU8u^db3#bMjppM%|)H%-Q}bbiCG}9<@7A9qqOrN8Nbc=I@{yev6uU>O5w11)(~ML%oKpqB`nh z9gJGKk=8LD66$aQs)Na>8)n%2JnJG`z8tlC*Pu?z7StyD9o6w&tb%V*6DS*L+N*~; zhD}k=f##^ldwP)2Zk>yI`K-ih_y#qw@=<1{6;Vr5A2qw<|Z0#CbE)~Nr&lSG;c;D;mNWY?iPN;_Y>gQTT zdN{3)A>D-Z*Xn^!s1uwR;eVQvG+fbV9zUNsbrK^2|Dd!L_3G1p8PfW+amFV`_zoa< ziYvc6TN675PO#VZ*fzJ4ui?Zb6>^_--jQ4 zR@z#boTc5nyH`8DJv_e0C_BSlqn+73LVRnGOQ3cOXLpZAeu?zk-j3t86Wp^<;5@EB zuqFD^8$^vwPMe-VkvDAH|8li7>7(@biJy+7_2|>5r?aqUgnOH_uV=Kop>vo2z3%w+ zD&!7y%JnLlstawsaFTn)x$8TddX+4YKz=xV=(B-VF4!KFzez7s?KqVG&GGLY;J3im zIKd3wIYoMxaR)d(dpGj^neupAigb?lP6$3nE|3}pDS1Og8<6*-tqx9DpCI?YPJEw6 z?j6qbKDFF^olAXU{VFn!S=8x4-Ik7j-&l8Zr(E9z|2mZE6UX&jv^Ce6-nWo{1xhE_ zcy}PZ**Vd-kUN9(p>GH~Ay>a>_c*6&zmQ0O?pjTY`kbNu2s~Inpn}y~}ynFD|kK<)ta(o0iL$JDQU3#5hjyqt8<2^rcg=e|Pr}+c)(O zaJz>(2M06@yh^okTy9A<{a&NbGpE47TJFJ4^1xbtd$~TCCYN#haOcdx0QX(z?!XZD zPAAo%h`_pZq|Xt4j#5jXQBJu*Im%_VR~B)9UeY04X+({br2A0z-_J`X)`PYyP+pud zEa5_HXWpQQ;(yv&`6x}`=OMK+^79wvVbn^)9hGgLODWq;OFubJ2Svnu!Il4hnyX!| zyx^zO|CHT!F9uXEYV*rzLIvLRmNNSYxl9v&{{377mWBc!bgxj6|QF)(~np z;iu;R^s#_^F!=!L)U_@BO4)QL)sSfS7fyj8If7eK{@7mY&b0_e(1a0mblMLIao=}F z4~cUxbiNxB(z6S-TJaOl&oX-6NbM)~PK_koj-)Pk$I|OouJ0mUg==3?@07hh4bPB& z#kCmfJ*VDUe*XLMp{%=8F*(E?;b;Ra$D~aC#1# z=`P}Y7#8ggb0UXFyO%q4hKHo8Olz;4zQY4@rKgrYHRvmbcD~~ZU+cV|e9l+HgM5oo z(u}JqoP)!2#5^K5lIu;VagS1crckEOBrHQ&d*o?8BBA(UQv8X9E0&+{xx(*V-cJE~ z8pE~6 zEqxix=4>4q(!{cmixMsUrV~8_pbl@KP4&Kz_s^`WeMp%qz_X+ zJ?ZqcT@_==|H~}}P@nBi8&7m(6&t%Bsi9AMn^(F4>C^bZS?4L_zUN%>LZ8P(nWy)$oAwI+$Q_64=B@-vYifAX{W3FmJ96v%a*yK3lGKCLP1 zYGay-x~=)yPI(*ZXW&O4eTix76d4^9n4Q{Jsoj<;U23>+O2e2V;2 zT3BLRryA&XI0TJKOnb zWanMpX)q?j?REx^iT1C}J@Nbm*f#n*o5lpW3phup@y2;LCe|-ESM^y)3yqzyv6Ta> zQF4&B%HSzVUz0xJB#(`4@BPMSs(b(U8CNngiiZ6B%SdWtMSk?DN{{ij*IKl+oAS@G z7VfnXXwLnasneKzJFazeQjH5qwUHX{otSa0g1;dZ&It6&#eCBL;YXjM&eCzsd>fGq z;A&Ur!?>VwE680Zr{D4PX+xW1Y5%6ZM`gd-bTO{|#Wj8OyI?V=!T2C|QzvPBqv98- z!><+IPdogHHm6c{$lhDq&Pf$ob1ja1b?3$S9Pa9l--M9BY1C^++r7BXpZK_rlON<% zoDl7P=p;>ut9a11Gl1(;xWAXp-?Hjg%R0p30r`ofqe;&p{eiYdV3c!hLaaN<@tv3> zupjvles<8`V#e{B^Z_S+Vk@`DnKv=PKQ;FzaNoDIqfcq)?!;L47RP^5ko%GoGpSHy zSMJcCx-FnqL2551&!1bnW{@9Cx-BgaaYjsvPW6^t&h6_a61SrnoRQzmoZSe|^Xhc!i>Fe1u4hR;+r_JEN|!4ab|~g@ zElBNht?Q&xmn+9)m&+Feusnuh3G9GraUr^KHCDhiSP7qC1Q!0vLc$7YAZ?9EFV2H5W7C5>&lSmTDdG)wlpGl~r6jRNGEY=*DmhwEP85Y3g7>yc05zL0w?Ddvdn0#w&h~Hp+yo-uV z@vmL3oH!VjcQ6_KyDpJPhgUE?-ot2og_>c=G;_TG`jan#jj%2z;tEs*KB8ure!7{t zKPu$;Q4uJB>L(7>Pet@(BvH>^XoH!__ds>*K{YtZUZ06s$$y8M`4-HAM^Q_56&3o| zsQW+Je9CXkKr&z+%Clf@EbZ zz5om1dejnJLv>hqrdhJOsI~8eTH5Y2iGKu%!4zoZOHl*)0X5TISPf5MUd-;8>+x8G ze08jg!!RqJK;3@>YvXg&fXmJ@OHjkw7&U-49uf*wcT~jzHa`Z-k)ML4@i<0fN)D^) z7sCu#2DO$oQ5`q4`K}mBeh^0D0-HaCipWFMp75leV|H~`RH$=c4$O-hVQJLBs$ynr zWXn5YVe)-(GcLzW*krCbhMiFzjYZX4hHCEus-GJ;S?B*D2_1`m-QP4Dn?=5`9u?k;UrA8KoevAzaf#0f<>s1 zY(~v=59;`wK}FyKYUDRjA%BD#z`v*g`YtpR3BV!bV{sI2Kn*Nr5hq4@?2hdgGeDjH zGbH+8rSI6;xDCf(fh8{2cwCR(HD78XR0b8X)~JCFMeT*DsE94VJh%+A;yzU9FQGr) zLPhc&dQ>6HGIKogqZ%q}^R-aNr9GV}t?1wWxioN2ks<%bcdnU}LRL)Gt(YG)K`LNib^T!{hr z3u=jfw?0L+=d*(N>xLXFOemu)Rn*=XgPOo}>vx!) z{Ezqz9!3o`@q4p*+oP6lw1-3t2?sTU1Gd6N)J*@z6qtS$XCAX+JFJS)xW;-JHGt%+ z&499@1`vXgSQ6EKJ4}iFFg1FHl28Q3qB@w1ad-lYqWcH)_8f~*|L_!*Pq5!3_bBv!{qsFBC6H|2FP zgnSRIg40o(>o?STH({ks~I&WN=#u-rU7QhHBgP!~(I+F0ksi+&~phCU?YvEGV zW_pGhFvTV_uxzOM;i&r2s3j$XjfsDg)I28-v3DkXWPy_VcX3Xv(p-mHt zia@-*P!ZKoT@1xU%!b2oG=77bFw1s2!BEs@+=%MnEox%PcbIn5q6Ux+8(}!Aea~4P0n1+{Z%XpJN#2*~yv4%BaxK#e?`g=D?&~rrtO#MScw`qJNUQ(ed#cgd=AWs6;Ye9C2I4vM@3>K zYAM&D+W#4I>inM|p-plR+hgd@CX^G=$L(^R#;TN`+hacK1^mLWw^0M} z|JBU60%`&ctQ}At4@3=cJZABbm|_bSqtl>QES@*HPilB1U;w@Hlfb> zUex9~jautlsQdrM0QA{!>gB@h>;5L{%i}5qe65MQ{ZFN>3E5u z_{o-s95yo!M@6JCs$OZ-%&MXy))cjuy4mtkIFbAe3`0-A5wq(PP{(gMY9>2S9UezD z^bFOI>!{h~*-;TFkD5ti?2oN6IbKA~_=@$REq{lq{~xl%9#`sP=7zkek%yyZR1&o} zDq$eDLPcgMs@@D#hU_SCM(Cuc>$IbVG{wK_vSrY2{P7Klc|C5A5@!1-7 zlI0*@6H{aAQ)YmfF$MYTr~&3e?U`_!Pe5(j8mP#0z*roD>2U*UbN-B5@dQTGziZTK z)8Kkk=yzf&RY1-30%{5FVlI4xc`)l4vnh+BI&Of9Sa;OGCZgK=4%N#^P5@Qai|;Tpa!rC6`9?rhWDaAXq-kre1ckIpUY+dIju1mOnGHg zI~`GbWe6(5-=a3}YSfEmQ}OQ8Ryo z;h6FogTO-QkDc**^k81h|EIaHItG$&WbKWf9286?p=bR{%!kKN<b*^q5UimjZR%4%I+k)W9a7 zLOu<(C+49B@SSxX79zh3^<;d2>fj0LzBlND?pvn4NtE52Y%2Xbb+uoa9seWz1_WYi)`ZxZV%7 z7TcU5IRZV6Nxh~d1=hT0f>Iw9q^36C4wI4ZiV8{(R14!#8-6xwDw}Nn9Ofhc6cvIj z_f7EPFgN)cm=e3(XMbv$dQqT;M_6ZD*Q2f#pGDZmM5SdMRgvqKSM|~w-tul3!`y1kyW?+TTmwYwUfog!MvAxG$=#C2UK-5TwqAKdT_T4vF0#{-x{1X%KFI0rW9-A2z zLv@sZTAJ#p{oE0Ka1e&#P}CB77L(9OH((eZL5=JwrolI;XNmiX`CM8WRo)R5nck=l zN1!4w5jDU?sEMpZt@RpAi)`fZ9$EEJL-l#SO(A7 ze7YBAiSl4K%40Ab=c6{~epJW5p(1h{)8QlQTMVXuSMrypLKrHP1yK!@z-X+A?Qk$^ zKvz-6=r+cp>u-~f!~A3$VjUcc!FUY49b;zlZ*AW9AL5^dg6t&JVI*e6vRE8zqc-0- z48nPs6?dU#bPBasE@3{rjv8RHS0*xPP#p)N$|F$6F~*k1y(0dqP>})+q^_;l4z(w` zqDI^wGvNe`z`3Xa?L`gbCTbuLFay5C^yqqRHf;t}c}dKRRWU1edrkaRFp>g|Y$@u- zRjA{$4YT1n)Na0q8pvZDi62o*GwcoJZX$q($UlE;BDw8f)9xWuWKW>lyNc@Pg~wL- z4;6{z@60Fb%&0XkgoUscM&mHl9$Af=@n%#6c3TgiW_AL#`EH=2Hoqay5a zzvpe5L^{+1rZ%?3@fe18P$TyJV6NxESn^G*sW4}Ogvh4?cGRZN%M?R|!4Lw%$vfGV$G%d2Bf@~u&8 zIutd)uTk%!i%|7{MV*!-Hh&Ve=`Nx_UPVRXpX6?jcddLnSy)cf@;o8O5F;Tcq85Q8QeEYG)N{B3o_#S5$i^ zZTW5V{(Sl=3C+Nj-fX%YsF}v1o_v)t9-CTc+VYduo2UW3Le2OcYROV$FzxuGHgh;C z0+mn`ZiOE0(g`HANv2~moQryZEI6>n~6pxH8%ZqV`ZEYExH2 zwbuvh;SAIOZ)fEEYXGk(PzRq-p-jVjsmz3GC_Ad-!Zu$HwW*rgd=hHy$D?Mp47JIQ zV;#JLTAGN=Ztt%eVo?1K%FOv!#ZeUKxJ^fe@_UTLwWxtyLJj1q^);$q#w_OkY^czO zqUy(>A{2+kF~Q~sqUw!8E$LK`EjWx?g7c`&_6I8Tk8S<~wj!S{tBF(+YQTe0yL&on zv+YLRe;75u%cy~0v*mBF8u?V&+}^+5@YExrO>q#5;tkXcviO++<-pwJgHdmvi)SlzX-L2>rk8RXVk7ggo?~%jH7?oT@o5$ z&Rk}uU!X?V47G-BPz`jn_C$3w2o;GDsJ*iY)!|Ciz_y_}JdCyRcUzu6w<#}y9#yPP zLYtyFD!&|cytbm&>ImvI1mrOhse}q`Kh)-$hT4p)QE$h;VlZCE{P-DFKYx(PS3o^4 zx&(3lbza9&ppmXat>rJM&2<5_scu={Vj1%3gH3r2REKRa0X?WS{uOoqYg9y%g_r?l zMNK3YwPdYAJm$@(2L-yJH|l(jL=EUG)PrRqY9PB%p+18n@iH#NCVAbirT7o(lhEu? zw`&IOz&cnxpWFL)Y~SJ}@((Z=`*_04CzhG0Ud4t35i zVi=~4cDu^cU=fVPz6IUhkKL;ZnR;1b+^%8NtBzmbA#A4m3Y$ID5mmkeYvCv4J138; zMiH|q)}t<5#Q7Lf)VxpsjQYTF6SXACikWA;A66${7PZMHVnf`3dT#hI%JNto6{$hk z54WNobP;h{0?uCx67?wI?`&}K+5Z#s=o*IS`JS+z&KH*~_(*ay|mQ1occYp}37cD>Mh98u-#Z237oowreY;W;WI?uzD#m>JcfKk7I~pgJy&6)^!z;~3OLeyQj&kJ_UY=t*`4)xkrX ze}lQmXR2f@i2A5j12wRAs1ACf8XSZg&}dY|W?%}OgL(okwD}#V`g=S!aRhb4In05- zVK6>NHIS*Y32}B*2YE0A3!&aC>e=!{o9~S3prmLw9jW@S;wtN~WV?@>$f%<8IQ>SaN-8;)wHI4WY5Q3I=o49MeZPD00S z04ntBY=vFObH;T5^?Cge>P_Y$Y9OwvCL(?qK{hw)IZy=^u^y<1_Cw8lFlw(kr~&_g z-k<;NCZXN?+Ftl%%~;JmIzv#qIRO>A7O3OY0o742)cphO^$}Qv`~=kT-ig<-WOegI z^yj&(`}$xuRTxAmdYNnZLn(`8;JyRW3za6T*!5D)h zY<@lJA(OJ}hFQI03 z8@0I}pa%Zj>aJr3m=$%}BI|JebzUn`pv~6^70S-&4K1pH0jM>fXs<6s?THnr52r^_ z_3vRYKC$`qb))vRQq(i$X;1^mjp{erLqeOYEUKessLz5)sE+1X7opZ}g>^Nm!*!?* zeni#ZYV*6Tdu{n4)aE^j`S22I$vp2#sN+=i&3O($&7du+!TzXYI1Dx85vb75K+R+u zYEvG>O6Y1}238q$y((&HnxNYI61Dl-Ba!pCdXms1b|h-|FF=j-2h59`QRn^=Y5-4A z19UaCn+erHBx)its6A8x)lPNPsc3+TSQk_zlQ2K~&(({Bo=9^VnHem>66Eiqo>;jW zn+QZ;1@Z+@GwqHMxDgBC6;#8io0u7r{$HIO%` zCzdPG%pef8S@NOk#i3?c9~I(esE~F+-QN!tkrCFhsI{JK^K+~V(W4nIBcV0kfZ9wO zQ6b-kI(8@R^;;N4{thiNFEW3@@T)ejU}pQ&a?AqB{DB+DpDI%<=R`m4~DDNGz(~ zDlItwYOt=Y&3`dIx3s{T97k6FJo6DWlZ z$k)V1xY$EN1NaA3@e^vK`C1x_Sj(YCUK6#cT4GzAj_U9wYT%h#nYGV{TG|4r`o&QL z?Sgt>^+whAj3QBu#4OZt`_oo%wKg|q!n%}KMBOkG)xh`I3b&&M?AOLDL0)S?)BsAN zB32nyueQxM$MQP=?Mdi6pB1QMblXKGPpZ;oMAROs8I zLOcdFvre-FCg)t zyV)e;dYBM>jp}G4Y5*rt=lxGiiBC|W{|B`xv-C8f&yR{=QPdjOKwWQ-dY}zLwKL7; z7xna*RoCGYUa~X&-yi}8xEryI**#s9n=ipq8>DvdYd&aU`;@^*9cX= z8!D0`F&}<|%h9uqL^z3NeM|&KqeeCf<8T3LZ=6HT;JWo0Dy09R_JUtuGtlLzk7Pfh zIy{BN@rKQ3?`N(@AQSbts*q49+hQ^7jLmTYM&lc6Xn!++dZ+=lK@Fe>7Qk_+2>pm! z%Dt!u&ks7*H(BXBn6$6rv#@h?>U=cq`&8qWD|O5!~Q+Dr{cm?h|j z3h5Bk4O3A!%s_>HE^3C0u>!6`JxQOTmhNxVgg)DR&XHy_hNCuhVbr^AOAiT+Y!qtd zU!l(XY}8&@iUV;YDiYxgSRKTm&VLz9z{aS}I~%nm`>-5dK@B*^DARtBwEzZF?ujFz zP1FQ6;!dcUk47!cEL5mhqegxhHIRR>J$}Fv*m|_NZ!T(pYpgp^52Ayp6$8e&z5n7S2DO$yql2fh0k#`!BC`!OvxBIHPoO4n5gXxi)IckbGZCqU zy1xUedNTL zXw<;Yqn7k4Dx&vMOZx%6zyD7&$uyJ;bs-$J>58LnERB&^6*a>?sLePPwfSbEB5@J5 zlvh#hJjP&rj~Z~`Wb<*oH4Y$u3_UJ4KiT-ods7HWpIrd&5}J8^)SFNb)J(>qLN^-=;c{Dk9`ljEgDE(^slPS9G0iZ~Jo&nz zuK$W5coz#`%K2s~i{LTx&CvV%|Ih_yM$xEqS_C!15~#JRX!FfcGwO(nj0cP2EYv`c zpf=|v+>Uoq?->ggn)Z&Omf!;FnBHH=`PWRJQ=lbqEi#{AvS1#vF{n*h2i0*;)Dv(L zYGBJzn{qd*oztj>Z=fb}A9dcJ+Uu`S14yyhOgLaM=U+GGp+FU5Fc}s{&7>5ngX%W_ zCFfIccz0(RzK8U$%%?c0n|VeJtY1jk%W2>)n8&Nc0+BVp{TVR zhkEk;h#J6E)Mvd1xE50^HNV8#gbm0iTW0c2uo?N)Ht)0CbleDax;$M-Xy$!Tn{O~` z=F>3_7o*ntB5H;YQ4xD<%Tuo~&yU=wcFN&m`~nrZyQrmoi@MKur5Qj@

>ag-GaJ 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 diff --git a/resources/i18n/es/BambuStudio.mo b/resources/i18n/es/BambuStudio.mo index 87d1dffab6dfb02fb6d0387f88fc32263dfde80b..6c78d61655834282312f8731aba9be337aa90970 100644 GIT binary patch delta 29739 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 uc~ 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 delta 29563 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 H6RZC}(ot6) diff --git a/resources/i18n/hu/BambuStudio.mo b/resources/i18n/hu/BambuStudio.mo index 6062ad0ea246b739a490d558cc1a36f96091379a..45f7a5397a35764b53aee574ecc047edc3359e6a 100644 GIT binary patch delta 36732 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 Q`o!=YcKjXaJ+;FB2dfOxj{pDw delta 36167 zcmYk_1z1(t0*2uYiY;O%idZNhs9<-C-PqmTI>xcPdu(Uy?(Xifb5yLcYt*sze*amE z`?#OG=Uv@9F22Py z_!Wy|it&z<59?xloP-`Y7faxLEQNP505eT+oSaw*V_<)b=Qu9MMIaXmW3d44!4Uip zQ)AYNj*|e3V_K|?8c;h-fjyA%I%ClXr=iL%!Ps~Jz3~Lnp>qvY|2}%rzw^Q!aGZZp z9euKKuSqJv>`*gIjGCb@#>5P$0c6HxSjgsA!%*TiuqF<}>Ua&cGTA4amF$2e=-(Mh zKudB0HGngi5N}`*K1R(j*%XuSiz$icz*<-m>*6f*!Plr6I#bQeccZrK9BS#Gpz6P|@z1D%cuaGg z^yoE>_4g%^nS`uZ5;c%^*ckg^BfO3pK;G%5TyfM4+E{y9hoA;N5!KEj%#R!JI6lRk zxRE1Y6QgFZ{u)WxOtY6YQG4DVwdY+i00*FEv=r6wT1<+2u{>Tte@rvW;x9tgp;Thd5JnK3Fes7o)WbM=`a;$MGdeRYG4&nOCM>| z+hZv4-na>uqYh{Nx#scgfb`>XMiEfKWvB+Pp*nhiWAG)W!9MfM5>G`vep``uma_{r zvxBICT|k|wXQ&S2%r|EyH5MaY90%cGY^3M^CxHwkG+MyR1P5XuzQu9qyU=k)<4V*_ zb1yQdz8GqSYN2M{1a-Q*q003_O=Ku)3&x`cGzT@{)tJUbU^jt&cohd@wZ&$H7jU!U ze>hG@jQOV-U^nbW{1NuVx=ZK;&)^8Gy40M3E2u+x2epD8%gjL2q0UB5bZH5T5J-=u zQKz&8YAgC+N*sn-+POA=3#K4`0@cu68-Imf#J!fAt%;9nCkblH(xX-+6Kdsxm$Uv_ ziu@#~VtG`BDyRzeQK!ENs$yHz5_U(`8-^-B4U^zP)POf(ay*5ad6e}ls(gwSrXBwk ztiNWQhlE&I4mHy%m>Sz)G8|%^iE4N?s@_4=-e180e2nat-b% z&G8Ecp{vmv6BvtH((RZ4kD~@~8MEVaR0qk|ni*xqIK+cdE0Gt~K?H{5Ak2+humC>B zK+L#~vRE0z^!yLE2|H0s{RY#a*Lue(jQ*$@G(pX%6?)@fn?4Cg5ubrH==g3h9oN9L z#7Cg&FGkf{j+)>$x9tC6n{ghsS9h)dU?So#QG53tH87uzrr}`BLc9WMPrG0|?1wtM z!_gPVU zRQaE%8OGjX&PXy$LOd&K00mG3t%WWHnh;RM_O?KG>jcycR-k5d47H@EF)=Wkty9kQ16MIs6%=Y^I@VL<^@y^3lVRE8t`1yO8;S9iyFWV7XclzTc{B~N3BS#oo267 zqqZOzgRmlMAbqhY4#pg~A64%eYJlIZ@phTBloH*KD=I%PsvTD;0+|R@#AMh7hv0D3 z7R1`kCl{tf9nvMJ2A-p4_6gPSPt*Y7>@i0N+Tux= zl>VK$1k~Yr)T!QwYVbTN{TAvpKSNb~joI-lrok)+&EYJLI*eseD>E9kwUbcoEJT%G zhlTMZwxE9})*-XB?a|YNZ>Ly}^euTKgf(4{>eMLVez57ukD0@l4g*PVfa+)z#=@Bx z7w4nSz;e`SUyr5nB5Gw)9%uby5y*DjB;-Wxby3tz>tZf!j_P1K>bd_DHIt2~nIAzl zcm-4ABUHJcm>v_JFfX1URC+1YR#ZR1`s;LdBq25qM>Q}W)$lUZnb?jR&`IlM)C})p z9DIrz;J>JWc$_r(iBa*i)<9Idg|H}AauLt~#$j&!6HDS%^uyGr%+eRcaN_k*TQV85 z;ZoE}oW&{_g~c%BwE3{=f@z75M-5~JYK3=TTy$L^pe4Cw6P{uU;_uK4C%7@NKjM-ktES@itpKg(l4LSxjY+ac79uA(}8 zifSm~Inz)E%uYNUwGvHGGwF#vaS+DDcc>YEvc~z#q^Cla_r=tD{X0-?E#W}a%KVNhw*eF4LClGN+4LWnnRue}oC6-`Fsw;D?*;QII2M(E4c(vr-w3c2 zPWp?+(#T8EX^&dsY?sW)Ls3f~jv8Pg)Y&O(%RmL%kP#Q28k_DF&eSwy;evfht!6V_-eh3>%?3=xF0EOh9}h zcEGtd9{U>mucb+L&FGKnAk-R;iHH|OtxyE&@#%yA;NToT>9JmSt@d|1H z9yiQNdE<2Afi41T2^_$(*!iY;_ishTzhg}-ean1&&PJ`o1Jv30h*|;XZ*w?fqgEh2 zhGQ@$!xpHC_C>AeNSp4OMZk}QHK>Np;uyS)TEfP+%^r6{RUC#Iz;x6~tw1%r7JYFy zCdV6?5?`YR5c`fX9r_W^g|y>xY7j_ILTl7gk3b!|8K}dx2-Wc>Oo4|{GrWl^_Y^gt z_m~#r+%@$wqYhnO)PSm^wxA7aKs_;7&;J+#`AFD~YWOv(!yl+anJCIsOli%GGf2;c zYUns>1^&id_zX3XboWgCAWTm@43%CJwX!V~cM<4KKqDP#3oJ%;yb)D!Cu*tBp!WQN zO}~kH<-SC{7e1qA_!G5q3GSPfNsmg;jXIRYY(y7>@gG zfe)w#JpVC&icO80X-#Vb)XZ9-4q*>eN25>^n~&;nE9$HqLY=K^sEIsr5l}^s$EHGZ z)RF~bOw5m3`XZ>qSq^n3>YzGqhpOKXW8(x={Tb+mi%GpGUH#CRBmI&{x54*tZ{80WPaxIcOm4?@)|ggVS6Y7#kmAF?@kqp`d@wj0&RKD~sBiYM2;1qMoWjsKYq~6X8-9 z0lf&eVir7y8rgf)Qh&z+80Ve&)>{&l-VwDjeNY_^N3Fm_)Bu;DCb9;#*Benwz5~_q z5!Aq4mkFrB`&bHJ;&9CM-c;OX-HS;`KZ0uD8V)$wiA ziabTF*jwul^rL?#{wGr)2(^@9s0NB+5Z1uv=t2$XKI$=gieVW0vxyhRtiSVssHH89d9fBI!*Q4a7oo}>K+Whf>a6^Yneh>7fbqVX zl}U`6kUwewL8$x!sK>H6x|C7Y7O08ZthevHqG-f15A~HL^{p)42oF;xW`p+((`2kEnrs!$Fwv zyV;`g=;OgxI6O+a^V6*8F;u%(ZTxRkdoO;vOh+D$hr2)`)QTj>bm))T>tdJ_8(|QR zM=kA6)Qk_KR^W{FGHPOfqYmL4RJm`cfq3x;L#=Rp7XdAC5-g6sm=7CcBbm28tHn}((Xq0 zj8H3b88xGOSO!0!R;W-+GmuEsV>rS33DsT;FVj&MRC_M0gQKtrQRfZ;ElIjqrh>mU zCr%{2AYQ|hxC9r+HUlaf$JDEd)kv?0m2eemLLV^zJ>q(}4_yunCtd(^V;6Ti`~L?4 z&156$l%GR25alkw_j%Ncd`2xU zQ?LeZK%Jc!-sY*Q;O*gZchH6eb<_j3G%i%blQ9*}KsCJ1=5Is27mnNb1Jvn$kD5sA zL}p98QSD{I)EI`!uY!6CYA14;kv1klGwzHU`9KW83D&)+$LyswEpHiZNd?sBc~cu7 zj#|OFsFm7`YImpg1giaOsK@@Xi-2bKug&;^8gabDW~6CR`TnRq&Viaq8B_yJP=~BN zs@?$9t91fu02@%{wqXf8i1{!^67zJp3K7uKwL~pVAJm8kp_XU@dg4sfmi&%tZ~^Mn zuS6Z%eW;n8w&}NQ{0(YFoTTO{ONDwm!jUa^Ii(2bF{+B1VSm(;&P2^%7iPl)sE(eX zPV)!U(~&ZnnRzg3Kt)jlt%>R=64g#?)C4=C+UbGu^!Y#7CX7QhINP1UVMDFVPSgy} zpbp(b)J&b^=8fos1&C(0Hn!=rt!q#NI)FOlM^RgL0o{N8e?UMDzeBA+q7-JvIZ#_r z19b)(pkBc(Fb4KPJ>UIN1DcDP*=p3xcc322V>bUhs-GxSxo_ywVTzm5obF7h2CHK= z?1mcYA=E%FqblA;E$K7s8&o_0p$6iU%B+|ls(yadfFe-kB2g>bJr&Qt5=M}qSMWmA zUhhF2!iQJ|-=X%dWNHuh-;7j14QL9g+#J;7xDwqds-F+mL}^U9>}h!Z z)j&=Xv^PbtHda7YT!>o2rI;7j+xS1I@^7#JezWnsY0XxZL_LlXs1<2o;~lUu@d2on zyyYUGkv~B_1wT=bS718RKwi|0%AsaZ$)>l)^2GaK4?KW6J7K=&)2%9M0z*+}XEf@I z%w*(a*I9>}kn05j?MXrokCJoP}5vgYXVE z!1#V1?w_o*K^@+?SQOVIXU*ljBG88f?~La89f?|rxu}MZqh@v;bKpA+$MpW@Ow_VA zz*VF-M-4P#CbMEmF@$(924f@4iQ_Ox&;Kq0>gX}*EPO&W5IeJpCq(UGI@F;HLY?Yx z)XJ1Y4X74sfMZcJ-HJN2CsA8?9##K}^$vQ`zw?*?OX0jk?N!1oro-f@fn`B;m=`N! zd7D1drZ2bgov1T$%EpssHIG?l)K=v~Jr!e6E3z3~TG|H$bhv(?4r8ip=5sp){fJk= ztk?xrex{9YM7>b1qaNG$sDY*nFk6`ub+$^O&Qx`48!SwGU;xj*GIo)mFAC?e7`{d= zX-Ia{Kr7T1^gurxhMLI|)Rvt?eMsF#br^+uJYS&(^ab^PNsz+~Bs*%Qi{;??A4H%W z3G?t6F2)vt=0nCS$itaJJR4TQomds)1beuDCoB^Eh~L99=$X?zUgc5sMq&v}6=L3~ z^-%*~je1J1xCm$|JVQO)zXMhbwTC;guhMgQI1wJa<5AD=vD_Zc0DOpAp=No^%FV(& z#J6E)e1>6|D9k+Pr7;Wf{#cy$79;<2T=&Dx_x6DdaHuiKrlIq_YnGvZs&q?g7y#HXM>&Vve>FDBJcThaqLGcIQYfeIw7MK$mdYhwDs zW=7qyIPqnum3oXlFmn;}rkjm^#80CJ_yYB2D_Yci!|8=Ph%dn6ShtutBeSunp8sV8 zHj(iN>*8$IM{lS%sM8%%!o#_O74alyEa~AKz~|OArOcu2RNB;AiS!bC3=FAY9>Zm*$8$F-{eex7!@+W?L0z7Q&sViG09V_!ISFi&e?A?}v&9V>&EX$z=j9Nziw^A*hl4j_P13s=;-r z0qsDo*a_6Y&Z6Fkmu&nMs{DKF4^;U$mCYYy5~3gRtf>0sTm-bll~Enk#*EksHPcb3 znar^H^K5(#s-w*|eJ^StXHf%xf~xlxwKbnmU%6seF=r|bs(n{e0@{MksJ$DCHE|Y} z!{?|i$y3!>234*us^N~PhWevcZVYN*Gf)Fshd;+B4fqunK&QHCrywf5q_r0M>iKU?K&N^* zYUviC9;=n8j<%o%vdiWl!d%2pqaNSycn1g8FmK9+HBG&3sEO=B4fFzPrLLk@;vpti z18)gvWU*_RQ=A$#)7q%?0jNI(PejddIjX_E7=njv{9n{#`VlpOuh+<}ofn6kMsm|B}_fQ`iPf?$G2_sE~K=dP?%f@S<>PMnFXpcIS z15q81x6Ze&v+hTgJ0HpOuLkatpqai!&FnwaQ}G@3SSGG#Ubz`j9c8xWL)DA0@v5kX zo1+HM4RyALqWW2Y`i{5()z2-L4ctfV-BasJ)I0tys)P5a3ZHG3ZG-t_OpZf2hE6sRQ) zL46n%Ma{Gh>M3Z9TA2Z;nNLE^XtqsXftvAd)K;8Cy^_zPw)St-*1SQr`xRX(5Tm)7 zVItIFON@Hqq(Hq|Lu`Ho<|JMT^?vA&&G9ePH>TVz%)q;$R&WezMWRpxe~6mkM^yP( zEqVU6#ARBVk<~zrv=O$$ZrBTNp$1aDm6=gTR6~7jd=%;oOhXNPCF)EaLapQtoBkGc z7~{1z{bXzHGJ!%Q=sB&5>9GUqDHw}^xDK_)H&ILX#p>C{3_KnxJvpkLF9u)<)brjR zHINzD3D;t0OzUcEW;7PFlQ0u?$`4pCS|6g8@ITbyirdZ{t~B_7czq1RqV3IxP!H4q z&Z0X04|Qg|JDB<@F@(4)fPl_GBx;FUq7Iu2^k;J?aZenyxzRJb#%9XvwonU-2DMWAFd5#!jQ9#?qE9~$XFe{+Iaua5 z5BINjNBze0Kb(Z6{mqDS3@{_#hSNwdKG6J7=`yY)-gA&SJn4CC1BnNs4r^W11bU&i zZUpK@HW#(@i%{=_1E|Ay4K?70E&>|qPt=Pi<6zT3IO_CPM17N~k9u|XL~V%+Rc{>X z!)YyQMK+_Jf`h0-dfDc`vFZPz4qx0MrhHPD4P-=B2th4*Mbt=xWmoBeNY1kLcRM7*!X1BO3t^gK@Ds-UZY#*0s;3sdxUvo9YQVPb1Z;AP!;lz zG|zPvYd_S|FTn_0g?;b?mc~w_%+D1zp|

UE5wQ++2@Cg)kAdhhtG&H3v0;mG=4%Sd98btd4I`p^hnOo^OvF0%tImQ}z#~ z5R6}=X8bd1<+srvDr-=w0RP8mEz~={0eZ19YK47J6B>_|a4stJ$52~$)?UAbittl( zHPieNCbZR2dsrX+r^4F7UQfVsTu(y1%a`I4EM7Xm|1YESmN63?f=cR8N8k&!wOhZbq%_IO>)A3wrSxYK3_sO?!S+N71O~YNL{` zJ!;^gs1;5{4g8gLJ1R#`qVBtE>+UNGT4}C|W~KR1A@rhFR2sEKv8b$Vh3cTSwI}L5 zFw)k?pw9hV)bn4V-iRr-eiD_OH;{2%CvTJ)xG-v^A=Yrzo|Z-pP!6>fQMMjqt!dlq zp+egfl^bnP$@~c}#;K@0tJPBA!>!oP$6A`+M~Uw<8uX-Ob@U& zR;z3#HU_oQPf-(GU|oue#43CJJJhi|hihKe_35b@3hQx!ltjpA7vJwzmb!H1 zqpKvw>EvtKf1szb?@<5wo*KRm1G;)Tr|cW>D!`NE+cS8LC(f5Rq?4zP@5qpe`4SW# z`>O-x%53-({#VbJICPt*nJ@Tb*V8lQEB@cp&KEqqazLfDzIMZtJRkaw3}57VFC}3_ z<5Zq#-=PitSx z(JwslzJ_B;c)I%fk16Hp*!B?g(Tl?^Ex_wPau2@h?1meAOlt3uuwn*JVN(PZi&+2|=EZ zeBVr1?rGv{`e}-%mCrM=zNfyg;lxXx>M0?UY97hlb6A%FiQU5D2M_@bd7$ggyyf2PJfi@Fpkq8TP-ACM0!F9?&&mz(8;OfCO)b z|90JN+vZlD&Da0`DfWmA=;U!t*Jf4`-v7G>Z*te3|98sqNka~-Na{Aw+x@`S0p9pQ zgS-QK$M=i>-?9HY?SZ`qmGL(3``<|?^y!me=Y3$s0Pm3aK1{lIa^JqRCL|T=7C&&1 ZchHc;q#i`*|HZ)H^}ub1Dh6x|_#bfNpAY~5 diff --git a/resources/i18n/zh_cn/BambuStudio.mo b/resources/i18n/zh_cn/BambuStudio.mo index 8327e3bcdde68fa2c0a5fcfdad62115e18a7782d..bfb466d6011d6496d12826c8520c8a283307f21e 100644 GIT binary patch delta 45407 zcmY)11)Nq@-|q1}!@$rrbPhdqH`3kR-Hm`CAhKzs!I6CEF6r*>5~M*|wimdm% zAS{Y8usEi`3RoIjV`W^3h4Hbar{CatG~>0y3fK$3!Y!!wvTdYK&-1+;1j>=n6C-dV z=E55o1!HdF#<-XllVeq^hDC8Y=En1w9KFq+7aLMwO3Z>9csWdhHITV_?J++6dp!uK z;1CSO*%%iWp*r4xYG602;iIUTUBp57D{4kfw|HI%Hb<3fgR0jP)$srvh?6l9#@I?d z`uEZh$b;cn59?qZT#77__cvAiD4)rY9Oak4cS0=wcT zRL7lnxg{TLPBoY9V*L|RU>6B0covi6@2I`-5!FG+ZWoV(Dwh~F!>p)|b7C4SjH$69 zX2!2j6Zjvt#MRgWWA1VFI{O4vun%f?&qB@MlzG*>hno3I)H4s+>l#jhMTloZ?V)y9 z41d4^cn%j}$UgQ1E=8TL9{b&1^XCvqL&6JWF}!#O+-{wWQHd`@t;8Cfgqu;jzuZB$ za7MxlHNX$3M;Cg;m5Yyxr^b?)8H;Pm9SGzgVWAZ`i#q>TP@C~Ss^ixd z4>{_28HgvutXRn6tx+pE5;dU37!B8A2yQ{`m7SOj4`VDX`7HvP$s^P={!1Acod>38 znh1FrdKFN+{w=1&7{^_QnNa1*V{Pn*s(%#K;RWo8H!%rTJKY87;=txEnRl>zEmzU@1&^inlD*#TNL}Db_zN zf!wD(uP@fZ?05*r<8%BDzd7SpDCDd=#|bbd>6uY0mKQbPa;S+k!r0ghV_;|0qwIqk z*ih85pL&+{SHcn!RACEhMh7tkUciC)2M)zf=iCe);xNU}d)_;Igq!frPoCEuXIyX- z3c2Wcy@?M%y?P(xNNn}9i{JGL3@4$eZeT^{6VK%K0q`Bq7iT)!hi|KvaXHP%AMG)nFuQ z0CQ0du0;)GFX~yI#H4r&^@eus#30#C7P^TyQO}En7F&*);7>)kD_5?J8Zm3N-1hreo zqh>w}wW$_kR*ZkkeLpCMrHD_!Vt5)=KlB$jkwmDKOo>{ta5E3;k(Wk)3V}uh2I521 z61Dx+o#URU8BM_4I1jaSXD$C%OhNn;>X|0H?N%%eYC=UYKUTxG=wlB2-Hi7e>#vcO z_|1*HI%;H1P&54!3*c;2$LCOw=r(F^Jit(Vfh+MXY9Nb#caLNRHXyzmHIRgNJg*>D z#C$mTj_3bl6@ zSo%5~LwpNrrN8j+yN;@$W;g^jvdNed4`NjO1=Y}9)H8l%dJkNB9E?VKD%6T*Ks|!| zr~y|*wbu?ap^w^I{!#)ue(Nvj9#m7mTmff{%t)I|GXN}c~f1k~_!jKCF`8Gpj!_!eVe0Y;^YB~g#099G9F$h*dy zj@rCm{^1_U7}P+gTYM!de>(;?GltN=cbkA3yoY**PcRO?#4_kTbDwHuu@%vZ7#o+N zX1K}XXE8eQ8<+*}q6QxOxiblBrNS{5W=B6Rfx-m3U`5o@tw(jR9W{_6sF7bpy%`^) zc72o=?q|Nzs8{a*)QU|(P2@DH!;9uGn4b6}jEAxRWc{@{QvK;>QW~{n%}|@9C+e9E z#~io-HNZ1i5-(vkO!U&#D}@?(U9%PH72O@RGQ%x>JgS|UFIj&LU;zo*oriH4Uc>m< z>=ip5yQ6mbJ5&dyU%MIBKs8(+6JiUjk6+>`Jc3&4sc-lo!?~!ABmQzLmd7VBh=j^G z4G&>eZ1T4&xCC<%UxPZgH?S@Sz2yf^tdFg69qLiWf5#*+E$UI-Mb-O+Yca!n_gQfP zmF~y+z{`a|e$=x{_|eTgHEQW{;dm^Mn(2Aev%6+K!UV+Mp&E?!$vwKfsF_!=cpcRH zq63EG7?SOBMER-eEr0@_q>P@66|N>E@0!puyVmh{4y4I7~b zG#oXvsi@62!{Vzj5%Klr5!9o+j+yZVY6X&p1bMy+rXipX@}n~9VM%O?*>RSoA3=3| z+Tu4*d*XN0qkDqd-EUC!KcUWhiKszdd2EGR(Iu#UHb>?6A4=Fof|lkK=EcjXj-p2k z3cP@lqGp)MEP`68YN-0nF*$a}R5%)w;9}GZY$s|@9LF^H4D~4Eg!(~&V-gYSDwIK0 zXpAb*5%nS(hT%93wPIUQGd+ds_#$dRf1oz+XViq^M|T5EiHc`OtyCe@%9ZvBXl7MV zGj5KWQ8!e9o>S~yhcxTkWN1|RlKcFV?BWgvrp^oVh zOaBRZM80>!GG3xy#h+2TI(;0sL=mWl@}icoII5wFI0)-vFFb=B>szDJ z`{NiKgW3!6;stSheZI#L_=<#CsAnBFeo)}+c6!uGOhyfC5$f3YLCQD=$1YmY64|Y{ZvD}$o6AS`uC0y$cV2{OPDOo8G$NT1TWzis9hbFC@ApG z&xUGvJZck8LzQ2Ln(=1TiXA~6xAUk+aRs%x@1d_}=Oqpb{Opzr)xlO&17}bbenIW_ zruG>yh6qX;9#s(K^(CKB6WVlq|?ghnZ22pmH+KKa=u$TEg(; zLEdgMR-leYhZL@Xo~S+17d4}Ss9itO;&V_dupG7Y2e1HMMol1AN_V=Fqv8>`84IQ4 z{O2I>gamb%ER{2znGMxpe$-wliCT#|s1<60+7n$-FP_1u7tAcwvD=Os*j3b$zeEi@ zPHNX)CZB*BDuQab3aUUIvkU4t4MRQa*{A_6L49VdL!E}*sAqf})!sQ&d$-MpsLlNX z^+-a}xN?3B0@~dvQ19xJsHJX$YOoVV!JeoWR3FqP9fn$wsg}M3Relp{U^}rJ9CRY_r2x>G@=e>S5ybRP>;q(t-u=8vpa(K@uH>g40q)(qE_e*X2U-)J0?r# z9!+^vKW*>_?1**r`}Yq7ek7qrhM>Ub_y?>+ylh4nABXvf|AgAzA(?^#U(p(4tYAK5 zP)oZmi`zSgP%Cj7wFfSuPSq>a3dW3Zui)gENaw#60nMyEYUX`#6b?r{%jj9%u1=0x z@?5B6TL#0i1**d#I2K2t%Eim(HfMTNI|Wb!t$Nu{$oOl-tV!|Bu`CmDQ+trOx$Elsg z`=LfY6t#p?QA@Z2HNb7C({KhgkgKSbd5UT$dQNxjQlQ!?hh4Gff6X$XbWkemXf~ej8g;^D+5pRTQ?+?_<2IqEPY~o`N;$^W4uJ;M( znZHLh7&DKnkkAZAEnzNHxf-Zv+rr{sqF!7>Q7@RWmc9hl-ey$!-Kb}N4pshVOZRUP z&`e+8YWxSaCsyZm?}2To8SX(X=}FX5-?a1>sN?p@(j)S@M^XZ{DJ!8?pr)laM-8MC za$J3{I{`J^A2rhNP!<2@3V4f9Gg)Kt&8PV?x2^=2G{8F96xpGR$;N2sOz2Q|a!1>Gi1g38Z{TDfv& zZPY|tV1Dd{1$F)xTY+n+U49>n;wRM13m0;hLd~!e>JcEQhLC4>h1psCvCnpA~~p9S=1pVlLvd zQJ)9 zUYSu!x_FqG0UMB?ANA<`u>`cVlTk}O-Qo*SOSl}h)cY)c2-U$2)Tw!bEikl{TjCC= zPrX5?{Mo3}vlX=xH}E5VMjnapeJJfdbmEtBn=Th>KxI&SqB3eA4b7hBXv?36TA4Md z8689Ii8H88dll8*Q`B*Nh5AbN5o755Cn@WeJRH?PZqy5=prsc>y%DRJ4NxB_v_CM6jm!Qh6Lp{13r~&Rll|P6&4HwZbOyD5_Eme30cPr4KKc0@Mp;D{AI@QG4JJs-Kgn3EZjVyWRYp1kLmx497T? zUB|gF3-O|;8MMK2xE4p^OH{*OS8)zOz0gLXW;zpfS{CC7++_KMtGdsCsy>0TWDLP@ zJb)V6@2CMiL%rEPqE;YoHTQj>ve^l>#G_FI8H-=y6jZ&S>Op~DR)wMBwNZPZt?BnA z(3OOdsF^-TJ>#S`+(5FUma;HvsY{vFF`Rf4)C>oq%8f%kitkbF%)!8`8FLUnh;8vX zQqTA5)^sCpi~91}1#96LEPz)mJ$5bk+pBC?lk_?mjtek79zd?XY0IdG8gU2Ij0U1UjK*RioQXO%=P)haMU@Y!<7S==wQ0jKBW6WClA5R` zZ-82vj;H~AseGOPZwctdGtx4~nKMwEX$h*KZKzGP7uDbi)C{j%{3%8d|AZP~=DKcR z6;T7LiJDL&)ZXfdzK+vZmN5@CqaQJ_q^N=2MOAo=I^S6)N^-0q0l zGb1n;F2o#o9<|h;Q0<2{aw`$vOop0hcq7igHcbH%RIoH^##JyI*1|kE2=xe7qh`7h z^(eMsX*`JaFiK-LfJUe{>qyk6<8IVIQ#5h!k0KcOeSuFP6B)BmGv0@q$ip!Q4+)P!22Rw2hmBU%M{4KWXXfn!iBd<3cId#7B$ zyMmL*xPw=)PwOCW307_6ej0v`Q;7F#>joOFoogrzYm=TFwO6`gbsT`2@ez!`bEtv7 zMV*3>_WB`|^A|=S9|=`Z8G}(X9*;U+D^SO2C+a6!%&TE` ztcQA3KC0Xgs7JFDTrBV*U)NI#Z8z64`Xk9ih5)%JGpY*P@jH% zQF~%6>dWjx)Q8q~)WANX%7t|1{OgNE3If_R1u>jwR~h#a@6yH1C~H?YprWV-nxJOd z26Y;GqfSSEi+_t6z;M)x&PFZ$N>sTm_%-hC%K6u3DA3I{R1CGWrBEGJL3LCI^;2*g ztcycYoAV;-SS9ano6szWTCrNF0k%ec?sq`7JH+xwclTYw3=*`I^DScy>Kn=)i~ojN zp_ix`MD5`=TWr*`O=0FnbzI(Tfcomz5mj#}>e-J$O>Bx!Kufg164qgE;`_|!sB@pT zr?Up?nSO&B;P)2aikXR@K@H$F>KI4uxF6*a>Wr~%YQZL&tF8MZ?$bsyAe`UW+D|Dgu37=v~GHxu}ogl(u@ zJE4!;G)qteS&4ean^Ak@1Zo8?Tl#&Ae?Zlb)z`g0GN4wnG-_ZqQT3am-V2>D1^s)G z1oSM|qE_MpX2Gkd3f@=l2aY(XbDJAAg9@mDHAJmcH`H$b5!LZVb3dxxv#5GMqgL!5 z`s&~*0r}1{qV;n#kAs?NGE{y9Y5)aM&$1e-qZX)@>V`Tc{ZT717WI8$A*!7{s7H1N z^=0=QucQl4a_d6nS6^{y5Xp2ISJMA3{(dzF)JQGb?^k$;Rn=SN&2;W6s1w= zEl`_tAZmqw_?q*tUAmhDb#NKANq$9*^Z`b}52#J_52~ZI1Kf(_My)^z)QhVsD!)Fe z!}h3^8;a^@BId;9sP-=T1oRBw;2?}S(0!VX!V<(Uqh=g7$PF+Ps=-{SXIk7WgX*9X zYKCo40~m}N&`i{dtw6Q6A2o3Q0s*~3Z(}a}jOrlgH?F~As7FvAwIZ!i<-bBL{r9M6 zz8f`wbEr?xN2phJw83tvGog-U4b%!W$C^6-;|ORsUc*Xw8}%q6zI7Gy;vwRtEgmw& zy#d2edn6lbAh}U1(gZb-R^~udxk%IiW}+sv92@BTZz7X@Y&>Xtq?Dqad(Vr^9Ub(lowe>Z{bcoB7s{y|lUIn1q0 zN~}dZJ!*h`P%|2gn&~i9`Tt>MT!Ve_4QelR8ScK|j6_Xz8*1Qt(ATp(Lf{L$gPM7| z5pHud#umgoqR#zc^Ezqvg#{4*E6z5-? z>O2W0@h<9EWEkzfAe2L$j$Nn~I*)4jBWh-G#<;KP5m=CTJ)DDMQF|)$cW$ORQSpK} z4NIUN<%REfR;vj7LV{*8cC1^{$(Wn?O4M$>hB_UgP@D)GKo+X2ChA znH)xK!po?cK0%#^cc{G)?*|wE0`Sdy3&0Z-!fmJg8096jialVV{|;BU{BU+BB@JfDPpWSmAl!wHLm0)Hd=1Zp#u zTO1VlPbem!HtPqh8pNmI61TheEp>nQ;}+@>HeKd^2Q&q96W@Z`g!fQyzL4cEzlcwu z00}Ly5PpxD@C2U3=U5MSuHY99bQpIf<+0YPAa4fgBUig0$5X9w^~c~hr0>Q0SnNl) zGLx|h@k>|-bFX#j{xAa7NjQdWG0{5r$7Ww+P2%fOr{f<~xypXVeJ4z|&Ha6$GB{D^e*=N-6ezXb4d5;6R21Fe zK5i?aKAh@cdz^yWL~n2-rrqi4UqGFL@w;64JE-?b`rYoY@07$7#1ria^7i8|c$@yc z`Fq`x4Bh84mSZW>JMVW5tw1gP1B(|p5agXB-WQ)?xr0H0zjmANkW250+N329yZ6O5 z)Mvsmi=W1F#BZWsfk5~XH`9)&CH)dr;UGrEV;GEQQ16HHs1K7Hs8{w~)PUY#Mm%!V zy)hr7p8Y?l^eo3*dUeb}yv;GrzdD*kLJW*F=b{>3j(QPoM|}<7k6O~hmVX;HkUvpx zzW1nCb&TWg4VMPhP5}(V3KnmIdNX!C&iPkHe-dKjI81;uFdnW%t-uacL;FyB<2-65 zenB<#2sMy5SQbBHaV&GfP3&7#{V^B~XQDo&=KBQH@eWHkih4)iHa}rf;wetLj`E>8 zDv4ULN~nR>L9JvP)POspJ`KBDdy8XtQ0aJ-)l-h4YWf&!>*`?2BMZ|Eb2pO zF=_@|Eq@>C(Vas*k~>%d|Fn4FGeKS(;uTQkmZSE@F06;=v69Yz#3$}<4`NI2(|k+puRWk#&EoddiTFZ4KV2i*HLOzJDD&q=0d&r zT3_J&>u0;$BvfQ=mRt<-&J%y~b5P(frSHDvKDGXL*){kEwL%{-8Rg?&aUEp6>Q*8z z>QNO!ovQMv6{&-oU?eL)ZP2imQ8)^ctP^TxxFYd*Y0rf}=piWb5)E@BL5l{o&P)qx*Wqgm? zrL$3cVlQeB+{AEvjjEUUSJz+`)ZQqDdec=go0{Fs!KiW*k@~(jhk%xNEow%aQ0H|g z>KL6xefa!>8u@SLYcuq=YcK_>sSu|K|Qi^zqxNnwNW#Ff*RO+tfXTQ`*%09`lte( zP%F?M)$urFvwKr5Jreb3mZQp_Lhb77sE(7|aT95Z%5Q;cr#ou%_C*bB2>M#$@dWgt z^FP$_*^ZjgQPg=phdSpkQ3H!{*9|x|YP01*ZOV$MnN`QM*b>#w5LCG_s1=@zQE)Sjq|d9edl#~BvCYw;ux+$m~@`N{8r zU2x$8-!&NPp_^eG3@0O_#Vep@)EqV9o~R}4gIV!gRD;XS8>sL3@gBK>9O=ZQfQG=n(ZNdZH%u zHFiXQtR=iaRSbUOj!OuZBAy$|U@y#x8&Dnoiu$yBj#`<_Pu=m$hFYQGsB#s}hNwr~ z5w${JVFjK4NCG;a*H9x3`NJ6()j%?&pcjGq^y+Ex6{r<>hT7d9Fbf7hbM>>K_C^6z zekIh()->B=Y@Po>fdIP`)!`4Qic8FGmVeT`f+}~{e2pp}^4tw5shQEti*3j+i7K}M zHIPjhrt^P70la1Yi8^jkU$_dXP&3GF7Bas;tw4E;*RgnGOh95RBX6Q>dumq@AZbq{p<|bYd!?C}`XP{2YF`SNn;zs=L z73W_gEB@L&1$eU4GdTlKkx&%7FRQ0P1tP3#x%-r~z#iLiJ{)GN9sMqqD?&qfV&52~HZsE%)& z4=^Ti{}};|{2gkBvEMtBqtY{5yeQ@&UJ+;D*OngdgL`DDP#?SHQ7hLPt79ap-P`6L z*q-=%7x%qZAKgg1V|Ow}p+@@B(%+#5lJJxJ%}6HH%&MWvwKuz=%JnfvnKRARsJ*op z_4|SQI7R0_muKLQKX>Kr2ns-od!jISs)A3)d z=oCyv9anz`0e!!}gc{K+R0r?P(AX}X2sNN|*bcL!_QYhYj2lodviD}DIIg|gW+SsD zYUMgOeXkz@E!8OOiT}e^7&ETxxGSoouTcY>h1qcds-e@U6}yR=(Q{O}Sn*uD2~iV@ zz#Lc*Yhqi>sB^M`Kn4;nqZ)jVst_}NaNwItQq-5rLa5Jz&ZrKTqQ3cTH+Q2t-jCz) zn8oWQaP2lltyEXkdu5Z(@o_%91 zMZ7oG#|@~jSkV%>0cAq1a1PW2%UXI}^!t#|#1c-UMs^WZFf_3nKvLAtenn9;tYbDt ztyC+syE)MEM_YU%s=e8$&AJLTphJl{{~GBv612JAqB;mp;*5d%(20+Fwq>v^wm>zw zz|z;F8a$2qQu;e;V9Ap@Go#wgk9yR_P(SRpOv?G!0Q!=kk$sP^=Q_Z`%vv%K$X8{>5oto`siDMWXWAZT2uqYQG1}K*%!4EGf@qm zFwdJ;P~VP!!2_5qh3oJ-YC?}O4F5*`Oc*O=aNy?vKZONypdLXU46Y3cc zLYbzZ-lXR{@YkWPt=G9peoG3-na_YV5;!o zz+bD)ih2>PKn?I7Y9MdSkErrd(z*9Wd|X1jEGqp0w#V1#t74P%Zf312ieaYO0TJqai1fynjZ?=-CSL+y5yO(hm-a-xZ>rC!_G6wq-Uzv&XubG5r zb^~aE=ZN=3ZJu&j+=y$S8fc0Guq&#AJC^_0{M!tPa05($TFFAF_Nt(M`mKlh(CZN4 zyHBkVB&dV6s3qEq>fjWrfeV&?&wOe5|5$#stnU4h992Ib>eXEewI|wG`nRahjB%(J z)g+&QIy!cjcOn?n`=0OnFqBQzd)V)de{gjqJCPwhqp0%_Ta#Ox)D2v z`)p{09Y|k;8mONzr~B|pi+ZLtP+yt)pbC788pt?vF6vFW9`&Jh0=05~qb3rX%axCd zil;*jGy+wxBx+?EIel*+0nPY-sDevT1KDNiw^6^{evJBp5jD4KI1g%Ig)LsytYbDt zwc85IU>DR1uSV^;6BzjUKUyBwU>It~DNq%&U?$9q`qtXW?11XHFY3)W8uei^166+w zYNk6-GreH(*Qj>lev16= z5$3^y#2cW}$D0eWF7a*oIsZin#4O-OTn_cD8=`h`Z`44xp;qV^>O<&0cEQXA-3w|8 zYUQ?@KcQCOvH1x#;P{2yr(kN-r(oVfoPTAMCP5WypyI7jo3ICJg}yiEn9ES7WIe{h zUDy|oVRI~A*bRK9xdPShcJl~o0vCJ&Iz}amxUbb+u@~{Ps3j{|)O{M(N6l~@s{C=( z%KU{Y7p<5Za4PIZybS7`|A?v=R@`mI9H~ z^HGmz9jf7jSQt;BmNuxAn_*n+K|Bv?&&;#*J*axWqP|Jp$6WgSPg>d?r;7N1jJB8@ ztCk7&7GZl-#n7_u-5nPdPl#H|~q)L(~iBxy3`uyYjJ69VSD)AF`uXppw}U)$u5E9{NhyMnDzM zqh@jk)zK@9zemk1W(8+bGozW;ENNCl)o+YyuN7*gdRhKJ)C!HR!1-6fIaXjX>K*^1 zc@>o(rJ`#fCTbvwES}Ed*-;%8v3O-vy#^Lqu?gg z%4|cu;Z9oovzee$u(yHqjHs2oY(7V|6TPxKmhsF2sF^oG<@fRlOd-%8QwFigsssoA zGyDuy-Cj6{MaU1W=HjJMUmONtM_h+>FiG`bZy)tLqgE)Qrt6@fSpw6NUJf<$cBpcG zUjq3E3`LD>lVzMh&HOUzyV@gE#n!c4`j_Si)M=S+@%5;g9l~*V64gOW%Nc_wTj%Q&h+APy>!p-!&ZHOpOys&t~!M<`K+F`UUiB6ZlA= zJl1I78u%VHllc~3X>LXBkwd7Cub~G1$oz;}sdx=tdMYzF>eI3;s@)o>0XJ%B=f5Qh zs@TEogVTxo7EjX19mfo)idj$}BDqlYzOeMFs3opr>0hEc{1$bb$DrzuH@|Ph`B%a$ zE4TpF;40J%w^_kss0PlW8oXfXH!b}Rs@?-je~lX82h?}Kn2p_|%Yj<4rZ^IN_yqK> zeu)}L+$OH$#AYV5AgWvivyG*HYfeNBY%Z#u<)}xs7S-Wl)BvxTcTt}q{+|SNJfbyq zKR#zi6>Nm+us!C*p{Ncvn!8aAA2qL;PtAW&E10mE8%TQOyn97ZkEklL$$kFIMAy-9 zm*CAq&0rgxbhLGl_`idu`=p7&%l+q-twEaw9o$@3Xt)Q zIo6zk`T=99xz#*oUPTS~5oW-DES{m2`$?xLD!-A%dtegc1qxzN1H#i;r#1YqKin-Qa?dGqqi7}A5lvl z($>u+7Al?&wWJZKr7nZoRQ0hw_OZC)B-)sp{P9(iCWTC zs0L4jp{JGv-|wchN{;d)$!M;@*`2@#-pD7G*r2@r~w?nhIj;{>+?TV7xxCtgj&L? zs0vL{ySRtN=b;+jfQ4`u>Wjon)BtjHb@hs(22ve0fO@FS+#NN5uPlE6CZvDQC!hwt zH|JY{HKl#9_o|quNQ;(+xZ;YWKJ9 z$@y2tS0reJ!>|kffEvJOE10yGYalzSgCZ6$WmZRh%r>$3H>h&onUhfioo=o{{jT_6 zFV4UIK;fBXQP)r{ag^Ww|i7YQ3Gj-n%GcO`H83j z%tcLflcgW^38>&@)RNq>jK5I@L;JV}QlJ{hhU&O9s$MrsAAl-92{rSDsLi?p^;@rv zsPgB{Td4B>V+(vjRgB-)nG{ta4XUB+sF@VB{0e4uRJnSn23uRaFKRChMLo*-sP?y; z`;dCRca(rSxQKee+;SP-J5+S9cHIP!M^0iO{=w=Q;l^cbsKLPvTd~AUU z`vvP??DxLJr8@uB`@5xoiK-awYiAr(1BuKmsE&$RekIgrK~2;^np^$=)Qm@&^DKRv zc^Ea}pD^(6f84N)-_7UBpuk7e3nR*aU@sg)QJXLVm0#OzgxVV|QJe8A`~p{?-XHf- zdnVRE_l2bpY6ZVTUk%PApl7w;{M8D4Ml~3Bkh3hRq5h~{z7VV7A=CikedEl8YOgqI z#hRi9+zHijPm2%v#?JpJ%lO_h7NIJxL@ni3)Mvms)KbSA?EWk_J2ocX81-jH8&LIP zf9pC-j`M=}%&_>rA?_ECM^UftI$gxeq$@p8P#DQ)5m4RCs;iHC^y5>sB)E1 zfAOe3w!*J1{R(PD?^^r`>c#ff;;}~u2mZ2Za-^K^H6WmoG&j4WMmQK#^Xw+$QsO_3 zaUIwD&TYQdsE&rCj^S9;z-Czb5_7fXZ?ydVmVPE6=l^E{t*Lm!GD?hf4VObb+p4IB z>!SwR1~tImm=8yyer>nS(x0OS7Cg=w164o1#Z#l|XH=a2y~0+Yq!p-U@w%vI-wJh( z`&s&IR0GRV9qqLA1E|w-)_h>;{EOp(0mMN~AO&h-*)Z_?{{og#(yVE=M12G5iP~)Q zQJd(P#b2TZl464U1jgP@8u?YT&yj*!e$b1<#o`%}1ye_zN}S z*b`ktNl*=BMRk}5)lq3nuVL0l)o+F>*W1#Ep~`)Q8$$WI(=m&=M|LfotY{R0FTf_ox{J zeeYH(5o!QwP%BUjm0uM#pcWSIYJO`@vHZmWIe+U3=-KW;?e^DJAXB7kFdu3l6;K^j zH=CoLWp~sMmBUdhH5WCIBN&cX&3CBZl&1K>tzZGnqVr#afR0r^RD%mp9d1R_vK zOHd7;Lk;kz#qU`Bh50w?mrI{9DTd8(W=Bn=9BN?oW^n!$=tzP#$w1V%)sd(bS%m8F z3~C0~E&jsdpHLGBo9TWaDTA6oXH@xNsEN(MaNK0+Kcm`xJd^XU-){X)f}UO0S#D-^ zP;aot79WJFFbo&tB#Y;p?K&)lT9L-6)6@!eoJU|dPDHi07FF&%>NsEVEpP{`k?`CK z6#t)FsKjc5)J#^J8&ONW12v#asPB&Va3Ch1=N?HUYNb~qE984W z5l}-nP$T;ti{W$3h1ur2^d_hk>WCW9M)Qc}Uq!WZ&*D!}?Yy&ifd%eYu4Pbr<|x+J z_y5-f^kuNhLN~$@s3o6;dS>UbHNHd*u-+n<-WoNK;iwr;L#@D4RC@<-6n;SMg<*@` zpD~R`y#ar~Av*sv38>+uOM=~hE{~eY0aORaQ3JVQelpW8b?Ier0Qv1u1G#BFMQzrP zsP+~tbAMlWIch+!G4T2SnScsJU+#>D8c-551M1C~2lYjy4QgPcQ60`gm0xLYH4mZM zJ&#(ME2#3X%qS~3|0)o+!WB$`yNIVly(({EKKvU?Vz!m;!=(!Btreo zsQTu&sE(GQeiGVk-ax${-djA4|D$_zeSvz$?J+BkMlIQTRE5*10lYvh{U?jZU+Z42 zsZn3Y3!*x1j5>ZjQ8QhH?eU)FS6%1&^IH>8N5fGsn0Z(Vx1nbAH|mufzCPG%izQJ5 zS%_NtwWxYq%(LbLR5@>hTd6px@~JJJ5y|(x0xsZ{LH!YIP1Fn;S$Ypt#X+bgABI|? zsi+sxF4V7Rf;PH=m&97chhPmni@h<`rr^N8j4%mxT4HY2vF7}ZAfRV-7u9i;E$&5= z90PAUY)ATPEQj&7x{m5$YvPfprG1S$9Zj~mr5}QN4{SueYM)xX>UQ^j8Hs_v|G$es zZ3_H^dNros;r>2ARm?;@?oRj9Z2{DPCSxPKWa&9~1$&=~e}{S$V|Kgz1*rDkqSC|n zxB(VLePL;dfzSVe1XN%-Y7_1^e@D$IWUu?~P3cn1y=voa^Sa)y%qBfb=F<6(^wvd=1y)8=Q?x&bW{9QfJ){r`=EkUW^lQx9L|s=YGz=il@o& z&)ZCY3iehI?~Gc31Q*;dm1?5)zy#C^oyJ)hi%=Ew*yC^{*SDSX2@k%upw$i+Mz0JLcOAQViY`#@$k5%U&S!uzvCwS3-xGMU2*N5 zKyBvBsPqqkbk2W@t8S^XpgO9D`ij*Q^#<#VYPcV20Ao?*B2hD)jT*=%RQW@w`sY!5 z;}`QaY7@r1=1eW=pZ`~>uEBDs2C7=T5vt>ssE+$s`e2KXK$V|p@!1w%f*RlkEQs4t zr{L6r|2I1UjVvFk!3wCE)it}BBh9&}a$8XYJ7k{0_{6WE2Jq0*pJNi@ z?<^kwhO3w22IpT5WF$cqa+w8DOIO0IYw4X)<$Iw9Fc3Af(H38eYG;>u&^&?1NI#FN zH}j^O@Y0){f6a6|32OK!RDm0)XZq0MZ&520^_ELdhAJO{Dxc3RWmd=hq&GpeGZ9h#OJKQW95a7Ljr=#%lKzRB@mtg}3cl^kg37OM)Edid+tpb{l06c0%{=D@hUb) zeSsillSLwF4J0vZ3r&E$Z2*1Ull zz(drMK1V&OcV_IT?h&RnOQKewg~fY3<@{@jCXk?pW|<36UqqH$`~+%KowxL-sE*?P z;Z93BRJ@p31JzM$i+^d3K%K7X=DI(8H?!kb;1cS?uz2uummZ30 zCpM~l7^>q`sE_HA7#I8DQXFYV5Fq^21)b z0pviHFJ(4HmG6z}Z~*EQjk5GPsDUp=_CLFwfJV3j^|`$VbqY?IH_boH&&cb+`+;6Q z=^5EoJSv|L#H*<>uA3^vm7M1hjkKY}ix4iu-OgosPxSfQFO&^NLS-ty)6ltYP@xkI zR^k4@t?PI0lh(NUoldN1#eMwxi-AVl)P*+*}~|MGWztZX;~*=#GYi1udF zw!TMxB)=1N9&pFg`bVc=P3{mfUU63^%s=zt72)nc_}?o#o$1f=N;7~Kr1PKr|KF>b z8mGYsI$A<%O!5!lQSM06c;R`qNPEcbQ|>A02dJMrl;?ki25Zv*{{g(0mT-G2G@wvU zI{bpPlN8=Y+9>ii5x$AKdU5~4-H*n1lCLW@c}a;sCOnEZIuL$u<@1=)NuNc3x~BRh zj-``1)_@Y9GRj@V^D1K3Kq}RsTskXPmh`Ta({+c&GLx?F{rL&=59WDA8T=9AX&FFL z`dDaX=V)RUeoI+@4~2E@B;((!BH`H-nnyx7cSjm8Z=>hmB?w$^`QKTj$0I$IhV*0A zbK({L(@uBV;KS3KVRar*_7CoT-1SK3;=6xjn=wiK?G)KcGh=AtD{fv--eTfU2^gnZTCHOgsx*JH(VuMh+{uoo&20Wn&Q2)PIQT@LG-|?Rj z&H7KnZ7runS0X{zj9(qCgt?ho`=qn*tpEB;DiHcU_FQ?LUKKcbMX1;pcU&!(|e#3$K6 zwo)c4<#iQ|JTNxQPeKj-zBoI>9Z&cg_ati7BkeD0Wx#vfAFYMaxPm(q_YagiL7uKs z^tP8aN^tA?jl4ljZ#(7Q68`r(LHq_~>v4yM27ah_S>KWI?=_4@z9fDDRW}nuUQGr5 z)gF(ZSG|`s{EA!GU&JRw&Kj4}-%aidQuC3Th>7w~?sx~uT}D{fVe&rW`v3G4ll*_L zYIN0tygQU1L*h!Tg#4o?-fF^etZYpzLz;eY(AAB0dqwdg^N&yNZ)N#9l79ndQ$|-; z+RZ_kLxj_lH;niZ;FX+O4y28glpTS(ekWa5J?rll ze@u*C1h-*P$Ddcdugl@cYYdK zg`uREB|MWlISGeS=83EBEhTLi_b~DsBftI#TssKYval89|ADqb^q+-{NJe>p#^2a% z*5H1!6R?-o<2K3!eyk_FhQ|0&)BA%4CJ{eOJze@LSTE2hpLKy0K8u)8Y}#6b{TOUz z!pA6c(aN2wO+s-iycCO&k(9Iy_>6|b>Fj@0PDk3G?8lRE=(U9YUc_>mhX zru0WqLsu$0z5IOXt)iB$=J>{j{MOQ34sUhJ6((;XL)Ddv@GI_gw71C07N*Pw^3Kz9 zL+)2rHst@cRmeL)g}XMi)--S-&>S68i0_(#|KG49DU*|7x5J9u_alc*3iI<@tuThZ zoYd6Zx*l@3q-G+UlF|xLdl}ttC%vP(#~j2*(?$^WhI5}MUX2mxnoRhN4YMraY~+8Y zY%u1fZY%A_gJcvV5=_QlWauhK1Kmh#!rhU0ZOTM)pCG+2W%LwFFfe{N^u8l42l3t9 z=g9lh+PIIUsoR|aT*Hji52enJHlR|}4U4J|Eqjz(Nob-5tiW{AZ_~K0%cPwo9G|ow zD5ong@pS)Lor=U0)5$FI?lG8>+-(CT`6@%5JhVNOyBO*5xj(6GoyXq@w4&kN6q?07 z(gvWq`W?Bh*DB1_5z|n%sKu4mflhVxCjAumBdec?&K48b75_hNruk3Z!22MI6;i>q z7S2kc9K=7-cwZ{dWnh~b^}knt!Ue3M2y;C?rG6zGXlW{+in_nj&bJIm*I(qdrp=n6 z%)cB7hp5zzgw7P)V1-tbUX@BCF*`P=!-_Vz2E;2{xmBc}px(b%Z}MVsZzEs7b<*{k z{89fIkkT5^UoSm>U7e{gjRFS=e@Vu4YcL%3>j(WjdV&1G+@%;qB5N!!ooA(^O{6{G z{>=thiS|NBuR**7?Tx}RG!xJE%eSPR<9@F%Ej0-6&zJ?SvlQ&ceTUdKI=MjlXH3pO zK9Qb|^ec3#D<*m0Vlg`Ei3M#?%F9ig4T*1}Y-OxZ+AQpDbxSjl^ThoTBwQl%GL5WI zO|Bw@b)}@hUh>0S)JslyCihwH-nK&b>1ZS6{=L#Os94l5McNq#T$udQ)?Q*dCCR&@ z|KU0vjsJwYCKXa~Po+Wu8jVTgeTX-u(p%yQNY6*bD1_IOw~@Obx2{9vRiuLf-0La- z5GzEsh)n9Yp>#7!+@U31|IlS7a{r*_kJOq${2li&(wbOn7YP?7trkwE&Sc6hCvO>P z<7lTd;h#zWn!6==x)#z;S8PRo82PW=RNc1fPsO-2#y_a&6{o^>3Ve;zx#v^q1nFI= z(2IBp?rSu*iSoByBi<0=x_%~J&(aj1s{i2{LH=)8AP{4d(BIGW5qPa!rNRvw8$>h+ zkCKs*3V8|Vp`fl_3_#ay;;+fSOWwcNx5P6ssOvb5#Ot(Ij{6XCT?u(69`)A|-^RU& zwp-%&)G4C*H~CLvQ*9=d>8LQ39?{S#@-w2Y+uRY98O(j1{Jq2v(wMHt*pu`++)F9n zn>&JgB5hqFuRq}?gny@ABjP{Pu3wJ-*<}r=k;eKTt|N>tIR%T*n6Au}3t}c?iO=DV zN@KdhDDyjc{NMk*)>_^SQc}})9pZ(lTb4G9TB+^~ge#%fg~p0=7qv=VB7>%f`LD?y zN7Ze#`@nLnrZibZ42+AZhZ1|jpFV{8xu);h&@SvjAHj!V*b4srixh2NBV@2LDgM!1{G)2NV+_$@kFLfRAxJ))AXZ%l;~ z(pVwxW|S#O*>lu6WP=%R4kRtB)mcwkaoP{Y=+sM1UOx1~)f(4WBJp{0iOJyCu>5W- zknG)#+%O}lKZn>vQh%k?O75z}^APWDU7f@N+|fwOi@6xq_jH$nvI|I?On9ej(5p{; z75Rn#GaY3eCS8|)=e?Z#Z;5|LnNNJtsWdZ=|B-h4a;K!t3AFd`b&a%tuMo!7oVvQ| zQmzd3&yp6Gw1?a|sdtign{ywr{(mFflCm|ep6ce(N#?3fS|3-=y}z1K_}{AzneS=* zI@TsV3k7#EnD^H3MH(&6t*bHVFDbi}a#K*(eA2R0w>0J>Z3Kg>YIT+0nD8R%U*Jxs z-zDfOV>ADT3Jq;ATPV=VD)R3ydULpSwZ%-Ne{FTbs8h=Zl=(jsNl%$L%(ysyq|6#u z-FwgAvJ=-;+^0Yu3Us!{dJ*12Ml%Y8TZbW(SxLkC)$|rBx2H@t(&pk>(g%>bu!NNBPPv)H-%$47EAVTxvLu$`ZfYG?w%oxKY{Xr{()VJ^$YHb7 z`kSqZI&@Kx)PJa*%;w%nLn8k)c|DodW1HGz(h89FKbw0w!n(3!Rm!x+W!A0JH0B z18qwqUr_cZ+PF=5U01o6*@`?MtrdCMDAUL4PqlJ=Neg_L*DphVq(Ufm;(o_no`!RC z^G8wM6&3u?^(75tpv?LIq%9%-6X{1$*LU2v2v495UF{v-K?Z)D_C}MQnH3A1ng(<- zodR!2EI{H;s}w}xdE6<;J4RYGI=I0=XH#BR71H8ypC&wqy9Md7sDFt%8Epl&QKtj( z@v6Y}BjryrutE%ie?hpX*PFm93Z0{nt{N1$O8gmxp3_J)8car+8QgEIZQJS>Ow5RK8;FqqiNv+MT>%933?zM0@Ee$8{6fUJU9ebtu zpVIUe!Dx=s+FatRh~LAv|LHM;vYkomNIhMB$jd=oS0Y!=UQ{IPrvv_}-@soWSxV*r z75q<<3a?eHcRdAN2D} zc>YD5DZs7_lSI58c5M@eHW;pj3w4*BlX?rjw@kqke8OQ)` zU6qJ`OFdngxc}C6A7+{7$k@Zp{|6PX69o^Dm!I$_oW}CzqQU8;AHzwcMUeL$>Pp5; zlh^<@Qf3J4tRO!L;eoD*w~lZ_(k9}cwle-_5_EOqzD(kebQH{;kGl$u{6q)uslY$i z9Qeyf8A+?pJ%jvH)H%jo*#@x~CzG!07s^bswi7e38CGTr`Nc^OX76zEcR%SgDTS}m z$xSj35Z_9H4BSz<$B;IJw6WGeBxNt#OgB?!C3&f7tTE*}Q9cLdhLV<$a5BQ(DHBQ^ zT{XF1SUdY^<0Aj|v^SVQUMl=dg<=#)VU5=&+?vV*sc?e(9PuDJNuWlo%scXR9U#2{ z;V-y%(OGg!?_?d9qitQ^kv@~~J?h)Q6fQ+VYVP#h zlPQqUM%u=#Mq~XM&`k0(;b`hCu)GR1nux}qP%k6lv^JR`)M-bVb=ZaUyX60S&7^#w z{}^P{Avli)&l4^{;e6I`DN{xFkk^Px7fE|ge0`t+K2=CxOC4R~OofZtAZl8t2`FEl zyN5ElE>ZTlPQiT|_&YN7;-n2?xKNG4-iPknqwfrl28U9aGX95&;9mVlw5d_7fNbz>nJkS)6 z#H6%L$QUzk%?m?a&j6M67%>+S6%Z9z5HGwFNJSBG2@iCnWb#N;Gmq93*rmzaNz1d( zkN?}5eKXH@eZSxLemgkA=!|UI4%UZDP7vdn8|13*W!q#hmE;?_t{4qv<-}g}Ldna> z^>CH>fLX5nPcM)dYyor*(Ursl3>V{>EdE;#bAUOE&w#v=nT5C=FC)JKFNEd(%+slr z+2B1TnwU*Nvw+z#W_d(qzc62_ew(%D6}urf<+3Jnod)4&7>JALZ2>$6p(M?8eKWtbl#ek2!Z3Up;7br&u;eHF zG^9lO`>W-6HNBSPWe7fDcANSHoMXgLdEGAR9dMe0dkW@0d2OOM(bddnX@()B><=!x zP2B}oc7ytDgbp%KB9DhWfZ1$%Su9hQ$LtQZvRvHG0S$<6=#9l^%4^TjPbAL*KNgMC z+D@}>6hhu2_5i{?@*aTO;OAHvt(38R$Xg*Mg6YF786TvLbdSLeqpvJhqRJoJ<5}lS&{m3?a&qZ?^z)1*RB=1S|7gQ;AQ_IQSelrrFFQ)sP>3;H;FdlQ#zpRU; zr>qu|+0D?e>jLF7aif<9_H+8(1>f4zFWWbwCk$m5P;Le)OBmfn zVJ*E`FzXVVGxH>mBxZ|>ncSN%tA_Y}w3f!D$7P$PtD)@I#WO6S?k^xG(Vvg5 z27)g{EP%mQ1U{x8#L_z8Yg5=XDnJ1&M+~p8+0E2Xz9RR)raF5{>dN;yBex>%LuTv9&kE*SVm5AW z32;7xgFMwtwgr-w&QGa5|OjnPI!w9#am5jic|Fg0qfq2P+`QnwnD!lRAW?D}rwmuTtp zHE!R7!L2YYQ zrtCI!HdGX?cBJQ26cyVOQmYOuvu7NtD%ns`ys0YhxZ_x!by^+$hPs}Pqs5NRORb*G z^dZgLRTLemIA*C#OLpvATbUo{*ce|Gn`zHVsVK@SkBw`sVOwWL_11@ZxmH0|-ypqj zl#e}qzdbEgQ?a(q)t~Hd{pYT}%B|IdqY3uJRh3CO4~{0<6V}cb(G>;r{p_%7?pA{6Axdo$hfJkLYNSqGomw2jCghj4E#Nys%gqRjvlAUQ<-Z?XW-k7#BZa5dC}6w|ZW7 zjES|d1lGXm$P#%EQA?g-n~Rr5t;|S_hhtG4E@GEAg}Fa55L2hxEIyYSyV&UQSC(7;Z`mtYJe#)7N*8HmglvQRQx72Yia^xc*MJ z1wji?KOWqf#hV|LT$!>F+TeHnI+CZt;A0_5tpELf35>=<%(e_@tT+k z2jT!+j;fdHpc`mL)XEja@>ms9smqyGU5_R1HNeNHNB0g@&O7Yl(Xc4d_*h6&u0tR*36rhB9@P0iirS2qQ61m2_!~@3JopGl z64RmL)ln~jG@@k`I(ig+y_o$T_hMLh-OonSv13iK1@CFvc;NLuN5SGLyxc@iSKLvplCwUuT zG0cRUa2(#m(b(~nTcJ0oS7*>^x5V*LE0z*9;9RJQl*6c42_s>B)T3;P8dx{fu^)1p z^;g0)5>#O+YDODTD{%n(;~zK}>z#2kxQas*Kg+7&HQa<3&Us!Z9ChAJ=nZx!-tK~X z^GOotxxE1v%4x{$MNz_U_ z#whqNs$P^U?$w?Q^{Dco%K23Z#3#@a)nI>%kH&Ds=c77Uidv~PsD^jrHaw2n6GN^t zI2?&u@{nt8pczpsng`WR8C1KKk#>BqCIQW;sY~$MqZ;guT8ROu28W>rFag!zJk&te zp`PUqOn|3QZ^-+omHTAIzwXNCK($i@VAE>!(@sELIA)2(C_)QZJ4Lr??Bj{YP9nX2$xroFh;J+IWlg*N6|0pb?!x z&F}%{#+bKV$7N76s*BnaO)vts#g*6vHIRgN+@na2b%^Ig4P-Rt!CjaWUts}Ed)Id_ zoMv}DFE0t>P#qtz_&d}y&w9_jGE1QvYL10*2ByRdr~$l1t;{FXo{4|orKiPF#518* zdK0Rjy*>dg?Hkm{!aZ>B_WT%*cx_Ze4N)uA-t1%P!!SJQQ&3Af8}$fQVp80NN$?t` z#kZ(EmE@s2b$(g`VM)l26)+F#8T%Ih88xGamLB}b%{TC2uVr>94>h_r2rKdAkE)y#+gx@u>fjjl~4m}ijlFuIUH5*M^yey zb0ca(r%)4pj9QTw7)$3r>SK3alVdtE%3&ewf{}0)s^VtUBiW9XaWC?2@uD(nZQci{ zNA(3Y(5O#cJOwI0E9y~~LA6&G!_mLjh(LI3fzhxXmcTw327kq7xC^6V(r0dl8Bp=k z7!hk=dTfXq_)v2^MkYQ3qu@e}j%(3xPhb}TEnT|juEDGrjd&r{$Sa`Uh|N*EzCY%} zt*BS-Gt`QOf8i!l64hY^vo@w8-V9^lP}JU-@`Cl(v)W36mh2pAliWi+v-g-8bI@pSOR0mNFpTO970c+y}{0$4eaZ4THErTQ;2ercUP%E|!2jCu`z;pry{&7Fm zoiE8w+59hbhSfqjn&a0;rURhR*{q6Tsc6Jz+V?zpBz zou>4tN7o)hup36!`JYTc&-^D0#kHtidKq<09-tb0i-j@fzn<3$tDyGA1`G~jlVLgH zpZIM+H7per_8qaNij)G3)4-ggzYk)RGwTY=wEyZIf4 zV3Y`MX)~i{S_0K^1=N6Ap&nf?)PzQ&1~}Q`3sEbz2DNfqQ4`zi6VQy$qbl4+6?|#& zPiB;euA?NVCC-dG1syRb4#SeT6+`d?>d_{S6y&wVf|v&vqV~uYOppE(0<8(ejqFC$ zAFC1{kHzo?_QoVpf&#y0n~YlO{g?#*L=F5SYDptUbrVR9TG1@1V_L}4%b^}o4VUhF z?Fi^y+zYjfXQ7s89%?0)qn307s-ayt0FPl;EEUbI%qG+$IE32umo5DXjw1dAwHHQ2 z4+8GG3 zun~LVF4T)GN9-Uk3+BZ%^zXGMpd}n*&PEkniI;F4YRQJj2@1UP=b{?^jM{|ZWnJa15@Hm)FarAjNQALfb*|}*9n8XU6?45d-j)6D{vFF zC+?wU^fzkPzqNR@#BK!=qIPvo%#Gzx6Zjr=y2e_3Hf|=q9QD1TaT3nIHrtpa&MD?x zREJAYdtp6lB@UpL_ylTC+(4a%r>GZ91My$FcTdVWGCsk13bG%dPpup$%CM-+APnZ)+rg6KwH&!Hm9HRvD#!Ty$HYB~9QEt>q z6hWQ;(x_9_8nuE0F%OPKZPtAlP3Qj-0nPj_j={z*f{soIvfJGwAEt+#rw)|3batB4l*CH5qE8dCZC!LcAHO z!NI6qJq`7KSc5vwH&CY`D3d#mA((}D9n=a8Lrr*lCj0z9PJ)ipMbxo-fExKr)Di|~ zc1xHDHNa3*xuU3nR6wmv6I46>QO9l^s-0z+61So1Uqfxy=b1VGn&D>>G{RU}Tt~$) zAMvUdABk#cI_h{WLp89@+=z~Wj`w5fi z{4Wm#_?Zs%V!4TWHNM9*m^8ObFM--T4N*(k4K>65s7*S`^5>yeZnL=`wSuQH7v91= z7&i~)bp9(6Py_X_0Cqvme1-W7YKFg}9>FoxKz>Kf@D-}V$a&r7OMu#}nNbref~r>+ zRlWmi<%XiKC7nP(n_&v-Q7lAtxEWRP5NbeIQ5A2YJ}VxhI(}(>MZE{2)|rRR-_6&k%@etx`*6vE+9M4xGyZ^j=dZ$0 zJb^0z+KgYw#S55?@gw=ZPe3ytP}n)foMkRYo$syYIrE7bp-7Ndg8WpdiL^F*nZwO# zScm*2s7Ln^wX(if)Gc)cR6;D&5++0~b#{yAMs-jb^{Q=*O|Tzoi7%s8;IZXLDdtX3 zdell(#?ROlRlZa4z-Nx{4I!Y-FdsF5ji^1b9W{`n=1udR<;N)DRwfy0M)@)DK0s~S z3aIv)ppI*6)K{|3sJ%4`qwD-nCZGlupiaZGKn8!rf_fwFFpr=Nw8CU|flnaSf{62h^zvTh{HR(6XF=%``s=X|V=sMtxBg2BY4H<1hmr zw)E$yCH{ySNQ83kjTj3xk@TpUXG86Q+^BvEp&n^%)Mjp8&UZ8IMnVV)gHRpM$Mm=g zHG}h53R9F13jFz9D^$ae%;%_0{12*rqzbNsxHyb>8dUxY%!NC#BtG{Egb>JC(T%JY zYU!Jyma;Qy1$@-^f$ip1)Dpi#4df$s!=Os8UJooxe7ME;qxQfB^B#5}?!P6VnKrNN zp7ChZ68(f)$`z=k{>9vlA;eFhmhdsE+$Yqd2vfzi6Ac5eX3R`_E^LX-QS}ZY1NXfP z1oY+eI#$E?m>bJib?HA~I^uJ&DjvWPj8)COSaPBUTn9DK7O0N9n1jtJmcIn`C^iJr zIe&);Xm?*mjqGpKEBPbl#YolNu_=xzh}S`t?~R)I7}TbnjA?KV>XGb4E%_1D%3MJW z@V4bY!@%$V-&)2eGhz)l!g#2LLQ$J48>+#As2NtWcoPgI-UT(lnW%wnLk(;%YC^|Q zd+Q47G~GvE88K?Q870S5#B-wFh;>jE8lld2dsKrXP%n~+sAIMmHLw*p2)Co2b^cnU z2l43eF!43D-3s@pCh!!~Vr0L8n{js3Ov<1d=!H53YcLDm#(Ef| zp)3C#CLsPj>RC=h?dmY$1725cbqbz-UF3T4G%>%G#<5-b5Sd>1~v0tmhEFQ6w@0K!VCs#2U>KjT{i`PW0P%G37`kl5oe^E=9s;jGz z5!F#a)XXZO@@t|tRYTOwd!yR<5p|m8pz5tbwYwV`nD5i>p%FI+{fRM?(8O8WOw5YRI! zh3T;ZszP^6iGxt*b^&S$x1t7i6tz;nqXwS5m+LsSnFG~sF;u-Ws1>V=YQG8k3UsiH zzNkkq2sP6&sQlTe0W3p3%U!4$o<^1b9rb7)qE_M~>ia_M-maajs7F>5^<}oEIledN zUl~WNz;)D2o}rfRHR@UZi|ROHAJ;)*%s@ORYM_l#9d^P{9F2Mu8!Y`aYRUgbt#G)$ zZj)x|%lTIa@eGG%0P@AY5s-sD$6ADK5FU140O*t3#xo^)RH$u zy|VkFmU;&2Snffsz$vVXpODSydlkQTzjm*In(1s*g++J}H(0#)5AKaO9JNR0q6V@6 zwIU}_137E{jVc#*kZUgzYC;LI4yM6yI{yO*=ot=1ea??XeQ4~r^y{dK_skclz495g zVqw`sKVU4>G5Zm<^b0Kh3pORbA5}hNu$xF0%%t;Qnt+Z`H&g=yQRj3#R>P^N0p3N; z=qYNZuTbTq4hahUmFi^JlXzRyUbv1q@hxhFLWjD6XGJ~AyyzDpP@8~eJ_WToj$;$N zf;#tkhB+&tX3zrFU>A$`!WzVfpaygS=i@!hjKhZqd5v%b=E7(r+@2~ig7aULggPYX zm`%gJxEXakGLLkx%o3=EJELYc2s7er%!7yUC;W(7xtXKfOy{BE%WyibMLo(=ql3Iv zSZy@VL^JtFf|k@9<35HHqjqaW)amGln#pqPg%?o+sxa1Vu7-GoczaZP*~hsrDtS?x z`Fqr!7>C;Ab5Z4%_ylw=SD}`67ivbwQ8WA(b^J1pcgL+LYDP6sd!|0BUMtkz=!QCe zy-|;H8mhxZ=4w>OoAEZb*g-%`|I-9F<6T&q_}^F;vrTl5U?ghSZ$!;x2daY;sFk>i zn#fX zj(S#+r?_*J1~uhE7=jHk9S%g5Uo?eXri9%j=-qe^^=jg8<^+ZuirQ@jQB$gh+V)K_ z3-+}5Le#r?8|qxX!Eso6nk#=6)!_rwceSADZeR(gv&)K+kdFjC+`g#K$+g%C52HHH zIm4}OanyID>KKAOQ7bVGwVU>!%AZ1Q=NqWCe~5Yqe?Uzj{!CXcvrj-HDu~)OHBb+; zF>1+MqYh?YEQzZv{tWXGPc_T^^w|)#DK_FDj5OPwyV1CSc-lEZ-a?18y) z)5;)kCh3n>xu3fSuXgnx<3Q3=tqBVJjl+4Um3fT~u)tb(dZwb%?_*{9_cE<>zm(~R z`HA1asu*{@J1(uTGV!sfck&fnh4Ft0^5)=v)K4CbH@M9?7`5pZqfXNntbl)@PFwno zZemr@*ODwEP#iC#9zlXlZfR>{PvSjLA6E}B1QTs`GbxA#h>u6D;1Sdw_<{?t&=&V; z^E-wT|9-3ci$P0Kdnw*F&i}6j7H@L{X#A@?7C)mtS68EEyaik18`N=Yusta7-`xyD z)z7=bor346^5u5A_sK}SM0^n*$9}tlynR@5caV1r!|dVwYf0|yaT!tey7$3JR6|ks zxuvg!iqFC`cmK@MqC+jeG-@DqP;b7bs8@Ao)EjOnYJjsa4z9HL zZq%Fcv`hEB>ja{b@C>zUKcSW?+A+5R$xscYM!i~dqgJ9Ms-Y^Vfiyt9AzNZ0T#B05 zZB+fo7#=^PKBU4NSHGOUWCWCu5%rEPZMHyt77RjlGy~PqB2>exQ3KtATFS#14o{#y zY|dKzF{<86RK1U8*b~&#`HxN@A;!TF%#3QN3hEKmLUq&#Q({NdN=!h_Xs+civiL^S zp4g7+aLjM6{#4Y!7NZ8V2Yoeglz^V$X;eplpjPB5>O&~PNmn5;DnB*qndU+bq#SBD z*Rl9qY(ab_s$7&)Zf~T(TEuf>IUIe8^RH)qmIQgn3cf)NDAH-yK|<6Lr$ar8OsJXV zL(QlJ>IKvoHNdH;J+&BB?iUQg9jG_uE{u=2PILaXTi=nO-5c$UTk=$>CCZ4Qm<#ou zXpDL^!%zbngBrj@R68qCuj;+1@=?#aiRD7QDa)W9sc-3{z6EBJpii^asAF~t9rZ4KBMCYK93Z-wV~jgez_(rla=49MsaUK&{9Y)T8|kbu9lt ztxTe;fpp(1PC&cACaOY5%!WfyOS}Q~0@{i?_dBo!9>&s`{+jzCt`qhr{u>U(GS}Uk z?-&*%{uEndmK*LvZVJZMTAU$pfs8w--MRI5*Ky=O+~$dano%OuN~A-bn#`z~M@KOuUPJX0_LeisEzZB5ZEO-`d{jq?QA?BzHNdo}iWx1Q!^~^x zg;2Y^B&NYiSPHwLCbSvH;(pXXE8lhlYjoRpZ=%j5Xl7eb1&*Os;0mha$H=DlURnAZ z)FX;`$Cb~F+TDdv9rr~|WT)ltLA7%VwTUmH26odYpe25S`tbRTI!1}^x*4U%RK&BR z&U-D?z&fA?JP5VvCZjgza@3Nq#T2*~wK6wR3pb-oFIYVEcz|h8;14 z_)v>4M$KpkYQ!f|OL!JD;0?@$;T|~)U~=M}Q3D%~n$UcUuSX5!04CJ=KWPc~t-y2C zN(BGq3MMpDnVHSJsApIl)j<_(f=y5p+KJk{yD`uq>QS6TP3RJ~rGM|CB~<;}Rcwwr zE-kSbPQVg)3bSC0$F9R7s878rsFfLxI)0;3D>NH5uqEbZ)ZRLTTA}mkmm%acNQ|M zp^jTCRD}Vk8BQ>#nR8JCTV(O|7T<~~Nk3@bN3C##7jED=u@Ui-z6Iu?mh2ACU*K>dIH+z zxhl}qx$wUZmwaZ$4jM%MYSOh6;A zhw7+<+1JvCTYM(!)wu-q3y4dW-ua_@WCKtiyNggOw+AcZOH{i>KRGL5YvT1W@TW|> z323AzuoK=zjkNk_mtGGwz;2iphgtecRJjA@aa6gp=3Vn2Gtw6~(4?r}6O{hK`JY5! zC<)Cm&R5q!FKkDA6zbjn0!Lw*f1PVk9p&b;OqN5#rT0P&aFnG_H0PQtJU=+_ zEVq!LXZjne!P{2g4XS~lAlE@e)RM+CTbk>!0_mS|4VDcK4t&jijY{ts#<|;!5H>jQ zUozD23Ft*I3-yM2W7ZAl;=iJ1mNo8Y-{oEr~wZ`J<<`V^7AZz z9qKb+Cu+j}aSPl;&HSwyF@kF-396%17SCqpwe%upMI1u8dZRC+}W zuZPr}fExJD?1gGz2&%zpsEYHK)neYVpsH0Z`kLUMCU&N z|ILcN=jTE_yBeqt>YHuM9;gBN*b2v>K4hL^d5jS?IPfB?Zw^DXx6a&R?n15HLG%^4 zKtM}!7rWpG)BxH=a~(2~svK%$gHTJm7&U;ySP9>u22d)td&YIK81b%H8`q;g z{ldm^14@lr*^HJYx^{)`nruqlfffvsi0rg=M9rbLBVM%O+YH*&VuR}F>0`+C| z7HVJ#;ycrz+RcHfF+b{u-NwiOe6KqJjcgLC;!0G7t+*6-Tf9{Qm)`+3fW8(Vg&M## z)T3Et?nbq97FGU=r9VVX=wl$C^A|s%OGt)lpa5zQR5rV#R$>OK!K3DB^AhS?@$a}F z<0o<*UPVpl5yru{sGlt(B@PaJ|4%4&{xcHLBPeW^HLGJx(i@^SSx3|WR%27#h?-ff zByIvJQSlVFeSX2oC(QT6)xr zXc=mNcTod*ZGJ>G92DZ-8_{tI@#3iT``8*^q3YH1Q@WWoMg8`w7wWs+Gt`H~$W*T2 zI@FiTEvO~`6Z2!3)b7nz81-r$fok|7&c++4f%Z=0mV5;EA-)_n5kGlaH-JWXhJ@~@ z6)BO;9-WsS6yH?1zZvHD10_tE5 zYKeBCIyjDM;H;(JHD6f%7t0SD>fRp-Q1!E;HdhhUo@i$215uwDqfsxa@fi60KS)3$ zI)NJLBUHz)Pz{93;2KV8W<_nrLa1|J1MA^9)KAHG@fK#t7##R-G$LnmpAB`e4e6^; z1C5!P&mNusWCZj~E1|wBbwd>xh#JUfb1v#lxeoQAbriL7Z&522E{iK46%|i`8fZFH zy~3!Ksbls;U-QT3Z(3H%PV z!YeWGqa132VY6}mHPTqwTtY%r#k8m&G_s+-t=2JHp*rr4dNU43eV9x~HMj~j(`~4k zp0)TZR69|!yGNP`RW46<-<|uame3is5+hL!{$%MZQ5_#Z?TJgM24A8E{4eTJM9SgH zB{DOk(u<+WRWloyt$Yh~Ms?g5Rbhhpv*oX~_%_tQj#~U8>Wz30RX<@)_Xx9M9^$o7 z>0`|KSd;h`%#VJ=TyDfAP|vzHY8Q7!4P*=I&3G8~A#@MhW18IV1vL@1lv~X+sFiwT zenJg6dLH*Fm<07Hm<>tiZy6C#g-R~LYl_;09Z^d*$(&;@L7kFy7zMXuPdto`u|Qro z@EPVZ)Bv`c2T>C^i&^yjzhFN1b-EpPCF3M&$qMIppN2J2GhB;0c1KVv^9EHeYymgm z#HfagnJZEC;uLh7F*9mHRdEE?$H2cb_a^~;HM);#Fj65m;uNTkGNVpOVf+owb*L5JjlM>BmVo>VM`Cah*U%W$0Oq4AtVcC`0Q2E- z)Y1kObu)~Porz~h?U{L&z8h8VChD8i1I&sEigEsRoXQpp_8wwOOoSDS2YZXKHL7BS z67Jm{9Tks_TFOMI0j5R`Bo}H0ilYWx7xgLH-ts4-COQvwe7BY0{2wH6m;}veOi91J&^()C=di#lx0z<)ffFOo*CLCe#X)Guxs%9%0TixA_EA@hoa4cTpX^w)jWX z%p#X|CNR^OIn1JFB~<wnR;sJz_eZVJNK`rhCo8ZR^^RX_UbO;Y%D4t1qXrV! z;wdej3Dr@4i7T049j9)3(+e`g+s1*vW;yTD<7RD5$mqN|F6{=iM%t`;=U;-N1Cd)XE zn)zkaceTGz6`NOe>D|m>sM9jT;=iC~b`Zzn2~xr$pU3L>*(Xq%K$Y6Afhnk& z%(wVTb1Q0(97J_|4K?t;%+IKmic!a$>BZ8dWhp>O&+es$LOGuZUXW8kXJ-)!`4Q<2(vgf1EkR>3g#YsNe!rgR4+8+~x{+ zM^O!&MwL5n>Aze0T~xh?mi`7cz)z^}fRXFDN0%A3VhwRPcE-TJGVzLlMi#xk>o}g7 z*35%?rNDge2L6?)@D1FL&zVpK>!CVq zjX7{Is)LQ@E>y!u%xmTo^Iy~o#%|~ak_vU+^P?V7Mbz$ZkG?t@Y6l|oubB@~ z1AA+RZ|>p=%uv);k>)hiZ$$k?1hmwTQP1c-M!?UgB@f%e%_Isco)WdB zp{S)Uf!b8Hu{QR!^kb-UH!S`J_47r9mhM=l!XxzWl_sEuqO@`alB4!O0aS+-Py?)v zno$$8quJl`N1-;`G*rD^mVOY`{#n#syNhw~DaO<1e^6^zApxpDa@0zMT6$*G0CJhd z%_^wV(-1Y_KB$gITK)u_PkfHW3$}3sDQ7m6`uy)~34>9aWGZS&SD_j_j_T+vro$(w zfyQa;mN*$|fO%2nOPLidy#{JRO)b48YQXI=@L!qsC!mkv@s@EM)zCF8hPO~1hJ5Ef zzcZqiv^A>ZzNqrUQRT*=p8a%Gxpk-k?8mxz819%kul7`tjTQu7N2esG<2*U=3f7;s)Bs|3a4S;|dlMgp>iCNpwxgR+6jVn^Q0-^MR#?d5^L+x^wQEq%{32@P zudP7TPOgDOsArZL(_vxM3#OIj_eTw2yg3zz5TAqUIB91$@C>Nk-yD_h_adMX4#D;~ z4K;wTsDcT)xPqBb9ptxoF|#u2W43|C2cpW2Hh)A7bcVSG^}FH&$e$VR0ka`y&tOlMAXa|qBiRa)Nj2uqRO8&|3H=hTk8CO zA)tyedpHxIDkMiWlnFJHJeFU^tc)sG3)NtAi}ytBrNO92IUm*jujXDR`Q=cb1yxZ4X>9rZP%|E3&a?Dw<{{LIo zcdWp3%lM3XVT9=$?1f+i)Fuo?Rjh8-L+y>GsLj|5i{J{>`{My>&qV3xzOdv)t>9=> zd$W83dRF_)n^xc}s=?^}oh4BX^+E0Og{VJ}Jct@Vi~-KHsP+n>R;(dvz~7-d?qcyl zmhX?Sj476}$TC)l3e!`ZJ>qs1Bok?>bC`^Md%yu=w5| z+%F!FpkCdH1_jFbUM&K8CJoKjID~i?T#YYq6#m4c>WXOwyI1ZsRK3VUT!(S7Eb%0$ zfwaWHFEUXx--255!$uh^xA~f* z8W@T?hGS3zn`!Aw%+;2^(en3M`YH3`D9(R#D&DY!!lPZorBKhdBC6rqr~$S>4X``r z#Nnu4+ikP-=cs`Nk8wsq)sJcMWT^USES_(So&TbiPzhC`ChFNYL!IN^mOcm7z;aYa zJ1l)a>a?6TA6mLM*0mQ6HG#yaiDfi%`<7AEtZFtzeFN%(+HCVto9L*;U!ew)c%1v? zQWjJPRWKzsK~2O*l^c)Ryz@~5-}x>7fCbK&zng!dR^T7hh@*~o4aG+_kO9?Uc2q~j zExn3a8&$s%s$6$VAA%}B+Ua}K320=CtiT@gFskE|sIOd?F$+eU;8vm#s-d>14tk;n zHq6q;nlmkZ32H#AF&ys4DEj_?lz=+AfV=Py)U%v3(KWaU^#=_*Q0Yfd9p6NC{KV2f zTRh&6ET)vaJ|RQW1XIsZCVy-84m3s4uj6BVi zOMt4E9yO5MsCLU)eiMs#Ms4O{J^?kj0kyeKVGDeKjj;T5H^3#RhR>h|_`AjLTKt9i z4)x2Wub2Si%y4ExO{5fRV6{xYEdgzk{-|%O!%-`;2-V>!)C{g${DsB8pk@$fru%`U z1Zo29Q00f9CN>j8aFeB9M78@j^2;sXdq+UeBEu{bVstG{-GfNz~@7iJI9M)TiAd z)PR0LE$MEHpE9pwZ_*#4e(ly|uCpr!CW87lJP`xm|DRaKznF=Ps6V-a`BBfRjK%At zzR|Qn&1AK?5w+CYQ3JY!`tEoi`(vV?-6NTbTIrRj6*`B3-~Znrppo6dg7_Tu=W`k7 zx%3986>5tb&_?sHuUt!@_RJB~?~2~c=ltu-V1)&4gu_rv zJ{$GS&SGVGoFrGfu*SS_TvcrgqrD)MeY|4<4`ZWX*dXHE#myE z;RK6=1OH4#8q`eoqdGW-8psXvifr!hTF;D}FZ>C1Q8MC9lh_pZrY$U3~*{Jd>&8_A^RJ&(UD{}=^{GdLN`ieK-|H4cJFk z!uQ4#_>P1bmhlz!45O@a1CN02_9d$-k?1fsP;iwnTI@GUb-k=7aV?%J@ z--zgrRfzA$?igcZaNu7=7=k(_U$8m$+2kJ4l}(&~b^H$rdcj29>^i8At%%RVQW(6& zbyOCc6Ca6M+J~r9QF*Id`tGQ`vlR7;y=n0x+uVDlFRH(FSRD^-k>=F0uD^P)TN!%@e1vc+ei@|U8oz&p#RaLJwH zx~K}vkax7V7Q^5+)catkrT>Qd1;ZuWgnyx4y+2=e9q&SI=HsaJXOz+YoI!AW9eNj-Urp;V2e+%_)JuTOE3?vMxC15mLBPv8(>USx#XyUrS%D@ z!ThM1l`)%|ea%Uzaw|~-+iLE^n8Z(@8opuacQ8KjCl(KL-PMa`CP0<tZ(4r`kx=lApwenDUYHdrU?A3aZ>k z)Q4H|zuZcU@d@bsuEc}51N8zK^tYSIW^=!J8a03$s3pCFdQ?x$e^HMx_G4!b)CyF$ zcyrVW`KWgM@fMhh`XVyN;=53r>Y%0HM0FJO#GRJ7sCX8$II5#s7H?(tL7lEK<|5Pp zcDj7uJ4QfDd;>M2n;0D*pc;H@hI{JD#lyIyCo;2|rBDsmM-8kEYC`=ieGclU>*c8a zE@0sA|6d6N_}lL0eGI0+6V&E+15^CVlQRU;II!=!IxGs*GP+!#d zfRPrD`<#{0`A~5gSzr;fL6?M)FzHsH+ zq4GPS+UbuP&|nPwEAu}R&{EGsb-2#rM^P27pf=T?mj4AcfcP(6`3z=BRQX1z4qKv5 zQ&&qLiK;gNwZaQta{e`=#U$wSdpYVfY%!0RSIkGqYr>mCFQ3(dT?NDORwG_fjd9&j zA+Cfxk8q^%U-^6a2p8vW<+8lLXrpHY*8epL<*58lL+83qg|;+Up8F%Wt~=bvt#S1` zEdtM(O%a2%Zp1a)U#UM0b(J75oeO%+X`?&k251x6m6mvB8cMC7zoHSD$32z;KT`N_ z8h>nsyQnv=e{eZzdailNPer{OsH=J4e|hg)*%S9n4h~f;cr()I{TTlVho@$>HH`E|9ds0@q#p%o{pA~8j1Y< zc!YZjX}s{fs-!*O{(*8&NZ&{OEQBwI<@2{14e(#ed&z0M6%}fck(mw)lXil_TS*&E z-X_8~P*+#(Ke>C+_;&JjB_%ID@xKWVqm9;tKUn!}W_Z$P(VwnKq>bjkKmUK%-;8nx z4eCSU+trs!l^INkbySj!_LS3ghsM&9uJ8Xj32&raeg=P-cyb01pHAjm**Th+h2K$j z7iIPR!~2ztZ&zuJkV5lF2;pu+plNFi}dKEho>R^c=b%>{?krJ+TcUf zn_+bxQ1%J;9`2f?>#9z8YOhgo{cRN5LPH~Iq$f8oC~pz*zX|JFX`?<%2m361*gS-- zsGrr!wzm#9(fDNASV#I$?#Gl{PFv4Ne`Iw7jcW~}lDLal5E&`0p>|fNE{*8=6$jGz ze9ErD`u~}&E5V=hQFlG*>1_~7*B@l+`UQ`Yx1aj|z4GhdVB7Ye5zYKh!_6(MZ%6!t zHr_QV|H|qdrz8H=mcaEJb^o+R&yoI&fp#D-KH+iX)gVuA)jr%qiQgc7KJ6xEpUk4% zc)gu=kTHge^{@g3bmgYN1q)BZ7BtkK&R1F5EbCNdV-em>{mnES1s7si%5}8~bTU=; zF6nPDGWQ4itJ2bDk^yg$m=ROb`H$F|h96Q$*L>p9xM$JWD&iAtAX_LCmh!rCPdzs# zjvtR2`h`wLhC7Dv74GrWszuscYNf{e+@Gw45xAT?4fhnv9Vbs$QF_}=8-=)a-6XF+ z)7wV5e+YlOjuF33*_zzpA_RWEcUhyz_;wAZk*>tgq3Wh#$g8NpzxU(uldJcVhF@{( zdP{ul)RkkC_&dpcPHIk4<1kVF5guqb*B9Z^?sz6tb$-6`OQ6#Rw za>&1j;;kYa)yh`E;-u+E2wfd$w@VmrYN>IF{LL(18}hH=Y|7|rN4uFQbC7UK@_gcl zh|jihG^X4I%JYTLi$os(goYP|xUR#b<)QC-l)Y$at*INEv`3^>rED_7$4HA3&YOCJ zF`Oh^iF$kl|G(=u($iD+qso#~k-jd|WlW#{YFdB4Q$8-?Q* z(D!EA;@5%ve{Z|;LF7l!2ZgQzWa`>T<;7%dpio>aiMwd5E_Y5ES%DEqFF|-Fb+Ql+ zPnpNAy0?V19o&P-uZR2sByjyoxT=M%s8@(Gffsc;GA1+1y)^#XX0rr1M@Br-QsEOCPC;jLsGNedm*fZG-=uluUFS|oT-PgWFvisV6O#DDsi7;0onC&z z^j4}CS0j9FLw;vzE{C@|Hfii|+lM8YR+m?a2jApbLEgD^X7G}V6G zPeuVEdY8NULxR*DwwB!&7IC4X7w}W9$E(>Q{S|TS%y{2CTqz(*LA!U6)8ZMmPp(Qz@q_JMobJ ztWFu?@#thWd3PC1VeXcJl6;w=PBz-s-xJ7BdUWnjYFp>=CV{3jypuw+xQE#QR9C+( z*Y!$;x!Pbd%I3GY(puB0u5P5C;C^KF*)mm=W+ zl{%2{9R+`}LaRxyK&9cB2^-R385>+};^nN|3et~J@7vXlyeQmT$=C0nbiF2j*nbA3 zwA%F7CGdYwM&vsxOr^j9!d=OjZVjeD{UYLDIyq|%6lD-`ES!z>P&(R3+5_%eHo&s9 z7l!o8#0$~ha4bPP(QUtcPugkj5BkzlnE?N=S>QTF!4BMaiEW{ibEJR9gbd^}=_yIS zM5nqUllKD_prbCB+Xkh)th8B&_y)?B!`h_H#12-s7y~&?+#f>1B{DD3$O_fu%12mN zVhZdcKaPuf2?)>NKFQt9R_Hz*{X)5KS1JY-nfgUZJIR3al3&c)i%X{@d6)G+TqnZw zA5mAKLQ?J@sgR3CBhq+x;tin8D68R(Tiod>Gm!fl`Fn`(qcL5Nuruk^xtCDB8+Ur{@w9b; zyxxTC6TVHoI>ax~u3wV>*=`M}k^1@{u7iv&5e4(nn69)MBr_RJd@grb8q*brGPlW7 z_P1-T<;^4^32j#=o|n2MXtRJ7>c~L2VtegqtRQ!OtMuK}STo}IugM-w)vdJqz;djn zH=bs6m8RA$tpVzKN*#XX9JqE;Hzs+yMsW9{jd7$s#LlGug~=&j!piHnK{>5mg1)z& z$PNk(B({w^C6(UMz*E9SNY~Ye_)hH2J;EyM_f31P<03TPi3!BD#nG>vqf)my#-&^Z z!tJd*80BqFs?>6@*0#YM*WkdMI-GY zcV_Axr`<-}2d)2Ggqu*diq%tFS#*-QDv{RBm2>Z}h7|sGRVVX3jbFoRq^G6e4hHky z8a_{>1-W(ABmD(smr!mZ>Y7JdM(P&B9Hb3paOJJ8^6L^_Nd0r%A%TC-oy6ic^8r+- zV}sdDfhJb*BaO}F*3|-2litVb#HLPF8&KN+OeBOdQJHZ8{79KKuDbVu!DS?_tDt_L zn3V$GS!10EZy}>01wyRDFqBzA!}{g)W-7O&Oa{{C;wjSmk^UX&DH%i`?ljy#Q~xsg zS!`gjDA$Q{Gl{>U?6)iMi?b3W7UgbW9hSG;ffTI!pTfJzZ!&fAoD}{hORYv1c}V?A z?F2UWw%C{a6XbPfT7TKp{vs_WX|rwaB?#-vfE6gy6qi~XgK6(5<@;M*m77mIKGQC( zFY~|CX$}&KP@o^`+C}Bw*1$Fz7{r~43b8G1v2`4a^7jZACp|m)l_qP|CZcg8#X? z(m*Q8oc&MQV#P^6jJig1|4w)uZRl$4@b)wCBeXYy^t7y4;MCTplNl6vLt-uxw_7EB z^ZJ=PF?mNw3r`2v80c)u>ncxLbncUcf8uUTdSvQfq)sYZfvwbOO?;dxaIK;IaR!!$ zK|Iy}zf3m*D=BoELb@tb;0p1l6naV{;b<@cWu|k#v5sex9)>$2@hjB3L7n~F$w(_~ z?WnCF+9*m|I@;59Woq|P3H;ZjR^!%n#{2_!TQ~(R4JGdcE~Yjed&T&lV)T}t(Hy3= zxx`lzzl-nw(_<)QzaylS7FB5THaa=j~qEy0OI^ZAu4g6J-C1m!c;J-Eq<;No} zC25^0$G@BGHK5U&%CM_F@leWiA}=-d%HU4dNub1i>i)r{8Ey@WfBij zDU&sJk8m&@HAh`PJG?(|8I>#JTRcFSqLdlJU5Ivc#UyPvCL%tCa3u!Pms?j^;sdFt zD=qgwJ{1RB<|#6EavvhzmV*1p%SHGzPGfm9)8KT{590*VLdhG23&=~rOyk-BHc;k! z+F4G1Ji`40-SO?8a2?Xd;|p6E{|gDazT>_`;u;zY;?BWco<`2n!3Qev4>t$?T2gA# zYH`mX|2OI!AHTW%miyY4g;HEWqu^T5a~he9WMUwo#`|_g|E`d4Knu; z-$H@Z+~K%KlJ)~>qpg9-l)Y#(-9()gk=%`KRQmJJU@B!|K)RZl(dgjY)yNtxOTrKuN@9(F z%g;*L-8R6Vt=?BMC(_mkOMhwo`M0gWX=|htBb;lapHA9XYqbq&NoXJeOWjfp(ZE** zl7-vneo8x?xSvtJGWI9!Uu&lp_T$b#dSvRxB|MmNAKd(TB~iE-3CXxqaZjW`OdDx4 zvmzb#Wt}1Or^S_)@jr9;&ce@am}iL>=iWwq5nX+u4GWIx;)5QC6^TuB|J5j9hWlcG?%#@ zq1J`7%;k(7mu#LQ#tc0knj(L*W@5EE=fjo%I2Fi5?2;aj%TtzPz@Rta+632lLr>|@s zu71rW5Yc)xlszOq1=olxE2dt6XR1Ruz(sakhSMv7e;njxTmr!#PXc@yqCHE_;?iT?OX^af&?MF6sg}cHo|ZX(#Vav>=*VLM_dC2r0Y8Wp}AZ z;L2`N_eQ9U`9|`!kS8$CW9HrY!mKh7-=4X3!twoUZTq9qLoFw&D@oR zH;G2u()o~Y^JFx401QU3p4^@2BB)c;gLD@QZNrkG$I*Sx^dR|57>_yW8SB&+QJEEz zKT-dNf8Hr?=x+fVgp#e{nKd5rn*0au06v-iXu%KF1r+sN<_<$yJ<5Y%<_g126w>G| zhG|V4%*>p88L?1Q;>j&}TlK>qpfynXW%L`U=TILYUkWdv^CzO#WYKK&mknK*?#Gq+ za>Xd6BG0)2%u6;`5YtiGNZ&(dm9nXbx;vVY(!WHW0Y_OQy6*|j(9!4;lFf&f%RHLd zA86~?IZ*&{%-&R&syCPBItoQhqfw1z!vS5{-o6Qa=-d~)FZk(9BbcVsS5`ypkR5^4 zW93=DmEJF?mcxmY=UxGKhTJ)y{t-Ay^s0n61Dp;1F8!Epdy5mcB8JQQLYJxjozfE$UgRRo_Z z*hFe&cJu;Sa8w@qZ?MWvqcI%J8aZf=L^T@>CQ|)+ld=pUEqPL$ zNyz7zm&t-?FzYzRQ)+kcs{|KDZfd7x#~C@kPz`0jW*x(m)E^7TNOb0<>x$qD5p!jb zkHClYy;y1uzB_eKj*7rjxmGdHR3AO=Q+2uhMO>!G_$he2p15KF~}qj z$H#N=KFCh8B$Bz0$gSLbLbyisp&r6vz7T7fk5U`4lOkTnTv;Aiqje=uhOaCN+!4uD{Q_@* zX?%}{)_5(o1$mG>aIpF#=7nn8?&ulAstzhDag?NGkz!(NAxkg#6 z#10m&5U^pwQ-O15;Utz@;mSH>K^1ipZVUfByd3!R$w!g@KBiMQ6#+O(~w z?H8^eQ>^{f$EH=UZ^=k;zL#9wlDgML|KtIGDb1=iWm{`OW?Skp{i}!CzFqzY^AI-| From 3e7b5e76570953c4d54290a7668dff16037c27c8 Mon Sep 17 00:00:00 2001 From: Arthur Date: Wed, 7 Dec 2022 20:32:33 +0800 Subject: [PATCH 08/28] ENH: [Tree Support] smooth_nodes and draw ellipse works 1. smooth nodes' positions 2. draw ellipse along movement direction 3. fix a bug of radius not smooth 4. fix a bug of Tree Strong having too large radius 5. fix a bug in plan_layer_heights: when wipe tower is enabled, independent_support_layer_height is false, and all support layers should be exactly the same as the object. Jira: STUDIO-1785 6. move support style popup message to on_value_change, so only show the popup when the user changes support type or style. Change-Id: Ibced7a28f436d96000ee35a7194b68bb5a20a32d (cherry picked from commit 0d814b07e433533c8de1b7a04bf52b577de0778d) --- src/libslic3r/TreeSupport.cpp | 90 ++++++++++++++++----------- src/slic3r/GUI/ConfigManipulation.cpp | 24 ------- src/slic3r/GUI/Tab.cpp | 22 +++++++ 3 files changed, 75 insertions(+), 61 deletions(-) diff --git a/src/libslic3r/TreeSupport.cpp b/src/libslic3r/TreeSupport.cpp index 39b8f3ae8..51fa4e909 100644 --- a/src/libslic3r/TreeSupport.cpp +++ b/src/libslic3r/TreeSupport.cpp @@ -27,7 +27,7 @@ #define TAU (2.0 * M_PI) #define NO_INDEX (std::numeric_limits::max()) -// #define SUPPORT_TREE_DEBUG_TO_SVG +//#define SUPPORT_TREE_DEBUG_TO_SVG namespace Slic3r { @@ -1890,7 +1890,7 @@ void TreeSupport::generate_support_areas() drop_nodes(contact_nodes); profiler.stage_finish(STAGE_DROP_DOWN_NODES); - // smooth_nodes(contact_nodes); + smooth_nodes(contact_nodes); #if !USE_PLAN_LAYER_HEIGHTS // Adjust support layer heights @@ -1943,20 +1943,24 @@ coordf_t TreeSupport::calc_branch_radius(coordf_t base_radius, size_t layers_to_ return radius; } -coordf_t TreeSupport::calc_branch_radius(coordf_t base_radius, coordf_t mm_to_top, double diameter_angle_scale_factor) +coordf_t TreeSupport::calc_branch_radius(coordf_t base_radius, coordf_t mm_to_top, double diameter_angle_scale_factor) { double radius; - if (mm_to_top > base_radius) + coordf_t tip_height = base_radius;// this is a 45 degree tip + if (mm_to_top > tip_height) { - radius = base_radius + mm_to_top * diameter_angle_scale_factor; + radius = base_radius + (mm_to_top-tip_height) * diameter_angle_scale_factor; } else { - radius = mm_to_top * diameter_angle_scale_factor; + radius = mm_to_top;// this is a 45 degree tip } radius = std::max(radius, MIN_BRANCH_RADIUS); radius = std::min(radius, MAX_BRANCH_RADIUS); + // if have interface layers, radius should be larger + if (m_object_config->support_interface_top_layers.value > 0) + radius = std::max(radius, base_radius); return radius; } @@ -2093,14 +2097,9 @@ void TreeSupport::draw_circles(const std::vector>& contact_no else { Polygon circle; size_t layers_to_top = node.distance_to_top; - double scale; - if (top_interface_layers>0) { // if has interface, branch circles should be larger - scale = static_cast(layers_to_top + 1) / tip_layers; - scale = layers_to_top < tip_layers ? (0.5 + scale / 2) : (1 + static_cast(layers_to_top - tip_layers) * diameter_angle_scale_factor); - } else { // directly calc scale from the radius used in drop_nodes - scale = calc_branch_radius(branch_radius, node.dist_mm_to_top, diameter_angle_scale_factor) / branch_radius; - } - if (is_slim && 0) { + double scale = calc_branch_radius(branch_radius, node.dist_mm_to_top, diameter_angle_scale_factor) / branch_radius; + + if (/*is_slim*/1) { // draw ellipse along movement direction double moveX = node.movement.x() / (scale * branch_radius_scaled); double moveY = node.movement.y() / (scale * branch_radius_scaled); const double vsize_inv = 0.5 / (0.01 + std::sqrt(moveX * moveX + moveY * moveY)); @@ -2517,36 +2516,31 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) //m_object->print()->set_status(59, "Support: preparing avoidance regions "); // get all the possible radiis std::vector > all_layer_radius(m_highest_overhang_layer+1); - std::vector > all_layer_node_dist(m_highest_overhang_layer+1); + std::vector> all_layer_node_dist(m_highest_overhang_layer + 1); for (size_t layer_nr = m_highest_overhang_layer; layer_nr > 0; layer_nr--) { - auto& layer_contact_nodes = contact_nodes[layer_nr]; auto& layer_radius = all_layer_radius[layer_nr]; auto& layer_node_dist = all_layer_node_dist[layer_nr]; - if (!layer_contact_nodes.empty()) { - for (Node* p_node : layer_contact_nodes) { - layer_node_dist.emplace(p_node->distance_to_top); - } + for (Node *p_node : contact_nodes[layer_nr]) { + layer_node_dist.emplace(p_node->dist_mm_to_top); } - if (layer_nr < m_highest_overhang_layer) { + if (layer_nr < m_highest_overhang_layer && layer_heights[layer_nr].second>0) { for (auto node_dist : all_layer_node_dist[layer_nr + 1]) - layer_node_dist.emplace(node_dist+1); + layer_node_dist.emplace(node_dist + layer_heights[layer_nr].second); } for (auto node_dist : layer_node_dist) { - layer_radius.emplace(calc_branch_radius(branch_radius, node_dist, tip_layers, diameter_angle_scale_factor)); + layer_radius.emplace(calc_branch_radius(branch_radius, node_dist, diameter_angle_scale_factor)); } } // parallel pre-compute avoidance - tbb::parallel_for(tbb::blocked_range(1, m_highest_overhang_layer), - [&](const tbb::blocked_range& range) { - for (size_t layer_nr = range.begin(); layer_nr < range.end(); layer_nr++) { - for (auto node_dist : all_layer_node_dist[layer_nr]) - { - m_ts_data->get_avoidance(0, layer_nr - 1); - m_ts_data->get_avoidance(calc_branch_radius(branch_radius, node_dist, tip_layers, diameter_angle_scale_factor), layer_nr - 1); - } + tbb::parallel_for(tbb::blocked_range(1, m_highest_overhang_layer), [&](const tbb::blocked_range &range) { + for (size_t layer_nr = range.begin(); layer_nr < range.end(); layer_nr++) { + for (auto node_radius : all_layer_radius[layer_nr]) { + m_ts_data->get_avoidance(0, layer_nr); + m_ts_data->get_avoidance(node_radius, layer_nr); } - }); + } + }); BOOST_LOG_TRIVIAL(debug) << "before m_avoidance_cache.size()=" << m_ts_data->m_avoidance_cache.size(); } @@ -2715,10 +2709,17 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) Node* neighbour = nodes_per_part[group_index][neighbours[0]]; size_t new_distance_to_top = std::max(node.distance_to_top, neighbour->distance_to_top) + 1; size_t new_support_roof_layers_below = std::max(node.support_roof_layers_below, neighbour->support_roof_layers_below) - 1; - double new_dist_mm_to_top = std::max(node.dist_mm_to_top, neighbour->dist_mm_to_top) + node.height; + double new_dist_mm_to_top = std::max(node.dist_mm_to_top + node.height, neighbour->dist_mm_to_top+neighbour->height); + Node * parent; + if (p_node->parent && neighbour->parent) + parent = ((node.dist_mm_to_top >= neighbour->dist_mm_to_top && p_node->parent) ? p_node : neighbour)->parent; + else if (p_node->parent) + parent = p_node->parent; + else + parent = neighbour->parent; const bool to_buildplate = !is_inside_ex(m_ts_data->get_avoidance(0, layer_nr_next), next_position); - Node * next_node = new Node(next_position, new_distance_to_top, node.skin_direction, new_support_roof_layers_below, to_buildplate, p_node, + Node * next_node = new Node(next_position, new_distance_to_top, node.skin_direction, new_support_roof_layers_below, to_buildplate, parent, layer_heights[layer_nr_next].first, layer_heights[layer_nr_next].second, new_dist_mm_to_top); next_node->movement = next_position - node.position; get_max_move_dist(next_node); @@ -2883,6 +2884,17 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) next_layer_vertex += movement; + if (group_index == 0) { + // Avoid collisions. + const coordf_t max_move_between_samples = get_max_move_dist(&node, 1) + radius_sample_resolution + EPSILON; // 100 micron extra for rounding errors. + bool is_outside = move_out_expolys(avoid_layer, next_layer_vertex, radius_sample_resolution + EPSILON, max_move_between_samples); + if (!is_outside) { + Point candidate_vertex = node.position; + is_outside = move_out_expolys(avoid_layer, candidate_vertex, radius_sample_resolution + EPSILON, max_move_between_samples); + if (is_outside) { next_layer_vertex = candidate_vertex; } + } + } + const bool to_buildplate = !is_inside_ex(m_ts_data->m_layer_outlines[layer_nr], next_layer_vertex);// !is_inside_ex(m_ts_data->get_avoidance(m_ts_data->m_xy_distance, layer_nr - 1), next_layer_vertex); Node * next_node = new Node(next_layer_vertex, node.distance_to_top + 1, node.skin_direction, node.support_roof_layers_below - 1, to_buildplate, p_node, print_z_next, height_next); @@ -3013,7 +3025,8 @@ void TreeSupport::smooth_nodes(std::vector> &contact_nodes) std::vector pts1 = pts; // TODO here we assume layer height gap is constant. If not true, need to consider height jump - for (size_t k = 0; k < 2; k++) { + // TODO it seems the smooth iterations can't be larger than 1, otherwise some nodes will fly away + for (size_t k = 0; k < 1; k++) { for (size_t i = 1; i < pts.size() - 1; i++) { size_t i2 = i >= 2 ? i - 2 : 0; size_t i3 = i < pts.size() - 2 ? i + 2 : pts.size() - 1; @@ -3024,7 +3037,9 @@ void TreeSupport::smooth_nodes(std::vector> &contact_nodes) } for (size_t i = 1; i < pts.size() - 1; i++) { if (!is_processed[branch[i]]) { - branch[i]->position = pts[i]; + // do not move if the new position is too far away + if (vsize2_with_unscale(branch[i]->position - pts[i]) < SQ(m_support_params.support_extrusion_width * 2)) { branch[i]->position = pts[i]; } + branch[i]->movement = branch[i]->parent ? (branch[i]->position - branch[i]->parent->position) : Point(0, 0); is_processed[branch[i]] = true; } } @@ -3128,6 +3143,7 @@ void TreeSupport::adjust_layer_heights(std::vector>& contact_ std::vector> TreeSupport::plan_layer_heights(std::vector>& contact_nodes) { const PrintObjectConfig& config = m_object->config(); + const PrintConfig & print_config = m_object->print()->config(); const coordf_t max_layer_height = m_slicing_params.max_layer_height; const coordf_t layer_height = config.layer_height.value; coordf_t z_distance_top = m_slicing_params.gap_support_object; @@ -3141,7 +3157,7 @@ std::vector> TreeSupport::plan_layer_heights(std:: std::vector> layer_heights(contact_nodes.size(), std::pair(0.0, 0.0)); std::vector bounds; - if (!USE_PLAN_LAYER_HEIGHTS || layer_height == max_layer_height) { + if (!USE_PLAN_LAYER_HEIGHTS || layer_height == max_layer_height || !print_config.independent_support_layer_height) { for (int layer_nr = 0; layer_nr < contact_nodes.size(); layer_nr++) { layer_heights[layer_nr].first = m_object->get_layer(layer_nr)->print_z; layer_heights[layer_nr].second = m_object->get_layer(layer_nr)->height; diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index 6659a7b69..40f0378bf 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -349,30 +349,6 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con is_msg_dlg_already_exist = false; } - // BBS - if (config->opt_bool("enable_support") && is_tree(config->opt_enum("support_type")) - && (config->opt_enum("support_style")==smsDefault || config->opt_enum("support_style")==smsTreeSlim) - && !(config->opt_float("support_top_z_distance")==0 && config->opt_int("support_interface_top_layers")==0 && config->opt_int("tree_support_wall_count")==2)) - { - wxString msg_text = _(L("We have added an experimental style \"Tree Slim\" that features smaller support volume but weaker strength.\n" - "We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n")); - if (is_global_config) - msg_text += "\n" + _(L("Change these settings automatically? \n" - "Yes - Change these settings automatically\n" - "No - Do not change these settings for me")); - MessageDialog dialog(m_msg_dlg_parent, msg_text, "", wxICON_WARNING | (is_global_config ? wxYES | wxNO : wxOK)); - DynamicPrintConfig new_conf = *config; - is_msg_dlg_already_exist = true; - auto answer = dialog.ShowModal(); - if (!is_global_config || answer == wxID_YES) { - new_conf.set_key_value("support_top_z_distance", new ConfigOptionFloat(0)); - new_conf.set_key_value("support_interface_top_layers", new ConfigOptionInt(0)); - new_conf.set_key_value("tree_support_wall_count", new ConfigOptionInt(2)); - } - apply(config, &new_conf); - is_msg_dlg_already_exist = false; - } - // BBS int filament_cnt = wxGetApp().preset_bundle->filament_presets.size(); #if 0 diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 1ea0193fb..82bdd00d8 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1416,6 +1416,28 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value) } } + // BBS popup a message to ask the user to set optimum parameters for tree support + if (opt_key == "support_type" || opt_key == "support_style") { + // BBS + if (is_tree_slim(m_config->opt_enum("support_type"), m_config->opt_enum("support_style")) && + !(m_config->opt_float("support_top_z_distance") == 0 && m_config->opt_int("support_interface_top_layers") == 0 && m_config->opt_int("tree_support_wall_count") == 2)) { + wxString msg_text = _L("We have added an experimental style \"Tree Slim\" that features smaller support volume but weaker strength.\n" + "We recommand using it with: 0 interface layers, 0 top distance, 2 walls."); + msg_text += "\n\n" + _L("Change these settings automatically? \n" + "Yes - Change these settings automatically\n" + "No - Do not change these settings for me"); + MessageDialog dialog(wxGetApp().plater(), msg_text, "Suggestion", wxICON_WARNING | wxYES | wxNO); + DynamicPrintConfig new_conf = *m_config; + if (dialog.ShowModal() == wxID_YES) { + new_conf.set_key_value("support_top_z_distance", new ConfigOptionFloat(0)); + new_conf.set_key_value("support_interface_top_layers", new ConfigOptionInt(0)); + new_conf.set_key_value("tree_support_wall_count", new ConfigOptionInt(2)); + m_config_manipulation.apply(m_config, &new_conf); + } + wxGetApp().plater()->update(); + } + } + // BBS #if 0 if (opt_key == "extruders_count") From 2690b5b5586ce2f4926139c8fbf7742437d24e29 Mon Sep 17 00:00:00 2001 From: "qing.zhang" Date: Wed, 21 Dec 2022 16:54:21 +0800 Subject: [PATCH 09/28] ENH: add process preset for P1P's 0.4 nozzle Signed-off-by: qing.zhang Change-Id: I548fad31e66526689d285b200655342f4655ee5b --- resources/profiles/BBL.json | 26 ++++++++++++++++++- .../process/0.08mm Extra Fine @BBL P1P.json | 11 ++++++++ .../BBL/process/0.12mm Fine @BBL P1P.json | 11 ++++++++ .../BBL/process/0.16mm Optimal @BBL P1P.json | 11 ++++++++ .../BBL/process/0.20mm Strength @BBL P1P.json | 14 ++++++++++ .../BBL/process/0.24mm Draft @BBL P1P.json | 11 ++++++++ .../process/0.28mm Extra Draft @BBL P1P.json | 11 ++++++++ 7 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 resources/profiles/BBL/process/0.08mm Extra Fine @BBL P1P.json create mode 100644 resources/profiles/BBL/process/0.12mm Fine @BBL P1P.json create mode 100644 resources/profiles/BBL/process/0.16mm Optimal @BBL P1P.json create mode 100644 resources/profiles/BBL/process/0.20mm Strength @BBL P1P.json create mode 100644 resources/profiles/BBL/process/0.24mm Draft @BBL P1P.json create mode 100644 resources/profiles/BBL/process/0.28mm Extra Draft @BBL P1P.json diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index b55bac975..2799ed2c8 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -1,7 +1,7 @@ { "name": "Bambulab", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json", - "version": "01.04.00.14", + "version": "01.04.00.15", "force_update": "0", "description": "the initial version of BBL configurations", "machine_model_list": [ @@ -123,6 +123,30 @@ "name":"0.30mm Standard @BBL P1P 0.6 nozzle", "sub_path":"process/0.30mm Standard @BBL P1P 0.6 nozzle.json" }, + { + "name":"0.08mm Extra Fine @BBL P1P", + "sub_path":"process/0.08mm Extra Fine @BBL P1P.json" + }, + { + "name":"0.12mm Fine @BBL P1P", + "sub_path":"process/0.12mm Fine @BBL P1P.json" + }, + { + "name":"0.16mm Optimal @BBL P1P", + "sub_path":"process/0.16mm Optimal @BBL P1P.json" + }, + { + "name":"0.20mm Strength @BBL P1P", + "sub_path":"process/0.20mm Strength @BBL P1P.json" + }, + { + "name":"0.24mm Draft @BBL P1P", + "sub_path":"process/0.24mm Draft @BBL P1P.json" + }, + { + "name":"0.28mm Extra Draft @BBL P1P", + "sub_path":"process/0.28mm Extra Draft @BBL P1P.json" + }, { "name":"0.40mm Standard @BBL P1P 0.8 nozzle", "sub_path":"process/0.40mm Standard @BBL P1P 0.8 nozzle.json" diff --git a/resources/profiles/BBL/process/0.08mm Extra Fine @BBL P1P.json b/resources/profiles/BBL/process/0.08mm Extra Fine @BBL P1P.json new file mode 100644 index 000000000..6db745a9a --- /dev/null +++ b/resources/profiles/BBL/process/0.08mm Extra Fine @BBL P1P.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP018", + "name": "0.08mm Extra Fine @BBL P1P", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_bbl_0.08", + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle" + ] +} diff --git a/resources/profiles/BBL/process/0.12mm Fine @BBL P1P.json b/resources/profiles/BBL/process/0.12mm Fine @BBL P1P.json new file mode 100644 index 000000000..276726a7f --- /dev/null +++ b/resources/profiles/BBL/process/0.12mm Fine @BBL P1P.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP019", + "name": "0.12mm Fine @BBL P1P", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_bbl_0.12", + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle" + ] +} diff --git a/resources/profiles/BBL/process/0.16mm Optimal @BBL P1P.json b/resources/profiles/BBL/process/0.16mm Optimal @BBL P1P.json new file mode 100644 index 000000000..d276425b6 --- /dev/null +++ b/resources/profiles/BBL/process/0.16mm Optimal @BBL P1P.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP020", + "name": "0.16mm Optimal @BBL P1P", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_bbl_0.16", + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle" + ] +} diff --git a/resources/profiles/BBL/process/0.20mm Strength @BBL P1P.json b/resources/profiles/BBL/process/0.20mm Strength @BBL P1P.json new file mode 100644 index 000000000..5a9ef9a38 --- /dev/null +++ b/resources/profiles/BBL/process/0.20mm Strength @BBL P1P.json @@ -0,0 +1,14 @@ +{ + "type": "process", + "setting_id": "GP021", + "name": "0.20mm Strength @BBL P1P", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_bbl_0.20", + "outer_wall_speed": "60", + "wall_loops": "6", + "sparse_infill_density": "25%", + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle" + ] +} diff --git a/resources/profiles/BBL/process/0.24mm Draft @BBL P1P.json b/resources/profiles/BBL/process/0.24mm Draft @BBL P1P.json new file mode 100644 index 000000000..46ef47671 --- /dev/null +++ b/resources/profiles/BBL/process/0.24mm Draft @BBL P1P.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP022", + "name": "0.24mm Draft @BBL P1P", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_bbl_0.24", + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle" + ] +} diff --git a/resources/profiles/BBL/process/0.28mm Extra Draft @BBL P1P.json b/resources/profiles/BBL/process/0.28mm Extra Draft @BBL P1P.json new file mode 100644 index 000000000..764059d13 --- /dev/null +++ b/resources/profiles/BBL/process/0.28mm Extra Draft @BBL P1P.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP023", + "name": "0.28mm Extra Draft @BBL P1P", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_bbl_0.28", + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle" + ] +} From 854eb0af95e260a8320c78ffbff9cbc2b24ac290 Mon Sep 17 00:00:00 2001 From: Arthur Date: Wed, 21 Dec 2022 19:05:14 +0800 Subject: [PATCH 10/28] ENH: change base pattern "None" to "Hollow" 1. change base pattern "None" to "Hollow", and add an icon image 2. fix a bug of not initializing m_highest_overhang_layer 3. fix a bug where normal(auto) with Tree* styles won't generate any supports. 4. add popup message when selecting support material for interface. 5. draw connected loops when wall count is larger than 1 Change-Id: I7ea211d2971b25c65724bb10d0f6cf6e0b68c6a1 (cherry picked from commit 4c1ae7f937239fc3e1397ec2cb3b290d886bb0f0) --- resources/images/param_hollow.svg | 10 +++ src/libslic3r/Layer.hpp | 4 +- src/libslic3r/PrintConfig.cpp | 8 +- src/libslic3r/SupportMaterial.cpp | 2 +- src/libslic3r/TreeSupport.cpp | 134 +++++++++++++++++------------ src/libslic3r/TreeSupport.hpp | 4 +- src/slic3r/GUI/GUI_App.cpp | 16 ++++ src/slic3r/GUI/GUI_App.hpp | 4 +- src/slic3r/GUI/Tab.cpp | 23 ++++- src/slic3r/GUI/WipeTowerDialog.cpp | 18 ---- 10 files changed, 138 insertions(+), 85 deletions(-) create mode 100644 resources/images/param_hollow.svg diff --git a/resources/images/param_hollow.svg b/resources/images/param_hollow.svg new file mode 100644 index 000000000..01ddd94f2 --- /dev/null +++ b/resources/images/param_hollow.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/libslic3r/Layer.hpp b/src/libslic3r/Layer.hpp index a72e6e10c..3440e404a 100644 --- a/src/libslic3r/Layer.hpp +++ b/src/libslic3r/Layer.hpp @@ -260,8 +260,8 @@ public: { ExPolygon *area; int type; - int dist_to_top; - AreaGroup(ExPolygon *a, int t, int d) : area(a), type(t), dist_to_top(d) {} + coordf_t dist_to_top; // mm dist to top + AreaGroup(ExPolygon *a, int t, coordf_t d) : area(a), type(t), dist_to_top(d) {} }; std::vector area_groups; diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 62c43db03..c55c472f3 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -172,7 +172,7 @@ static t_config_enum_values s_keys_map_SupportMaterialPattern { { "honeycomb", smpHoneycomb }, { "lightning", smpLightning }, { "default", smpDefault}, - { "none", smpNone}, + { "hollow", smpNone}, }; CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(SupportMaterialPattern) @@ -2571,13 +2571,13 @@ void PrintConfigDef::init_fff_params() def->enum_values.push_back("rectilinear-grid"); def->enum_values.push_back("honeycomb"); def->enum_values.push_back("lightning"); - def->enum_values.push_back("none"); + def->enum_values.push_back("hollow"); def->enum_labels.push_back(L("Default")); def->enum_labels.push_back(L("Rectilinear")); def->enum_labels.push_back(L("Rectilinear grid")); def->enum_labels.push_back(L("Honeycomb")); def->enum_labels.push_back(L("Lightning")); - def->enum_labels.push_back(L("None")); + def->enum_labels.push_back(L("Hollow")); def->mode = comAdvanced; def->set_default_value(new ConfigOptionEnum(smpRectilinear)); @@ -3830,6 +3830,8 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va value = "tree(manual)"; } else if (opt_key == "support_type" && value == "hybrid(auto)") { value = "tree(auto)"; + } else if (opt_key == "support_base_pattern" && value == "none") { + value = "hollow"; } else if (opt_key == "different_settings_to_system") { std::string copy_value = value; copy_value.erase(std::remove(copy_value.begin(), copy_value.end(), '\"'), copy_value.end()); // remove '"' in string diff --git a/src/libslic3r/SupportMaterial.cpp b/src/libslic3r/SupportMaterial.cpp index 50c834bf5..e40040fa0 100644 --- a/src/libslic3r/SupportMaterial.cpp +++ b/src/libslic3r/SupportMaterial.cpp @@ -790,7 +790,7 @@ public: m_extrusion_width(params.extrusion_width), m_support_material_closing_radius(params.support_closing_radius) { - if (m_style == smsDefault) m_style = smsGrid; + if (m_style != smsSnug) m_style = smsGrid; switch (m_style) { case smsGrid: { diff --git a/src/libslic3r/TreeSupport.cpp b/src/libslic3r/TreeSupport.cpp index 51fa4e909..f4c3d8e76 100644 --- a/src/libslic3r/TreeSupport.cpp +++ b/src/libslic3r/TreeSupport.cpp @@ -5,6 +5,7 @@ #include "Print.hpp" #include "Layer.hpp" #include "Fill/FillBase.hpp" +#include "Fill/FillConcentric.hpp" #include "CurveAnalyzer.hpp" #include "SVG.hpp" #include "ShortestPath.hpp" @@ -1268,18 +1269,17 @@ static inline std::vector fill_expolygons_generate_paths( return fill_boxes; } -static void make_perimeter_and_inner_brim(ExtrusionEntitiesPtr &dst, const Print &print, const ExPolygon &support_area, size_t wall_count, const Flow &flow, bool is_interface) +static void _make_loops(ExtrusionEntitiesPtr& loops_entities, ExPolygons &support_area, ExtrusionRole role, size_t wall_count, const Flow &flow) { - Polygons loops; - ExPolygons support_area_new = offset_ex(support_area, -0.5f * float(flow.scaled_spacing()), jtSquare); - + Polygons loops; std::map depth_per_expoly; std::list expoly_list; - for (ExPolygon &expoly : support_area_new) { + for (ExPolygon &expoly : support_area) { expoly_list.emplace_back(std::move(expoly)); depth_per_expoly.insert({&expoly_list.back(), 0}); } + if (expoly_list.empty()) return; while (!expoly_list.empty()) { polygons_append(loops, to_polygons(expoly_list.front())); @@ -1287,22 +1287,68 @@ static void make_perimeter_and_inner_brim(ExtrusionEntitiesPtr &dst, const Print auto first_iter = expoly_list.begin(); auto depth_iter = depth_per_expoly.find(&expoly_list.front()); if (depth_iter->second + 1 < wall_count) { + //ExPolygons expolys_new = offset_ex(expoly_list.front(), -float(flow.scaled_spacing()), jtSquare); // shrink and then dilate to prevent overlapping and overflow - ExPolygons expolys_new = offset_ex(expoly_list.front(), -1.4 * float(flow.scaled_spacing()), jtSquare); - expolys_new = offset_ex(expolys_new, .4*float(flow.scaled_spacing()), jtSquare); + ExPolygons expolys_new = offset2_ex({expoly_list.front()}, -1.4 * float(flow.scaled_spacing()), .4 * float(flow.scaled_spacing())); for (ExPolygon &expoly : expolys_new) { auto new_iter = expoly_list.insert(expoly_list.begin(), expoly); - depth_per_expoly.insert({ &*new_iter, depth_iter->second + 1 }); + depth_per_expoly.insert({&*new_iter, depth_iter->second + 1}); } } depth_per_expoly.erase(depth_iter); expoly_list.erase(first_iter); } - ExtrusionRole role = is_interface ? erSupportMaterialInterface : erSupportMaterial; - extrusion_entities_append_loops(dst, std::move(loops), role, - float(flow.mm3_per_mm()), float(flow.width()), float(flow.height())); + // draw connected loops + if (wall_count > 1 && wall_count<5) { + wall_count = std::min(wall_count, loops.size()); + Polylines polylines; + polylines.push_back(Polyline()); + Polyline& polyline = polylines.back(); + Point end_pt; + Point end_dir; + for (int wall_idx = 0; wall_idx < wall_count; wall_idx++) { + Polygon &loop = loops[wall_idx]; + if (loop.size()<3) continue; + // break the closed loop if this is not the last loop, so the next loop can attach to the end_pt + //if (wall_idx != wall_count - 1 && loop.first_point() == loop.last_point()) + // loop.points.pop_back(); + + if (wall_idx == 0) { + polyline.append(loop.points); + } else { + double d = loop.distance_to(end_pt); + if (d < scale_(2)) { // if current loop is close to the previous one + polyline.append(end_pt); + ExtrusionPath expath; + expath.polyline.append(loop.points); + ExtrusionLoop extru_loop(expath); + extru_loop.split_at(end_pt, false); + polyline.append(extru_loop.as_polyline()); + }else{// create a new polylie if they are far away + polylines.push_back(Polyline()); + polyline = polylines.back(); + polyline.append(loop.points); + } + } + end_pt = polyline.points.back(); + end_dir = end_pt - polyline.points[polyline.points.size() - 2]; + Point perpendicular_dir = turn90_ccw(end_dir); + end_pt = end_pt + normal(perpendicular_dir, flow.scaled_spacing()); + } + + extrusion_entities_append_paths(loops_entities, polylines, role, float(flow.mm3_per_mm()), float(flow.width()), float(flow.height())); + } else { + extrusion_entities_append_loops(loops_entities, std::move(loops), role, float(flow.mm3_per_mm()), float(flow.width()), float(flow.height())); + } + } + +static void make_perimeter_and_inner_brim(ExtrusionEntitiesPtr &dst, const ExPolygon &support_area, size_t wall_count, const Flow &flow, ExtrusionRole role) +{ + Polygons loops; + ExPolygons support_area_new = offset_ex(support_area, -0.5f * float(flow.scaled_spacing()), jtSquare); + _make_loops(dst, support_area_new, role, wall_count, flow); } static void make_perimeter_and_infill(ExtrusionEntitiesPtr& dst, const Print& print, const ExPolygon& support_area, size_t wall_count, const Flow& flow, ExtrusionRole role, Fill* filler_support, double support_density, bool infill_first=true) @@ -1340,39 +1386,13 @@ static void make_perimeter_and_infill(ExtrusionEntitiesPtr& dst, const Print& pr } } - { - std::map depth_per_expoly; - std::list expoly_list; - - for (ExPolygon& expoly : support_area_new) { - expoly_list.emplace_back(std::move(expoly)); - depth_per_expoly.insert({ &expoly_list.back(), 0 }); - } - - while (!expoly_list.empty()) { - polygons_append(loops, to_polygons(expoly_list.front())); - - auto first_iter = expoly_list.begin(); - auto depth_iter = depth_per_expoly.find(&expoly_list.front()); - if (depth_iter->second + 1 < wall_count) { - ExPolygons expolys_new = offset_ex(expoly_list.front(), -float(flow.scaled_spacing()), jtSquare); - - for (ExPolygon& expoly : expolys_new) { - auto new_iter = expoly_list.insert(expoly_list.begin(), expoly); - depth_per_expoly.insert({ &*new_iter, depth_iter->second + 1 }); - } - } - depth_per_expoly.erase(depth_iter); - expoly_list.erase(first_iter); - } + { // draw loops + ExtrusionEntitiesPtr loops_entities; + _make_loops(loops_entities, support_area_new, role, wall_count, flow); if (infill_first) - extrusion_entities_append_loops(dst, std::move(loops), role, - float(flow.mm3_per_mm()), float(flow.width()), float(flow.height())); - else { // loops first - ExtrusionEntitiesPtr loops_entities; - extrusion_entities_append_loops(loops_entities, std::move(loops), role, - float(flow.mm3_per_mm()), float(flow.width()), float(flow.height())); + dst.insert(dst.end(), loops_entities.begin(), loops_entities.end()); + else { // loops first loops_entities.insert(loops_entities.end(), dst.begin(), dst.end()); dst = std::move(loops_entities); } @@ -1530,8 +1550,8 @@ void TreeSupport::generate_toolpaths() // interface if (layer_id == 0) { Flow flow = m_raft_layers == 0 ? m_object->print()->brim_flow() : support_flow; - make_perimeter_and_inner_brim(ts_layer->support_fills.entities, *m_object->print(), poly, wall_count, flow, - area_group.type == TreeSupportLayer::RoofType); + make_perimeter_and_inner_brim(ts_layer->support_fills.entities, poly, wall_count, flow, + area_group.type == TreeSupportLayer::RoofType ? erSupportMaterialInterface : erSupportMaterial); polys = std::move(offset_ex(poly, -flow.scaled_spacing())); } else if (area_group.type == TreeSupportLayer::Roof1stLayer) { polys = std::move(offset_ex(poly, 0.5*support_flow.scaled_width())); @@ -1573,9 +1593,9 @@ void TreeSupport::generate_toolpaths() // base_areas filler_support->spacing = support_flow.spacing(); Flow flow = (layer_id == 0 && m_raft_layers == 0) ? m_object->print()->brim_flow() : support_flow; - if (area_group.dist_to_top < 10 / layer_height && !with_infill) { + if (area_group.dist_to_top < 10 && !with_infill) { // at least 2 walls for the top tips - make_perimeter_and_inner_brim(ts_layer->support_fills.entities, *m_object->print(), poly, std::max(wall_count, size_t(2)), flow, false); + make_perimeter_and_inner_brim(ts_layer->support_fills.entities, poly, std::max(wall_count, size_t(2)), flow, erSupportMaterial); } else { if (with_infill && layer_id > 0 && m_support_params.base_fill_pattern != ipLightning) { filler_support->angle = Geometry::deg2rad(object_config.support_angle.value); @@ -1589,8 +1609,8 @@ void TreeSupport::generate_toolpaths() erSupportMaterial, filler_support.get(), support_density); } } else { - make_perimeter_and_inner_brim(ts_layer->support_fills.entities, *m_object->print(), poly, - layer_id > 0 ? wall_count : std::numeric_limits::max(), flow, false); + make_perimeter_and_inner_brim(ts_layer->support_fills.entities, poly, + layer_id > 0 ? wall_count : std::numeric_limits::max(), flow, erSupportMaterial); } } } @@ -2070,9 +2090,9 @@ void TreeSupport::draw_circles(const std::vector>& contact_no ExPolygons& roof_1st_layer = ts_layer->roof_1st_layer; ExPolygons& floor_areas = ts_layer->floor_areas; ExPolygons& roof_gap_areas = ts_layer->roof_gap_areas; - int max_layers_above_base = 0; - int max_layers_above_roof = 0; - int max_layers_above_roof1 = 0; + coordf_t max_layers_above_base = 0; + coordf_t max_layers_above_roof = 0; + coordf_t max_layers_above_roof1 = 0; BOOST_LOG_TRIVIAL(debug) << "circles at layer " << layer_nr << " contact nodes size=" << contact_nodes[layer_nr].size(); //Draw the support areas and add the roofs appropriately to the support roof instead of normal areas. @@ -2140,17 +2160,17 @@ void TreeSupport::draw_circles(const std::vector>& contact_no else if (node.support_roof_layers_below == 1) { append(roof_1st_layer, area); - max_layers_above_roof1 = std::max(max_layers_above_roof1, node.distance_to_top); + max_layers_above_roof1 = std::max(max_layers_above_roof1, node.dist_mm_to_top); } else if (node.support_roof_layers_below > 0) { append(roof_areas, area); - max_layers_above_roof = std::max(max_layers_above_roof, node.distance_to_top); + max_layers_above_roof = std::max(max_layers_above_roof, node.dist_mm_to_top); } else { append(base_areas, area); - max_layers_above_base = std::max(max_layers_above_base, node.distance_to_top); + max_layers_above_base = std::max(max_layers_above_base, node.dist_mm_to_top); } if (layer_nr < brim_skirt_layers) @@ -2675,7 +2695,7 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) #ifdef SUPPORT_TREE_DEBUG_TO_SVG coordf_t branch_radius_temp = 0; coordf_t max_y = std::numeric_limits::min(); - draw_layer_mst(std::to_string(layer_nr), spanning_trees, m_object->get_layer(layer_nr)->lslices); + draw_layer_mst(std::to_string(ts_layer->print_z), spanning_trees, m_object->get_layer(layer_nr)->lslices); #endif for (size_t group_index = 0; group_index < nodes_per_part.size(); group_index++) { @@ -2867,7 +2887,7 @@ void TreeSupport::drop_nodes(std::vector>& contact_nodes) } // move to the averaged direction of neighbor center and contour edge if they are roughly same direction Point movement; - if (is_slim) + if (/*is_slim*/1) movement = move_to_neighbor_center*2 + (dist2_to_outer > EPSILON ? direction_to_outer * (1 / dist2_to_outer) : Point(0, 0)); else { if (movement.dot(move_to_neighbor_center) >= 0.2 || move_to_neighbor_center == Point(0, 0)) @@ -3561,7 +3581,7 @@ const ExPolygons& TreeSupportData::calculate_avoidance(const RadiusLayerPair& ke const auto& radius = key.first; const auto& layer_nr = key.second; std::pair::iterator,bool> ret; - if (is_slim) { + if (/*is_slim*/1) { if (layer_nr == 0) { m_avoidance_cache[key] = get_collision(radius, 0); return m_avoidance_cache[key]; diff --git a/src/libslic3r/TreeSupport.hpp b/src/libslic3r/TreeSupport.hpp index 1e7cc6398..608b64af9 100644 --- a/src/libslic3r/TreeSupport.hpp +++ b/src/libslic3r/TreeSupport.hpp @@ -376,8 +376,8 @@ private: SlicingParameters m_slicing_params; // Various precomputed support parameters to be shared with external functions. SupportParams m_support_params; - size_t m_raft_layers; - size_t m_highest_overhang_layer; + size_t m_raft_layers = 0; + size_t m_highest_overhang_layer = 0; std::vector> m_spanning_trees; std::vector< std::unordered_map> m_mst_line_x_layer_contour_caches; coordf_t MAX_BRANCH_RADIUS = 10.0; diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index b8a6d613c..8777eb064 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -5635,5 +5635,21 @@ void GUI_App::disassociate_files(std::wstring extend) #endif // __WXMSW__ +bool is_support_filament(int extruder_id) +{ + auto &filament_presets = Slic3r::GUI::wxGetApp().preset_bundle->filament_presets; + auto &filaments = Slic3r::GUI::wxGetApp().preset_bundle->filaments; + + if (extruder_id >= filament_presets.size()) return false; + + Slic3r::Preset *filament = filaments.find_preset(filament_presets[extruder_id]); + if (filament == nullptr) return false; + + Slic3r::ConfigOptionBools *support_option = dynamic_cast(filament->config.option("filament_is_support")); + if (support_option == nullptr) return false; + + return support_option->get_at(0); +}; + } // GUI } //Slic3r diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index 8c6125491..b6acde10a 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -589,7 +589,9 @@ private: DECLARE_APP(GUI_App) wxDECLARE_EVENT(EVT_CONNECT_LAN_MODE_PRINT, wxCommandEvent); -} // GUI + +bool is_support_filament(int extruder_id); +} // namespace GUI } // Slic3r #endif // slic3r_GUI_App_hpp_ diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 82bdd00d8..bd024695e 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1418,7 +1418,6 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value) // BBS popup a message to ask the user to set optimum parameters for tree support if (opt_key == "support_type" || opt_key == "support_style") { - // BBS if (is_tree_slim(m_config->opt_enum("support_type"), m_config->opt_enum("support_style")) && !(m_config->opt_float("support_top_z_distance") == 0 && m_config->opt_int("support_interface_top_layers") == 0 && m_config->opt_int("tree_support_wall_count") == 2)) { wxString msg_text = _L("We have added an experimental style \"Tree Slim\" that features smaller support volume but weaker strength.\n" @@ -1438,6 +1437,28 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value) } } + // BBS popup a message to ask the user to set optimum parameters for support interface if support materials are used + if (opt_key == "support_interface_filament") { + int interface_filament_id = m_config->opt_int("support_interface_filament") - 1; // the displayed id is based from 1, while internal id is based from 0 + if (is_support_filament(interface_filament_id) && !(m_config->opt_float("support_top_z_distance") == 0 && m_config->opt_float("support_interface_spacing") == 0 && + m_config->opt_enum("support_interface_pattern") == SupportMaterialInterfacePattern::smipConcentric)) { + wxString msg_text = _L("When using support material for the support interface, We recommand the following settings:\n" + "0 top distance, 0 interface spacing, concentric pattern."); + msg_text += "\n\n" + _L("Change these settings automatically? \n" + "Yes - Change these settings automatically\n" + "No - Do not change these settings for me"); + MessageDialog dialog(wxGetApp().plater(), msg_text, "Suggestion", wxICON_WARNING | wxYES | wxNO); + DynamicPrintConfig new_conf = *m_config; + if (dialog.ShowModal() == wxID_YES) { + new_conf.set_key_value("support_top_z_distance", new ConfigOptionFloat(0)); + new_conf.set_key_value("support_interface_spacing", new ConfigOptionFloat(0)); + new_conf.set_key_value("support_interface_pattern", new ConfigOptionEnum(SupportMaterialInterfacePattern::smipConcentric)); + m_config_manipulation.apply(m_config, &new_conf); + } + wxGetApp().plater()->update(); + } + } + // BBS #if 0 if (opt_key == "extruders_count") diff --git a/src/slic3r/GUI/WipeTowerDialog.cpp b/src/slic3r/GUI/WipeTowerDialog.cpp index e452687c7..1afa07f91 100644 --- a/src/slic3r/GUI/WipeTowerDialog.cpp +++ b/src/slic3r/GUI/WipeTowerDialog.cpp @@ -611,24 +611,6 @@ void WipingPanel::update_warning_texts() void WipingPanel::calc_flushing_volumes() { - auto is_support_filament = [](int extruder_id) -> bool { - auto& filament_presets = Slic3r::GUI::wxGetApp().preset_bundle->filament_presets; - auto& filaments = Slic3r::GUI::wxGetApp().preset_bundle->filaments; - - if (extruder_id >= filament_presets.size()) - return false; - - Slic3r::Preset* filament = filaments.find_preset(filament_presets[extruder_id]); - if (filament == nullptr) - return false; - - Slic3r::ConfigOptionBools* support_option = dynamic_cast(filament->config.option("filament_is_support")); - if (support_option == nullptr) - return false; - - return support_option->get_at(0); - }; - for (int from_idx = 0; from_idx < m_colours.size(); from_idx++) { const wxColour& from = m_colours[from_idx]; bool is_from_support = is_support_filament(from_idx); From aff6fb934c4279617bbaa1beb87f49808757c1ff Mon Sep 17 00:00:00 2001 From: Stone Li Date: Thu, 22 Dec 2022 17:36:29 +0800 Subject: [PATCH 11/28] ENH: sync po files with localazy Change-Id: I1d4b821cb0b681bd0f8c87be942d71365372ddae Signed-off-by: Stone Li --- bbl/i18n/BambuStudio.pot | 60 +- bbl/i18n/de/BambuStudio_de.po | 270 +- bbl/i18n/en/BambuStudio_en.po | 954 +-- bbl/i18n/es/BambuStudio_es.po | 268 +- bbl/i18n/fr/BambuStudio_fr.po | 269 +- bbl/i18n/hu/BambuStudio_hu.po | 303 +- bbl/i18n/it/BambuStudio_it.po | 8508 +++++++++++++++++++++++++++ bbl/i18n/nl/BambuStudio_nl.po | 271 +- bbl/i18n/sv/BambuStudio_sv.po | 277 +- bbl/i18n/zh_cn/BambuStudio_zh_CN.po | 191 +- resources/i18n/de/BambuStudio.mo | Bin 153504 -> 153306 bytes resources/i18n/en/BambuStudio.mo | Bin 140738 -> 141012 bytes resources/i18n/es/BambuStudio.mo | Bin 154167 -> 153950 bytes resources/i18n/fr/BambuStudio.mo | Bin 157263 -> 156773 bytes resources/i18n/hu/BambuStudio.mo | Bin 159795 -> 158335 bytes resources/i18n/it/BambuStudio.mo | Bin 0 -> 142633 bytes resources/i18n/nl/BambuStudio.mo | Bin 153238 -> 152684 bytes resources/i18n/sv/BambuStudio.mo | Bin 145276 -> 144491 bytes resources/i18n/zh_cn/BambuStudio.mo | Bin 193295 -> 191561 bytes 19 files changed, 10243 insertions(+), 1128 deletions(-) create mode 100644 bbl/i18n/it/BambuStudio_it.po create mode 100644 resources/i18n/it/BambuStudio.mo diff --git a/bbl/i18n/BambuStudio.pot b/bbl/i18n/BambuStudio.pot index 1391a6374..281e82ec5 100644 --- a/bbl/i18n/BambuStudio.pot +++ b/bbl/i18n/BambuStudio.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-21 10:35+0800\n" +"POT-Creation-Date: 2022-12-22 17:44+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1785,7 +1785,7 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly\n" +"This may cause decline in the quality of overhang surface when print fastly" msgstr "" msgid "" @@ -1794,18 +1794,6 @@ msgid "" "No - Give up using arachne this time" msgstr "" -msgid "" -"We have added an experimental style \"Tree Slim\" that features smaller " -"support volume but weaker strength.\n" -"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" -msgstr "" - -msgid "" -"Change these settings automatically? \n" -"Yes - Change these settings automatically\n" -"No - Do not change these settings for me" -msgstr "" - msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -1835,7 +1823,7 @@ msgstr "" msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly\n" +"No - reset density to default non 100% value automaticlly" msgstr "" msgid "Auto bed leveling" @@ -2748,7 +2736,7 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets\n" +"3. The Printer presets" msgstr "" msgid "Synchronization" @@ -3395,7 +3383,7 @@ msgstr "" #, possible-c-format, possible-boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:\n" +"unrecognized:" msgstr "" msgid "You'd better upgrade your software.\n" @@ -3407,7 +3395,7 @@ msgstr "" #, possible-c-format, possible-boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software.\n" +"software." msgstr "" msgid "The 3mf is not compatible, load geometry data only!" @@ -3676,7 +3664,7 @@ msgid "" msgstr "" #, possible-c-format, possible-boost-format -msgid "Plate %d: %s does not support filament %s (%s).\n" +msgid "Plate %d: %s does not support filament %s (%s)." msgstr "" msgid "Switching the language requires application restart.\n" @@ -4144,13 +4132,13 @@ msgstr "" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:\n" +"print:" msgstr "" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type.\n" +"selecting the same printer type." msgstr "" #, possible-c-format, possible-boost-format @@ -4244,11 +4232,29 @@ msgid "" "model without prime tower. Do you want to enable prime tower?" msgstr "" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls." +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" + +msgid "" +"When using support material for the support interface, We recommand the " +"following settings:\n" +"0 top distance, 0 interface spacing, concentric pattern." +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\".\n" +"\"->\"Timelapse Wipe Tower\"." msgstr "" msgid "Line width" @@ -5258,11 +5264,10 @@ msgstr "" msgid "%1% is too tall, and collisions will be caused." msgstr "" -msgid " is too close to others, there may be collisions when printing.\n" +msgid " is too close to others, there may be collisions when printing." msgstr "" -msgid "" -" is too close to exclusion area, there may be collisions when printing.\n" +msgid " is too close to exclusion area, there may be collisions when printing." msgstr "" msgid "Prime Tower" @@ -5345,7 +5350,7 @@ msgid "Layer height cannot exceed nozzle diameter" msgstr "" #, possible-c-format, possible-boost-format -msgid "Plate %d: %s does not support filament %s\n" +msgid "Plate %d: %s does not support filament %s" msgstr "" msgid "Generating skirt & brim" @@ -6801,6 +6806,9 @@ msgstr "" msgid "Rectilinear grid" msgstr "" +msgid "Hollow" +msgstr "" + msgid "Interface pattern" msgstr "" diff --git a/bbl/i18n/de/BambuStudio_de.po b/bbl/i18n/de/BambuStudio_de.po index 54a133481..740f11f13 100644 --- a/bbl/i18n/de/BambuStudio_de.po +++ b/bbl/i18n/de/BambuStudio_de.po @@ -2,16 +2,13 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-21 10:35+0800\n" -"PO-Revision-Date: \n" -"Last-Translator: \n" -"Language-Team: \n" +"POT-Creation-Date: 2022-12-22 17:44+0800\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Localazy (https://localazy.com)\n" "Plural-Forms: nplurals=2; plural=(n==1) ? 0 : 1;\n" -"X-Generator: Poedit 3.1\n" msgid "Supports Painting" msgstr "Supports aufmalen" @@ -1921,7 +1918,7 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly\n" +"This may cause decline in the quality of overhang surface when print fastly" msgstr "" msgid "" @@ -1930,18 +1927,6 @@ msgid "" "No - Give up using arachne this time" msgstr "" -msgid "" -"We have added an experimental style \"Tree Slim\" that features smaller " -"support volume but weaker strength.\n" -"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" -msgstr "" - -msgid "" -"Change these settings automatically? \n" -"Yes - Change these settings automatically\n" -"No - Do not change these settings for me" -msgstr "" - msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -1985,7 +1970,7 @@ msgstr "Das %1%-Infill-Muster unterstützt keine 100%% Dichte." msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly\n" +"No - reset density to default non 100% value automaticlly" msgstr "" msgid "Auto bed leveling" @@ -2906,7 +2891,7 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets\n" +"3. The Printer presets" msgstr "" msgid "Synchronization" @@ -3559,10 +3544,8 @@ msgstr "" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:\n" +"unrecognized:" msgstr "" -"Die Version %s von 3mf ist neuer als die Version %s von %s, folgende " -"Schlüssel wurden nicht erkannt:\n" msgid "You'd better upgrade your software.\n" msgstr "Sie sollten Ihre Software aktualisieren.\n" @@ -3573,7 +3556,7 @@ msgstr "Neuere 3mf-Version" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software.\n" +"software." msgstr "" msgid "The 3mf is not compatible, load geometry data only!" @@ -3856,7 +3839,7 @@ msgid "" msgstr "" #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s (%s).\n" +msgid "Plate %d: %s does not support filament %s (%s)." msgstr "" msgid "Switching the language requires application restart.\n" @@ -4349,13 +4332,13 @@ msgstr "" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:\n" +"print:" msgstr "" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type.\n" +"selecting the same printer type." msgstr "" #, c-format, boost-format @@ -4454,11 +4437,29 @@ msgid "" "model without prime tower. Do you want to enable prime tower?" msgstr "" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls." +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" + +msgid "" +"When using support material for the support interface, We recommand the " +"following settings:\n" +"0 top distance, 0 interface spacing, concentric pattern." +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\".\n" +"\"->\"Timelapse Wipe Tower\"." msgstr "" msgid "Line width" @@ -5541,11 +5542,10 @@ msgstr "" msgid "%1% is too tall, and collisions will be caused." msgstr "%1% ist zu hoch und es kommt zu Kollisionen." -msgid " is too close to others, there may be collisions when printing.\n" +msgid " is too close to others, there may be collisions when printing." msgstr "" -msgid "" -" is too close to exclusion area, there may be collisions when printing.\n" +msgid " is too close to exclusion area, there may be collisions when printing." msgstr "" msgid "Prime Tower" @@ -5648,7 +5648,7 @@ msgid "Layer height cannot exceed nozzle diameter" msgstr "Schichthöhe kann Druckdüsendurchmesser nicht überschreiten" #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s\n" +msgid "Plate %d: %s does not support filament %s" msgstr "" msgid "Generating skirt & brim" @@ -7298,6 +7298,9 @@ msgstr "Linienmuster der Supports" msgid "Rectilinear grid" msgstr "Rechtwinkliges Gitter" +msgid "Hollow" +msgstr "" + msgid "Interface pattern" msgstr "Schnittstellenmuster" @@ -8016,76 +8019,6 @@ msgid "" "density to improve the strength of the model?" msgstr "" -#~ msgid "" -#~ "normal(auto) and tree(auto) is used to generate support automatically. If " -#~ "normal or tree is selected, only support enforcers are generated" -#~ msgstr "" -#~ "Normal(automatisch) und Baum(automatisch) wird verwendet, um " -#~ "automatischen Support zu erzeugen. Wenn Normal oder Baum ausgewählt ist, " -#~ "werden nur Support Enforcer erzeugt" - -#~ msgid "hybrid(auto)" -#~ msgstr "Hybrid(automatisch)" - -#~ msgid "" -#~ "Spiral mode only works when wall loops is 1, \n" -#~ "support is disabled, top shell layers is 0 and sparse infill density is " -#~ "0\n" -#~ msgstr "" -#~ "Der Spiralmodus funktioniert nur, wenn die Wand 1 Linienweite breit " -#~ "sind, \n" -#~ "Support ist deaktiviert, die oberen Schalenschichten sind 0 und die " -#~ "Dichte der Füllung ist 0\n" - -#~ msgid "Choose one or more files (3mf/step/stl/obj/amf):" -#~ msgstr "Wählen sie eine oder mer Dateien (3mf/step/stl/obj/amf):" - -#~ msgid "Import 3MF/STL/STEP/OBJ/AMF" -#~ msgstr "Importiere 3MF/STL/STEP/OBJ/AMF" - -#~ msgid "Part Cooling" -#~ msgstr "BAuteilkühlung" - -#~ msgid "Aux Cooling" -#~ msgstr "Hilfskühlung" - -#~ msgid "" -#~ "Filament to print support and skirt. 0 means no specific filament for " -#~ "support and current filament is used" -#~ msgstr "" -#~ "Filament für den Druck der Supports und der Umrandung. 0 bedeutet, dass " -#~ "kein spezielles Filament für den Support und das aktuelle Filament wird " -#~ "verwendet" - -#~ msgid "" -#~ "Filament to print support interface. 0 means no specific filament for " -#~ "support interface and current filament is used" -#~ msgstr "" -#~ "Filament zum Drucken der Support-Schnittstelle. 0 bedeutet, dass kein " -#~ "spezielles Filament für die Support-Schnittstelle vorhanden ist und das " -#~ "aktuelle Filament verwendet wird" - -#~ msgid "Repair" -#~ msgstr "Reparieren" - -#~ msgid "Repair the model's meshes if it is non-manifold mesh" -#~ msgstr "" -#~ "Reparieren Sie die Maschen des Modells, wenn es sich um nicht-verzweigte " -#~ "Maschen handelt" - -#~ msgid "Monitoring Recording" -#~ msgstr "Überwachung der Aufzeichnung" - -#~ msgid "Tree support with infill" -#~ msgstr "Baumsupport mit Füllung" - -#~ msgid "" -#~ "This setting specifies whether to add infill inside large hollows of tree " -#~ "support" -#~ msgstr "" -#~ "Diese Einstellung legt fest, ob in großen Hohlräumen von Baumsupports " -#~ "Füllmaterial hinzugefügt werden soll" - #~ msgid "" #~ "\n" #~ "%1% is too close to exclusion area, there will be collisions when " @@ -8116,6 +8049,12 @@ msgstr "" #~ "Lösen Sie das Problem, indem Sie es vollständig innerhalb oder außerhalb " #~ "der Druckplatte verschieben." +#~ msgid "" +#~ "Arachne engine only works when overhang slowing down is disabled.\n" +#~ "This may cause decline in the quality of overhang surface when print " +#~ "fastly\n" +#~ msgstr "\n" + #~ msgid "Auto arrange" #~ msgstr "Automatische Anordnung" @@ -8127,6 +8066,9 @@ msgstr "" #~ "Wenn es ausgewählte Objekte gibt, werden nur die ausgewählten Objekte " #~ "ausgerichtet, ansonsten werden alle Objekte im Projekt ausgerichtet." +#~ msgid "Aux Cooling" +#~ msgstr "Hilfskühlung" + #~ msgid "Avoid crossing wall when travel" #~ msgstr "Vermeiden Sie das Überqueren von Mauern während der Fahrt" @@ -8139,6 +8081,9 @@ msgstr "" #~ "dieses Filaments.\n" #~ "Dies kann zu einer Verstopfung der Düse und zu Druckfehlern führen" +#~ msgid "Choose one or more files (3mf/step/stl/obj/amf):" +#~ msgstr "Wählen sie eine oder mer Dateien (3mf/step/stl/obj/amf):" + #~ msgid "Clear all" #~ msgstr "Alles löschen" @@ -8197,6 +8142,14 @@ msgstr "" #~ "2. Filament-Voreinstellungen\n" #~ "3. Drucker-Voreinstellungen\n" +#~ msgid "" +#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" +#~ "It contains the following information:\n" +#~ "1. The Process presets\n" +#~ "2. The Filament presets\n" +#~ "3. The Printer presets\n" +#~ msgstr "\n" + #~ msgid "" #~ "Don't retract when the travel is in infill area absolutely. That means " #~ "the oozing can't been seen" @@ -8250,6 +8203,22 @@ msgstr "" #~ msgid "Filament N XX" #~ msgstr "Filament N XX" +#~ msgid "" +#~ "Filament to print support and skirt. 0 means no specific filament for " +#~ "support and current filament is used" +#~ msgstr "" +#~ "Filament für den Druck der Supports und der Umrandung. 0 bedeutet, dass " +#~ "kein spezielles Filament für den Support und das aktuelle Filament wird " +#~ "verwendet" + +#~ msgid "" +#~ "Filament to print support interface. 0 means no specific filament for " +#~ "support interface and current filament is used" +#~ msgstr "" +#~ "Filament zum Drucken der Support-Schnittstelle. 0 bedeutet, dass kein " +#~ "spezielles Filament für die Support-Schnittstelle vorhanden ist und das " +#~ "aktuelle Filament verwendet wird" + #~ msgid "Filaments Selection" #~ msgstr "Auswahl der Filamente" @@ -8300,6 +8269,9 @@ msgstr "" #~ "automatische Anordnung verwendet, um Kollisionen zu vermeiden, wenn " #~ "Objekt für Objekt gedruckt wird" +#~ msgid "Import 3MF/STL/STEP/OBJ/AMF" +#~ msgstr "Importiere 3MF/STL/STEP/OBJ/AMF" + #~ msgid "In the calibration of extrusion flow" #~ msgstr "Kalibrierung des Materialflusses" @@ -8341,6 +8313,9 @@ msgstr "" #~ msgid "Monitoring" #~ msgstr "Überwachung" +#~ msgid "Monitoring Recording" +#~ msgstr "Überwachung der Aufzeichnung" + #~ msgid "Open" #~ msgstr "Öffnen" @@ -8353,6 +8328,9 @@ msgstr "" #~ msgid "Output file" #~ msgstr "Ausgabedatei" +#~ msgid "Part Cooling" +#~ msgstr "BAuteilkühlung" + #~ msgid "Pause(heated bed temperature error)" #~ msgstr "Pause (Temperaturfehler beim Heizbett)" @@ -8365,9 +8343,20 @@ msgstr "" #~ msgid "Per object edit" #~ msgstr "Je Objekt bearbeiten" +#~ msgid "Plate %d: %s does not support filament %s\n" +#~ msgstr "\n" + #~ msgid "Plate %d: %s does not support filament %s.\n" #~ msgstr "Druckplatte %d: %s unterstützt kein Filament %s.\n" +#~ msgid "Plate %d: %s does not support filament %s (%s).\n" +#~ msgstr "\n" + +#~ msgid "" +#~ "Please check the following infomation and click Confirm to continue " +#~ "sending print:\n" +#~ msgstr "\n" + #~ msgid "Please fill report first." #~ msgstr "Bitte füllen Sie zuerst den Bericht aus." @@ -8434,6 +8423,14 @@ msgstr "" #~ msgid "Reload items" #~ msgstr "Elemente neu laden" +#~ msgid "Repair" +#~ msgstr "Reparieren" + +#~ msgid "Repair the model's meshes if it is non-manifold mesh" +#~ msgstr "" +#~ "Reparieren Sie die Maschen des Modells, wenn es sich um nicht-verzweigte " +#~ "Maschen handelt" + #~ msgid "Report" #~ msgstr "Bericht" @@ -8467,6 +8464,16 @@ msgstr "" #~ msgid "Spiral mode" #~ msgstr "Spiralförmiger Modus" +#~ msgid "" +#~ "Spiral mode only works when wall loops is 1, \n" +#~ "support is disabled, top shell layers is 0 and sparse infill density is " +#~ "0\n" +#~ msgstr "" +#~ "Der Spiralmodus funktioniert nur, wenn die Wand 1 Linienweite breit " +#~ "sind, \n" +#~ "Support ist deaktiviert, die oberen Schalenschichten sind 0 und die " +#~ "Dichte der Füllung ist 0\n" + #~ msgid "Successfully sent.Will automatically jump to the device page in %s s" #~ msgstr "Erfolgreich gesendet, springt automatisch zur Geräteseite in %s" @@ -8480,6 +8487,12 @@ msgstr "" #~ "Supportlücken, kann aber zusätzliche Filamentwechsel verursachen, wenn " #~ "die Supportschicht von einem anderen Filament gedruckt wird" +#~ msgid "" +#~ "Switch to rectilinear pattern?\n" +#~ "Yes - switch to rectilinear pattern automaticlly\n" +#~ "No - reset density to default non 100% value automaticlly\n" +#~ msgstr "\n" + #~ msgid "" #~ "Switch to zig-zag pattern?\n" #~ "Yes - switch to zig-zag pattern automaticlly\n" @@ -8493,6 +8506,18 @@ msgstr "" #~ msgid "Swith cloud environment, Please login again!" #~ msgstr "Cloud-Umgebung wechseln, bitte erneut anmelden!" +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " +#~ "unrecognized:\n" +#~ msgstr "" +#~ "Die Version %s von 3mf ist neuer als die Version %s von %s, folgende " +#~ "Schlüssel wurden nicht erkannt:\n" + +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " +#~ "your software.\n" +#~ msgstr "\n" + #~ msgid "The Config is not compatible and can not be loaded." #~ msgstr "" #~ "Die Konfiguration ist nicht kompatibel und kann nicht geladen werden." @@ -8515,6 +8540,12 @@ msgstr "" #~ "Ergebnisse überprüfen oder die Eingabedatei reparieren und es erneut " #~ "versuchen." +#~ msgid "" +#~ "The printer type used to generate G-code is not the same type as the " +#~ "currently selected physical printer. It is recommend to re-slice by " +#~ "selecting the same printer type.\n" +#~ msgstr "\n" + #~ msgid "" #~ "This object will be used to purge the nozzle after a filament change to " #~ "save filament and decrease the print time. Colours of the objects will be " @@ -8524,6 +8555,13 @@ msgstr "" #~ "säubern, um Filament zu sparen und die Druckzeit zu verkürzen. Die Farben " #~ "der Objekte werden als Ergebnis gemischt" +#~ msgid "" +#~ "This setting specifies whether to add infill inside large hollows of tree " +#~ "support" +#~ msgstr "" +#~ "Diese Einstellung legt fest, ob in großen Hohlräumen von Baumsupports " +#~ "Füllmaterial hinzugefügt werden soll" + #~ msgid "" #~ "This setting stands for how much volume of filament can be melted and " #~ "extruded per second. Printing speed is limited by max volumetric speed, " @@ -8540,6 +8578,9 @@ msgstr "" #~ msgid "Translation" #~ msgstr "Übersetzung" +#~ msgid "Tree support with infill" +#~ msgstr "Baumsupport mit Füllung" + #~ msgid "Unable to create zip file" #~ msgstr "ZIP-Datei kann nicht erstellt werden" @@ -8552,6 +8593,13 @@ msgstr "" #~ msgid "Waiting" #~ msgstr "Warten" +#~ 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\".\n" +#~ msgstr "\n" + #~ msgid "" #~ "You have changed some preset settings. \n" #~ "Would you like to keep these changed settings after switching preset?" @@ -8566,17 +8614,35 @@ msgstr "" #~ msgid " Object:" #~ msgstr " Objekt:" +#~ msgid "" +#~ " is too close to exclusion area, there may be collisions when printing.\n" +#~ msgstr "\n" + #~ msgid "" #~ " is too close to exclusion area, there will be collisions when printing.\n" #~ msgstr "" #~ " ist zu nahe am Sperrbereich, es kommt beim Drucken zu Kollisionen.\n" +#~ msgid " is too close to others, there may be collisions when printing.\n" +#~ msgstr "\n" + #~ msgid " is too close to others, there will be collisions when printing.\n" #~ msgstr " zu nahe an anderen, es kommt beim Drucken zu Kollisionen.\n" +#~ msgid "hybrid(auto)" +#~ msgstr "Hybrid(automatisch)" + #~ msgid "normal" #~ msgstr "Normal" +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal or tree is selected, only support enforcers are generated" +#~ msgstr "" +#~ "Normal(automatisch) und Baum(automatisch) wird verwendet, um " +#~ "automatischen Support zu erzeugen. Wenn Normal oder Baum ausgewählt ist, " +#~ "werden nur Support Enforcer erzeugt" + #~ msgid "the 3mf is not compatible, load geometry data only!" #~ msgstr "die 3mf ist nicht kompatibel, laden Sie nur Geometriedaten!" diff --git a/bbl/i18n/en/BambuStudio_en.po b/bbl/i18n/en/BambuStudio_en.po index 58dac11e0..38c567c7e 100644 --- a/bbl/i18n/en/BambuStudio_en.po +++ b/bbl/i18n/en/BambuStudio_en.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-21 10:35+0800\n" +"POT-Creation-Date: 2022-12-22 17:44+0800\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -485,7 +485,7 @@ msgid "Click to download new version in default browser: %s" msgstr "Click to download new version in default browser: %s" msgid "The Bambu Studio needs an upgrade" -msgstr "Bambu Studio needs an update!" +msgstr "Bambu Studio needs an update" msgid "This is the newest version." msgstr "This is the newest version." @@ -741,13 +741,13 @@ msgid "Flush into objects' support" msgstr "Flush into objects' support" msgid "Convert from inch" -msgstr "Convert from Inch" +msgstr "Convert from Inches" msgid "Restore to inch" msgstr "Restore to Inch" msgid "Convert from meter" -msgstr "Convert from Meter" +msgstr "Convert from Meters" msgid "Restore to meter" msgstr "Restore to Meter" @@ -894,7 +894,7 @@ msgid "Name" msgstr "Name" msgid "Fila." -msgstr "" +msgstr "Fila." #, c-format, boost-format msgid "%1$d error repaired" @@ -930,13 +930,13 @@ msgid "Right button click the icon to drop the object printable property" msgstr "Right click the icon to drop the object printable property" msgid "Click the icon to toggle printable property of the object" -msgstr "Click the icon to toggle printable property of the object" +msgstr "Click the icon to toggle printable properties of the object" msgid "Click the icon to edit support painting of the object" msgstr "Click the icon to edit support painting of the object" msgid "Click the icon to edit color painting of the object" -msgstr "Click the icon to edit color painting of the object" +msgstr "Click the icon to edit color painting for the object" msgid "Loading file" msgstr "Loading file" @@ -1042,8 +1042,7 @@ msgid "Remove parameter" msgstr "Remove parameter" msgid "one cell can only be copied to one or multiple cells in the same column" -msgstr "" -"One cell can only be copied to one or multiple cells in the same column." +msgstr "One cell can only be copied to one or more cells in the same column." msgid "multiple cells copy is not supported" msgstr "Copying multiple cells is not supported." @@ -1387,7 +1386,7 @@ msgid "Please log out and login to the printer again." msgstr "" msgid "Downloading" -msgstr "" +msgstr "Downloading" msgid "Download failed" msgstr "" @@ -1557,7 +1556,7 @@ msgstr "" "information, leaving it blank for you to enter manually." msgid "Power on update" -msgstr "Power on update" +msgstr "Update on startup" msgid "" "The AMS will automatically read the information of inserted filament on " @@ -1625,7 +1624,7 @@ msgid "" "A error occurred. Maybe memory of system is not enough or it's a bug of the " "program" msgstr "" -"A error occurred. The system may have run out of memory, or a bug may have " +"An error occurred. The system may have run out of memory, or a bug may have " "occurred." msgid "Please save project and restart the program. " @@ -1779,8 +1778,8 @@ msgid "" "Recommended nozzle temperature of this filament type is [%d, %d] degree " "centigrade" msgstr "" -"The recommended nozzle temperature for this filament type is [%d, %d] degree " -"centigrade" +"The recommended nozzle temperature for this filament type is [%d, %d] " +"degrees centigrade" #, c-format, boost-format msgid "" @@ -1789,7 +1788,7 @@ msgid "" "This may cause model broken free from build plate during printing" msgstr "" "The bed temperature of other layers is lower than the bed temperature of the " -"first layer by more than %d degree centigrade.\n" +"first layer by more than %d degrees centigrade.\n" "This may cause models to break free from the build plate during printing." msgid "" @@ -1872,12 +1871,12 @@ msgid "" "No - Give up using spiral mode this time" msgstr "" "Change these settings automatically? \n" -"Yes - Change these settings and enable spiral mode automatically\n" +"Yes - Change these settings and enable spiral/vase mode automatically\n" "No - Cancel enabling spiral mode" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly\n" +"This may cause decline in the quality of overhang surface when print fastly" msgstr "" msgid "" @@ -1886,18 +1885,6 @@ msgid "" "No - Give up using arachne this time" msgstr "" -msgid "" -"We have added an experimental style \"Tree Slim\" that features smaller " -"support volume but weaker strength.\n" -"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" -msgstr "" - -msgid "" -"Change these settings automatically? \n" -"Yes - Change these settings automatically\n" -"No - Do not change these settings for me" -msgstr "" - msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -1940,7 +1927,7 @@ msgstr "%1% infill pattern doesn't support 100%% density." msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly\n" +"No - reset density to default non 100% value automaticlly" msgstr "" msgid "Auto bed leveling" @@ -2125,7 +2112,7 @@ msgid "Temperature: " msgstr "" msgid "Loading G-codes" -msgstr "Loading G-codes" +msgstr "Loading G-code" msgid "Generating geometry vertex data" msgstr "Generating geometry vertex data" @@ -2404,7 +2391,7 @@ msgid "A G-code path goes beyond the boundary of plate." msgstr "A G-code path goes beyond plate boundaries." msgid "Only the object being edit is visible." -msgstr "Only the object being edit is visible." +msgstr "Only the object being edited is visible." msgid "" "An object is laid over the boundary of plate or exceeds the height limit.\n" @@ -2479,7 +2466,7 @@ msgid "" "You can find it in \"Settings > Network > Connection code\"\n" "on the printer, as shown in the figure:" msgstr "" -"You can find it in \"Settings > Network > Connection code\"\n" +"You can find it in \"Settings > Network > Access code\"\n" "on the printer, as shown in the figure:" msgid "Invalid input." @@ -2657,22 +2644,22 @@ msgid "Load a model" msgstr "Load a model" msgid "Import Configs" -msgstr "Import Presets" +msgstr "Import Configs" msgid "Load configs" -msgstr "" +msgstr "Load configs" msgid "Import" -msgstr "" +msgstr "Import" msgid "Export all objects as STL" msgstr "Export All Objects as STL" msgid "Export Generic 3MF" -msgstr "" +msgstr "Export Generic 3MF" msgid "Export 3mf file without using some 3mf-extensions" -msgstr "" +msgstr "Export 3mf file without using some 3mf-extensions" msgid "Export current sliced file" msgstr "" @@ -2687,7 +2674,7 @@ msgid "Export current plate as G-code" msgstr "" msgid "Export &Configs" -msgstr "Export Presets" +msgstr "Export &Configs" msgid "Export current configuration to files" msgstr "" @@ -2814,13 +2801,13 @@ msgid "&Help" msgstr "&Help" msgid "Overwrite file" -msgstr "" +msgstr "Overwrite file" msgid "Yes to All" -msgstr "" +msgstr "Yes to All" msgid "No to All" -msgstr "" +msgstr "No to All" msgid "Choose a directory" msgstr "" @@ -2829,12 +2816,10 @@ msgstr "" msgid "There is %d config exported. (Only non-system configs)" msgid_plural "There are %d configs exported. (Only non-system configs)" msgstr[0] "" -"There is %d preset exported. (Only non-system and currently used presets)" msgstr[1] "" -"There are %d presets exported. (Only non-system and currently used presets)" msgid "Export result" -msgstr "" +msgstr "Export Result" msgid "Select profile to load:" msgstr "" @@ -2844,12 +2829,10 @@ 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] "" -"There is %d preset imported. (Only non-system and compatible presets)" msgstr[1] "" -"There are %d presets imported. (Only non-system and compatible presets)" msgid "Import result" -msgstr "" +msgstr "Import result" msgid "File is missing" msgstr "File is missing" @@ -2865,7 +2848,7 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets\n" +"3. The Printer presets" msgstr "" msgid "Synchronization" @@ -2938,10 +2921,10 @@ msgid "Load failed [%d]!" msgstr "Loading failed [%d]!" msgid "Year" -msgstr "" +msgstr "Year" msgid "Month" -msgstr "" +msgstr "Month" msgid "All Files" msgstr "" @@ -2962,7 +2945,7 @@ msgid "Switch to timelapse files." msgstr "" msgid "Video" -msgstr "" +msgstr "Video" msgid "Switch to video files." msgstr "" @@ -2983,23 +2966,23 @@ msgid "Batch manage files." msgstr "" msgid "No printers." -msgstr "" +msgstr "No printers." msgid "Not supported by this model of printer!" msgstr "" msgid "Connecting..." -msgstr "" +msgstr "Connecting..." #, c-format, boost-format msgid "Connect failed [%d]!" -msgstr "" +msgstr "Connection failed [%d]!" msgid "Loading file list..." -msgstr "" +msgstr "Loading file list..." msgid "No files" -msgstr "" +msgstr "No files" msgid "Not accessible in LAN-only mode!" msgstr "" @@ -3127,7 +3110,7 @@ msgid "" msgstr "" msgid "Downloading..." -msgstr "" +msgstr "Downloading..." msgid "Cloud Slicing..." msgstr "" @@ -3517,13 +3500,11 @@ msgstr "" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:\n" +"unrecognized:" msgstr "" -"The 3mf file's version %s is newer than %s's version %s, Found the following " -"unrecognized keys:\n" msgid "You'd better upgrade your software.\n" -msgstr "You'd better upgrade your software.\n" +msgstr "You should update your software.\n" msgid "Newer 3mf version" msgstr "Newer 3mf version" @@ -3531,7 +3512,7 @@ msgstr "Newer 3mf version" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software.\n" +"software." msgstr "" msgid "The 3mf is not compatible, load geometry data only!" @@ -3806,7 +3787,7 @@ msgid "" msgstr "" #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s (%s).\n" +msgid "Plate %d: %s does not support filament %s (%s)." msgstr "" msgid "Switching the language requires application restart.\n" @@ -4050,7 +4031,7 @@ msgid "Add/Remove printers" msgstr "" msgid "Slice all plate to obtain time and filament estimation" -msgstr "Slice all plate to obtain time and filament estimation" +msgstr "Slice all plates to obtain time and filament estimation" msgid "Packing project data into 3mf file" msgstr "Packing project data into 3mf file" @@ -4213,7 +4194,7 @@ msgid "Synchronizing device information" msgstr "Synchronizing device information" msgid "Synchronizing device information time out" -msgstr "Synchronizing device information time out" +msgstr "Synchronizing device information timed out" msgid "Cannot send the print job when the printer is updating firmware" msgstr "" @@ -4286,13 +4267,13 @@ msgstr "" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:\n" +"print:" msgstr "" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type.\n" +"selecting the same printer type." msgstr "" #, c-format, boost-format @@ -4315,7 +4296,7 @@ msgid "Send to Printer SD card" msgstr "" msgid "Cannot send the print task when the upgrade is in progress" -msgstr "Cannot send the print task when the upgrade is in progress" +msgstr "Cannot send print tasks when an update is in progress" msgid "The printer is required to be in the same LAN as Bambu Studio." msgstr "" @@ -4386,11 +4367,29 @@ msgid "" "model without prime tower. Do you want to enable prime tower?" msgstr "" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls." +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" + +msgid "" +"When using support material for the support interface, We recommand the " +"following settings:\n" +"0 top distance, 0 interface spacing, concentric pattern." +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\".\n" +"\"->\"Timelapse Wipe Tower\"." msgstr "" msgid "Line width" @@ -4439,7 +4438,7 @@ msgid "Raft" msgstr "" msgid "Support filament" -msgstr "Support filament" +msgstr "Filament for Supports" msgid "Prime tower" msgstr "Prime tower" @@ -4678,7 +4677,7 @@ msgid "Old Value" msgstr "Old value" msgid "New Value" -msgstr "New value" +msgstr "New Value" msgid "Transfer" msgstr "Transfer" @@ -4944,9 +4943,9 @@ msgid "" "objects, it just orientates the selected ones.Otherwise, it will orientates " "all objects in the current disk." msgstr "" -"Auto orients selected objects or all objects.If there are selected objects, " -"it just orients the selected ones.Otherwise, it will orient all objects in " -"the current disk." +"This auto orients selected objects or all objects. If there are selected " +"objects, it just orients the selected ones. Otherwise, it will orient all " +"objects in the current plate." msgid "Collapse/Expand the sidebar" msgstr "Collapse/Expand the sidebar" @@ -5444,11 +5443,10 @@ msgstr "%1% is too close to others, and collisions may be caused." msgid "%1% is too tall, and collisions will be caused." msgstr "%1% is too tall, and collisions will be caused." -msgid " is too close to others, there may be collisions when printing.\n" +msgid " is too close to others, there may be collisions when printing." msgstr "" -msgid "" -" is too close to exclusion area, there may be collisions when printing.\n" +msgid " is too close to exclusion area, there may be collisions when printing." msgstr "" msgid "Prime Tower" @@ -5488,7 +5486,7 @@ msgid "" "The spiral vase mode does not work when an object contains more than one " "materials." msgstr "" -"Spiral vase mode does not work when an object contains more than one " +"Spiral (vase) mode does not work when an object contains more than one " "material." msgid "The prime tower is not supported in \"By object\" print." @@ -5547,7 +5545,7 @@ msgid "Layer height cannot exceed nozzle diameter" msgstr "Layer height cannot exceed nozzle diameter." #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s\n" +msgid "Plate %d: %s does not support filament %s" msgstr "" msgid "Generating skirt & brim" @@ -5980,8 +5978,8 @@ msgid "" "Don't support the whole bridge area which make support very large. Bridge " "usually can be printing directly without support if not very long" msgstr "" -"This disables supporting bridges, which decreasing the mount of support " -"required. Bridges can usually be printed directly without support for a " +"This disables supporting bridges, which decreases the amount of support " +"required. Bridges can usually be printed directly without support over a " "reasonable distance." msgid "Thick bridges" @@ -6352,8 +6350,8 @@ msgid "" "Acceleration of top surface infill. Using a lower value may improve top " "surface quality" msgstr "" -"Acceleration of top surface infill. Using a lower value may improve top " -"surface quality" +"This is the acceleration of top surface infill. Using a lower value may " +"improve top surface quality." msgid "Acceleration of outer wall. Using a lower value can improve quality" msgstr "" @@ -6428,7 +6426,7 @@ msgid "" "The average diatance between the random points introducded on each line " "segment" msgstr "" -"The average diatance between the random points introducded on each line " +"The average distance between the random points introduced on each line " "segment" msgid "" @@ -7172,6 +7170,9 @@ msgstr "This is the line pattern for support." msgid "Rectilinear grid" msgstr "Rectilinear grid" +msgid "Hollow" +msgstr "" + msgid "Interface pattern" msgstr "Interface pattern" @@ -7879,164 +7880,6 @@ msgid "" "density to improve the strength of the model?" msgstr "" -#~ msgid "" -#~ "normal(auto) and tree(auto) is used to generate support automatically. If " -#~ "normal or tree is selected, only support enforcers are generated" -#~ msgstr "" -#~ "normal(auto), hybrid(auto) and tree(auto) are used to generate support " -#~ "automatically. If normal or tree is selected, only support enforcers are " -#~ "generated." - -#~ msgid "hybrid(auto)" -#~ msgstr "hybrid(auto)" - -#~ msgid "" -#~ "Spiral mode only works when wall loops is 1, \n" -#~ "support is disabled, top shell layers is 0 and sparse infill density is " -#~ "0\n" -#~ msgstr "" -#~ "Spiral mode only works when wall loops is set to 1, \n" -#~ "support is disabled, top shell layers is 0, and sparse infill density is " -#~ "0\n" - -#~ msgid "Choose one or more files (3mf/step/stl/obj/amf):" -#~ msgstr "Choose one or more files (3mf/step/stl/obj/amf):" - -#~ msgid "Import 3MF/STL/STEP/OBJ/AMF" -#~ msgstr "Import 3MF/STL/STEP/OBJ/AMF" - -#~ msgid "Part Cooling" -#~ msgstr "Part Cooling" - -#~ msgid "Aux Cooling" -#~ msgstr "Aux Cooling" - -#~ msgid "" -#~ "Filament to print support and skirt. 0 means no specific filament for " -#~ "support and current filament is used" -#~ msgstr "" -#~ "This is the filament used to print supports and skirts. 0 means no " -#~ "specific filament for support and the current filament is used." - -#~ msgid "" -#~ "Filament to print support interface. 0 means no specific filament for " -#~ "support interface and current filament is used" -#~ msgstr "" -#~ "This is the filament to print support interfaces. 0 means no specific " -#~ "filament for support interfaces and the current filament is used" - -#~ msgid "Repair" -#~ msgstr "Repair" - -#~ msgid "Repair the model's meshes if it is non-manifold mesh" -#~ msgstr "Repair the model’s meshes if they are non-manifold." - -#~ msgid "Monitoring Recording" -#~ msgstr "Monitoring Recording" - -#~ msgid "Tree support with infill" -#~ msgstr "Tree support with infill" - -#~ msgid "" -#~ "This setting specifies whether to add infill inside large hollows of tree " -#~ "support" -#~ msgstr "" -#~ "This setting specifies whether to add infill inside large hollows of tree " -#~ "support." - -#~ msgid "Export ok." -#~ msgstr "Export ok." - -#~ msgid "Plate %d: %s does not support filament %s.\n" -#~ msgstr "Plate %d: %s does not support filament %s.\n" - -#~ msgid "Filament N XX" -#~ msgstr "Filament N XX" - -#~ msgid "Color Print" -#~ msgstr "Color print" - -#~ msgid "Comsumption" -#~ msgstr "Consumption" - -#~ msgid "Filament 1" -#~ msgstr "Filament 1" - -#~ msgid "Flushed filament" -#~ msgstr "Flushed filament" - -#~ msgid "Adaptive layer height" -#~ msgstr "Adaptive layer height" - -#~ msgid "" -#~ "Enabling this option means the height of every layer except the first " -#~ "will be automatically calculated during slicing according to the slope of " -#~ "the model’s surface.\n" -#~ "Note that this option only takes effect if no prime tower is generated in " -#~ "current plate." -#~ msgstr "" -#~ "Enabling this option means that the height of each layer after the first " -#~ "will be automatically calculated according to the slope of the model’s " -#~ "surface.\n" -#~ "Please note that this option only takes effect if there is no prime tower " -#~ "generated on the current plate." - -#~ msgid "normal" -#~ msgstr "normal" - -#~ msgid "tree" -#~ msgstr "tree" - -#~ msgid " Object:" -#~ msgstr " Object:" - -#~ msgid "" -#~ "You have changed some preset settings. \n" -#~ "Would you like to keep these changed settings after switching preset?" -#~ msgstr "" -#~ "You have changed some preset settings. \n" -#~ "Would you like to keep these changed settings after switching presets?" - -#~ msgid "Export sliced file" -#~ msgstr "Export Sliced File" - -#~ msgid "Export Sliced File" -#~ msgstr "Export Sliced File" - -#~ msgid "Export current Sliced file" -#~ msgstr "Export Sliced File" - -#~ msgid "" -#~ "Force cooling fan to be specific speed when overhang degree of printed " -#~ "part exceeds this value. Expressed as percentage which indicides how much " -#~ "width of the line without support from lower layer" -#~ msgstr "" -#~ "This forces the cooling fan to use a specific speed when overhang degrees " -#~ "of parts exceed the set value. It is expressed as percentage which " -#~ "indicates how much line is acceptable without support from lower layers." - -#~ msgid "Erase painting" -#~ msgstr "Erase painting" - -#~ msgid "Set pen size" -#~ msgstr "Set pen size" - -#~ msgid "Rotation:" -#~ msgstr "Rotation:" - -#~ msgid "Height:" -#~ msgstr "Height:" - -#~ msgid "Initialize failed [%d]!" -#~ msgstr "Initalization failed [%d]!" - -#~ msgid "" -#~ "%1% is too close to exclusion area, there will be collisions when " -#~ "printing." -#~ msgstr "" -#~ "%1% is too close to an exclusion area; there will be collisions when " -#~ "printing." - #~ msgid "" #~ "\n" #~ "%1% is too close to exclusion area, there will be collisions when " @@ -8046,171 +7889,18 @@ msgstr "" #~ "%1% is too close to an exclusion area; there will be collisions when " #~ "printing." -#~ msgid " is too close to others, there will be collisions when printing.\n" -#~ msgstr " is too close to others, there will be collisions when printing.\n" - #~ msgid "" -#~ " is too close to exclusion area, there will be collisions when printing.\n" +#~ "%1% is too close to exclusion area, there will be collisions when " +#~ "printing." #~ msgstr "" -#~ " is too close to an exclusion area, there will be collisions when " -#~ "printing.\n" - -#~ msgid "Avoid crossing wall when travel" -#~ msgstr "Avoid walls when traveling" - -#~ msgid "Max travel detour distance" -#~ msgstr "Max travel detour distance" - -#~ msgid "" -#~ "Maximum detour distance for avoiding crossing wall. Don't detour if the " -#~ "detour distance is large than this value" -#~ msgstr "" -#~ "Maximum detour distance for avoiding travel across walls. If the distance " -#~ "is larger than this value, there will be no detour." - -#~ msgid "" -#~ "Height of the clearance cylinder around extruder. Used as input of auto-" -#~ "arrange to avoid collision when print object by object" -#~ msgstr "" -#~ "Height of the clearance cylinder around extruder: used as input for auto-" -#~ "arranging to avoid collisions when printing object by object" - -#~ msgid "" -#~ "Clearance radius around extruder. Used as input of auto-arrange to avoid " -#~ "collision when print object by object" -#~ msgstr "" -#~ "Clearance radius around extruder: used as input for auto-arranging to " -#~ "avoid collisions when printing object by object" - -#~ msgid "Error at line %1%:\n" -#~ msgstr "Error at line %1%:\n" - -#~ msgid "Reduce Triangles" -#~ msgstr "Reduce Triangles" - -#~ msgid "" -#~ "Switch to zig-zag pattern?\n" -#~ "Yes - switch to zig-zag pattern automaticlly\n" -#~ "No - reset density to default non 100% value automaticlly\n" -#~ msgstr "" -#~ "Switch to zig-zag pattern?\n" -#~ "Yes - Switch to zig-zag pattern automatically\n" -#~ "No - Reset density to default non-100% value automatically\n" - -#~ msgid "Extruder position" -#~ msgstr "Extruder position" - -#~ msgid "Zig zag" -#~ msgstr "Zig zag" - -#~ msgid "" -#~ "Bed temperature is higher than vitrification temperature of this " -#~ "filament.\n" -#~ "This may cause nozzle blocked and printing failure" -#~ msgstr "" -#~ "The bed temperature is higher than the vitrification temperature of this " -#~ "filament.\n" -#~ "This may cause a nozzle blockage or print failure" - -#~ msgid "Enter a search term" -#~ msgstr "Enter a search term" - -#~ msgid "Debug" -#~ msgstr "Debug" - -#~ msgid "Waiting" -#~ msgstr "Waiting" - -#~ msgid "Finished" -#~ msgstr "Finished" - -#~ msgid "Per object edit" -#~ msgstr "Per Object Edit" - -#~ msgid "Inner wall speed" -#~ msgstr "Inner wall speed" - -#~ msgid "the 3mf is not compatible, load geometry data only!" -#~ msgstr "The 3mf is not compatible, loading geometry data only!" - -#~ msgid "Save configuration as:" -#~ msgstr "Save configuration as:" - -#~ msgid "Line type" -#~ msgstr "Line type" - -#~ msgid "Designer" -#~ msgstr "Designer" - -#~ msgid "Report" -#~ msgstr "Report" +#~ "%1% is too close to an exclusion area; there will be collisions when " +#~ "printing." #~ msgid "0%" #~ msgstr "0%" -#~ msgid "Timelapse Wipe Tower" -#~ msgstr "Timelapse Wipe Tower" - -#~ msgid "Device:" -#~ msgstr "Device:" - -#~ msgid "Translation" -#~ msgstr "Translation" - -#~ msgid "" -#~ "It seems object %s needs support to print. Please enable support " -#~ "generation." -#~ msgstr "" -#~ "It seems object %s needs support to print. Please enable support " -#~ "generation." - -#~ msgid "" -#~ "The model has overlapping or self-intersecting facets. I tried to repair " -#~ "it, however you might want to check the results or repair the input file " -#~ "and retry." -#~ msgstr "" -#~ "The model has overlapping or self-intersecting facets. Repair was " -#~ "attempted, however we recommend checking the results or repairing the " -#~ "input file and retrying." - -#~ msgid "" -#~ "Auto orientates selected objects or all objects.If there are selected " -#~ "objects, it just orientates the selected ones.Otherwise, it will " -#~ "orientates all objects in the project." -#~ msgstr "" -#~ "Auto orients selected objects or all objects.If there are selected " -#~ "objects, it just orients the selected ones.Otherwise, it will orient all " -#~ "objects in the project." - -#~ msgid "The Config is not compatible and can not be loaded." -#~ msgstr "The configuration is not compatible and cannot be loaded!" - -#~ msgid "Creating" -#~ msgstr "Creating" - -#~ msgid "Uploading" -#~ msgstr "Uploading" - -#~ msgid "Sending" -#~ msgstr "Sending" - -#~ msgid "Please fill report first." -#~ msgstr "Please fill report first." - -#~ msgid "Unable to create zip file" -#~ msgstr "Unable to create zip file" - -#~ msgid "Filaments Selection" -#~ msgstr "Filaments selection" - -#~ msgid "Printer Selection" -#~ msgstr "Printer Selection" - -#~ msgid "Auto arrange" -#~ msgstr "Auto Arrange" - -#~ msgid "Spiral mode" -#~ msgstr "Spiral mode" +#~ msgid "Adaptive layer height" +#~ msgstr "Adaptive layer height" #~ msgid "" #~ "An object is layed over the boundary of plate.\n" @@ -8221,15 +7911,76 @@ msgstr "" #~ "Please solve the problem by moving it totally on or off the plate, and " #~ "confirming that the height is within the build volume." +#~ msgid "" +#~ "Arachne engine only works when overhang slowing down is disabled.\n" +#~ "This may cause decline in the quality of overhang surface when print " +#~ "fastly\n" +#~ msgstr "\n" + +#~ msgid "Auto arrange" +#~ msgstr "Auto Arrange" + +#~ msgid "" +#~ "Auto orientates selected objects or all objects.If there are selected " +#~ "objects, it just orientates the selected ones.Otherwise, it will " +#~ "orientates all objects in the project." +#~ msgstr "" +#~ "This anuto orients selected objects or all objects.\n" +#~ "If there are selected objects, it just orients the selected ones. " +#~ "Otherwise, it will orient all objects in the project." + +#~ msgid "Aux Cooling" +#~ msgstr "Aux Cooling" + +#~ msgid "Avoid crossing wall when travel" +#~ msgstr "Avoid walls when traveling" + +#~ msgid "" +#~ "Bed temperature is higher than vitrification temperature of this " +#~ "filament.\n" +#~ "This may cause nozzle blocked and printing failure" +#~ msgstr "" +#~ "The bed temperature is higher than the vitrification temperature of this " +#~ "filament.\n" +#~ "This may cause a nozzle blockage or print failure" + +#~ msgid "Choose one or more files (3mf/step/stl/obj/amf):" +#~ msgstr "Choose one or more files (3mf/step/stl/obj/amf):" + #~ msgid "Clear all" #~ msgstr "Clear all" +#~ msgid "" +#~ "Clearance radius around extruder. Used as input of auto-arrange to avoid " +#~ "collision when print object by object" +#~ msgstr "" +#~ "Clearance radius around extruder: used as input for auto-arranging to " +#~ "avoid collisions when printing object by object" + +#~ msgid "Color Print" +#~ msgstr "Color print" + +#~ msgid "Comsumption" +#~ msgstr "Consumption" + +#~ msgid "Creating" +#~ msgstr "Creating" + #~ msgid "Ctrl + Any arrow" #~ msgstr "Ctrl + Any arrow" #~ msgid "Ctrl + Left mouse button" #~ msgstr "Ctrl + Left mouse button" +#~ msgid "Debug" +#~ msgstr "Debug" + +#~ msgid "Designer" +#~ msgstr "Designer" + +#~ msgid "Device:" +#~ msgstr "Device:" + #~ msgid "Display printable box" #~ msgstr "Display printable box" @@ -8247,11 +7998,19 @@ msgstr "" #~ "3. The Printer presets\n" #~ msgstr "" #~ "Do you want to synchronize your personal data from Bambu Cloud? \n" -#~ "Contains the following information:\n" +#~ "This includes the following information:\n" #~ "1. Process presets\n" #~ "2. Filament presets\n" #~ "3. Printer presets\n" +#~ msgid "" +#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" +#~ "It contains the following information:\n" +#~ "1. The Process presets\n" +#~ "2. The Filament presets\n" +#~ "3. The Printer presets\n" +#~ msgstr "\n" + #~ msgid "" #~ "Don't retract when the travel is in infill area absolutely. That means " #~ "the oozing can't been seen" @@ -8259,12 +8018,93 @@ msgstr "" #~ "This disables retraction when travel is entirely within an infill area " #~ "and oozing can’t be seen." +#~ msgid "" +#~ "Enabling this option means the height of every layer except the first " +#~ "will be automatically calculated during slicing according to the slope of " +#~ "the model’s surface.\n" +#~ "Note that this option only takes effect if no prime tower is generated in " +#~ "current plate." +#~ msgstr "" +#~ "Enabling this option means that the height of each layer after the first " +#~ "will be automatically calculated according to the slope of the model’s " +#~ "surface.\n" +#~ "Please note that this option only takes effect if there is no prime tower " +#~ "generated on the current plate." + +#~ msgid "Enter a search term" +#~ msgstr "Enter a search term" + +#~ msgid "Erase painting" +#~ msgstr "Erase painting" + +#~ msgid "Error at line %1%:\n" +#~ msgstr "Error at line %1%:\n" + +#~ msgid "Export Sliced File" +#~ msgstr "Export Sliced File" + +#~ msgid "Export current Sliced file" +#~ msgstr "Export Sliced File" + +#~ msgid "Export ok." +#~ msgstr "Export ok." + +#~ msgid "Export sliced file" +#~ msgstr "Export Sliced File" + +#~ msgid "Extruder position" +#~ msgstr "Extruder position" + +#~ msgid "Failed" +#~ msgstr "Failed" + +#~ msgid "Filament 1" +#~ msgstr "Filament 1" + +#~ msgid "Filament N XX" +#~ msgstr "Filament N XX" + +#~ msgid "" +#~ "Filament to print support and skirt. 0 means no specific filament for " +#~ "support and current filament is used" +#~ msgstr "" +#~ "This is the filament used to print supports and skirts. 0 means no " +#~ "specific filament for support and the current filament is used." + +#~ msgid "" +#~ "Filament to print support interface. 0 means no specific filament for " +#~ "support interface and current filament is used" +#~ msgstr "" +#~ "This is the filament to print support interfaces. 0 means no specific " +#~ "filament for support interfaces and the current filament is used" + +#~ msgid "Filaments Selection" +#~ msgstr "Filaments selection" + +#~ msgid "Finish" +#~ msgstr "Finish" + +#~ msgid "Finished" +#~ msgstr "Finished" + #~ msgid "Fix model locally" #~ msgstr "Fix model locally" #~ msgid "Fix model through cloud" #~ msgstr "Fix model through cloud" +#~ msgid "Flushed filament" +#~ msgstr "Flushed filament" + +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicides how much " +#~ "width of the line without support from lower layer" +#~ msgstr "" +#~ "This forces the cooling fan to use a specific speed when overhang degrees " +#~ "of parts exceed the set value. It is expressed as percentage which " +#~ "indicates how much line is acceptable without support from lower layers." + #~ msgid "Fragment Filter" #~ msgstr "Fragment Filter" @@ -8281,21 +8121,78 @@ msgstr "" #~ "Heat the nozzle to the target \n" #~ "temperature" +#~ msgid "Height:" +#~ msgstr "Height:" + +#~ msgid "" +#~ "Height of the clearance cylinder around extruder. Used as input of auto-" +#~ "arrange to avoid collision when print object by object" +#~ msgstr "" +#~ "Height of the clearance cylinder around extruder: used as input for auto-" +#~ "arranging to avoid collisions when printing object by object" + +#~ msgid "Import 3MF/STL/STEP/OBJ/AMF" +#~ msgstr "Import 3MF/STL/STEP/OBJ/AMF" + #~ msgid "In the calibration of extrusion flow" #~ msgstr "In the calibration of extrusion flow" #~ msgid "In the calibration of laser scanner" #~ msgstr "In the calibration of laser scanner" +#~ msgid "Initialize failed [%d]!" +#~ msgstr "Initalization failed [%d]!" + +#~ msgid "Inner wall speed" +#~ msgstr "Inner wall speed" + +#~ msgid "" +#~ "It seems object %s needs support to print. Please enable support " +#~ "generation." +#~ msgstr "" +#~ "It seems object %s needs support to print. Please enable support " +#~ "generation." + +#~ msgid "Line type" +#~ msgstr "Line type" + +#~ msgid "Management" +#~ msgstr "Management" + +#~ msgid "Max travel detour distance" +#~ msgstr "Max travel detour distance" + +#~ msgid "" +#~ "Maximum detour distance for avoiding crossing wall. Don't detour if the " +#~ "detour distance is large than this value" +#~ msgstr "" +#~ "Maximum detour distance for avoiding travel across walls. If the distance " +#~ "is larger than this value, there will be no detour." + #~ msgid "Module" #~ msgstr "Module" #~ msgid "Monitoring" #~ msgstr "Monitoring" +#~ msgid "Monitoring Recording" +#~ msgstr "Monitoring Recording" + +#~ msgid "Open" +#~ msgstr "Open" + +#~ msgid "Open &PrusaSlicer" +#~ msgstr "Open &PrusaSlicer" + +#~ msgid "Open PrusaSlicer" +#~ msgstr "Open PrusaSlicer" + #~ msgid "Output file" #~ msgstr "Output file" +#~ msgid "Part Cooling" +#~ msgstr "Part Cooling" + #~ msgid "Pause(heated bed temperature error)" #~ msgstr "Pause(heated bed temperature error)" @@ -8305,8 +8202,28 @@ msgstr "" #~ msgid "Pause(toolhead shell off)" #~ msgstr "Pause(toolhead shell off)" +#~ msgid "Per object edit" +#~ msgstr "Per Object Edit" + +#~ msgid "Plate %d: %s does not support filament %s\n" +#~ msgstr "\n" + +#~ msgid "Plate %d: %s does not support filament %s.\n" +#~ msgstr "Plate %d: %s does not support filament %s.\n" + +#~ msgid "Plate %d: %s does not support filament %s (%s).\n" +#~ msgstr "\n" + +#~ msgid "" +#~ "Please check the following infomation and click Confirm to continue " +#~ "sending print:\n" +#~ msgstr "\n" + +#~ msgid "Please fill report first." +#~ msgstr "Please fill report first." + #~ msgid "Please upgrade your printer first" -#~ msgstr "Please upgrade your printer first" +#~ msgstr "Please update your printer first" #~ msgid "Position:" #~ msgstr "Position:" @@ -8321,6 +8238,27 @@ msgstr "" #~ msgid "Preview only mode for gcode file." #~ msgstr "Preview only mode for G-code file." +#~ msgid "Printer Selection" +#~ msgstr "Printer Selection" + +#~ msgid "" +#~ "Purging after filament change will be done inside objects' infills. This " +#~ "may lower the amount of waste and decrease the print time. If the walls " +#~ "are printed with transparent filament, the mixed color infill will be " +#~ "seen outside" +#~ msgstr "" +#~ "Purging after filament change will be done inside objects' infill. This " +#~ "may lower the amount of waste and decrease the print time. If the walls " +#~ "are printed with transparent filament, the mixed color infill will be " +#~ "visible." + +#~ msgid "" +#~ "Purging after filament change will be done inside objects' support. This " +#~ "may lower the amount of waste and decrease the print time" +#~ msgstr "" +#~ "Purging after filament change will be done inside objects' support. This " +#~ "may lower the amount of waste and decrease the print time." + #~ msgid "" #~ "Push new filament \n" #~ "into extruder" @@ -8328,6 +8266,47 @@ msgstr "" #~ "Push new filament \n" #~ "into extruder" +#~ msgid "" +#~ "Record timelapse video of printing without showing toolhead. In this mode " +#~ "the toolhead docks near the excess chute at each layer change, and then a " +#~ "snapshot is taken with the chamber camera. When printing finishes a " +#~ "timelapse video is composed of all the snapshots." +#~ msgstr "" +#~ "Record timelapse video of printing without showing the toolhead. In this " +#~ "mode the toolhead docks near the excess chute at each layer change, and " +#~ "then a snapshot is taken with the chamber camera. When printing finishes, " +#~ "a timelapse video is created from all the snapshots." + +#~ msgid "Reduce Triangles" +#~ msgstr "Reduce Triangles" + +#~ msgid "Reload item" +#~ msgstr "Reload item" + +#~ msgid "Reload items" +#~ msgstr "Reload items" + +#~ msgid "Repair" +#~ msgstr "Repair" + +#~ msgid "Repair the model's meshes if it is non-manifold mesh" +#~ msgstr "Repair the model’s meshes if they are non-manifold." + +#~ msgid "Report" +#~ msgstr "Report" + +#~ msgid "Rotation:" +#~ msgstr "Rotation:" + +#~ msgid "Save configuration as:" +#~ msgstr "Save configuration as:" + +#~ msgid "Sending" +#~ msgstr "Sending" + +#~ msgid "Set pen size" +#~ msgstr "Set pen size" + #~ msgid "Shift + Any arrow" #~ msgstr "Shift + Any arrow" @@ -8343,12 +8322,63 @@ msgstr "" #~ msgid "Show Printable Box(TODO)" #~ msgstr "Show Printable Box(TODO)" +#~ msgid "Spiral mode" +#~ msgstr "Spiral/Vase mode" + +#~ msgid "" +#~ "Spiral mode only works when wall loops is 1, \n" +#~ "support is disabled, top shell layers is 0 and sparse infill density is " +#~ "0\n" +#~ msgstr "" +#~ "Spiral (vase) mode only works when wall loops is set to 1, \n" +#~ "support is disabled, top shell layers is 0, and sparse infill density is " +#~ "0\n" + #~ msgid "Successfully sent.Will automatically jump to the device page in %s s" #~ msgstr "" #~ "Successfully sent. Will automatically jump to the device page in %s s" +#~ msgid "" +#~ "Support layer uses layer height independent with object layer. This is to " +#~ "support custom support gap,but may cause extra filament switches if " +#~ "support is specified as different extruder with object" +#~ msgstr "" +#~ "The support layer uses layer height independent of object layers. This is " +#~ "to support custom support gaps, but may cause extra filament switches if " +#~ "support is specified as a different filament from the object." + +#~ msgid "" +#~ "Switch to rectilinear pattern?\n" +#~ "Yes - switch to rectilinear pattern automaticlly\n" +#~ "No - reset density to default non 100% value automaticlly\n" +#~ msgstr "\n" + +#~ msgid "" +#~ "Switch to zig-zag pattern?\n" +#~ "Yes - switch to zig-zag pattern automaticlly\n" +#~ "No - reset density to default non 100% value automaticlly\n" +#~ msgstr "" +#~ "Switch to zig-zag pattern?\n" +#~ "Yes - Switch to zig-zag pattern automatically\n" +#~ "No - Reset density to default non-100% value automatically\n" + #~ msgid "Swith cloud environment, Please login again!" -#~ msgstr "Switch cloud environment, Please login again!" +#~ msgstr "Cloud environment has switched; please login again!" + +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " +#~ "unrecognized:\n" +#~ msgstr "" +#~ "The 3mf file's version %s is newer than %s's version %s, Found the " +#~ "following unrecognized keys:\n" + +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " +#~ "your software.\n" +#~ msgstr "\n" + +#~ msgid "The Config is not compatible and can not be loaded." +#~ msgstr "The configuration is not compatible and cannot be loaded!" #~ msgid "" #~ "The firmware versions of printer and AMS are too low.Please update to the " @@ -8357,5 +8387,119 @@ msgstr "" #~ "The firmware versions of the printer and AMS are too low. Please update " #~ "them to the latest version before sending any print jobs." +#~ msgid "" +#~ "The model has overlapping or self-intersecting facets. I tried to repair " +#~ "it, however you might want to check the results or repair the input file " +#~ "and retry." +#~ msgstr "" +#~ "The model has overlapping or self-intersecting facets. Repair was " +#~ "attempted, however we recommend checking the results or repairing the " +#~ "input file and retrying." + +#~ msgid "" +#~ "The printer type used to generate G-code is not the same type as the " +#~ "currently selected physical printer. It is recommend to re-slice by " +#~ "selecting the same printer type.\n" +#~ msgstr "\n" + +#~ msgid "" +#~ "This object will be used to purge the nozzle after a filament change to " +#~ "save filament and decrease the print time. Colours of the objects will be " +#~ "mixed as a result" +#~ msgstr "" +#~ "This object will be used to purge the nozzle after a filament change to " +#~ "save filament and decrease the print time. Colors of the objects will be " +#~ "mixed as a result." + +#~ msgid "" +#~ "This setting specifies whether to add infill inside large hollows of tree " +#~ "support" +#~ msgstr "" +#~ "This setting specifies whether to add infill inside large hollows of tree " +#~ "support." + +#~ msgid "" +#~ "This setting stands for how much volume of filament can be melted and " +#~ "extruded per second. Printing speed is limited by max volumetric speed, " +#~ "in case of too high and unreasonable speed setting. Zero means no limit" +#~ msgstr "" +#~ "Use this to set the maximum volume of filament that can be melted and " +#~ "extruded per second. Printing speed is limited by maximum volumetric " +#~ "speed if settings are unreasonably high. 0 means there is no limit." + +#~ msgid "Timelapse Wipe Tower" +#~ msgstr "Timelapse Wipe Tower" + +#~ msgid "Translation" +#~ msgstr "Translation" + +#~ msgid "Tree support with infill" +#~ msgstr "Tree support with infill" + +#~ msgid "Unable to create zip file" +#~ msgstr "Unable to create zip file" + +#~ msgid "Uploading" +#~ msgstr "Uploading" + #~ msgid "User pause" #~ msgstr "User pause" + +#~ msgid "Waiting" +#~ msgstr "Waiting" + +#~ 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\".\n" +#~ msgstr "\n" + +#~ msgid "" +#~ "You have changed some preset settings. \n" +#~ "Would you like to keep these changed settings after switching preset?" +#~ msgstr "" +#~ "You have changed some preset settings. \n" +#~ "Would you like to keep these changed settings after switching presets?" + +#~ msgid "Zig zag" +#~ msgstr "Zig zag" + +#~ msgid " Object:" +#~ msgstr " Object:" + +#~ msgid "" +#~ " is too close to exclusion area, there may be collisions when printing.\n" +#~ msgstr "\n" + +#~ msgid "" +#~ " is too close to exclusion area, there will be collisions when printing.\n" +#~ msgstr "" +#~ " is too close to an exclusion area, there will be collisions when " +#~ "printing.\n" + +#~ msgid " is too close to others, there may be collisions when printing.\n" +#~ msgstr "\n" + +#~ msgid " is too close to others, there will be collisions when printing.\n" +#~ msgstr " is too close to others, there will be collisions when printing.\n" + +#~ msgid "hybrid(auto)" +#~ msgstr "hybrid(auto)" + +#~ msgid "normal" +#~ msgstr "normal" + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal or tree is selected, only support enforcers are generated" +#~ msgstr "" +#~ "normal(auto), hybrid(auto) and tree(auto) are used to generate support " +#~ "automatically. If normal or tree is selected, only support enforcers are " +#~ "generated." + +#~ msgid "the 3mf is not compatible, load geometry data only!" +#~ msgstr "The 3mf is not compatible, loading geometry data only!" + +#~ msgid "tree" +#~ msgstr "tree" diff --git a/bbl/i18n/es/BambuStudio_es.po b/bbl/i18n/es/BambuStudio_es.po index 0f50cbf2a..f692f9f29 100644 --- a/bbl/i18n/es/BambuStudio_es.po +++ b/bbl/i18n/es/BambuStudio_es.po @@ -2,16 +2,13 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-21 10:35+0800\n" -"PO-Revision-Date: \n" -"Last-Translator: \n" -"Language-Team: \n" +"POT-Creation-Date: 2022-12-22 17:44+0800\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Localazy (https://localazy.com)\n" "Plural-Forms: nplurals=2; plural=(n==1) ? 0 : 1;\n" -"X-Generator: Poedit 3.1\n" msgid "Supports Painting" msgstr "Pintando Soportes" @@ -1914,7 +1911,7 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly\n" +"This may cause decline in the quality of overhang surface when print fastly" msgstr "" msgid "" @@ -1923,18 +1920,6 @@ msgid "" "No - Give up using arachne this time" msgstr "" -msgid "" -"We have added an experimental style \"Tree Slim\" that features smaller " -"support volume but weaker strength.\n" -"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" -msgstr "" - -msgid "" -"Change these settings automatically? \n" -"Yes - Change these settings automatically\n" -"No - Do not change these settings for me" -msgstr "" - msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -1980,7 +1965,7 @@ msgstr "El patrón de relleno %1% no soporta el 100%% de densidad." msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly\n" +"No - reset density to default non 100% value automaticlly" msgstr "" msgid "Auto bed leveling" @@ -2904,7 +2889,7 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets\n" +"3. The Printer presets" msgstr "" msgid "Synchronization" @@ -3558,10 +3543,8 @@ msgstr "" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:\n" +"unrecognized:" msgstr "" -"La versión %s de 3mf es más reciente que la versión %s de %s, se han " -"encontrado las siguientes claves no reconocidas:\n" msgid "You'd better upgrade your software.\n" msgstr "Será mejor que actualices tu software.\n" @@ -3572,7 +3555,7 @@ msgstr "Nueva versión 3mf" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software.\n" +"software." msgstr "" msgid "The 3mf is not compatible, load geometry data only!" @@ -3857,7 +3840,7 @@ msgid "" msgstr "" #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s (%s).\n" +msgid "Plate %d: %s does not support filament %s (%s)." msgstr "" msgid "Switching the language requires application restart.\n" @@ -4347,13 +4330,13 @@ msgstr "" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:\n" +"print:" msgstr "" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type.\n" +"selecting the same printer type." msgstr "" #, c-format, boost-format @@ -4451,11 +4434,29 @@ msgid "" "model without prime tower. Do you want to enable prime tower?" msgstr "" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls." +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" + +msgid "" +"When using support material for the support interface, We recommand the " +"following settings:\n" +"0 top distance, 0 interface spacing, concentric pattern." +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\".\n" +"\"->\"Timelapse Wipe Tower\"." msgstr "" msgid "Line width" @@ -5529,11 +5530,10 @@ msgstr "%1% está demasiado cerca de otros, y pueden producirse colisiones." msgid "%1% is too tall, and collisions will be caused." msgstr "%1% es demasiado alto, y se producirán colisiones." -msgid " is too close to others, there may be collisions when printing.\n" +msgid " is too close to others, there may be collisions when printing." msgstr "" -msgid "" -" is too close to exclusion area, there may be collisions when printing.\n" +msgid " is too close to exclusion area, there may be collisions when printing." msgstr "" msgid "Prime Tower" @@ -5638,7 +5638,7 @@ msgid "Layer height cannot exceed nozzle diameter" msgstr "La altura de la capa no puede superar el diámetro de la boquilla" #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s\n" +msgid "Plate %d: %s does not support filament %s" msgstr "" msgid "Generating skirt & brim" @@ -7289,6 +7289,9 @@ msgstr "Patrón lineal de apoyo" msgid "Rectilinear grid" msgstr "Rejilla rectilínea" +msgid "Hollow" +msgstr "" + msgid "Interface pattern" msgstr "Patrón de interfaz" @@ -8005,75 +8008,6 @@ msgid "" "density to improve the strength of the model?" msgstr "" -#~ msgid "" -#~ "normal(auto) and tree(auto) is used to generate support automatically. If " -#~ "normal or tree is selected, only support enforcers are generated" -#~ msgstr "" -#~ "normal(auto) y tree(auto) se utiliza para generar soporte " -#~ "automáticamente. Si se selecciona normal o árbol, sólo se generan los " -#~ "soportes" - -#~ msgid "hybrid(auto)" -#~ msgstr "híbrido(auto)" - -#~ msgid "" -#~ "Spiral mode only works when wall loops is 1, \n" -#~ "support is disabled, top shell layers is 0 and sparse infill density is " -#~ "0\n" -#~ msgstr "" -#~ "El modo espiral sólo funciona cuando los bucles de pared son 1, \n" -#~ "el soporte está desactivado, las capas superiores de la cáscara es 0 y la " -#~ "densidad de relleno dispersa es 0\n" - -#~ msgid "Choose one or more files (3mf/step/stl/obj/amf):" -#~ msgstr "Elija uno o varios archivos (3mf/step/stl/obj/amf):" - -#~ msgid "Finish" -#~ msgstr "Finalizar" - -#~ msgid "Import 3MF/STL/STEP/OBJ/AMF" -#~ msgstr "Importar 3MF/STL/STEP/OBJ/AMF" - -#~ msgid "Part Cooling" -#~ msgstr "Refrigeración de Piezas" - -#~ msgid "Aux Cooling" -#~ msgstr "Enfriamiento Auxiliar" - -#~ msgid "" -#~ "Filament to print support and skirt. 0 means no specific filament for " -#~ "support and current filament is used" -#~ msgstr "" -#~ "Filamento para imprimir el soporte y el faldón. 0 significa que no hay " -#~ "filamento específico para el soporte y se utiliza el filamento actual" - -#~ msgid "" -#~ "Filament to print support interface. 0 means no specific filament for " -#~ "support interface and current filament is used" -#~ msgstr "" -#~ "Filamento para imprimir la interfaz de soporte. 0 significa que no hay " -#~ "filamento específico para la interfaz de soporte y se utiliza el " -#~ "filamento actual" - -#~ msgid "Repair" -#~ msgstr "Reparar" - -#~ msgid "Repair the model's meshes if it is non-manifold mesh" -#~ msgstr "Reparar las mallas del modelo si se trata de una malla no plegable" - -#~ msgid "Monitoring Recording" -#~ msgstr "Monitoreo de grabación" - -#~ msgid "Tree support with infill" -#~ msgstr "Soporte para árboles con relleno" - -#~ msgid "" -#~ "This setting specifies whether to add infill inside large hollows of tree " -#~ "support" -#~ msgstr "" -#~ "Este ajuste especifica si se añade relleno dentro de los grandes huecos " -#~ "del soporte del árbol" - #~ msgid "" #~ "\n" #~ "%1% is too close to exclusion area, there will be collisions when " @@ -8104,6 +8038,12 @@ msgstr "" #~ "Por favor, resuelva el problema moviéndolo totalmente dentro o fuera de " #~ "la placa." +#~ msgid "" +#~ "Arachne engine only works when overhang slowing down is disabled.\n" +#~ "This may cause decline in the quality of overhang surface when print " +#~ "fastly\n" +#~ msgstr "\n" + #~ msgid "Auto arrange" #~ msgstr "Auto posicionamiento" @@ -8116,6 +8056,9 @@ msgstr "" #~ "hay objetos seleccionados, sólo orienta los seleccionados.En caso " #~ "contrario, orienta todos los objetos del proyecto." +#~ msgid "Aux Cooling" +#~ msgstr "Enfriamiento Auxiliar" + #~ msgid "Avoid crossing wall when travel" #~ msgstr "Evitar cruzar el muro en los desplazamientos" @@ -8128,6 +8071,9 @@ msgstr "" #~ "este filamento.\n" #~ "Esto puede causar el bloqueo de la boquilla y el fracaso de la impresión" +#~ msgid "Choose one or more files (3mf/step/stl/obj/amf):" +#~ msgstr "Elija uno o varios archivos (3mf/step/stl/obj/amf):" + #~ msgid "Clear all" #~ msgstr "Borrar todo" @@ -8185,6 +8131,14 @@ msgstr "" #~ "2. Preajustese de filamentos\n" #~ "3. Preajustes de la impresora\n" +#~ msgid "" +#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" +#~ "It contains the following information:\n" +#~ "1. The Process presets\n" +#~ "2. The Filament presets\n" +#~ "3. The Printer presets\n" +#~ msgstr "\n" + #~ msgid "" #~ "Don't retract when the travel is in infill area absolutely. That means " #~ "the oozing can't been seen" @@ -8238,9 +8192,27 @@ msgstr "" #~ msgid "Filament N XX" #~ msgstr "Filamento N XX" +#~ msgid "" +#~ "Filament to print support and skirt. 0 means no specific filament for " +#~ "support and current filament is used" +#~ msgstr "" +#~ "Filamento para imprimir el soporte y el faldón. 0 significa que no hay " +#~ "filamento específico para el soporte y se utiliza el filamento actual" + +#~ msgid "" +#~ "Filament to print support interface. 0 means no specific filament for " +#~ "support interface and current filament is used" +#~ msgstr "" +#~ "Filamento para imprimir la interfaz de soporte. 0 significa que no hay " +#~ "filamento específico para la interfaz de soporte y se utiliza el " +#~ "filamento actual" + #~ msgid "Filaments Selection" #~ msgstr "Selección de filamentos" +#~ msgid "Finish" +#~ msgstr "Finalizar" + #~ msgid "Finished" #~ msgstr "Terminado" @@ -8289,6 +8261,9 @@ msgstr "" #~ "entrada de auto-organización para evitar la colisión cuando se imprime " #~ "objeto por objeto." +#~ msgid "Import 3MF/STL/STEP/OBJ/AMF" +#~ msgstr "Importar 3MF/STL/STEP/OBJ/AMF" + #~ msgid "In the calibration of extrusion flow" #~ msgstr "En la calibración del flujo de extrusión" @@ -8330,6 +8305,9 @@ msgstr "" #~ msgid "Monitoring" #~ msgstr "Monitorizando" +#~ msgid "Monitoring Recording" +#~ msgstr "Monitoreo de grabación" + #~ msgid "Open" #~ msgstr "Abrir" @@ -8342,6 +8320,9 @@ msgstr "" #~ msgid "Output file" #~ msgstr "Archivo de salida" +#~ msgid "Part Cooling" +#~ msgstr "Refrigeración de Piezas" + #~ msgid "Pause(heated bed temperature error)" #~ msgstr "Pausa (error de temperatura de la cama caliente)" @@ -8354,9 +8335,20 @@ msgstr "" #~ msgid "Per object edit" #~ msgstr "Por objeto editar" +#~ msgid "Plate %d: %s does not support filament %s\n" +#~ msgstr "\n" + #~ msgid "Plate %d: %s does not support filament %s.\n" #~ msgstr "La placa %d: %s no admite el filamento %s.\n" +#~ msgid "Plate %d: %s does not support filament %s (%s).\n" +#~ msgstr "\n" + +#~ msgid "" +#~ "Please check the following infomation and click Confirm to continue " +#~ "sending print:\n" +#~ msgstr "\n" + #~ msgid "Please fill report first." #~ msgstr "Por favor, rellene primero el informe." @@ -8425,6 +8417,12 @@ msgstr "" #~ msgid "Reload items" #~ msgstr "Recarga de objetos" +#~ msgid "Repair" +#~ msgstr "Reparar" + +#~ msgid "Repair the model's meshes if it is non-manifold mesh" +#~ msgstr "Reparar las mallas del modelo si se trata de una malla no plegable" + #~ msgid "Report" #~ msgstr "Informe" @@ -8458,6 +8456,15 @@ msgstr "" #~ msgid "Spiral mode" #~ msgstr "Modo espiral" +#~ msgid "" +#~ "Spiral mode only works when wall loops is 1, \n" +#~ "support is disabled, top shell layers is 0 and sparse infill density is " +#~ "0\n" +#~ msgstr "" +#~ "El modo espiral sólo funciona cuando los bucles de pared son 1, \n" +#~ "el soporte está desactivado, las capas superiores de la cáscara es 0 y la " +#~ "densidad de relleno dispersa es 0\n" + #~ msgid "Successfully sent.Will automatically jump to the device page in %s s" #~ msgstr "" #~ "Enviado con éxito. Saltará automáticamente a la página del dispositivo en " @@ -8473,6 +8480,12 @@ msgstr "" #~ "personalizada, pero puede causar cambios de filamento adicionales si el " #~ "soporte se especifica como un extrusor diferente con el objeto" +#~ msgid "" +#~ "Switch to rectilinear pattern?\n" +#~ "Yes - switch to rectilinear pattern automaticlly\n" +#~ "No - reset density to default non 100% value automaticlly\n" +#~ msgstr "\n" + #~ msgid "" #~ "Switch to zig-zag pattern?\n" #~ "Yes - switch to zig-zag pattern automaticlly\n" @@ -8486,6 +8499,18 @@ msgstr "" #~ msgid "Swith cloud environment, Please login again!" #~ msgstr "Cambiar el entorno de la nube, ¡Por favor, inicie sesión de nuevo!" +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " +#~ "unrecognized:\n" +#~ msgstr "" +#~ "La versión %s de 3mf es más reciente que la versión %s de %s, se han " +#~ "encontrado las siguientes claves no reconocidas:\n" + +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " +#~ "your software.\n" +#~ msgstr "\n" + #~ msgid "The Config is not compatible and can not be loaded." #~ msgstr "La configuración no es compatible y no se puede cargar." @@ -8506,6 +8531,12 @@ msgstr "" #~ "repararlo, sin embargo, es posible que desee comprobar los resultados o " #~ "reparar el archivo de entrada y volver a intentarlo." +#~ msgid "" +#~ "The printer type used to generate G-code is not the same type as the " +#~ "currently selected physical printer. It is recommend to re-slice by " +#~ "selecting the same printer type.\n" +#~ msgstr "\n" + #~ msgid "" #~ "This object will be used to purge the nozzle after a filament change to " #~ "save filament and decrease the print time. Colours of the objects will be " @@ -8515,6 +8546,13 @@ msgstr "" #~ "filamento para ahorrar filamento y disminuir el tiempo de impresión. Los " #~ "colores de los objetos se mezclarán como resultado" +#~ msgid "" +#~ "This setting specifies whether to add infill inside large hollows of tree " +#~ "support" +#~ msgstr "" +#~ "Este ajuste especifica si se añade relleno dentro de los grandes huecos " +#~ "del soporte del árbol" + #~ msgid "" #~ "This setting stands for how much volume of filament can be melted and " #~ "extruded per second. Printing speed is limited by max volumetric speed, " @@ -8531,6 +8569,9 @@ msgstr "" #~ msgid "Translation" #~ msgstr "Translación" +#~ msgid "Tree support with infill" +#~ msgstr "Soporte para árboles con relleno" + #~ msgid "Unable to create zip file" #~ msgstr "No se puede crear un archivo zip" @@ -8543,6 +8584,13 @@ msgstr "" #~ msgid "Waiting" #~ msgstr "Esperando" +#~ 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\".\n" +#~ msgstr "\n" + #~ msgid "" #~ "You have changed some preset settings. \n" #~ "Would you like to keep these changed settings after switching preset?" @@ -8556,18 +8604,36 @@ msgstr "" #~ msgid " Object:" #~ msgstr "Objeto" +#~ msgid "" +#~ " is too close to exclusion area, there may be collisions when printing.\n" +#~ msgstr "\n" + #~ msgid "" #~ " is too close to exclusion area, there will be collisions when printing.\n" #~ msgstr "" #~ " está demasiado cerca del área de exclusión, habrá colisiones al " #~ "imprimir.\n" +#~ msgid " is too close to others, there may be collisions when printing.\n" +#~ msgstr "\n" + #~ msgid " is too close to others, there will be collisions when printing.\n" #~ msgstr " está demasiado cerca de otros, habrá colisiones al imprimir.\n" +#~ msgid "hybrid(auto)" +#~ msgstr "híbrido(auto)" + #~ msgid "normal" #~ msgstr "normal" +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal or tree is selected, only support enforcers are generated" +#~ msgstr "" +#~ "normal(auto) y tree(auto) se utiliza para generar soporte " +#~ "automáticamente. Si se selecciona normal o árbol, sólo se generan los " +#~ "soportes" + #~ msgid "the 3mf is not compatible, load geometry data only!" #~ msgstr "el 3mf no es compatible, ¡cargue sólo los datos geométricos!" diff --git a/bbl/i18n/fr/BambuStudio_fr.po b/bbl/i18n/fr/BambuStudio_fr.po index 5eb2533fa..9e87dc7f2 100644 --- a/bbl/i18n/fr/BambuStudio_fr.po +++ b/bbl/i18n/fr/BambuStudio_fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-21 10:35+0800\n" +"POT-Creation-Date: 2022-12-22 17:44+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -1895,7 +1895,7 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly\n" +"This may cause decline in the quality of overhang surface when print fastly" msgstr "" msgid "" @@ -1904,18 +1904,6 @@ msgid "" "No - Give up using arachne this time" msgstr "" -msgid "" -"We have added an experimental style \"Tree Slim\" that features smaller " -"support volume but weaker strength.\n" -"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" -msgstr "" - -msgid "" -"Change these settings automatically? \n" -"Yes - Change these settings automatically\n" -"No - Do not change these settings for me" -msgstr "" - msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -1958,7 +1946,7 @@ msgstr "" msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly\n" +"No - reset density to default non 100% value automaticlly" msgstr "" msgid "Auto bed leveling" @@ -2878,7 +2866,7 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets\n" +"3. The Printer presets" msgstr "" msgid "Synchronization" @@ -3528,10 +3516,8 @@ msgstr "" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:\n" +"unrecognized:" msgstr "" -"La version %s de 3mf est plus récente que la version %s de %s, Clés " -"suivantes non reconnues :\n" msgid "You'd better upgrade your software.\n" msgstr "Vous feriez mieux de mettre à jour votre logiciel.\n" @@ -3542,7 +3528,7 @@ msgstr "Nouvelle version 3mf" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software.\n" +"software." msgstr "" msgid "The 3mf is not compatible, load geometry data only!" @@ -3827,7 +3813,7 @@ msgid "" msgstr "" #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s (%s).\n" +msgid "Plate %d: %s does not support filament %s (%s)." msgstr "" msgid "Switching the language requires application restart.\n" @@ -4320,15 +4306,13 @@ msgstr "" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:\n" +"print:" msgstr "" -"Please check the following infomation and click Confirm to continue sending " -"print:\n" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type.\n" +"selecting the same printer type." msgstr "" #, c-format, boost-format @@ -4427,11 +4411,29 @@ msgid "" "model without prime tower. Do you want to enable prime tower?" msgstr "" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls." +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" + +msgid "" +"When using support material for the support interface, We recommand the " +"following settings:\n" +"0 top distance, 0 interface spacing, concentric pattern." +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\".\n" +"\"->\"Timelapse Wipe Tower\"." msgstr "" msgid "Line width" @@ -5509,11 +5511,10 @@ msgstr "" msgid "%1% is too tall, and collisions will be caused." msgstr "%1% est trop grand, cela pourrait provoquer des collisions." -msgid " is too close to others, there may be collisions when printing.\n" -msgstr " is too close to others, there may be collisions when printing.\n" +msgid " is too close to others, there may be collisions when printing." +msgstr "" -msgid "" -" is too close to exclusion area, there may be collisions when printing.\n" +msgid " is too close to exclusion area, there may be collisions when printing." msgstr "" msgid "Prime Tower" @@ -5621,7 +5622,7 @@ msgid "Layer height cannot exceed nozzle diameter" msgstr "La hauteur de la couche ne peut pas dépasser le diamètre de la buse" #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s\n" +msgid "Plate %d: %s does not support filament %s" msgstr "" msgid "Generating skirt & brim" @@ -7286,6 +7287,9 @@ msgstr "Motif de ligne de support" msgid "Rectilinear grid" msgstr "Grille rectiligne" +msgid "Hollow" +msgstr "" + msgid "Interface pattern" msgstr "Modèle d'interface" @@ -8005,76 +8009,6 @@ msgid "" "density to improve the strength of the model?" msgstr "" -#~ msgid "" -#~ "normal(auto) and tree(auto) is used to generate support automatically. If " -#~ "normal or tree is selected, only support enforcers are generated" -#~ msgstr "" -#~ "normal(auto) et tree(auto) sont utilisés pour générer automatiquement le " -#~ "support. Si normal ou arbre est sélectionné, seuls les exécuteurs de " -#~ "support sont générés" - -#~ msgid "hybrid(auto)" -#~ msgstr "hybride (auto)" - -#~ msgid "" -#~ "Spiral mode only works when wall loops is 1, \n" -#~ "support is disabled, top shell layers is 0 and sparse infill density is " -#~ "0\n" -#~ msgstr "" -#~ "Le mode spirale ne fonctionne que lorsque les boucles murales sont à 1, \n" -#~ "le support est désactivé, les couches de coque supérieures sont à 0 et la " -#~ "densité de remplissage clairsemée est à 0\n" - -#~ msgid "Choose one or more files (3mf/step/stl/obj/amf):" -#~ msgstr "Choisissez un ou plusieurs fichiers (3mf/step/stl/obj/amf) :" - -#~ msgid "Finish" -#~ msgstr "Finish" - -#~ msgid "Import 3MF/STL/STEP/OBJ/AMF" -#~ msgstr "Importer 3MF/STL/STEP/OBJ/AMF" - -#~ msgid "Part Cooling" -#~ msgstr "Refroidissement des pièces" - -#~ msgid "Aux Cooling" -#~ msgstr "Refroidissement auxiliaire" - -#~ msgid "" -#~ "Filament to print support and skirt. 0 means no specific filament for " -#~ "support and current filament is used" -#~ msgstr "" -#~ "Filament pour imprimer le support et la jupe. 0 signifie qu'aucun " -#~ "filament spécifique pour le support et le filament actuel est utilisé" - -#~ msgid "" -#~ "Filament to print support interface. 0 means no specific filament for " -#~ "support interface and current filament is used" -#~ msgstr "" -#~ "Filament pour imprimer l'interface de support. 0 signifie qu'aucun " -#~ "filament spécifique pour l'interface de support et le filament actuel est " -#~ "utilisé" - -#~ msgid "Repair" -#~ msgstr "Réparation" - -#~ msgid "Repair the model's meshes if it is non-manifold mesh" -#~ msgstr "" -#~ "Réparer les maillages du modèle s'il s'agit d'un maillage non multiple" - -#~ msgid "Monitoring Recording" -#~ msgstr "Enregistrement de surveillance" - -#~ msgid "Tree support with infill" -#~ msgstr "Support d'arbre avec remplissage" - -#~ msgid "" -#~ "This setting specifies whether to add infill inside large hollows of tree " -#~ "support" -#~ msgstr "" -#~ "Ce paramètre spécifie s'il faut ajouter un remplissage à l'intérieur des " -#~ "grands creux du support d'arbre" - #~ msgid "" #~ "\n" #~ "%1% is too close to exclusion area, there will be collisions when " @@ -8105,6 +8039,12 @@ msgstr "" #~ "problème en le déplaçant totalement à l'intérieur ou à l'extérieur de la " #~ "plaque." +#~ msgid "" +#~ "Arachne engine only works when overhang slowing down is disabled.\n" +#~ "This may cause decline in the quality of overhang surface when print " +#~ "fastly\n" +#~ msgstr "\n" + #~ msgid "Auto arrange" #~ msgstr "Organisation automatique" @@ -8117,6 +8057,9 @@ msgstr "" #~ "y a des objets sélectionnés, il oriente uniquement ceux qui sont " #~ "sélectionnés. Sinon, il oriente tous les objets du projet." +#~ msgid "Aux Cooling" +#~ msgstr "Refroidissement auxiliaire" + #~ msgid "Avoid crossing wall when travel" #~ msgstr "Évitez de traverser le mur lorsque vous voyagez" @@ -8129,6 +8072,9 @@ msgstr "" #~ "ce filament. Cela peut entraîner le blocage de la buse et l'échec de " #~ "l'impression" +#~ msgid "Choose one or more files (3mf/step/stl/obj/amf):" +#~ msgstr "Choisissez un ou plusieurs fichiers (3mf/step/stl/obj/amf) :" + #~ msgid "Clear all" #~ msgstr "Tout effacer" @@ -8187,6 +8133,14 @@ msgstr "" #~ "2. Préréglages du filament\n" #~ "3. Préréglages de l'imprimante\n" +#~ msgid "" +#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" +#~ "It contains the following information:\n" +#~ "1. The Process presets\n" +#~ "2. The Filament presets\n" +#~ "3. The Printer presets\n" +#~ msgstr "\n" + #~ msgid "" #~ "Don't retract when the travel is in infill area absolutely. That means " #~ "the oozing can't been seen" @@ -8240,9 +8194,27 @@ msgstr "" #~ msgid "Filament N XX" #~ msgstr "Filament N XX" +#~ msgid "" +#~ "Filament to print support and skirt. 0 means no specific filament for " +#~ "support and current filament is used" +#~ msgstr "" +#~ "Filament pour imprimer le support et la jupe. 0 signifie qu'aucun " +#~ "filament spécifique pour le support et le filament actuel est utilisé" + +#~ msgid "" +#~ "Filament to print support interface. 0 means no specific filament for " +#~ "support interface and current filament is used" +#~ msgstr "" +#~ "Filament pour imprimer l'interface de support. 0 signifie qu'aucun " +#~ "filament spécifique pour l'interface de support et le filament actuel est " +#~ "utilisé" + #~ msgid "Filaments Selection" #~ msgstr "Sélection de filaments" +#~ msgid "Finish" +#~ msgstr "Finish" + #~ msgid "Finished" #~ msgstr "Terminé" @@ -8290,6 +8262,9 @@ msgstr "" #~ "entrée de l'auto-arrangement pour éviter les collisions lors de " #~ "l'impression objet par objet" +#~ msgid "Import 3MF/STL/STEP/OBJ/AMF" +#~ msgstr "Importer 3MF/STL/STEP/OBJ/AMF" + #~ msgid "In the calibration of extrusion flow" #~ msgstr "Calibrage du flux d'extrusion en cours" @@ -8331,6 +8306,9 @@ msgstr "" #~ msgid "Monitoring" #~ msgstr "Surveillance" +#~ msgid "Monitoring Recording" +#~ msgstr "Enregistrement de surveillance" + #~ msgid "Open" #~ msgstr "Open" @@ -8343,6 +8321,9 @@ msgstr "" #~ msgid "Output file" #~ msgstr "Fichier de sortie" +#~ msgid "Part Cooling" +#~ msgstr "Refroidissement des pièces" + #~ msgid "Pause(heated bed temperature error)" #~ msgstr "Pause (erreur de température du plateau chauffant)" @@ -8355,9 +8336,20 @@ msgstr "" #~ msgid "Per object edit" #~ msgstr "Modification par objet" +#~ msgid "Plate %d: %s does not support filament %s\n" +#~ msgstr "\n" + #~ msgid "Plate %d: %s does not support filament %s.\n" #~ msgstr "Plaque %d : %s ne prend pas en charge le filament %s.\n" +#~ msgid "Plate %d: %s does not support filament %s (%s).\n" +#~ msgstr "\n" + +#~ msgid "" +#~ "Please check the following infomation and click Confirm to continue " +#~ "sending print:\n" +#~ msgstr "\n" + #~ msgid "Please fill report first." #~ msgstr "Veuillez d'abord remplir le rapport." @@ -8424,6 +8416,13 @@ msgstr "" #~ msgid "Reload items" #~ msgstr "Recharger les éléments" +#~ msgid "Repair" +#~ msgstr "Réparation" + +#~ msgid "Repair the model's meshes if it is non-manifold mesh" +#~ msgstr "" +#~ "Réparer les maillages du modèle s'il s'agit d'un maillage non multiple" + #~ msgid "Report" #~ msgstr "Signaler" @@ -8457,6 +8456,15 @@ msgstr "" #~ msgid "Spiral mode" #~ msgstr "Mode spirale" +#~ msgid "" +#~ "Spiral mode only works when wall loops is 1, \n" +#~ "support is disabled, top shell layers is 0 and sparse infill density is " +#~ "0\n" +#~ msgstr "" +#~ "Le mode spirale ne fonctionne que lorsque les boucles murales sont à 1, \n" +#~ "le support est désactivé, les couches de coque supérieures sont à 0 et la " +#~ "densité de remplissage clairsemée est à 0\n" + #~ msgid "Successfully sent.Will automatically jump to the device page in %s s" #~ msgstr "" #~ "Envoyé avec succès. Sautera automatiquement à la page de l'appareil " @@ -8473,6 +8481,12 @@ msgstr "" #~ "supplémentaires si le support est spécifié comme extrudeuse différente " #~ "avec l'objet" +#~ msgid "" +#~ "Switch to rectilinear pattern?\n" +#~ "Yes - switch to rectilinear pattern automaticlly\n" +#~ "No - reset density to default non 100% value automaticlly\n" +#~ msgstr "\n" + #~ msgid "" #~ "Switch to zig-zag pattern?\n" #~ "Yes - switch to zig-zag pattern automaticlly\n" @@ -8486,6 +8500,18 @@ msgstr "" #~ msgid "Swith cloud environment, Please login again!" #~ msgstr "Changez d'environnement cloud, veuillez vous reconnecter !" +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " +#~ "unrecognized:\n" +#~ msgstr "" +#~ "La version %s de 3mf est plus récente que la version %s de %s, Clés " +#~ "suivantes non reconnues :\n" + +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " +#~ "your software.\n" +#~ msgstr "\n" + #~ msgid "The Config is not compatible and can not be loaded." #~ msgstr "La Config n'est pas compatible et ne peut pas être chargée." @@ -8505,6 +8531,12 @@ msgstr "" #~ "La vitesse d'impression minimale lors du ralentissement pour le " #~ "refroidissement" +#~ msgid "" +#~ "The printer type used to generate G-code is not the same type as the " +#~ "currently selected physical printer. It is recommend to re-slice by " +#~ "selecting the same printer type.\n" +#~ msgstr "\n" + #~ msgid "" #~ "This object will be used to purge the nozzle after a filament change to " #~ "save filament and decrease the print time. Colours of the objects will be " @@ -8514,6 +8546,13 @@ msgstr "" #~ "filament afin d'économiser du filament et de diminuer le temps " #~ "d'impression. Les couleurs des objets seront mélangées en conséquence." +#~ msgid "" +#~ "This setting specifies whether to add infill inside large hollows of tree " +#~ "support" +#~ msgstr "" +#~ "Ce paramètre spécifie s'il faut ajouter un remplissage à l'intérieur des " +#~ "grands creux du support d'arbre" + #~ msgid "" #~ "This setting stands for how much volume of filament can be melted and " #~ "extruded per second. Printing speed is limited by max volumetric speed, " @@ -8530,6 +8569,9 @@ msgstr "" #~ msgid "Translation" #~ msgstr "Traduction" +#~ msgid "Tree support with infill" +#~ msgstr "Support d'arbre avec remplissage" + #~ msgid "Unable to create zip file" #~ msgstr "Création du fichier zip impossible" @@ -8542,6 +8584,13 @@ msgstr "" #~ msgid "Waiting" #~ msgstr "Attente" +#~ 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\".\n" +#~ msgstr "\n" + #~ msgid "" #~ "You have changed some preset settings. \n" #~ "Would you like to keep these changed settings after switching preset?" @@ -8555,20 +8604,38 @@ msgstr "" #~ msgid " Object:" #~ msgstr "Objet:" +#~ msgid "" +#~ " is too close to exclusion area, there may be collisions when printing.\n" +#~ msgstr "\n" + #~ msgid "" #~ " is too close to exclusion area, there will be collisions when printing.\n" #~ msgstr "" #~ "est trop proche de la zone d'exclusion, il y aura des collisions lors de " #~ "l'impression.\n" +#~ msgid " is too close to others, there may be collisions when printing.\n" +#~ msgstr "\n" + #~ msgid " is too close to others, there will be collisions when printing.\n" #~ msgstr "" #~ "est trop proche des autres, il y aura des collisions lors de " #~ "l'impression.\n" +#~ msgid "hybrid(auto)" +#~ msgstr "hybride (auto)" + #~ msgid "normal" #~ msgstr "Ordinaire" +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal or tree is selected, only support enforcers are generated" +#~ msgstr "" +#~ "normal(auto) et tree(auto) sont utilisés pour générer automatiquement le " +#~ "support. Si normal ou arbre est sélectionné, seuls les exécuteurs de " +#~ "support sont générés" + #~ msgid "the 3mf is not compatible, load geometry data only!" #~ msgstr "" #~ "le 3mf n'est pas compatible, chargez uniquement les données de géométrie !" diff --git a/bbl/i18n/hu/BambuStudio_hu.po b/bbl/i18n/hu/BambuStudio_hu.po index eeef42b08..1b2e09b5c 100644 --- a/bbl/i18n/hu/BambuStudio_hu.po +++ b/bbl/i18n/hu/BambuStudio_hu.po @@ -2,16 +2,13 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-21 10:35+0800\n" -"PO-Revision-Date: \n" -"Last-Translator: \n" -"Language-Team: \n" +"POT-Creation-Date: 2022-12-22 17:44+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Localazy (https://localazy.com)\n" "Plural-Forms: nplurals=2; plural=(n==1) ? 0 : 1;\n" -"X-Generator: Poedit 3.1\n" msgid "Supports Painting" msgstr "Támaszok festése" @@ -1911,7 +1908,7 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly\n" +"This may cause decline in the quality of overhang surface when print fastly" msgstr "" msgid "" @@ -1920,18 +1917,6 @@ msgid "" "No - Give up using arachne this time" msgstr "" -msgid "" -"We have added an experimental style \"Tree Slim\" that features smaller " -"support volume but weaker strength.\n" -"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" -msgstr "" - -msgid "" -"Change these settings automatically? \n" -"Yes - Change these settings automatically\n" -"No - Do not change these settings for me" -msgstr "" - msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -1975,11 +1960,8 @@ msgstr "%1% kitöltési mintázat nem támogatja a 100%%-os kitöltés." msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly\n" +"No - reset density to default non 100% value automaticlly" msgstr "" -"Switch to rectilinear pattern?\n" -"Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly\n" msgid "Auto bed leveling" msgstr "Automatikus asztalszintezés" @@ -2903,13 +2885,8 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets\n" +"3. The Printer presets" msgstr "" -"Szeretnéd szinkronizálni személyes adataidat a Bambu Cloudból?\n" -"Ezek az adatok a következő információkat tartalmazzák:\n" -"1. Folyamat beállítások\n" -"2. Filament beállítások\n" -"3. Nyomtató beállítások\n" msgid "Synchronization" msgstr "Szinkronizálás" @@ -3560,10 +3537,8 @@ msgstr "" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:\n" +"unrecognized:" msgstr "" -"A 3mf fájl %s verziója újabb, mint a(z) %s verziója %s, a következő " -"ismeretlen kulcsokat találtuk:\n" msgid "You'd better upgrade your software.\n" msgstr "Jobb lenne, ha frissítenéd a szoftvert.\n" @@ -3574,7 +3549,7 @@ msgstr "Újabb 3mf verzió" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software.\n" +"software." msgstr "" msgid "The 3mf is not compatible, load geometry data only!" @@ -3856,7 +3831,7 @@ msgid "" msgstr "" #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s (%s).\n" +msgid "Plate %d: %s does not support filament %s (%s)." msgstr "" msgid "Switching the language requires application restart.\n" @@ -4339,18 +4314,14 @@ msgstr "" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:\n" +"print:" msgstr "" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type.\n" +"selecting the same printer type." msgstr "" -"The printer type used to generate G-code is not the same type as the " -"currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type.\n" -"\n" #, c-format, boost-format msgid "The %s filament is too soft to be used with the AMS" @@ -4445,11 +4416,29 @@ msgid "" "model without prime tower. Do you want to enable prime tower?" msgstr "" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls." +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" + +msgid "" +"When using support material for the support interface, We recommand the " +"following settings:\n" +"0 top distance, 0 interface spacing, concentric pattern." +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\".\n" +"\"->\"Timelapse Wipe Tower\"." msgstr "" msgid "Line width" @@ -5520,11 +5509,10 @@ msgstr "" msgid "%1% is too tall, and collisions will be caused." msgstr "%1% túl magas, a nyomtatás során előfordulhatnak ütközések." -msgid " is too close to others, there may be collisions when printing.\n" -msgstr " is too close to others, there may be collisions when printing.\n" +msgid " is too close to others, there may be collisions when printing." +msgstr "" -msgid "" -" is too close to exclusion area, there may be collisions when printing.\n" +msgid " is too close to exclusion area, there may be collisions when printing." msgstr "" msgid "Prime Tower" @@ -5627,7 +5615,7 @@ msgid "Layer height cannot exceed nozzle diameter" msgstr "A rétegmagasság nem lehet nagyobb a fúvóka átmérőjénél." #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s\n" +msgid "Plate %d: %s does not support filament %s" msgstr "" msgid "Generating skirt & brim" @@ -7277,6 +7265,9 @@ msgstr "A támasz mintázata." msgid "Rectilinear grid" msgstr "Vonalrács" +msgid "Hollow" +msgstr "" + msgid "Interface pattern" msgstr "Érintkező felület mintázata" @@ -7988,83 +7979,6 @@ msgid "" "density to improve the strength of the model?" msgstr "" -#~ msgid "" -#~ "normal(auto) and tree(auto) is used to generate support automatically. If " -#~ "normal or tree is selected, only support enforcers are generated" -#~ msgstr "" -#~ "A normál (auto), hibrid (auto) és fa (auto) támaszok automatikus " -#~ "generálására szolgál. Ha normál vagy fa van kiválasztva, akkor csak a " -#~ "támasz kényszerítők kerülnek legenerálásra." - -#~ msgid "hybrid(auto)" -#~ msgstr "hibrid (auto)" - -#~ msgid "" -#~ "Spiral mode only works when wall loops is 1, \n" -#~ "support is disabled, top shell layers is 0 and sparse infill density is " -#~ "0\n" -#~ msgstr "" -#~ "A spirál mód csak akkor működik, ha a falak száma 1,\n" -#~ "a támaszok ki vannak kapcsolva, a felső rétegek száma 0 és a hiányos " -#~ "kitöltés sűrűsége 0\n" - -#~ msgid "Choose one or more files (3mf/step/stl/obj/amf):" -#~ msgstr "Válassz ki egy vagy több fájlt (3mf/step/stl/obj/amf):" - -#~ msgid "Finish" -#~ msgstr "Kész" - -#~ msgid "Import 3MF/STL/STEP/OBJ/AMF" -#~ msgstr "3MF/STL/STEP/OBJ/AMF importálása" - -#~ msgid "Part Cooling" -#~ msgstr "Tárgyhűtés" - -#~ msgid "Aux Cooling" -#~ msgstr "Segédhűtés" - -#~ msgid "" -#~ "Filament to print support and skirt. 0 means no specific filament for " -#~ "support and current filament is used" -#~ msgstr "" -#~ "Filament a támasz és perem nyomtatásához. A 0 azt jelenti, hogy nincs " -#~ "erre külön kijelölt filament és a jelenleg használt kerül felhasználásra" - -#~ msgid "" -#~ "Filament to print support interface. 0 means no specific filament for " -#~ "support interface and current filament is used" -#~ msgstr "" -#~ "Filament a támasz érintkező felületének nyomtatásához. A 0 azt jelenti, " -#~ "hogy nincs erre külön kijelölt filament és a jelenleg használt kerül " -#~ "felhasználásra" - -#~ msgid "Repair" -#~ msgstr "Javítás" - -#~ msgid "Repair the model's meshes if it is non-manifold mesh" -#~ msgstr "Megjavítja a modell hálóit, ha azok hibásak" - -#~ msgid "Heat the nozzle to target temperature" -#~ msgstr "Fúvóka felmelegítése a kívánt hőmérsékletre" - -#~ msgid "" -#~ "Successfully sent. Will automatically jump to the device page in %s s" -#~ msgstr "" -#~ "Sikeresen elküldve. Az eszköz oldala automatikusan megjelenik %s mp belül" - -#~ msgid "Monitoring Recording" -#~ msgstr "Felvétel monitorozása" - -#~ msgid "Tree support with infill" -#~ msgstr "Fa támasz kitöltéssel" - -#~ msgid "" -#~ "This setting specifies whether to add infill inside large hollows of tree " -#~ "support" -#~ msgstr "" -#~ "Ez a beállítás határozza meg, hogy a fa támasz nagyobb üregeiben legyen-e " -#~ "kitöltés." - #~ msgid "" #~ "\n" #~ "%1% is too close to exclusion area, there will be collisions when " @@ -8095,6 +8009,12 @@ msgstr "" #~ "Kérjük, orvosold a problémát a tárgy tálcára helyezésével vagy a tálcáról " #~ "való eltávolításával és a tárgy magasságának ellenőrzésével." +#~ msgid "" +#~ "Arachne engine only works when overhang slowing down is disabled.\n" +#~ "This may cause decline in the quality of overhang surface when print " +#~ "fastly\n" +#~ msgstr "\n" + #~ msgid "Auto arrange" #~ msgstr "Automatikus elrendezés" @@ -8108,6 +8028,9 @@ msgstr "" #~ "ellenkező esetben az aktuális projektben lévő összes objektumot " #~ "orientálja." +#~ msgid "Aux Cooling" +#~ msgstr "Segédhűtés" + #~ msgid "Avoid crossing wall when travel" #~ msgstr "Falak elkerülése mozgáskor" @@ -8120,6 +8043,9 @@ msgstr "" #~ "hőmérséklete.\n" #~ "Ez a fúvóka eltömődését és nyomtatási hibákat okozhat" +#~ msgid "Choose one or more files (3mf/step/stl/obj/amf):" +#~ msgstr "Válassz ki egy vagy több fájlt (3mf/step/stl/obj/amf):" + #~ msgid "Clear all" #~ msgstr "Összes törlése" @@ -8177,6 +8103,19 @@ msgstr "" #~ "2. Filament beállítások\n" #~ "3. Nyomtató beállítások\n" +#~ msgid "" +#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" +#~ "It contains the following information:\n" +#~ "1. The Process presets\n" +#~ "2. The Filament presets\n" +#~ "3. The Printer presets\n" +#~ msgstr "" +#~ "Szeretnéd szinkronizálni személyes adataidat a Bambu Cloudból?\n" +#~ "Ezek az adatok a következő információkat tartalmazzák:\n" +#~ "1. Folyamat beállítások\n" +#~ "2. Filament beállítások\n" +#~ "3. Nyomtató beállítások\n" + #~ msgid "" #~ "Don't retract when the travel is in infill area absolutely. That means " #~ "the oozing can't been seen" @@ -8230,9 +8169,27 @@ msgstr "" #~ msgid "Filament N XX" #~ msgstr "Filament N XX" +#~ msgid "" +#~ "Filament to print support and skirt. 0 means no specific filament for " +#~ "support and current filament is used" +#~ msgstr "" +#~ "Filament a támasz és perem nyomtatásához. A 0 azt jelenti, hogy nincs " +#~ "erre külön kijelölt filament és a jelenleg használt kerül felhasználásra" + +#~ msgid "" +#~ "Filament to print support interface. 0 means no specific filament for " +#~ "support interface and current filament is used" +#~ msgstr "" +#~ "Filament a támasz érintkező felületének nyomtatásához. A 0 azt jelenti, " +#~ "hogy nincs erre külön kijelölt filament és a jelenleg használt kerül " +#~ "felhasználásra" + #~ msgid "Filaments Selection" #~ msgstr "Filamentek kiválasztása" +#~ msgid "Finish" +#~ msgstr "Kész" + #~ msgid "Finished" #~ msgstr "Kész" @@ -8271,6 +8228,9 @@ msgstr "" #~ "Fúvóka felfűtése a\n" #~ "célhőmérsékletre" +#~ msgid "Heat the nozzle to target temperature" +#~ msgstr "Fúvóka felmelegítése a kívánt hőmérsékletre" + #~ msgid "Height:" #~ msgstr "Magasság:" @@ -8282,6 +8242,9 @@ msgstr "" #~ "automatikus elrendezéshez van használva az ütközések elkerülése " #~ "érdekében, amikor a nyomtatás tárgyanként történik." +#~ msgid "Import 3MF/STL/STEP/OBJ/AMF" +#~ msgstr "3MF/STL/STEP/OBJ/AMF importálása" + #~ msgid "In the calibration of extrusion flow" #~ msgstr "Az anyagáramlás kalibrálásában" @@ -8323,6 +8286,9 @@ msgstr "" #~ msgid "Monitoring" #~ msgstr "Monitorozás" +#~ msgid "Monitoring Recording" +#~ msgstr "Felvétel monitorozása" + #~ msgid "Open" #~ msgstr "Open" @@ -8335,6 +8301,9 @@ msgstr "" #~ msgid "Output file" #~ msgstr "Kimeneti fájl" +#~ msgid "Part Cooling" +#~ msgstr "Tárgyhűtés" + #~ msgid "Pause(heated bed temperature error)" #~ msgstr "Szünet (tárgyasztal hőmérséklet hiba)" @@ -8347,9 +8316,20 @@ msgstr "" #~ msgid "Per object edit" #~ msgstr "Szerkesztés objektumonként" +#~ msgid "Plate %d: %s does not support filament %s\n" +#~ msgstr "\n" + #~ msgid "Plate %d: %s does not support filament %s.\n" #~ msgstr "%d. tálca: %s nem használható %s filamenttel.\n" +#~ msgid "Plate %d: %s does not support filament %s (%s).\n" +#~ msgstr "\n" + +#~ msgid "" +#~ "Please check the following infomation and click Confirm to continue " +#~ "sending print:\n" +#~ msgstr "\n" + #~ msgid "Please fill report first." #~ msgstr "Kérjük, először töltsd ki a riportot." @@ -8418,6 +8398,12 @@ msgstr "" #~ msgid "Reload items" #~ msgstr "Tárgyak újbóli betöltése" +#~ msgid "Repair" +#~ msgstr "Javítás" + +#~ msgid "Repair the model's meshes if it is non-manifold mesh" +#~ msgstr "Megjavítja a modell hálóit, ha azok hibásak" + #~ msgid "Report" #~ msgstr "Jelentés" @@ -8451,11 +8437,25 @@ msgstr "" #~ msgid "Spiral mode" #~ msgstr "Spirál/Váza mód" +#~ msgid "" +#~ "Spiral mode only works when wall loops is 1, \n" +#~ "support is disabled, top shell layers is 0 and sparse infill density is " +#~ "0\n" +#~ msgstr "" +#~ "A spirál mód csak akkor működik, ha a falak száma 1,\n" +#~ "a támaszok ki vannak kapcsolva, a felső rétegek száma 0 és a hiányos " +#~ "kitöltés sűrűsége 0\n" + #~ msgid "Successfully sent.Will automatically jump to the device page in %s s" #~ msgstr "" #~ "Sikeresen elküldve. Automatikus átváltás a készülék oldalára %s mp-en " #~ "belül" +#~ msgid "" +#~ "Successfully sent. Will automatically jump to the device page in %s s" +#~ msgstr "" +#~ "Sikeresen elküldve. Az eszköz oldala automatikusan megjelenik %s mp belül" + #~ msgid "" #~ "Support layer uses layer height independent with object layer. This is to " #~ "support custom support gap,but may cause extra filament switches if " @@ -8466,6 +8466,12 @@ msgstr "" #~ "támasz között, de előfordulhat, hogy extra filament váltást okoz, ha más " #~ "anyagú filamentet használsz támaszként." +#~ msgid "" +#~ "Switch to rectilinear pattern?\n" +#~ "Yes - switch to rectilinear pattern automaticlly\n" +#~ "No - reset density to default non 100% value automaticlly\n" +#~ msgstr "\n" + #~ msgid "" #~ "Switch to zig-zag pattern?\n" #~ "Yes - switch to zig-zag pattern automaticlly\n" @@ -8479,6 +8485,18 @@ msgstr "" #~ msgid "Swith cloud environment, Please login again!" #~ msgstr "Felhőkörnyezet váltása, kérjük, jelentkezz be újra!" +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " +#~ "unrecognized:\n" +#~ msgstr "" +#~ "A 3mf fájl %s verziója újabb, mint a(z) %s verziója %s, a következő " +#~ "ismeretlen kulcsokat találtuk:\n" + +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " +#~ "your software.\n" +#~ msgstr "\n" + #~ msgid "The Config is not compatible and can not be loaded." #~ msgstr "A konfiguráció nem kompatibilis és nem tölthető be!" @@ -8498,6 +8516,12 @@ msgstr "" #~ "Megkíséreltük a javítást, azonban javasoljuk az eredmények ellenőrzését " #~ "vagy a bemeneti fájl javítását és az újbóli próbálkozást." +#~ msgid "" +#~ "The printer type used to generate G-code is not the same type as the " +#~ "currently selected physical printer. It is recommend to re-slice by " +#~ "selecting the same printer type.\n" +#~ msgstr "\n" + #~ msgid "" #~ "This object will be used to purge the nozzle after a filament change to " #~ "save filament and decrease the print time. Colours of the objects will be " @@ -8507,6 +8531,13 @@ msgstr "" #~ "nyomtatási idő csökkentése és némi filament megtakarításának érdekében. " #~ "Az objektum színei ennek eredményeképpen keveredni fognak." +#~ msgid "" +#~ "This setting specifies whether to add infill inside large hollows of tree " +#~ "support" +#~ msgstr "" +#~ "Ez a beállítás határozza meg, hogy a fa támasz nagyobb üregeiben legyen-e " +#~ "kitöltés." + #~ msgid "" #~ "This setting stands for how much volume of filament can be melted and " #~ "extruded per second. Printing speed is limited by max volumetric speed, " @@ -8525,6 +8556,9 @@ msgstr "" #~ msgid "Translation" #~ msgstr "Fordítás" +#~ msgid "Tree support with infill" +#~ msgstr "Fa támasz kitöltéssel" + #~ msgid "Unable to create zip file" #~ msgstr "Nem sikerült létrehozni a zip fájlt" @@ -8537,6 +8571,13 @@ msgstr "" #~ msgid "Waiting" #~ msgstr "Várakozás" +#~ 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\".\n" +#~ msgstr "\n" + #~ msgid "" #~ "You have changed some preset settings. \n" #~ "Would you like to keep these changed settings after switching preset?" @@ -8551,20 +8592,38 @@ msgstr "" #~ msgid " Object:" #~ msgstr " Objektum:" +#~ msgid "" +#~ " is too close to exclusion area, there may be collisions when printing.\n" +#~ msgstr "\n" + #~ msgid "" #~ " is too close to exclusion area, there will be collisions when printing.\n" #~ msgstr "" #~ " túl közel van a tiltott területhez, a nyomtatás során előfordulhatnak " #~ "ütközések.\n" +#~ msgid " is too close to others, there may be collisions when printing.\n" +#~ msgstr "\n" + #~ msgid " is too close to others, there will be collisions when printing.\n" #~ msgstr "" #~ " túl közel van a tiltott területhez, a nyomtatás során előfordulhatnak " #~ "ütközések.\n" +#~ msgid "hybrid(auto)" +#~ msgstr "hibrid (auto)" + #~ msgid "normal" #~ msgstr "normál" +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal or tree is selected, only support enforcers are generated" +#~ msgstr "" +#~ "A normál (auto), hibrid (auto) és fa (auto) támaszok automatikus " +#~ "generálására szolgál. Ha normál vagy fa van kiválasztva, akkor csak a " +#~ "támasz kényszerítők kerülnek legenerálásra." + #~ msgid "the 3mf is not compatible, load geometry data only!" #~ msgstr "A 3mf nem kompatibilis, csak geometriai adatok kerülnek betöltésre!" diff --git a/bbl/i18n/it/BambuStudio_it.po b/bbl/i18n/it/BambuStudio_it.po new file mode 100644 index 000000000..732133031 --- /dev/null +++ b/bbl/i18n/it/BambuStudio_it.po @@ -0,0 +1,8508 @@ +msgid "" +msgstr "" +"Project-Id-Version: Bambu Studio\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-12-22 17:44+0800\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Localazy (https://localazy.com)\n" +"Plural-Forms: nplurals=2; plural=(n==1) ? 0 : 1;\n" + +msgid "Supports Painting" +msgstr "Support Painting" + +msgid "Alt + Mouse wheel" +msgstr "Alt + Rotella del mouse" + +msgid "Section view" +msgstr "Section view" + +msgid "Reset direction" +msgstr "" + +msgid "Ctrl + Mouse wheel" +msgstr "Ctrl + Rotella del mouse" + +msgid "Pen size" +msgstr "Pen size" + +msgid "Left mouse button" +msgstr "Tasto sinistro mouse" + +msgid "Enforce supports" +msgstr "Rinforzi supporti" + +msgid "Right mouse button" +msgstr "Tasto destro mouse" + +msgid "Block supports" +msgstr "Blocca supporti" + +msgid "Shift + Left mouse button" +msgstr "Shift + Tasto sinistro mouse" + +msgid "Erase" +msgstr "Erase" + +msgid "Erase all painting" +msgstr "Erase all painting" + +msgid "Highlight overhang areas" +msgstr "Highlight overhangs" + +msgid "Gap fill" +msgstr "" + +msgid "Perform" +msgstr "Eseguire" + +msgid "Gap area" +msgstr "" + +msgid "Tool type" +msgstr "Tipo di strumento" + +msgid "Smart fill angle" +msgstr "Angolo riempimento intelligente" + +msgid "On overhangs only" +msgstr "" + +msgid "Auto support threshold angle: " +msgstr "Auto support threshold angle: " + +msgid "Circle" +msgstr "Cerchio" + +msgid "Sphere" +msgstr "Sfera" + +msgid "Fill" +msgstr "Fill" + +msgid "Gap Fill" +msgstr "" + +#, boost-format +msgid "Allows painting only on facets selected by: \"%1%\"" +msgstr "" + +msgid "Highlight faces according to overhang angle." +msgstr "Highlight faces according to overhang angle." + +msgid "No auto support" +msgstr "No auto support" + +msgid "Support Generated" +msgstr "Support generated" + +msgid "Lay on face" +msgstr "Lay on Face" + +#, boost-format +msgid "" +"Filament count exceeds the maximum number that painting tool supports. only " +"the first %1% filaments will be available in painting tool." +msgstr "" +"Filament count exceeds the maximum number that painting tool supports. Only " +"the first %1% filaments will be available in painting tool." + +msgid "Color Painting" +msgstr "Color painting" + +msgid "Pen shape" +msgstr "Pen shape" + +msgid "Paint" +msgstr "Paint" + +msgid "Key 1~9" +msgstr "Key 1~9" + +msgid "Choose filament" +msgstr "Choose filament" + +msgid "Edge detection" +msgstr "Edge detection" + +msgid "Triangles" +msgstr "Triangoli" + +msgid "Filaments" +msgstr "Filamenti" + +msgid "Brush" +msgstr "Pennello" + +msgid "Smart fill" +msgstr "Riempimento intelligente" + +msgid "Bucket fill" +msgstr "Riempimento Secchio" + +msgid "Height range" +msgstr "Height range" + +msgid "Ctrl + Shift + Enter" +msgstr "" + +msgid "Toggle Wireframe" +msgstr "" + +msgid "Shortcut Key " +msgstr "Shortcut Key " + +msgid "Triangle" +msgstr "Triangle" + +msgid "Height Range" +msgstr "Height Range" + +msgid "Remove painted color" +msgstr "Rimuovi colore dipinto" + +#, boost-format +msgid "Painted using: Filament %1%" +msgstr "Painted using: Filament %1%" + +msgid "Move" +msgstr "Sposta" + +msgid "Rotate" +msgstr "Ruota" + +msgid "Optimize orientation" +msgstr "Ottimizza orientamento" + +msgid "Apply" +msgstr "Applica" + +msgid "Scale" +msgstr "Ridimensiona" + +msgid "Error: Please close all toolbar menus first" +msgstr "Error: Please close all toolbar menus first" + +msgid "Tool-Lay on Face" +msgstr "Tool-Lay on Face" + +msgid "in" +msgstr "in" + +msgid "mm" +msgstr "mm" + +msgid "Position" +msgstr "Posizione" + +msgid "Rotation" +msgstr "Rotazione" + +msgid "Scale ratios" +msgstr "Scale ratios" + +msgid "Object Operations" +msgstr "Object operations" + +msgid "Volume Operations" +msgstr "Volume operations" + +msgid "Translate" +msgstr "Traduci" + +msgid "Group Operations" +msgstr "Group operations" + +msgid "Set Position" +msgstr "Imposta posizione" + +msgid "Set Orientation" +msgstr "Imposta orientamento" + +msgid "Set Scale" +msgstr "Imposta scala" + +msgid "Reset Position" +msgstr "Reset position" + +msgid "Reset Rotation" +msgstr "Reimposta rotazione" + +msgid "World coordinates" +msgstr "Coordinate reali" + +msgid "°" +msgstr "°" + +msgid "Size" +msgstr "Dimensioni" + +msgid "%" +msgstr "%" + +msgid "uniform scale" +msgstr "Uniform scale" + +msgid "Cut" +msgstr "Taglia" + +msgid "Movement:" +msgstr "Movement:" + +msgid "Movement" +msgstr "" + +msgid "Height" +msgstr "" + +msgid "Keep upper part" +msgstr "Mantieni parte superiore" + +msgid "Keep lower part" +msgstr "Mantieni parte inferiore" + +msgid "Cut to parts" +msgstr "Cut to parts" + +msgid "Auto Segment" +msgstr "Auto Segment" + +msgid "Perform cut" +msgstr "Effettua taglio" + +msgid "Reset" +msgstr "Reimposta" + +msgid "Mesh name" +msgstr "Nome mesh" + +msgid "Detail level" +msgstr "Livello di dettaglio" + +msgid "Decimate ratio" +msgstr "Rapporto di decimazione" + +#, boost-format +msgid "" +"Processing model '%1%' with more than 1M triangles could be slow. It is " +"highly recommended to simplify the model." +msgstr "" +"Processing model '%1%' with more than 1M triangles could be slow. It is " +"highly recommended to simplify the model." + +msgid "Simplify model" +msgstr "Semplifica modello" + +msgid "Simplify" +msgstr "Semplifica" + +msgid "Simplification is currently only allowed when a single part is selected" +msgstr "" +"La semplificazione è attualmente consentita solo quando è selezionata una " +"singola parte" + +msgid "Error" +msgstr "Errore" + +msgid "Extra high" +msgstr "Molto alto" + +msgid "High" +msgstr "Alto" + +msgid "Medium" +msgstr "Medio" + +msgid "Low" +msgstr "Basso" + +msgid "Extra low" +msgstr "Molto basso" + +#, c-format, boost-format +msgid "%d triangles" +msgstr "%d triangoli" + +msgid "Show wireframe" +msgstr "Mostra wireframe" + +#, boost-format +msgid "%1%" +msgstr "%1%" + +msgid "Can't apply when proccess preview." +msgstr "Non si può applicare durante la creazione dell'anteprima." + +msgid "Cancel" +msgstr "Annulla" + +msgid "Operation already cancelling. Please wait few seconds." +msgstr "Operazione già annullata. Si prega di attendere qualche secondo." + +msgid "Face recognition" +msgstr "Face recognition" + +msgid "Perform Recognition" +msgstr "Perform Recognition" + +msgid "Brush size" +msgstr "" + +msgid "Brush shape" +msgstr "" + +msgid "Enforce seam" +msgstr "" + +msgid "Block seam" +msgstr "" + +msgid "Seam painting" +msgstr "" + +msgid "Remove selection" +msgstr "" + +msgid "Text shape" +msgstr "" + +msgid "Font" +msgstr "" + +msgid "Thickness" +msgstr "" + +msgid "Input text" +msgstr "" + +msgid "Add" +msgstr "Aggiungi" + +msgid "Notice" +msgstr "Avvertenza" + +msgid "Warning" +msgstr "Attenzione" + +msgid "Undefined" +msgstr "Indefinito" + +#, boost-format +msgid "%1% was replaced with %2%" +msgstr "%1% was replaced with %2%" + +msgid "The configuration may be generated by a newer version of BambuStudio." +msgstr "" +"The configuration may have been generated by a newer version of Bambu Studio." + +msgid "Some values have been replaced. Please check them:" +msgstr "Some values have been replaced. Please check them:" + +msgid "Process" +msgstr "Process" + +msgid "Filament" +msgstr "Filamento" + +msgid "Machine" +msgstr "Machine" + +msgid "Configuration package was loaded, but some values were not recognized." +msgstr "" +"The configuration package was loaded, but some values were not recognized." + +#, boost-format +msgid "" +"Configuration file \"%1%\" was loaded, but some values were not recognized." +msgstr "" +"The configuration file “%1%” was loaded, but some values were not recognized." + +msgid "V" +msgstr "V" + +msgid "Internal Version" +msgstr "" + +msgid "Version" +msgstr "Versione" + +msgid "" +"BambuStudio will terminate because of running out of memory.It may be a bug. " +"It will be appreciated if you report the issue to our team." +msgstr "" +"Bambu Studio has run out of memory and will close. This may be a bug. Please " +"report this error to Technical Support." + +msgid "Fatal error" +msgstr "Errore irreversibile" + +msgid "" +"BambuStudio will terminate because of a localization error. It will be " +"appreciated if you report the specific scenario this issue happened." +msgstr "A localization error has occurred, and Bambu Studio will close. " + +msgid "Critical error" +msgstr "Errore critico" + +#, boost-format +msgid "BambuStudio got an unhandled exception: %1%" +msgstr "BambuStudio got an unhandled exception: %1%" + +msgid "Downloading Bambu Network Plug-in" +msgstr "" + +msgid "Incorrect password" +msgstr "" + +#, c-format, boost-format +msgid "Connect %s failed! [SN:%s, code=%s]" +msgstr "" + +msgid "" +"BambuStudio configuration file may be corrupted and is not abled to be " +"parsed.Please delete the file and try again." +msgstr "" +"Bambu Studio configuration file is not able to be parsed and may be " +"corrupted. Please delete the file and try again." + +#, c-format, boost-format +msgid "" +"%s\n" +"Do you want to continue?" +msgstr "" +"%s\n" +"Vuoi continuare?" + +msgid "Remember my choice" +msgstr "Ricorda la mia scelta" + +msgid "Loading configuration" +msgstr "Caricamento configurazione" + +#, c-format, boost-format +msgid "Click to download new version in default browser: %s" +msgstr "Click to download new version in default browser: %s" + +msgid "The Bambu Studio needs an upgrade" +msgstr "Bambu Studio needs an update" + +msgid "This is the newest version." +msgstr "This is the newest version." + +msgid "Info" +msgstr "Info" + +msgid "Loading user presets..." +msgstr "Loading user presets..." + +msgid "Rebuild" +msgstr "Rebuild" + +msgid "Loading current presets" +msgstr "Loading current presets" + +msgid "Loading a mode view" +msgstr "Loading a mode view" + +msgid "Choose one file (3mf):" +msgstr "Choose one file (3mf):" + +msgid "Choose one or more files (3mf/step/stl/svg/obj/amf):" +msgstr "" + +msgid "Choose one file (gcode/.gco/.g/.ngc/ngc):" +msgstr "Choose one file (.gcode/.gco/.g/.ngc/ngc):" + +msgid "Some presets are modified." +msgstr "Some presets are modified." + +msgid "" +"You can keep the modifield presets to the new project, discard or save " +"changes as new presets." +msgstr "" +"You can keep the modified presets for the new project, discard, or save " +"changes as new presets." + +msgid "User logged out" +msgstr "" + +msgid "new or open project file is not allowed during the slicing process!" +msgstr "" + +msgid "Open Project" +msgstr "Open Project" + +msgid "" +"The version of Bambu studio is too low and needs to be updated to the latest " +"version before it can be used normally" +msgstr "" +"The version of Bambu Studio is too low and needs to be updated to the latest " +"version before it can be used normally" + +msgid "Login information expired. Please login again." +msgstr "Login information expired. Please login again." + +msgid "Loading" +msgstr "Caricamento" + +msgid "Loading user preset" +msgstr "Loading user preset" + +msgid "Switching application language" +msgstr "Switching application language" + +msgid "Select the language" +msgstr "Seleziona la lingua" + +msgid "Language" +msgstr "Lingua" + +msgid "*" +msgstr "*" + +msgid "The uploads are still ongoing" +msgstr "" + +msgid "Stop them and continue anyway?" +msgstr "" + +msgid "Ongoing uploads" +msgstr "" + +msgid "Select a G-code file:" +msgstr "Select a G-code file:" + +msgid "Bambu Studio GUI initialization failed" +msgstr "Bambu Studio GUI initialization failed" + +#, boost-format +msgid "Fatal error, exception catched: %1%" +msgstr "Fatal error, eccezione registrata: %1%" + +msgid "Quality" +msgstr "Qualità" + +msgid "Shell" +msgstr "Shell" + +msgid "Infill" +msgstr "Riempimento" + +msgid "Support" +msgstr "Support" + +msgid "Flush options" +msgstr "Flush options" + +msgid "Speed" +msgstr "Velocità" + +msgid "Strength" +msgstr "Strength" + +msgid "Top Solid Layers" +msgstr "Top solid layers" + +msgid "Top Minimum Shell Thickness" +msgstr "Top minimum shell thickness" + +msgid "Bottom Solid Layers" +msgstr "Bottom solid layers" + +msgid "Bottom Minimum Shell Thickness" +msgstr "Bottom minimum shell thickness" + +msgid "Ironing" +msgstr "Stiratura" + +msgid "Fuzzy Skin" +msgstr "Superficie Crespa" + +msgid "Extruders" +msgstr "Estrusori" + +msgid "Extrusion Width" +msgstr "Larghezza Estrusione" + +msgid "Wipe options" +msgstr "Opzioni pulitura" + +msgid "Bed adhension" +msgstr "Bed adhesion" + +msgid "Advanced" +msgstr "Avanzate" + +msgid "Add part" +msgstr "Aggiungi parte" + +msgid "Add negative part" +msgstr "Add Negative Part" + +msgid "Add modifier" +msgstr "Aggiungi modificatore" + +msgid "Add support blocker" +msgstr "Aggiungi blocco supporto" + +msgid "Add support enforcer" +msgstr "Aggiungi rinforzo supporto" + +msgid "Select settings" +msgstr "Select settings" + +msgid "Delete" +msgstr "Elimina" + +msgid "Delete the selected object" +msgstr "Delete the selected object" + +msgid "Load..." +msgstr "Caricamento..." + +msgid "Cube" +msgstr "Cube" + +msgid "Cylinder" +msgstr "Cilindro" + +msgid "Cone" +msgstr "Cone" + +msgid "Add settings" +msgstr "Aggiungi impostazioni" + +msgid "Change type" +msgstr "Cambia tipo" + +msgid "Set as an individual object" +msgstr "Set as An Individual Object" + +msgid "Set as individual objects" +msgstr "Set as Individual Objects" + +msgid "Printable" +msgstr "Stampabile" + +msgid "Rename" +msgstr "Rinomina" + +msgid "Fix model" +msgstr "Fix Model" + +msgid "Export as STL" +msgstr "Esporta come STL" + +msgid "Reload from disk" +msgstr "" + +msgid "Reload the selected parts from disk" +msgstr "" + +msgid "Replace with STL" +msgstr "" + +msgid "Replace the selected part with new STL" +msgstr "" + +msgid "Change filament" +msgstr "Change filament" + +msgid "Set filament for selected items" +msgstr "Set filament for selected items" + +msgid "Default" +msgstr "Predefinito" + +#, c-format, boost-format +msgid "Filament %d" +msgstr "Filament %d" + +msgid "active" +msgstr "attivo" + +msgid "Scale to build volume" +msgstr "Scale to build volume" + +msgid "Scale an object to fit the build volume" +msgstr "Scale an object to fit the build volume" + +msgid "Flush Options" +msgstr "" + +msgid "Flush into objects' infill" +msgstr "Flush into objects' infill" + +msgid "Flush into this object" +msgstr "Flush into this object" + +msgid "Flush into objects' support" +msgstr "Flush into objects' support" + +msgid "Convert from inch" +msgstr "Convert from Inches" + +msgid "Restore to inch" +msgstr "Restore to Inch" + +msgid "Convert from meter" +msgstr "Convert from Meters" + +msgid "Restore to meter" +msgstr "Restore to Meter" + +msgid "Assemble" +msgstr "Assemble" + +msgid "Assemble the selected objects to an object with multiple parts" +msgstr "Assemble the selected objects into an object with multiple parts" + +msgid "Assemble the selected objects to an object with single part" +msgstr "Assemble the selected objects into an object with single part" + +msgid "Assemble the selected parts to a single part" +msgstr "Assemble the selected parts into a single part" + +msgid "Along X axis" +msgstr "Lungo asse X" + +msgid "Mirror along the X axis" +msgstr "Mirror along the X Axis" + +msgid "Along Y axis" +msgstr "Lungo asse Y" + +msgid "Mirror along the Y axis" +msgstr "Mirror along the Y Axis" + +msgid "Along Z axis" +msgstr "Lungo l'asse Z" + +msgid "Mirror along the Z axis" +msgstr "Mirror along the Z Axis" + +msgid "Mirror" +msgstr "Specchia" + +msgid "Mirror object" +msgstr "Mirror object" + +msgid "Add Primitive" +msgstr "Add Primitive" + +msgid "Show Labels" +msgstr "" + +msgid "To objects" +msgstr "In oggetti" + +msgid "Split the selected object into multiple objects" +msgstr "Split the selected object into multiple objects" + +msgid "To parts" +msgstr "In parti" + +msgid "Split the selected object into multiple parts" +msgstr "Split the selected object into multiple parts" + +msgid "Split" +msgstr "Dividi" + +msgid "Split the selected object" +msgstr "Dividi l'oggetto selezionato" + +msgid "Auto orientation" +msgstr "Auto orientation" + +msgid "Auto orient the object to improve print quality." +msgstr "Auto orient the object to improve print quality." + +msgid "Split the selected object into mutiple objects" +msgstr "Split the selected object into mutiple objects" + +msgid "Split the selected object into mutiple parts" +msgstr "Split the selected object into mutiple parts" + +msgid "Select All" +msgstr "Select All" + +msgid "select all objects on current plate" +msgstr "Select all objects on the current plate" + +msgid "Delete All" +msgstr "Delete All" + +msgid "delete all objects on current plate" +msgstr "Delete all objects on the current plate" + +msgid "Arrange" +msgstr "Disponi" + +msgid "arrange current plate" +msgstr "Arrange current plate" + +msgid "Auto Rotate" +msgstr "Auto Rotate" + +msgid "auto rotate current plate" +msgstr "Auto rotate current plate" + +msgid "Remove the selected plate" +msgstr "Remove the selected plate" + +msgid "Clone" +msgstr "Clone" + +msgid "Simplify Model" +msgstr "" + +msgid "Center" +msgstr "" + +msgid "Edit Process Settings" +msgstr "" + +msgid "Edit in Parameter Table" +msgstr "" + +msgid "Edit print parameters for a single object" +msgstr "Edit print parameters for a single object" + +msgid "Change Filament" +msgstr "Change Filament" + +msgid "Set Filament for selected items" +msgstr "Set Filament for selected items" + +msgid "current" +msgstr "current" + +msgid "Set Unprintable" +msgstr "Imposta non stampabile" + +msgid "Set Printable" +msgstr "Imposta stampabile" + +msgid "Unlock" +msgstr "Unlock" + +msgid "Lock" +msgstr "Lock" + +msgid "Name" +msgstr "Nome" + +msgid "Fila." +msgstr "Fila." + +#, c-format, boost-format +msgid "%1$d error repaired" +msgid_plural "%1$d errors repaired" +msgstr[0] "%1$d error repaired" +msgstr[1] "%1$d errors repaired" + +#, c-format, boost-format +msgid "Error: %1$d non-manifold edge." +msgid_plural "Error: %1$d non-manifold edges." +msgstr[0] "Error: %1$d non-manifold edge." +msgstr[1] "Error: %1$d non-manifold edges." + +msgid "Remaining errors" +msgstr "Errori rimanenti" + +#, c-format, boost-format +msgid "%1$d non-manifold edge" +msgid_plural "%1$d non-manifold edges" +msgstr[0] "%1$d non-manifold edge" +msgstr[1] "%1$d non-manifold edges" + +msgid "Right click the icon to fix model object" +msgstr "Right click the icon to fix model object" + +msgid "Right button click the icon to drop the object settings" +msgstr "Right click the icon to drop the object settings" + +msgid "Click the icon to reset all settings of the object" +msgstr "Click the icon to reset all settings of the object" + +msgid "Right button click the icon to drop the object printable property" +msgstr "Right click the icon to drop the object printable property" + +msgid "Click the icon to toggle printable property of the object" +msgstr "Click the icon to toggle printable properties of the object" + +msgid "Click the icon to edit support painting of the object" +msgstr "Click the icon to edit support painting of the object" + +msgid "Click the icon to edit color painting of the object" +msgstr "Click the icon to edit color painting for the object" + +msgid "Loading file" +msgstr "Caricamento file" + +msgid "Error!" +msgstr "Errore!" + +msgid "Generic" +msgstr "Generico" + +msgid "Add Modifier" +msgstr "Add Modifier" + +msgid "Switch to per-object setting mode to edit modifier settings." +msgstr "Switch to per-object setting mode to edit modifier settings." + +msgid "" +"Switch to per-object setting mode to edit process settings of selected " +"objects." +msgstr "" + +msgid "Deleting the last solid part is not allowed." +msgstr "Deleting the last solid part is not allowed." + +msgid "The target object contains only one part and can not be splited." +msgstr "The target object contains only one part and cannot be split." + +msgid "Assembly" +msgstr "Assembly" + +msgid "Object" +msgstr "Object" + +msgid "Part" +msgstr "Parte" + +msgid "Layer" +msgstr "Layer" + +msgid "Selection conflicts" +msgstr "Selection conflicts" + +msgid "" +"If first selected item is an object, the second one should also be object." +msgstr "" +"If the first selected item is an object, the second one should also be an " +"object." + +msgid "" +"If first selected item is a part, the second one should be part in the same " +"object." +msgstr "" +"If the first selected item is a part, the second one should be a part in the " +"same object." + +msgid "The type of the last solid object part is not to be changed." +msgstr "The type of the last solid object part cannot be changed." + +msgid "Negative Part" +msgstr "Negative Part" + +msgid "Modifier" +msgstr "Modificatore" + +msgid "Support Blocker" +msgstr "Blocco Supporto" + +msgid "Support Enforcer" +msgstr "Rinforzo Supporto" + +msgid "Type:" +msgstr "Tipo:" + +msgid "Choose part type" +msgstr "Choose part type" + +msgid "Enter new name" +msgstr "Inserisci un nuovo nome" + +msgid "Renaming" +msgstr "Rinomina" + +msgid "Repairing model object" +msgstr "Repairing model object" + +msgid "Following model object has been repaired" +msgid_plural "Following model objects have been repaired" +msgstr[0] "The following model object has been repaired" +msgstr[1] "The following model objects have been repaired" + +msgid "Failed to repair folowing model object" +msgid_plural "Failed to repair folowing model objects" +msgstr[0] "Failed to repair the following model object" +msgstr[1] "Failed to repair the following model objects" + +msgid "Repairing was canceled" +msgstr "La riparazione è stata annullata" + +msgid "Additional process preset" +msgstr "Additional process preset" + +msgid "Remove parameter" +msgstr "Rimuovi parametro" + +msgid "one cell can only be copied to one or multiple cells in the same column" +msgstr "One cell can only be copied to one or more cells in the same column." + +msgid "multiple cells copy is not supported" +msgstr "Copying multiple cells is not supported." + +msgid "Outside" +msgstr "Outside" + +msgid "Auto" +msgstr "Auto" + +msgid "Manual" +msgstr "Manual" + +msgid "No-brim" +msgstr "No-brim" + +msgid " " +msgstr "" + +msgid "Layer height" +msgstr "Altezza layer" + +msgid "Wall loops" +msgstr "Wall loops" + +msgid "Infill density(%)" +msgstr "Infill density(%)" + +msgid "Auto Brim" +msgstr "Auto Brim" + +msgid "Outer wall speed" +msgstr "" + +msgid "Plate" +msgstr "Plate" + +msgid "Brim" +msgstr "Brim" + +msgid "Object/Part Setting" +msgstr "Object/part setting" + +msgid "Reset parameter" +msgstr "Reset parameter" + +msgid "Multicolor Print" +msgstr "Multicolor Print" + +msgid "Line Type" +msgstr "Line Type" + +msgid "More" +msgstr "Altro" + +msgid "Open Preferences." +msgstr "" + +msgid "Open next tip." +msgstr "" + +msgid "Open Documentation in web browser." +msgstr "" + +msgid "Custom G-code" +msgstr "G-code personalizzato" + +msgid "Enter Custom G-code used on current layer:" +msgstr "" + +msgid "OK" +msgstr "OK" + +msgid "Jump to layer" +msgstr "" + +msgid "Please enter the layer number" +msgstr "" + +msgid "Jump to Layer" +msgstr "" + +msgid "Add Pause" +msgstr "" + +msgid "Add Custom G-code" +msgstr "" + +msgid "Add Custom Template" +msgstr "" + +msgid "Filament " +msgstr "" + +msgid "Start" +msgstr "" + +msgid "G-code" +msgstr "" + +msgid "No printer" +msgstr "No printer" + +msgid "Heat the nozzle" +msgstr "" + +msgid "Cut filament" +msgstr "Cut filament" + +msgid "Pull back current filament" +msgstr "Pull back the current filament" + +msgid "Push new filament into extruder" +msgstr "" + +msgid "Purge old filament" +msgstr "Purge old filament" + +msgid "?" +msgstr "?" + +msgid "Empty" +msgstr "Empty" + +msgid "Click the pencil icon to edit the filament." +msgstr "Click the pencil icon to edit the filament." + +msgid "Load Filament" +msgstr "Load" + +msgid "Unload Filament" +msgstr "Unload" + +msgid "Tips" +msgstr "Tips" + +msgid "Guide" +msgstr "" + +msgid "Retry" +msgstr "" + +msgid "Calibrating AMS..." +msgstr "Calibrating AMS..." + +msgid "A problem occured during calibration. Click to view the solution." +msgstr "A problem occured during calibration. Click to view the solution." + +msgid "Calibrate again" +msgstr "Calibrate again" + +msgid "Cancel calibration" +msgstr "Cancel calibration" + +msgid "" +"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " +"load or unload filiament." +msgstr "" +"Choose an AMS slot then press \"Load\" or \"Unload\" to automatically load " +"or unload filament." + +msgid "Edit" +msgstr "Modifica" + +msgid "" +"All the selected objects are on the locked plate,\n" +"We can not do auto-arrange on these objects." +msgstr "" +"All the selected objects are on a locked plate.\n" +"Cannot auto-arrange these objects." + +msgid "No arrangable objects are selected." +msgstr "No arrangable objects are selected." + +msgid "" +"This plate is locked,\n" +"We can not do auto-arrange on this plate." +msgstr "" +"This plate is locked.\n" +"We cannot auto-arrange this plate." + +msgid "Arranging..." +msgstr "Arranging..." + +msgid "" +"Arrange failed. Found some exceptions when processing object geometries." +msgstr "" +"Arrange failed. Found some exceptions when processing object geometries." + +msgid "Arranging" +msgstr "" + +msgid "Arranging canceled." +msgstr "Disposizione annullata." + +msgid "" +"Arranging is done but there are unpacked items. Reduce spacing and try again." +msgstr "" +"Arranging complete, but some items were not able to be arranged. Reduce " +"spacing and try again." + +msgid "Arranging done." +msgstr "Disposizione completata." + +#, c-format, boost-format +msgid "" +"Arrangement ignored the following objects which can't fit into a single " +"bed:\n" +"%s" +msgstr "" +"La disposizione ha ignorato i seguenti oggetti che non possono entrare in un " +"singolo piano:\n" +"%s" + +msgid "" +"All the selected objects are on the locked plate,\n" +"We can not do auto-orient on these objects." +msgstr "" +"All the selected objects are on a locked plate,\n" +"We cannot auto-orient these objects." + +msgid "" +"This plate is locked,\n" +"We can not do auto-orient on this plate." +msgstr "" +"This plate is locked.\n" +"We cannot auto-orient this plate." + +msgid "Orienting..." +msgstr "Orienting..." + +msgid "Orienting" +msgstr "" + +msgid "Error! Unable to create thread!" +msgstr "Error. Unable to create thread." + +msgid "Exception" +msgstr "Exception" + +msgid "Logging in" +msgstr "Logging in" + +msgid "Login failed" +msgstr "Login failed" + +msgid "The region parameter is incorrrect" +msgstr "The region parameter is incorrrect." + +msgid "Failure of printer login" +msgstr "Printer login failure" + +msgid "Failed to get ticket" +msgstr "Failed to get ticket" + +msgid "User authorization timeout" +msgstr "User authorization timeout" + +msgid "Failure of bind" +msgstr "Binding failure" + +msgid "Unknown Failure" +msgstr "Unknown Failure" + +msgid "Please check the printer network connection." +msgstr "" + +msgid "Abnormal print file data. Please slice again" +msgstr "Abnormal print file data. Please slice again" + +msgid "Task canceled" +msgstr "Task canceled" + +msgid "Upload task timed out. Please check the network problem and try again" +msgstr "Upload task timed out. Please check the network and try again" + +msgid "Cloud service connection failed. Please try again." +msgstr "Cloud service connection failed. Please try again." + +msgid "Print file not found, please slice again" +msgstr "Print file not found, please slice again" + +msgid "" +"The print file exceeds the maximum allowable size (1GB). Please simplify the " +"model and slice again" +msgstr "" +"The print file exceeds the maximum allowable size (1GB). Please simplify the " +"model and slice again" + +msgid "Failed uploading print file" +msgstr "Failed uploading print file" + +msgid "Wrong Access code" +msgstr "Wrong Access code" + +msgid "Sending print job over LAN" +msgstr "Sending print job over LAN" + +msgid "Sending print job through cloud service" +msgstr "Sending print job through cloud service" + +msgid "Service Unavailable" +msgstr "" + +msgid "Unkown Error." +msgstr "" + +msgid "Sending print configuration" +msgstr "Sending print configuration" + +#, c-format, boost-format +msgid "Successfully sent. Will automatically jump to the device page in %ss" +msgstr "" + +msgid "An SD card needs to be inserted before printing via LAN." +msgstr "" + +msgid "Failed to send the print job. Please try again." +msgstr "" + +msgid "Send to Printer failed. Please try again." +msgstr "" + +msgid "Sending gcode file over LAN" +msgstr "" + +msgid "Sending gcode file through cloud service" +msgstr "" + +msgid "Sending gcode file to sdcard" +msgstr "" + +#, c-format, boost-format +msgid "Successfully sent. Close current page in %s s" +msgstr "" + +msgid "An SD card needs to be inserted before sending to printer." +msgstr "" + +msgid "Please log out and login to the printer again." +msgstr "" + +msgid "Downloading" +msgstr "Downloading" + +msgid "Download failed" +msgstr "" + +msgid "Cancelled" +msgstr "" + +msgid "Install successfully." +msgstr "" + +msgid "Installing" +msgstr "" + +msgid "Install failed" +msgstr "" + +msgid "Portions copyright" +msgstr "Porzioni di copyright" + +msgid "Copyright" +msgstr "Copyright" + +msgid "License" +msgstr "License" + +msgid "Bambu Studio is licensed under " +msgstr "Bambu Studio is licensed under " + +msgid "GNU Affero General Public License, version 3" +msgstr "GNU Affero General Public License, versione 3" + +msgid "" +"Bambu Studio is based on PrusaSlicer by Prusa Research, which is from Slic3r " +"by Alessandro Ranellucci and the RepRap community" +msgstr "" +"Bambu Studio is based on PrusaSlicer by Prusa Research, which is based on " +"Slic3r by Alessandro Ranellucci and the RepRap community" + +msgid "Libraries" +msgstr "Libraries" + +msgid "" +"This software uses open source components whose copyright and other " +"proprietary rights belong to their respective owners" +msgstr "" +"This software uses open source components whose copyright and other " +"proprietary rights belong to their respective owners" + +#, c-format, boost-format +msgid "About %s" +msgstr "Informazioni su %s" + +msgid "" +"Bambu Studio is based on PrusaSlicer by PrusaResearch and SuperSlicer by " +"Merill(supermerill)." +msgstr "" + +msgid "PrusaSlicer is originally based on Slic3r by Alessandro Ranellucci." +msgstr "" + +msgid "" +"Slic3r was created by Alessandro Ranellucci with the help of many other " +"contributors." +msgstr "" + +msgid "Bambu Studio also referenced some ideas from Cura by Ultimaker." +msgstr "" + +msgid "" +"There many parts of the software that come from community contributions, so " +"we're unable to list them one-by-one, and instead, they'll be attributed in " +"the corresponding code comments." +msgstr "" + +msgid "AMS Materials Setting" +msgstr "" + +msgid "Colour" +msgstr "Color" + +msgid "" +"Nozzle\n" +"Temperature" +msgstr "" +"Nozzle\n" +"Temperature" + +msgid "max" +msgstr "max" + +msgid "min" +msgstr "min" + +#, boost-format +msgid "The input value should be greater than %1% and less than %2%" +msgstr "The input value should be greater than %1% and less than %2%" + +msgid "SN" +msgstr "SN" + +msgid "Setting AMS slot information while printing is not supported" +msgstr "" + +msgid "Confirm" +msgstr "Confirm" + +msgid "Close" +msgstr "Chiudi" + +msgid "AMS Slots" +msgstr "" + +msgid "" +"Note: Only the AMS slots loaded with the same material type can be selected." +msgstr "" + +msgid "Enable AMS" +msgstr "" + +msgid "Print with filaments in the AMS" +msgstr "" + +msgid "Disable AMS" +msgstr "" + +msgid "Print with the filament mounted on the back of chassis" +msgstr "" + +msgid "" +"Config which AMS slot should be used for a filament used in the print job" +msgstr "" + +msgid "Filament used in this print job" +msgstr "" + +msgid "AMS slot used for this filament" +msgstr "" + +msgid "Click to select AMS slot manually" +msgstr "" + +msgid "AMS Settings" +msgstr "AMS Settings" + +msgid "Insertion update" +msgstr "Insertion update" + +msgid "" +"The AMS will automatically read the filament information when inserting a " +"new Bambu Lab filament. This takes about 20 seconds." +msgstr "" +"The AMS will automatically read the filament information when inserting a " +"new Bambu Lab filament spool. This takes about 20 seconds." + +msgid "" +"Note: if new filament is inserted during printing, the AMS will not " +"automatically read any information until printing is completed." +msgstr "" +"Note: if new filament is inserted during printing, the AMS will not " +"automatically read any information until printing has finished." + +msgid "" +"When inserting a new filament, the AMS will not automatically read its " +"information, leaving it blank for you to enter manually." +msgstr "" +"When inserting a new filament, the AMS will not automatically read its " +"information, leaving it blank for you to enter manually." + +msgid "Power on update" +msgstr "Update on startup" + +msgid "" +"The AMS will automatically read the information of inserted filament on " +"start-up. It will take about 1 minute.The reading process will roll filament " +"spools." +msgstr "" +"The AMS will automatically read the information of inserted filament on " +"start-up. It will take about 1 minute.The reading process will rotate the " +"filament spools." + +msgid "" +"The AMS will not automatically read information from inserted filament " +"during startup and will continue to use the information recorded before the " +"last shutdown." +msgstr "" +"The AMS will not automatically read information from inserted filament " +"during startup and will continue to use the information recorded before the " +"last shutdown." + +msgid "Update remaining capacity" +msgstr "" + +msgid "" +"The AMS will estimate Bambu filament's remaining capacity after the filament " +"info is updated. During printing, remaining capacity will be updated " +"automatically." +msgstr "" + +msgid "AMS auto switch filament" +msgstr "" + +msgid "" +"AMS will continue to another spool with the same properties of filament " +"automatically when current filament runs out" +msgstr "" + +msgid "File" +msgstr "File" + +msgid "" +"Failed to download the plug-in. Please check your firewall settings and vpn " +"software, check and retry." +msgstr "" + +msgid "" +"Failed to install the plug-in. Please check whether it is blocked or deleted " +"by anti-virus software." +msgstr "" + +msgid "click here to see more info" +msgstr "" + +msgid "Please home all axes (click " +msgstr "" + +msgid "" +") to locate the toolhead's position. This prevents device moving beyond the " +"printable boundary and causing equipment wear." +msgstr "" + +msgid "Go Home" +msgstr "" + +msgid "" +"A error occurred. Maybe memory of system is not enough or it's a bug of the " +"program" +msgstr "" +"An error occurred. The system may have run out of memory, or a bug may have " +"occurred." + +msgid "Please save project and restart the program. " +msgstr "Please save your project and restart the application." + +msgid "Processing G-Code from Previous file..." +msgstr "Processing G-Code from previous file…" + +msgid "Slicing complete" +msgstr "Slicing completato" + +msgid "Access violation" +msgstr "Violazione di accesso" + +msgid "Illegal instruction" +msgstr "Istruzione illegale" + +msgid "Divide by zero" +msgstr "Dividi per zero" + +msgid "Overflow" +msgstr "Overflow" + +msgid "Underflow" +msgstr "Underflow" + +msgid "Floating reserved operand" +msgstr "Floating reserved operand" + +msgid "Stack overflow" +msgstr "Stack overflow" + +msgid "Unknown error when export G-code." +msgstr "Unknown error with G-code export" + +#, boost-format +msgid "" +"Failed to save gcode file.\n" +"Error message: %1%.\n" +"Source file %2%." +msgstr "" +"Failed to save G-code file.\n" +"Error message: %1%.\n" +"Source file %2%." + +#, boost-format +msgid "Succeed to export G-code to %1%" +msgstr "Success! G-code exported to %1%" + +msgid "Running post-processing scripts" +msgstr "" + +msgid "Copying of the temporary G-code to the output G-code failed" +msgstr "" + +#, boost-format +msgid "Scheduling upload to `%1%`. See Window -> Print Host Upload Queue" +msgstr "" + +msgid "Origin" +msgstr "Origine" + +msgid "Diameter" +msgstr "Diametro" + +msgid "Size in X and Y of the rectangular plate." +msgstr "Dimensioni X e Y del piano rettangolare." + +msgid "" +"Distance of the 0,0 G-code coordinate from the front left corner of the " +"rectangle." +msgstr "" +"Distanza della coordinata 0,0 del G-code dall'angolo frontale sinistro del " +"rettangolo." + +msgid "" +"Diameter of the print bed. It is assumed that origin (0,0) is located in the " +"center." +msgstr "" +"Diametro del piano di stampa. Si presume che l'origine (0,0) si trovi al " +"centro." + +msgid "Rectangular" +msgstr "Rettangolare" + +msgid "Circular" +msgstr "Circolare" + +msgid "Custom" +msgstr "Personalizzato" + +msgid "Shape" +msgstr "Forma" + +msgid "Load shape from STL..." +msgstr "Carica forma da STL..." + +msgid "Settings" +msgstr "Impostazioni" + +msgid "Texture" +msgstr "Texture" + +msgid "Remove" +msgstr "Rimuovi" + +msgid "Not found:" +msgstr "Non trovato:" + +msgid "Model" +msgstr "Modello" + +msgid "Choose an STL file to import bed shape from:" +msgstr "Scegli un file STL da cui importare la forma del piano:" + +msgid "Invalid file format." +msgstr "Formato file non valido." + +msgid "Error! Invalid model" +msgstr "Errore! Modello non valido" + +msgid "The selected file contains no geometry." +msgstr "Il file selezionato non contiene geometrie." + +msgid "" +"The selected file contains several disjoint areas. This is not supported." +msgstr "" +"Il file selezionato contiene molteplici aree disgiunte. Non è supportato." + +msgid "Choose a file to import bed texture from (PNG/SVG):" +msgstr "" +"Seleziona un file da cui importare la forma del piano di stampa (PNG/SVG):" + +msgid "Choose an STL file to import bed model from:" +msgstr "Scegli un file STL da cui importare il modello del piano:" + +msgid "Bed Shape" +msgstr "Forma Piano" + +msgid "" +"Nozzle may be blocked when the temperature is out of recommended range.\n" +"Please make sure whether to use the temperature to print.\n" +"\n" +msgstr "" +"The nozzle may become clogged when the temperature is out of the recommended " +"range.\n" +"Please make sure whether to use this temperature to print.\n" +"\n" + +#, c-format, boost-format +msgid "" +"Recommended nozzle temperature of this filament type is [%d, %d] degree " +"centigrade" +msgstr "" +"The recommended nozzle temperature for this filament type is [%d, %d] " +"degrees centigrade" + +#, c-format, boost-format +msgid "" +"Bed temperature of other layer is lower than bed temperature of initial " +"layer for more than %d degree centigrade.\n" +"This may cause model broken free from build plate during printing" +msgstr "" +"The bed temperature of other layers is lower than the bed temperature of the " +"first layer by more than %d degrees centigrade.\n" +"This may cause models to break free from the build plate during printing." + +msgid "" +"Bed temperature is higher than vitrification temperature of this filament.\n" +"This may cause nozzle blocked and printing failure\n" +"Please keep the printer open during the printing process to ensure air " +"circulation or reduce the temperature of the hot bed" +msgstr "" + +msgid "" +"Too small max volumetric speed.\n" +"Reset to 0.5" +msgstr "" + +msgid "" +"Too small layer height.\n" +"Reset to 0.2" +msgstr "" +"Layer height too small\n" +"It has been reset to 0.2" + +msgid "" +"Too large layer height.\n" +"Reset to 0.2" +msgstr "" +"Layer height too large\n" +"It has been reset to 0.2" + +msgid "" +"Too small ironing spacing.\n" +"Reset to 0.1" +msgstr "" +"Ironing spacing too small\n" +"It has been reset to 0.1" + +msgid "" +"Zero initial layer height is invalid.\n" +"\n" +"The first layer height will be reset to 0.2." +msgstr "" +"Zero first layer height is invalid.\n" +"\n" +"The first layer height will be reset to 0.2." + +msgid "" +"This setting is only used for model size tunning with small value in some " +"cases.\n" +"For example, when model size has small error and hard to be assembled.\n" +"For large size tuning, please use model scale function.\n" +"\n" +"The value will be reset to 0." +msgstr "" +"This setting is only used for tuning model size by small amounts.\n" +"For example, when the model size has small errors or when tolerances are " +"incorrect. For large adjustments, please use the model scale function.\n" +"\n" +"The value will be reset to 0." + +msgid "" +"Too large elefant foot compensation is unreasonable.\n" +"If really have serious elephant foot effect, please check other settings.\n" +"For example, whether bed temperature is too high.\n" +"\n" +"The value will be reset to 0." +msgstr "" +"The elephant foot compensation value is too large.\n" +"If there are significant elephant foot issues, please check other settings.\n" +"The bed temperature may be too high, for example.\n" +"\n" +"The value will be reset to 0." + +msgid "" +"Spiral mode only works when wall loops is 1, support is disabled, top shell " +"layers is 0, sparse infill density is 0 and timelapse type is traditional" +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings and enable spiral mode automatically\n" +"No - Give up using spiral mode this time" +msgstr "" +"Change these settings automatically? \n" +"Yes - Change these settings and enable spiral/vase mode automatically\n" +"No - Cancel enabling spiral mode" + +msgid "" +"Arachne engine only works when overhang slowing down is disabled.\n" +"This may cause decline in the quality of overhang surface when print fastly" +msgstr "" + +msgid "" +"Disable overhang slowing down automatically? \n" +"Yes - Enable arachne and disable overhang slowing down\n" +"No - Give up using arachne this time" +msgstr "" + +msgid "" +"Prime tower does not work when Adaptive Layer Height or Independent Support " +"Layer Height is on.\n" +"Which do you want to keep?\n" +"YES - Keep Prime Tower\n" +"NO - Keep Adaptive Layer Height and Independent Support Layer Height" +msgstr "" +"Prime tower does not work when Adaptive Layer Height or Independent Support " +"Layer Height is on.\n" +"Which do you want to keep?\n" +"YES - Keep Prime Tower\n" +"NO - Keep Adaptive Layer Height and Independent Support Layer Height" + +msgid "" +"Prime tower does not work when Adaptive Layer Height is on.\n" +"Which do you want to keep?\n" +"YES - Keep Prime Tower\n" +"NO - Keep Adaptive Layer Height" +msgstr "" +"Prime tower does not work when Adaptive Layer Height is on.\n" +"Which do you want to keep?\n" +"YES - Keep Prime Tower\n" +"NO - Keep Adaptive Layer Height" + +msgid "" +"Prime tower does not work when Independent Support Layer Height is on.\n" +"Which do you want to keep?\n" +"YES - Keep Prime Tower\n" +"NO - Keep Independent Support Layer Height" +msgstr "" +"Prime tower does not work when Independent Support Layer Height is on.\n" +"Which do you want to keep?\n" +"YES - Keep Prime Tower\n" +"NO - Keep Independent Support Layer Height" + +#, boost-format +msgid "%1% infill pattern doesn't support 100%% density." +msgstr "%1% infill pattern doesn't support 100%% density." + +msgid "" +"Switch to rectilinear pattern?\n" +"Yes - switch to rectilinear pattern automaticlly\n" +"No - reset density to default non 100% value automaticlly" +msgstr "" + +msgid "Auto bed leveling" +msgstr "Auto bed leveling" + +msgid "Heatbed preheating" +msgstr "Heatbed preheating" + +msgid "Sweeping XY mech mode" +msgstr "Sweeping XY mech mode" + +msgid "Changing filament" +msgstr "Changing filament" + +msgid "M400 pause" +msgstr "M400 pause" + +msgid "Paused due to filament runout" +msgstr "Paused due to filament runout" + +msgid "Heating hotend" +msgstr "Heating hotend" + +msgid "Calibrating extrusion" +msgstr "Calibrating extrusion" + +msgid "Scanning bed surface" +msgstr "Scanning bed surface" + +msgid "Inspecting first layer" +msgstr "Inspecting first layer" + +msgid "Identifying build plate type" +msgstr "Identifying build plate type" + +msgid "Calibrating Micro Lidar" +msgstr "Calibrating Micro Lidar" + +msgid "Homing toolhead" +msgstr "Homing toolhead" + +msgid "Cleaning nozzle tip" +msgstr "Cleaning nozzle tip" + +msgid "Checking extruder temperature" +msgstr "Checking extruder temperature" + +msgid "Printing was paused by the user" +msgstr "Printing was paused by the user" + +msgid "Pause of front cover falling" +msgstr "Pause of front cover falling" + +msgid "Calibrating the micro lida" +msgstr "Calibrating the micro lidar" + +msgid "Calibrating extrusion flow" +msgstr "Calibrating extrusion flow" + +msgid "Paused due to nozzle temperature malfunction" +msgstr "Paused due to nozzle temperature malfunction" + +msgid "Paused due to heat bed temperature malfunction" +msgstr "Paused due to heat bed temperature malfunction" + +msgid "MC" +msgstr "MC" + +msgid "MainBoard" +msgstr "MainBoard" + +msgid "AMS" +msgstr "AMS" + +msgid "TH" +msgstr "TH" + +msgid "XCam" +msgstr "XCam" + +msgid "Unknown" +msgstr "Sconosciuto" + +msgid "Fatal" +msgstr "Fatal" + +msgid "Serious" +msgstr "Serious" + +msgid "Common" +msgstr "Common" + +msgid "Update successful." +msgstr "Update successful." + +msgid "Downloading failed." +msgstr "Downloading failed." + +msgid "Verification failed." +msgstr "Verification failed." + +msgid "Update failed." +msgstr "Update failed." + +msgid "Failed to start printing job" +msgstr "" + +msgid "default" +msgstr "predefinito" + +msgid "parameter name" +msgstr "" + +msgid "N/A" +msgstr "N/A" + +msgid "Invalid numeric." +msgstr "Invalid numeric." + +#, c-format, boost-format +msgid "%s can't be percentage" +msgstr "%s can’t be a percentage" + +#, c-format, boost-format +msgid "Value %s is out of range, continue?" +msgstr "Value %s is out of range, continue?" + +msgid "Parameter validation" +msgstr "Validazione parametri" + +msgid "Value is out of range." +msgstr "Value is out of range." + +#, c-format, boost-format +msgid "" +"Is it %s%% or %s %s?\n" +"YES for %s%%, \n" +"NO for %s %s." +msgstr "" +"Is it %s%% or %s %s?\n" +"YES for %s%%, \n" +"NO for %s %s." + +#, boost-format +msgid "Invalid format. Expected vector format: \"%1%\"" +msgstr "Invalid format. Expected vector format: \"%1%\"" + +msgid "Layer Height" +msgstr "Layer Height" + +msgid "Line Width" +msgstr "Line Width" + +msgid "Fan Speed" +msgstr "Fan Speed" + +msgid "Temperature" +msgstr "Temperatura" + +msgid "Flow" +msgstr "Flusso" + +msgid "Tool" +msgstr "Strumento" + +msgid "Height: " +msgstr "" + +msgid "Width: " +msgstr "" + +msgid "Speed: " +msgstr "" + +msgid "Flow: " +msgstr "" + +msgid "Fan Speed: " +msgstr "" + +msgid "Temperature: " +msgstr "" + +msgid "Loading G-codes" +msgstr "Loading G-code" + +msgid "Generating geometry vertex data" +msgstr "Generating geometry vertex data" + +msgid "Generating geometry index data" +msgstr "Generating geometry index data" + +msgid "Display" +msgstr "Display" + +msgid "up to" +msgstr "fino a" + +msgid "above" +msgstr "sopra" + +msgid "from" +msgstr "da" + +msgid "to" +msgstr "a" + +msgid "Color Scheme" +msgstr "Color scheme" + +msgid "Time" +msgstr "Tempo" + +msgid "Percent" +msgstr "Percent" + +msgid "Layer Height (mm)" +msgstr "Layer height (mm)" + +msgid "Line Width (mm)" +msgstr "Line width (mm)" + +msgid "Speed (mm/s)" +msgstr "Velocità (mm/s)" + +msgid "Fan Speed (%)" +msgstr "Velocità ventola (%)" + +msgid "Temperature (°C)" +msgstr "Temperatura (°C)" + +msgid "Volumetric flow rate (mm³/s)" +msgstr "Flusso volumetrico (mm³/s)" + +msgid "Used filament" +msgstr "Filamento usato" + +msgid "Flushed" +msgstr "" + +msgid "Total" +msgstr "Totale" + +msgid "Travel" +msgstr "Spostamento" + +msgid "Seams" +msgstr "Giunzioni" + +msgid "Retract" +msgstr "Retract" + +msgid "Unretract" +msgstr "Unretract" + +msgid "Filament Changes" +msgstr "Filament changes" + +msgid "Wipe" +msgstr "Pulitura" + +msgid "Options" +msgstr "Opzioni" + +msgid "travel" +msgstr "Travel" + +msgid "Extruder" +msgstr "Estrusore" + +msgid "Filament change times" +msgstr "Filament change times" + +msgid "Cost" +msgstr "Costo" + +msgid "Color change" +msgstr "Cambio colore" + +msgid "Print" +msgstr "Stampa" + +msgid "Pause" +msgstr "Pausa" + +msgid "Printer" +msgstr "Stampante" + +msgid "Print settings" +msgstr "Impostazioni di stampa" + +msgid "Total Estimation" +msgstr "Total estimation" + +msgid "Time Estimation" +msgstr "" + +msgid "Normal mode" +msgstr "Modalità normale" + +msgid "Prepare time" +msgstr "Prepare time" + +msgid "Model printing time" +msgstr "Model printing time" + +msgid "Total time" +msgstr "" + +msgid "Switch to silent mode" +msgstr "Switch to silent mode" + +msgid "Switch to normal mode" +msgstr "Switch to normal mode" + +msgid "Variable layer height" +msgstr "" + +msgid "Adaptive" +msgstr "" + +msgid "Quality / Speed" +msgstr "" + +msgid "Smooth" +msgstr "" + +msgid "Radius" +msgstr "Raggio" + +msgid "Keep min" +msgstr "" + +msgid "Left mouse button:" +msgstr "" + +msgid "Add detail" +msgstr "" + +msgid "Right mouse button:" +msgstr "" + +msgid "Remove detail" +msgstr "" + +msgid "Shift + Left mouse button:" +msgstr "" + +msgid "Reset to base" +msgstr "" + +msgid "Shift + Right mouse button:" +msgstr "" + +msgid "Smoothing" +msgstr "" + +msgid "Mouse wheel:" +msgstr "" + +msgid "Increase/decrease edit area" +msgstr "" + +msgid "Sequence" +msgstr "Sequence" + +msgid "Mirror Object" +msgstr "Specchia Oggetto" + +msgid "Tool Move" +msgstr "Tool move" + +msgid "Move Object" +msgstr "Sposta oggetto" + +msgid "Auto Orientation options" +msgstr "Auto orientation options" + +msgid "Enable rotation" +msgstr "Enable rotation" + +msgid "Optimize support interface area" +msgstr "Optimize support interface area" + +msgid "Orient" +msgstr "Orient" + +msgid "Arrange options" +msgstr "Opzioni di disposizione" + +msgid "Spacing" +msgstr "Spaziatura " + +msgid "Auto rotate for arrangement" +msgstr "Auto rotate for arrangement" + +msgid "Allow multiple materials on same plate" +msgstr "Allow multiple materials on same plate" + +msgid "Avoid extrusion calibration region" +msgstr "Avoid extrusion calibration region" + +msgid "Add plate" +msgstr "Add Plate" + +msgid "Auto orient" +msgstr "Auto Orient" + +msgid "Arrange all objects" +msgstr "Arrange all objects" + +msgid "Arrange objects on selected plates" +msgstr "Arrange objects on selected plates" + +msgid "Split to objects" +msgstr "Dividi in oggetti" + +msgid "Split to parts" +msgstr "Dividi in parti" + +msgid "Assembly View" +msgstr "Assembly View" + +msgid "Select Plate" +msgstr "Select Plate" + +msgid "Assembly Return" +msgstr "Assembly Return" + +msgid "return" +msgstr "return" + +msgid "Paint Toolbar" +msgstr "Paint Toolbar" + +msgid "Explosion Ratio" +msgstr "Explosion Ratio" + +msgid "Section View" +msgstr "" + +msgid "Assemble Control" +msgstr "" + +msgid "Total Volume:" +msgstr "Total Volume:" + +msgid "Assembly Info" +msgstr "Assembly Info" + +msgid "Volume:" +msgstr "Volume:" + +msgid "Size:" +msgstr "Size:" + +msgid "An object is layed over the boundary of plate." +msgstr "An object is laid over the boundary of the plate." + +msgid "A G-code path goes beyond the boundary of plate." +msgstr "A G-code path goes beyond plate boundaries." + +msgid "Only the object being edit is visible." +msgstr "Only the object being edited is visible." + +msgid "" +"An object is laid over the boundary of plate or exceeds the height limit.\n" +"Please solve the problem by moving it totally on or off the plate, and " +"confirming that the height is within the build volume." +msgstr "" + +msgid "Calibration" +msgstr "Calibration" + +msgid "Calibration step selection" +msgstr "" + +msgid "Micro lidar calibration" +msgstr "" + +msgid "Bed leveling" +msgstr "" + +msgid "Resonance frequency identification" +msgstr "" + +msgid "Calibration program" +msgstr "Calibration program" + +msgid "" +"The calibration program detects the status of your device automatically to " +"minimize deviation.\n" +"It keeps the device performing optimally." +msgstr "" +"The calibration program detects the status of your device automatically to " +"minimize deviation.\n" +"It keeps the device performing optimally." + +msgid "Calibration Flow" +msgstr "Calibration Flow" + +msgid "Start Calibration" +msgstr "Start Calibration" + +msgid "Completed" +msgstr "" + +msgid "Calibrating" +msgstr "Calibrating" + +msgid "Auto-record Monitoring" +msgstr "" + +msgid "Go Live" +msgstr "" + +msgid "Resolution" +msgstr "Resolution" + +msgid "Show \"Live Video\" guide page." +msgstr "" + +msgid "720p" +msgstr "" + +msgid "1080p" +msgstr "" + +msgid "ConnectPrinter(LAN)" +msgstr "Connect Printer (LAN)" + +msgid "Please input the printer access code:" +msgstr "Please input the printer access code:" + +msgid "" +"You can find it in \"Settings > Network > Connection code\"\n" +"on the printer, as shown in the figure:" +msgstr "" +"You can find it in \"Settings > Network > Access code\"\n" +"on the printer, as shown in the figure:" + +msgid "Invalid input." +msgstr "" + +msgid "New Window" +msgstr "" + +msgid "Open a new window" +msgstr "" + +msgid "Application is closing" +msgstr "Closing application" + +msgid "Closing Application while some presets are modified." +msgstr "Closing Application while some presets are modified." + +msgid "Logging" +msgstr "Logging" + +msgid "Prepare" +msgstr "Prepare" + +msgid "Preview" +msgstr "Anteprima" + +msgid "Device" +msgstr "Device" + +msgid "Project" +msgstr "Project" + +msgid "Yes" +msgstr "Yes" + +msgid "No" +msgstr "No" + +msgid " will be closed before creating a new model. Do you want to continue?" +msgstr "" + +msgid "Slice" +msgstr "Processa" + +msgid "Slice all" +msgstr "Slice all" + +msgid "Slice plate" +msgstr "Slice plate" + +msgid "Export G-code file" +msgstr "" + +msgid "Send" +msgstr "Send" + +msgid "Print plate" +msgstr "" + +msgid "Export plate sliced file" +msgstr "" + +msgid "Export all sliced file" +msgstr "" + +msgid "Print all" +msgstr "Print all" + +msgid "Send all" +msgstr "" + +msgid "Keyboard Shortcuts" +msgstr "Scorciatoie Tastiera" + +msgid "Show the list of the keyboard shortcuts" +msgstr "Mostra l'elenco delle scorciatoie di tastiera" + +msgid "Setup Wizard" +msgstr "Setup Wizard" + +msgid "Show Configuration Folder" +msgstr "Show Configuration Folder" + +msgid "Show Tip of the Day" +msgstr "" + +msgid "Check for Update" +msgstr "Check for Updates" + +msgid "Open Network Test" +msgstr "" + +#, c-format, boost-format +msgid "&About %s" +msgstr "Inform&azioni su %s" + +msgid "Upload Models" +msgstr "" + +msgid "Download Models" +msgstr "" + +msgid "Default View" +msgstr "Default View" + +#. TRN To be shown in the main menu View->Top +msgid "Top" +msgstr "Superiore" + +msgid "Top View" +msgstr "Vista superiore" + +#. TRN To be shown in the main menu View->Bottom +msgid "Bottom" +msgstr "Inferiore" + +msgid "Bottom View" +msgstr "Vista inferiore" + +msgid "Front" +msgstr "Frontale" + +msgid "Front View" +msgstr "Vista anteriore" + +msgid "Rear" +msgstr "Posteriore" + +msgid "Rear View" +msgstr "Vista posteriore" + +msgid "Left" +msgstr "Sinistra" + +msgid "Left View" +msgstr "Vista sinistra" + +msgid "Right" +msgstr "Destra" + +msgid "Right View" +msgstr "Vista destra" + +msgid "Start a new window" +msgstr "" + +msgid "New Project" +msgstr "Nuovo progetto" + +msgid "Start a new project" +msgstr "Inizia un nuovo progetto" + +msgid "Open a project file" +msgstr "Apri un file progetto" + +msgid "Recent projects" +msgstr "Prog&etti recenti" + +msgid "Save Project" +msgstr "Save Project" + +msgid "Save current project to file" +msgstr "Save current project to file" + +msgid "Save Project as" +msgstr "Save Project as" + +msgid "Save current project as" +msgstr "Save current project as" + +msgid "Import 3MF/STL/STEP/SVG/OBJ/AMF" +msgstr "" + +msgid "Load a model" +msgstr "Carica modello" + +msgid "Import Configs" +msgstr "Import Configs" + +msgid "Load configs" +msgstr "Load configs" + +msgid "Import" +msgstr "Import" + +msgid "Export all objects as STL" +msgstr "Export All Objects as STL" + +msgid "Export Generic 3MF" +msgstr "Export Generic 3MF" + +msgid "Export 3mf file without using some 3mf-extensions" +msgstr "Export 3mf file without using some 3mf-extensions" + +msgid "Export current sliced file" +msgstr "" + +msgid "Export all plate sliced file" +msgstr "" + +msgid "Export G-code" +msgstr "Esporta G-code" + +msgid "Export current plate as G-code" +msgstr "" + +msgid "Export &Configs" +msgstr "Export &Configs" + +msgid "Export current configuration to files" +msgstr "" + +msgid "Export" +msgstr "Esporta" + +msgid "Quit" +msgstr "Quit" + +msgid "Undo" +msgstr "Annulla" + +msgid "Redo" +msgstr "Ripeti" + +msgid "Cut selection to clipboard" +msgstr "Cut selection to clipboard" + +msgid "Copy" +msgstr "Copia" + +msgid "Copy selection to clipboard" +msgstr "Copia selezione negli appunti" + +msgid "Paste" +msgstr "Incolla" + +msgid "Paste clipboard" +msgstr "Incolla appunti" + +msgid "Delete selected" +msgstr "Elimina selezionato" + +msgid "Deletes the current selection" +msgstr "Elimina la selezione corrente" + +msgid "Delete all" +msgstr "Elimina tutto" + +msgid "Deletes all objects" +msgstr "Elimina tutti gli oggetti" + +msgid "Clone selected" +msgstr "Clone Selected" + +msgid "Clone copies of selections" +msgstr "Clone copies of selections" + +msgid "Select all" +msgstr "Select All" + +msgid "Selects all objects" +msgstr "Seleziona tutti gli oggetti" + +msgid "Deselect all" +msgstr "Deseleziona tutto" + +msgid "Deselects all objects" +msgstr "Deseleziona tutti gli oggetti" + +msgid "Use Perspective View" +msgstr "Use Perspective View" + +msgid "Use Orthogonal View" +msgstr "Use Orthogonal View" + +msgid "Show &Labels" +msgstr "" + +msgid "Show object labels in 3D scene" +msgstr "" + +msgid "Preferences" +msgstr "Preferenze" + +msgid "View" +msgstr "Vista" + +msgid "Help" +msgstr "Aiuto" + +msgid "3D Models" +msgstr "" + +msgid "&Open G-code" +msgstr "Apri G-code" + +msgid "Open a G-code file" +msgstr "Apri un file G-code" + +msgid "Re&load from Disk" +msgstr "R&icarica da disco" + +msgid "Reload the plater from disk" +msgstr "Ricarica piano da disco" + +msgid "Export &Toolpaths as OBJ" +msgstr "Esporta percorso strumen&to come OBJ" + +msgid "Export toolpaths as OBJ" +msgstr "Esporta percorso strumento come OBJ" + +msgid "Open &Studio" +msgstr "" + +msgid "Open Studio" +msgstr "" + +msgid "&Quit" +msgstr "Es&ci" + +#, c-format, boost-format +msgid "Quit %s" +msgstr "Chiudi %s" + +msgid "&File" +msgstr "&File" + +msgid "&View" +msgstr "&Vista" + +msgid "&Help" +msgstr "&Aiuto" + +msgid "Overwrite file" +msgstr "Overwrite file" + +msgid "Yes to All" +msgstr "Yes to All" + +msgid "No to All" +msgstr "No to All" + +msgid "Choose a directory" +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] "" +msgstr[1] "" + +msgid "Export result" +msgstr "Export Result" + +msgid "Select profile to load:" +msgstr "" + +#, c-format, boost-format +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] "" +msgstr[1] "" + +msgid "Import result" +msgstr "Import result" + +msgid "File is missing" +msgstr "File is missing" + +msgid "The project is no longer available." +msgstr "The project is no longer available." + +msgid "Filament Settings" +msgstr "Impostazioni Filamento" + +msgid "" +"Do you want to synchronize your personal data from Bambu Cloud? \n" +"It contains the following information:\n" +"1. The Process presets\n" +"2. The Filament presets\n" +"3. The Printer presets" +msgstr "" + +msgid "Synchronization" +msgstr "Synchronization" + +msgid "Initialize failed (No Device)!" +msgstr "Initialization failed (No Device)!" + +msgid "Initialize failed (No Camera Device)!" +msgstr "" + +msgid "Initializing..." +msgstr "Initializing..." + +msgid "Loading..." +msgstr "Loading..." + +msgid "Initialize failed (Not supported with LAN-only mode)!" +msgstr "" + +msgid "Initialize failed (Not accessible in LAN-only mode)!" +msgstr "" + +msgid "Initialize failed (Missing LAN ip of printer)!" +msgstr "" + +msgid "Initialize failed (Not supported by printer)!" +msgstr "" + +#, c-format, boost-format +msgid "Initialize failed (%s)!" +msgstr "" + +msgid "Network unreachable" +msgstr "" + +#, c-format, boost-format +msgid "Stopped [%d]!" +msgstr "" + +msgid "Stopped." +msgstr "Stopped." + +msgid "" +"Virtual Camera Tools is required for this task!\n" +"Do you want to install them?" +msgstr "" + +msgid "Downloading Virtual Camera Tools" +msgstr "" + +msgid "" +"Another virtual camera is running.\n" +"Bambu Studio supports only a single virtual camera.\n" +"Do you want to stop this virtual camera?" +msgstr "" + +#, c-format, boost-format +msgid "Virtual camera initialize failed (%s)!" +msgstr "" + +msgid "Information" +msgstr "" + +msgid "Playing..." +msgstr "Playing..." + +#, c-format, boost-format +msgid "Load failed [%d]!" +msgstr "Loading failed [%d]!" + +msgid "Year" +msgstr "Year" + +msgid "Month" +msgstr "Month" + +msgid "All Files" +msgstr "" + +msgid "Group files by year, recent first." +msgstr "" + +msgid "Group files by month, recent first." +msgstr "" + +msgid "Show all files, recent first." +msgstr "" + +msgid "Timelapse" +msgstr "Timelapse" + +msgid "Switch to timelapse files." +msgstr "" + +msgid "Video" +msgstr "Video" + +msgid "Switch to video files." +msgstr "" + +msgid "Delete selected files from printer." +msgstr "" + +msgid "Download" +msgstr "Download" + +msgid "Download selected files from printer." +msgstr "" + +msgid "Select" +msgstr "" + +msgid "Batch manage files." +msgstr "" + +msgid "No printers." +msgstr "No printers." + +msgid "Not supported by this model of printer!" +msgstr "" + +msgid "Connecting..." +msgstr "Connecting..." + +#, c-format, boost-format +msgid "Connect failed [%d]!" +msgstr "Connection failed [%d]!" + +msgid "Loading file list..." +msgstr "Loading file list..." + +msgid "No files" +msgstr "No files" + +msgid "Not accessible in LAN-only mode!" +msgstr "" + +msgid "Missing LAN ip of printer!" +msgstr "" + +#, c-format, boost-format +msgid "File '%s' was lost! Please download it again." +msgstr "" + +msgid "Download waiting..." +msgstr "" + +msgid "Play" +msgstr "" + +msgid "Open Folder" +msgstr "" + +msgid "Download finished" +msgstr "" + +#, c-format, boost-format +msgid "Downloading %d%%..." +msgstr "" + +msgid "Speed:" +msgstr "Velocità:" + +msgid "Deadzone:" +msgstr "Zona morta:" + +msgid "Options:" +msgstr "Opzioni:" + +msgid "Zoom" +msgstr "Zoom" + +msgid "Translation/Zoom" +msgstr "" + +msgid "3Dconnexion settings" +msgstr "Impostazioni 3Dconnexion" + +msgid "Swap Y/Z axes" +msgstr "Inverti assi Y/Z" + +msgid "Camera" +msgstr "" + +msgid "SD Card" +msgstr "" + +msgid "Camera Setting" +msgstr "" + +msgid "Printing Progress" +msgstr "Printing progress" + +msgid "Resume" +msgstr "Resume" + +msgid "Stop" +msgstr "Stop" + +msgid "0" +msgstr "" + +msgid "Clean" +msgstr "" + +msgid "Control" +msgstr "Control" + +msgid "Print Options" +msgstr "" + +msgid "100%" +msgstr "100%" + +msgid "Lamp" +msgstr "Lamp" + +msgid "Aux" +msgstr "" + +msgid "Cham" +msgstr "" + +msgid "Bed" +msgstr "Piano" + +msgid "Unload" +msgstr "Unload" + +msgid "Debug Info" +msgstr "Debug Info" + +msgid "No SD Card" +msgstr "" + +msgid "SD Card Abnormal" +msgstr "" + +msgid "Printing List" +msgstr "Printing list" + +msgid "Cancel print" +msgstr "" + +msgid "Are you sure you want to cancel this print?" +msgstr "" + +#, c-format, boost-format +msgid "" +"Disconnected from printer [%s] due to LAN mode disabled.Please reconnect the " +"printer by logging in with your user account." +msgstr "" + +#, c-format, boost-format +msgid "" +"Disconnected from printer [%s] due to LAN mode enabled.Please reconnect the " +"printer by inputting Access Code which can be gotten from printer screen." +msgstr "" + +msgid "Downloading..." +msgstr "Downloading..." + +msgid "Cloud Slicing..." +msgstr "" + +msgid "Please heat the nozzle to above 170 degree before loading filament." +msgstr "" + +msgid "Still unload" +msgstr "" + +msgid "Still load" +msgstr "" + +msgid "" +"Cannot read filament info: the filament is loaded to the tool head,please " +"unload the filament and try again." +msgstr "" + +msgid "This only takes effect during printing" +msgstr "" + +msgid "Silent" +msgstr "Silent" + +msgid "Standard" +msgstr "Standard" + +msgid "Sport" +msgstr "Sport" + +msgid "Ludicrous" +msgstr "Ludicrous" + +msgid "Can't start this without SD card." +msgstr "" + +msgid "Failed to connect to the server" +msgstr "Failed to connect to the server" + +msgid "Status" +msgstr "Stato" + +msgid "Media" +msgstr "Media" + +msgid "Update" +msgstr "Update" + +msgid "HMS" +msgstr "HMS" + +msgid "Failed to connect to the printer" +msgstr "Failed to connect to the printer" + +msgid "Don't show again" +msgstr "Non mostrare più" + +#, c-format, boost-format +msgid "%s error" +msgstr "errore %s" + +#, c-format, boost-format +msgid "%s has encountered an error" +msgstr "%s ha riscontrato un errore" + +#, c-format, boost-format +msgid "%s warning" +msgstr "Avviso %s" + +#, c-format, boost-format +msgid "%s has a warning" +msgstr "%s ha un avviso" + +#, c-format, boost-format +msgid "%s info" +msgstr "Informazioni %s " + +#, c-format, boost-format +msgid "%s information" +msgstr "%s informazioni" + +msgid "Skip" +msgstr "Skip" + +msgid "3D Mouse disconnected." +msgstr "Mouse 3D disconnesso." + +msgid "Configuration can update now." +msgstr "A new configuration is available. Update now?" + +msgid "Detail." +msgstr "More" + +msgid "Integration was successful." +msgstr "Integration was successful." + +msgid "Integration failed." +msgstr "Integration failed." + +msgid "Undo integration was successful." +msgstr "Undo integration was successful." + +msgid "Undo integration failed." +msgstr "Undo integration failed." + +msgid "Exporting." +msgstr "Esportazione." + +msgid "Software has New version." +msgstr "An update is available!" + +msgid "Goto download page." +msgstr "Go to download page" + +msgid "Open Folder." +msgstr "Apri Cartella." + +#, c-format, boost-format +msgid "%1$d Object has custom supports." +msgid_plural "%1$d Objects have custom supports." +msgstr[0] "%1$d Object has custom supports." +msgstr[1] "%1$d Objects have custom supports." + +#, c-format, boost-format +msgid "%1$d Object has color painting." +msgid_plural "%1$d Objects have color painting." +msgstr[0] "%1$d Object has color painting." +msgstr[1] "%1$d Objects have color painting." + +msgid "ERROR" +msgstr "" + +msgid "CANCELED" +msgstr "" + +msgid "COMPLETED" +msgstr "" + +msgid "Cancel upload" +msgstr "" + +msgid "Slice ok." +msgstr "Slice complete" + +msgid "Export G-Code." +msgstr "Esporta G-code." + +msgid "Export." +msgstr "Esporta." + +msgid "Jump to" +msgstr "Jump to" + +msgid "Error:" +msgstr "Error:" + +msgid "Warning:" +msgstr "Warning:" + +msgid "Export successfully." +msgstr "" + +msgid " (Repair)" +msgstr " (Repair)" + +msgid " Click here to install it." +msgstr "" + +msgid "WARNING:" +msgstr "ATTENZIONE:" + +msgid "Your model needs support ! Please make support material enable." +msgstr "Your model needs support! Please enable support material." + +msgid "Gcode path overlap" +msgstr "G-code path overlap" + +msgid "Support painting" +msgstr "Support Painting" + +msgid "Color painting" +msgstr "Color Painting" + +msgid "Layers" +msgstr "Layer" + +msgid "Range" +msgstr "Intervallo" + +msgid "" +"The application cannot run normally because OpenGL version is lower than " +"2.0.\n" +msgstr "" +"The application cannot run normally because your OpenGL version is lower " +"than 2.0.\n" + +msgid "Please upgrade your graphics card driver." +msgstr "Please upgrade your graphics card driver." + +msgid "Unsupported OpenGL version" +msgstr "Versione OpenGL non supportata" + +#, c-format, boost-format +msgid "" +"Unable to load shaders:\n" +"%s" +msgstr "" +"Unable to load shaders:\n" +"%s" + +msgid "Error loading shaders" +msgstr "Errore caricamento shader" + +msgctxt "Layers" +msgid "Top" +msgstr "Superiore" + +msgctxt "Layers" +msgid "Bottom" +msgstr "Inferiore" + +msgid "Enable AI monitoring of printing" +msgstr "" + +msgid "Sensitivity of pausing is" +msgstr "" + +msgid "Enable detection of build plate position" +msgstr "" + +msgid "" +"The localization tag of build plate is detected, and printing is paused if " +"the tag is not in predefined range." +msgstr "" + +msgid "First Layer Inspection" +msgstr "" + +msgid "Auto-recovery from step loss" +msgstr "" + +msgid "Global" +msgstr "Global" + +msgid "Objects" +msgstr "Objects" + +msgid "Advance" +msgstr "Advanced" + +msgid "Compare presets" +msgstr "Confronta i preset" + +msgid "View all object's settings" +msgstr "View all object's settings" + +msgid "Filament settings" +msgstr "Filament settings" + +msgid "Printer settings" +msgstr "Printer settings" + +#, boost-format +msgid " plate %1%:" +msgstr " plate %1%:" + +msgid "Invalid name, the following characters are not allowed:" +msgstr "Invalid name, the following characters are not allowed:" + +msgid "Sliced Info" +msgstr "Informazioni processo" + +msgid "Used Filament (m)" +msgstr "Filamento usato (m)" + +msgid "Used Filament (mm³)" +msgstr "Filamento usato (mm³)" + +msgid "Used Filament (g)" +msgstr "Filamento usato (g)" + +msgid "Used Materials" +msgstr "Used Materials" + +msgid "Estimated time" +msgstr "Estimated time" + +msgid "Filament changes" +msgstr "Filament changes" + +msgid "Click to edit preset" +msgstr "Clicca per modificare il preset" + +msgid "Connection" +msgstr "" + +msgid "Bed type" +msgstr "Bed type" + +msgid "Flushing volumes" +msgstr "Flushing volumes" + +msgid "Add one filament" +msgstr "" + +msgid "Remove last filament" +msgstr "" + +msgid "Synchronize filament list from AMS" +msgstr "" + +msgid "Set filaments to use" +msgstr "" + +msgid "" +"No AMS filaments. Please select a printer in 'Device' page to load AMS info." +msgstr "" + +msgid "Sync filaments with AMS" +msgstr "" + +msgid "" +"Sync filaments with AMS will drop all current selected filament presets and " +"colors. Do you want to continue?" +msgstr "" + +msgid "There are no compatible filaments, and sync is not performed." +msgstr "" + +msgid "" +"There are some unknown filaments mapped to generic preset. Please update " +"Bambu Studio or restart Bambu Studio to check if there is an update to " +"system presets." +msgstr "" + +msgid "Untitled" +msgstr "Senza titolo" + +#, boost-format +msgid "Do you want to save changes to \"%1%\"?" +msgstr "Do you want to save changes to \"%1%\"?" + +#, c-format, boost-format +msgid "" +"Successfully unmounted. The device %s(%s) can now be safely removed from the " +"computer." +msgstr "" + +#, c-format, boost-format +msgid "Ejecting of device %s(%s) has failed." +msgstr "" + +msgid "Previous unsaved project detected, do you want to restore it?" +msgstr "" +"Previously unsaved items have been detected. Do you want to restore them?" + +msgid "Restore" +msgstr "Restore" + +msgid "" +"The bed temperature exceeds filament's vitrification temperature. Please " +"open the front door of printer before printing to avoid nozzle clog." +msgstr "" + +msgid "" +"The nozzle hardness required by the filament is higher than the default " +"nozzle hardness of the printer. Please replace the hardened nozzle or " +"filament, otherwise, the nozzle will be attrited or damaged." +msgstr "" + +#, c-format, boost-format +msgid "Loading file: %s" +msgstr "Loading file: %s" + +msgid "The 3mf is not from Bambu Lab, load geometry data only." +msgstr "" + +msgid "Load 3mf" +msgstr "" + +msgid "The Config can not be loaded." +msgstr "" + +msgid "The 3mf is generated by old Bambu Studio, load geometry data only." +msgstr "" + +#, c-format, boost-format +msgid "" +"The 3mf's version %s is newer than %s's version %s, Found following keys " +"unrecognized:" +msgstr "" + +msgid "You'd better upgrade your software.\n" +msgstr "You should update your software.\n" + +msgid "Newer 3mf version" +msgstr "Newer 3mf version" + +#, c-format, boost-format +msgid "" +"The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " +"software." +msgstr "" + +msgid "The 3mf is not compatible, load geometry data only!" +msgstr "" + +msgid "Incompatible 3mf" +msgstr "Incompatible 3mf" + +msgid "Name of components inside step file is not UTF8 format!" +msgstr "Component name(s) inside step file not in UTF8 format!" + +msgid "The name may show garbage characters!" +msgstr "Because of unsupported text encoding, garbage characters may appear!" + +msgid "Attention!" +msgstr "Attenzione!" + +#, boost-format +msgid "Failed loading file \"%1%\". An invalid configuration was found." +msgstr "Failed loading file \"%1%\". An invalid configuration was found." + +msgid "Objects with zero volume removed" +msgstr "Objects with zero volume removed" + +msgid "The volume of the object is zero" +msgstr "The volume of the object is zero" + +#, c-format, boost-format +msgid "" +"The object from file %s is too small, and maybe in meters or inches.\n" +" Do you want to scale to millimeters?" +msgstr "" +"The object from file %s is too small, and may be in meters or inches.\n" +" Do you want to scale to millimeters?" + +msgid "Object too small" +msgstr "Object too small" + +msgid "" +"This file contains several objects positioned at multiple heights.\n" +"Instead of considering them as multiple objects, should \n" +"the file be loaded as a single object having multiple parts?" +msgstr "" + +msgid "Multi-part object detected" +msgstr "" + +msgid "Load these files as a single object with multiple parts?\n" +msgstr "Load these files as a single object with multiple parts?\n" + +msgid "Object with multiple parts was detected" +msgstr "An object with multiple parts was detected" + +msgid "The file does not contain any geometry data." +msgstr "The file does not contain any geometry data." + +msgid "" +"Your object appears to be too large, Do you want to scale it down to fit the " +"heat bed automatically?" +msgstr "" + +msgid "Object too large" +msgstr "" + +msgid "Export STL file:" +msgstr "Esporta file STL:" + +msgid "Save file as:" +msgstr "Salva come:" + +msgid "The selected object couldn't be split." +msgstr "The selected object couldn't be split." + +msgid "Another export job is running." +msgstr "Another export job is running." + +msgid "Select a new file" +msgstr "" + +msgid "File for the replace wasn't selected" +msgstr "" + +msgid "Error during replace" +msgstr "" + +msgid "Please select a file" +msgstr "Please select a file" + +msgid "Slicing" +msgstr "Slicing" + +msgid "There are warnings after slicing models:" +msgstr "There are warnings after slicing models:" + +msgid "warnings" +msgstr "warnings" + +msgid "Invalid data" +msgstr "Dati non validi" + +msgid "Slicing Canceled" +msgstr "" + +#, c-format, boost-format +msgid "Slicing Plate %d" +msgstr "Slicing Plate %d" + +msgid "Please resolve the slicing errors and publish again." +msgstr "Please resolve the slicing errors and publish again." + +msgid "" +"Network Plug-in is not detected. Network related features are unavailable." +msgstr "" + +msgid "" +"Preview only mode:\n" +"The loaded file contains gcode only, Can not enter the Prepare page" +msgstr "" + +msgid "You can keep the modified presets to the new project or discard them" +msgstr "You can keep the modified presets for the new project or discard them" + +msgid "Creating a new project" +msgstr "Creazione nuovo progetto" + +msgid "Load project" +msgstr "Load project" + +msgid "" +"Failed to save the project.\n" +"Please check whether the folder exists online or if other programs open the " +"project file." +msgstr "" + +msgid "Save project" +msgstr "" + +msgid "Importing Model" +msgstr "" + +msgid "prepare 3mf file..." +msgstr "" + +msgid "downloading project ..." +msgstr "" + +#, c-format, boost-format +msgid "Project downloaded %d%%" +msgstr "" + +msgid "The selected file" +msgstr "Il file selezionato" + +msgid "does not contain valid gcode." +msgstr "non contiene un g-code valido." + +msgid "Error occurs while loading G-code file" +msgstr "An Error has occurred while loading the G-code file." + +msgid "Drop project file" +msgstr "Drop project file" + +msgid "Please select an action" +msgstr "Please select an action" + +msgid "Open as project" +msgstr "Apri come progetto" + +msgid "Import geometry only" +msgstr "Importa solo la geometria" + +msgid "Only one G-code file can be opened at the same time." +msgstr "Only one G-code file can be opened at a time." + +msgid "G-code loading" +msgstr "G-code loading" + +msgid "G-code files can not be loaded with models together!" +msgstr "G-code files and models cannot be loaded together!" + +msgid "Can not add models when in preview mode!" +msgstr "Unable to add models in preview mode" + +msgid "Add Models" +msgstr "Add Models" + +msgid "All objects will be removed, continue?" +msgstr "Saranno rimossi tutti gli oggetti, continuare?" + +msgid "The current project has unsaved changes, save it before continue?" +msgstr "" +"The current project has unsaved changes. Would you like to save before " +"continuing?" + +msgid "Save" +msgstr "Salva" + +msgid "Number of copies:" +msgstr "Number of copies:" + +msgid "Copies of the selected object" +msgstr "Copie dell'oggetto selezionato" + +msgid "Save G-code file as:" +msgstr "Salva il file G-code come:" + +msgid "Save Sliced file as:" +msgstr "Save Sliced file as:" + +#, c-format, boost-format +msgid "" +"The file %s has been sent to the printer's storage space and can be viewed " +"on the printer." +msgstr "" + +msgid "" +"Print By Object: \n" +"Suggest to use auto-arrange to avoid collisions when printing." +msgstr "" +"Print By Object: \n" +"We suggest using auto-arrange to avoid collisions when printing." + +msgid "Send G-code" +msgstr "Invia G-code" + +msgid "Send to printer" +msgstr "Manda alla stampante" + +msgid "Custom supports and color painting were removed before repairing." +msgstr "Custom supports and color painting were removed before repairing." + +msgid "Invalid number" +msgstr "Invalid number" + +msgid "Select Bed Type" +msgstr "" + +#, boost-format +msgid "Part name: %1%\n" +msgstr "Part name: %1%\n" + +#, boost-format +msgid "Object name: %1%\n" +msgstr "Object name: %1%\n" + +#, boost-format +msgid "Size: %1% x %2% x %3% in\n" +msgstr "Size: %1% x %2% x %3% in\n" + +#, boost-format +msgid "Size: %1% x %2% x %3% mm\n" +msgstr "Size: %1% x %2% x %3% mm\n" + +#, boost-format +msgid "Volume: %1% in³\n" +msgstr "Volume: %1% in³\n" + +#, boost-format +msgid "Volume: %1% mm³\n" +msgstr "Volume: %1% mm³\n" + +#, boost-format +msgid "Triangles: %1%\n" +msgstr "Triangles: %1%\n" + +msgid "Tips:" +msgstr "" + +msgid "" +"\"Fix Model\" feature is currently only on Windows. Please repair the model " +"on Bambu Studio(windows) or CAD softwares." +msgstr "" + +#, c-format, boost-format +msgid "Plate %d: %s does not support filament %s (%s)." +msgstr "" + +msgid "Switching the language requires application restart.\n" +msgstr "Switching languages requires the application to restart.\n" + +msgid "Do you want to continue?" +msgstr "Do you want to continue?" + +msgid "Language selection" +msgstr "Selezione lingua" + +msgid "Switching application language while some presets are modified." +msgstr "Switching application language while some presets are modified." + +msgid "Changing application language" +msgstr "Changing application language" + +msgid "Changing the region will log out your account.\n" +msgstr "Changing the region will log you out of your account.\n" + +msgid "Region selection" +msgstr "Region selection" + +msgid "Second" +msgstr "Second" + +msgid "Browse" +msgstr "" + +msgid "Choose Download Directory" +msgstr "" + +msgid "General Settings" +msgstr "General Settings" + +msgid "Asia-Pacific" +msgstr "Asia-Pacific" + +msgid "China" +msgstr "China" + +msgid "Europe" +msgstr "Europe" + +msgid "North America" +msgstr "North America" + +msgid "Others" +msgstr "Others" + +msgid "Login Region" +msgstr "Login Region" + +msgid "Metric" +msgstr "Metric" + +msgid "Imperial" +msgstr "Imperial" + +msgid "Units" +msgstr "Units" + +msgid "Show \"Tip of the day\" notification after start" +msgstr "" + +msgid "If enabled, useful hints are displayed at startup." +msgstr "" + +msgid "User sync" +msgstr "User sync" + +msgid "Auto sync user presets(Printer/Filament/Process)" +msgstr "Auto sync user presets (Printer/Filament/Process)" + +msgid "User Sync" +msgstr "User Sync" + +msgid "Associate files to BambuStudio" +msgstr "Associate files to Bambu Studio" + +msgid "Associate .3mf files to BambuStudio" +msgstr "Associate .3mf files to Bambu Studio" + +msgid "If enabled, sets BambuStudio as default application to open .3mf files" +msgstr "" +"If enabled, this sets Bambu Studio as the default application to open .3mf " +"files." + +msgid "Associate .stl files to BambuStudio" +msgstr "Associate .stl files to Bambu Studio" + +msgid "If enabled, sets BambuStudio as default application to open .stl files" +msgstr "" +"If enabled, this sets Bambu Studio as the default application to open .stl " +"files." + +msgid "Associate .step/.stp files to BambuStudio" +msgstr "Associate .step/.stp files to Bambu Studio" + +msgid "If enabled, sets BambuStudio as default application to open .step files" +msgstr "" +"If enabled, this sets Bambu Studio as the default application to open .step " +"files." + +msgid "Backup" +msgstr "Backup" + +msgid "Auto-Backup" +msgstr "Auto-Backup" + +msgid "Backup interval" +msgstr "Backup interval" + +msgid "Downloads" +msgstr "" + +msgid "Dark Mode" +msgstr "" + +msgid "Enable Dark mode" +msgstr "" + +msgid "Home page and daily tips" +msgstr "Home page and daily tips" + +msgid "Show home page on startup" +msgstr "Show home page on startup" + +msgid "Sync settings" +msgstr "Sync settings" + +msgid "Preset sync" +msgstr "Preset sync" + +msgid "Preferences sync" +msgstr "Preferences sync" + +msgid "View control settings" +msgstr "View control settings" + +msgid "Rotate of view" +msgstr "Rotate View" + +msgid "Move of view" +msgstr "Pan View" + +msgid "Zoom of view" +msgstr "Zoom View" + +msgid "Other" +msgstr "Altro" + +msgid "Mouse wheel reverses when zooming" +msgstr "Reverse scroll direction while zooming" + +msgid "Develop mode" +msgstr "Developer mode" + +msgid "Dump video" +msgstr "Dump video" + +msgid "Log Level" +msgstr "Log Level" + +msgid "fatal" +msgstr "fatal" + +msgid "error" +msgstr "error" + +msgid "warning" +msgstr "warning" + +msgid "info" +msgstr "info" + +msgid "debug" +msgstr "debug" + +msgid "trace" +msgstr "trace" + +msgid "Host Setting" +msgstr "Host Setting" + +msgid "DEV host: api-dev.bambu-lab.com/v1" +msgstr "DEV host: api-dev.bambu-lab.com/v1" + +msgid "QA host: api-qa.bambu-lab.com/v1" +msgstr "QA host: api-qa.bambu-lab.com/v1" + +msgid "PRE host: api-pre.bambu-lab.com/v1" +msgstr "PRE host: api-pre.bambu-lab.com/v1" + +msgid "Product host" +msgstr "Product host" + +msgid "debug save button" +msgstr "Debug save button" + +msgid "save debug settings" +msgstr "save debug settings" + +msgid "DEBUG settings have saved successfully!" +msgstr "Debug settings have been saved successfully!" + +msgid "Switch cloud environment, Please login again!" +msgstr "" + +msgid "System presets" +msgstr "Preset di sistema" + +msgid "User presets" +msgstr "Preset utente" + +msgid "Incompatible presets" +msgstr "Preset incompatibili" + +msgid "AMS filaments" +msgstr "AMS filament" + +msgid "Click to pick filament color" +msgstr "Click to select filament color" + +msgid "Add/Remove presets" +msgstr "Aggiungi/Rimuovi preset" + +msgid "Edit preset" +msgstr "Modifica preset" + +msgid "Project-inside presets" +msgstr "Project-inside presets" + +msgid "Add/Remove filaments" +msgstr "" + +msgid "Add/Remove materials" +msgstr "" + +msgid "Add/Remove printers" +msgstr "" + +msgid "Slice all plate to obtain time and filament estimation" +msgstr "Slice all plates to obtain time and filament estimation" + +msgid "Packing project data into 3mf file" +msgstr "Packing project data into 3mf file" + +msgid "Uploading 3mf" +msgstr "Uploading 3mf" + +msgid "Jump to model publish web page" +msgstr "Jump to model publish web page" + +msgid "Note: The preparation may takes several minutes. Please be patiant." +msgstr "Note: The preparation may take several minutes. Please be patient." + +msgid "Publish" +msgstr "Publish" + +msgid "Publish was cancelled" +msgstr "Publish was cancelled" + +msgid "Slicing Plate 1" +msgstr "Slicing Plate 1" + +msgid "Packing data to 3mf" +msgstr "Packing data to 3mf" + +msgid "Jump to webpage" +msgstr "Jump to webpage" + +#, c-format, boost-format +msgid "Save %s as" +msgstr "Save %s as" + +msgid "User Preset" +msgstr "User Preset" + +msgid "Project Inside Preset" +msgstr "Project Inside Preset" + +msgid "Name is invalid;" +msgstr "Name is invalid;" + +msgid "illegal characters:" +msgstr "Illegal characters:" + +msgid "illegal suffix:" +msgstr "Illegal suffix:" + +msgid "Name is unavailable." +msgstr "Name is unavailable." + +msgid "Overwrite a system profile is not allowed" +msgstr "Overwriting a system profile is not allowed." + +#, boost-format +msgid "Preset \"%1%\" already exists." +msgstr "Preset \"%1%\" already exists." + +#, boost-format +msgid "Preset \"%1%\" already exists and is incompatible with current printer." +msgstr "" +"Preset \"%1%\" already exists and is incompatible with the current printer." + +msgid "Please note that saving action will replace this preset" +msgstr "Please note that saving will overwrite the current preset." + +msgid "The name is not allowed to be empty." +msgstr "The name field is not allowed to be empty." + +msgid "The name is not allowed to start with space character." +msgstr "The name is not allowed to start with a space." + +msgid "The name is not allowed to end with space character." +msgstr "The name is not allowed to end with a space." + +msgid "The name cannot be the same as a preset alias name." +msgstr "Il nome non può essere uguale a quello di un preset." + +msgid "Save preset" +msgstr "Salva preset" + +msgctxt "PresetName" +msgid "Copy" +msgstr "Copia" + +#, boost-format +msgid "Printer \"%1%\" is selected with preset \"%2%\"" +msgstr "Printer \"%1%\" is selected with preset \"%2%\"" + +#, boost-format +msgid "Please choose an action with \"%1%\" preset after saving." +msgstr "Please choose an action with \"%1%\" preset after saving." + +#, boost-format +msgid "For \"%1%\", change \"%2%\" to \"%3%\" " +msgstr "For \"%1%\", change \"%2%\" to \"%3%\" " + +#, boost-format +msgid "For \"%1%\", add \"%2%\" as a new preset" +msgstr "For \"%1%\", add \"%2%\" as a new preset" + +#, boost-format +msgid "Simply switch to \"%1%\"" +msgstr "Simply switch to \"%1%\"" + +msgid "Online" +msgstr "Online" + +msgid "Offline" +msgstr "Offline" + +msgid "My Device" +msgstr "My Device" + +msgid "Other Device" +msgstr "Other Device" + +msgid "Input access code" +msgstr "Input access code" + +msgid "Can't find my devices?" +msgstr "" + +msgid "Log out successful." +msgstr "Log out successful." + +msgid "Busy" +msgstr "Busy" + +msgid "Bambu Cool Plate" +msgstr "Bambu Cool Plate" + +msgid "Bamabu Engineering Plate" +msgstr "Bambu Engineering Plate" + +msgid "Bamabu High Temperature Plate" +msgstr "Bambu High Temperature Plate" + +msgid "Send print job to" +msgstr "Send print job to" + +msgid "Refresh" +msgstr "Refresh" + +msgid "Bed Leveling" +msgstr "Bed leveling" + +msgid "Flow Calibration" +msgstr "Flow calibration" + +msgid "send completed" +msgstr "Send complete" + +msgid "No login account, only printers in LAN mode are displayed" +msgstr "No login account, only printers in LAN mode are displayed" + +msgid "Connecting to server" +msgstr "Connecting to server" + +msgid "Synchronizing device information" +msgstr "Synchronizing device information" + +msgid "Synchronizing device information time out" +msgstr "Synchronizing device information timed out" + +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 "" +"The printer is executing instructions. Please restart printing after it ends" + +msgid "The printer is busy on other print job" +msgstr "The printer is busy with another print job." + +#, c-format, boost-format +msgid "" +"Filament %s exceeds the number of AMS slots. Please update the printer " +"firmware to support AMS slot assignment." +msgstr "" + +msgid "" +"Filament exceeds the number of AMS slots. Please update the printer firmware " +"to support AMS slot assignment." +msgstr "" + +msgid "" +"Filaments to AMS slots mappings have been established. You can click a " +"filament above to change its mapping AMS slot" +msgstr "" +"Filaments to AMS slots mappings have been established. You can click a " +"filament above to change its mapping AMS slot" + +msgid "" +"Please click each filament above to specify its mapping AMS slot before " +"sending the print job" +msgstr "" +"Please click each filament above to specify its mapping AMS slot before " +"sending the print job" + +#, c-format, boost-format +msgid "" +"Filament %s does not match the filament in AMS slot %s. Please update the " +"printer firmware to support AMS slot assignment." +msgstr "" + +msgid "" +"Filament does not match the filament in AMS slot. Please update the printer " +"firmware to support AMS slot assignment." +msgstr "" + +msgid "" +"The printer firmware only supports sequential mapping of filament => AMS " +"slot." +msgstr "" + +msgid "An SD card needs to be inserted before printing." +msgstr "" + +msgid "An SD card needs to be inserted to record timelapse." +msgstr "" + +msgid "" +"Cannot send the print job to a printer whose firmware is required to get " +"updated." +msgstr "" + +msgid "Cannot send the print job for empty plate" +msgstr "" + +msgid "Errors" +msgstr "" + +msgid "" +"Please check the following infomation and click Confirm to continue sending " +"print:" +msgstr "" + +msgid "" +"The printer type used to generate G-code is not the same type as the " +"currently selected physical printer. It is recommend to re-slice by " +"selecting the same printer type." +msgstr "" + +#, c-format, boost-format +msgid "The %s filament is too soft to be used with the AMS" +msgstr "" + +msgid "" +"There are some unknown filaments in the AMS mappings. Please check whether " +"they are the required filaments. If they are okay, press \"Confirm\" to " +"start printing." +msgstr "" + +msgid "Preparing print job" +msgstr "Preparing print job" + +msgid "Modifying the device name" +msgstr "Modifying the device name" + +msgid "Send to Printer SD card" +msgstr "" + +msgid "Cannot send the print task when the upgrade is in progress" +msgstr "Cannot send print tasks when an update is in progress" + +msgid "The printer is required to be in the same LAN as Bambu Studio." +msgstr "" + +msgid "The printer does not support sending to printer SD card." +msgstr "" + +msgid "Same as Global Bed Type" +msgstr "" + +msgid "Cool Plate" +msgstr "Cool Plate" + +msgid "Engineering Plate" +msgstr "Engineering Plate" + +msgid "High Temp Plate" +msgstr "High Temp Plate" + +msgid "Textured PEI Plate" +msgstr "" + +msgid "Log in printer" +msgstr "Log in printer" + +msgid "Would you like to log in this printer with current account?" +msgstr "Would you like to log in this printer with the current account?" + +msgid "Log in successful." +msgstr "Log in successful." + +msgid "Log out printer" +msgstr "Log out printer" + +msgid "Would you like to log out the printer?" +msgstr "Would you like to log out the printer?" + +msgid "Please log in first." +msgstr "Please log in first." + +msgid "There was a problem connecting to the printer. Please try again." +msgstr "There was a problem connecting to the printer. Please try again." + +msgid "Failed to log out." +msgstr "Failed to log out." + +#. TRN "Save current Settings" +#, c-format, boost-format +msgid "Save current %s" +msgstr "Salva le %s attuali" + +msgid "Delete this preset" +msgstr "Elimina questo preset" + +msgid "Search in preset" +msgstr "" + +msgid "Click to reset all settings to the last saved preset." +msgstr "" + +msgid "" +"Prime tower is required for smooth timeplase. There may be flaws on the " +"model without prime tower. Are you sure you want to disable prime tower?" +msgstr "" + +msgid "" +"Prime tower is required for smooth timelapse. There may be flaws on the " +"model without prime tower. Do you want to enable prime tower?" +msgstr "" + +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls." +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" + +msgid "" +"When using support material for the support interface, We recommand the " +"following settings:\n" +"0 top distance, 0 interface spacing, concentric pattern." +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\"." +msgstr "" + +msgid "Line width" +msgstr "Line width" + +msgid "Seam" +msgstr "Seam" + +msgid "Precision" +msgstr "Precision" + +msgid "Wall generator" +msgstr "" + +msgid "Walls" +msgstr "Walls" + +msgid "Top/bottom shells" +msgstr "Top/bottom shells" + +msgid "Initial layer speed" +msgstr "First layer speed" + +msgid "Other layers speed" +msgstr "Other layers speed" + +msgid "Overhang speed" +msgstr "Overhang speed" + +msgid "" +"This is the speed for various overhang degrees. Overhang degrees are " +"expressed as a percentage of line width. 0 speed means no slowing down for " +"the overhang degree range and wall speed is used" +msgstr "" +"This is the speed for various overhang degrees. Overhang degrees are " +"expressed as a percentage of line width. 0 speed means no slowing down for " +"the overhang degree range and wall speed is used" + +msgid "Travel speed" +msgstr "Travel speed" + +msgid "Acceleration" +msgstr "Acceleration" + +msgid "Raft" +msgstr "" + +msgid "Support filament" +msgstr "Filament for Supports" + +msgid "Prime tower" +msgstr "Prime tower" + +msgid "Special mode" +msgstr "Special mode" + +msgid "G-code output" +msgstr "" + +msgid "Frequent" +msgstr "Frequent" + +#, c-format, boost-format +msgid "" +"Following line %s contains reserved keywords.\n" +"Please remove it, or will beat G-code visualization and printing time " +"estimation." +msgid_plural "" +"Following lines %s contain reserved keywords.\n" +"Please remove them, or will beat G-code visualization and printing time " +"estimation." +msgstr[0] "" +"Following line %s contains reserved keywords.\n" +"Please remove it, or G-code visualization and print time estimation will be " +"broken." +msgstr[1] "" +"Following lines %s contain reserved keywords.\n" +"Please remove them, or G-code visualization and print time estimation will " +"be broken." + +msgid "Reserved keywords found" +msgstr "Reserved keywords found" + +msgid "Setting Overrides" +msgstr "Setting Overrides" + +msgid "Retraction" +msgstr "Retrazione" + +msgid "Basic information" +msgstr "Basic information" + +msgid "Recommended nozzle temperature" +msgstr "Recommended nozzle temperature" + +msgid "Recommended nozzle temperature range of this filament. 0 means no set" +msgstr "Recommended nozzle temperature range of this filament. 0 means not set" + +msgid "Recommended temperature range" +msgstr "Recommended temperature range" + +msgid "Print temperature" +msgstr "Print temperature" + +msgid "Nozzle" +msgstr "Ugello" + +msgid "Nozzle temperature when printing" +msgstr "Nozzle temperature when printing" + +msgid "Cool plate" +msgstr "Cool plate" + +msgid "" +"Bed temperature when cool plate is installed. Value 0 means the filament " +"does not support to print on the Cool Plate" +msgstr "" +"This is the bed temperature when the cool plate is installed. A value of 0 " +"means the filament does not support printing on the Cool Plate." + +msgid "Engineering plate" +msgstr "Engineering plate" + +msgid "" +"Bed temperature when engineering plate is installed. Value 0 means the " +"filament does not support to print on the Engineering Plate" +msgstr "" +"This is the bed temperature when the engineering plate is installed. A value " +"of 0 means the filament does not support printing on the Engineering Plate." + +msgid "" +"Bed temperature when high temperature plate is installed. Value 0 means the " +"filament does not support to print on the High Temp Plate" +msgstr "" +"This is the bed temperature when the high temperature plate is installed. A " +"value of 0 means the filament does not support printing on the High Temp " +"Plate." + +msgid "" +"Bed temperature when Textured PEI Plate is installed. Value 0 means the " +"filament does not support to print on the Textured PEI Plate" +msgstr "" + +msgid "Volumetric speed limitation" +msgstr "Volumetric speed limitation" + +msgid "Cooling" +msgstr "Raffreddamento" + +msgid "Cooling for specific layer" +msgstr "Cooling for specific layer" + +msgid "Part cooling fan" +msgstr "Part cooling fan" + +msgid "Min fan speed threshold" +msgstr "Min fan speed threshold" + +msgid "" +"Part cooling fan speed will start to run at min speed when the estimated " +"layer time is no longer than the layer time in setting. When layer time is " +"shorter than threshold, fan speed is interpolated between the minimum and " +"maximum fan speed according to layer printing time" +msgstr "" +"The part cooling fan will run at the minimum fan speed when the estimated " +"layer time is longer than the threshold value. When the layer time is " +"shorter than the threshold, the fan speed will be interpolated between the " +"minimum and maximum fan speed according to layer printing time." + +msgid "Max fan speed threshold" +msgstr "Max fan speed threshold" + +msgid "" +"Part cooling fan speed will be max when the estimated layer time is shorter " +"than the setting value" +msgstr "" +"The part cooling fan will run at maximum speed when the estimated layer time " +"is shorter than the threshold value." + +msgid "Auxiliary part cooling fan" +msgstr "Auxiliary part cooling fan" + +msgid "Filament start G-code" +msgstr "Filament start G-code" + +msgid "Filament end G-code" +msgstr "Filament end G-code" + +msgid "Printable space" +msgstr "Printable space" + +msgid "Extruder Clearance" +msgstr "" + +msgid "Accessory" +msgstr "Accessory" + +msgid "Machine gcode" +msgstr "Machine G-code" + +msgid "Machine start G-code" +msgstr "Machine start G-code" + +msgid "Machine end G-code" +msgstr "Machine end G-code" + +msgid "Before layer change G-code" +msgstr "G-code prima del cambio layer" + +msgid "Layer change G-code" +msgstr "Layer change G-code" + +msgid "Change filament G-code" +msgstr "Change filament G-code" + +msgid "Pause G-code" +msgstr "Pause G-code" + +msgid "Template Custom G-code" +msgstr "" + +msgid "Motion ability" +msgstr "Motion ability" + +msgid "Normal" +msgstr "Normale" + +msgid "Speed limitation" +msgstr "Speed limitation" + +msgid "Acceleration limitation" +msgstr "Acceleration limitation" + +msgid "Jerk limitation" +msgstr "Jerk limitation" + +msgid "Layer height limits" +msgstr "Limiti altezza layer" + +msgid "Retraction when switching material" +msgstr "Retraction when switching material" + +msgid "Detached" +msgstr "Distaccato" + +msgid "Following preset will be deleted too." +msgid_plural "Following presets will be deleted too." +msgstr[0] "The following preset will be deleted too:" +msgstr[1] "The following presets will be deleted too:" + +#, boost-format +msgid "Are you sure to %1% the selected preset?" +msgstr "Are you sure you want to %1% the selected preset?" + +#. TRN Remove/Delete +#, boost-format +msgid "%1% Preset" +msgstr "%1% Preset" + +msgid "All" +msgstr "Tutto" + +msgid "Set" +msgstr "Imposta" + +msgid "Click to reset current value and attach to the global value." +msgstr "Click to reset current value and attach to the global value." + +msgid "Click to drop current modify and reset to saved value." +msgstr "Click to drop current modifications and reset to saved value." + +msgid "Process Settings" +msgstr "Process Settings" + +msgid "Undef" +msgstr "Undef" + +msgid "Unsaved Changes" +msgstr "Modifiche non salvate" + +msgid "Discard or Keep changes" +msgstr "Discard or keep changes" + +msgid "Old Value" +msgstr "Valore precedente" + +msgid "New Value" +msgstr "Nuovo valore" + +msgid "Transfer" +msgstr "Trasferisci" + +msgid "Don't save" +msgstr "Non salvare" + +msgid "Discard" +msgstr "Cancella" + +msgid "Click the right mouse button to display the full text." +msgstr "Click the right mouse button to display the full text." + +msgid "All changes will not be saved" +msgstr "No changes will be saved." + +msgid "All changes will be discarded." +msgstr "All changes will be discarded." + +msgid "Save the selected options." +msgstr "Salvare le opzioni selezionate." + +msgid "Keep the selected options." +msgstr "Keep the selected options." + +msgid "Transfer the selected options to the newly selected preset." +msgstr "Transfer the selected options to the newly selected preset." + +#, boost-format +msgid "" +"Save the selected options to preset \n" +"\"%1%\"." +msgstr "" +"Save the selected options to preset \n" +"\"%1%\"." + +#, boost-format +msgid "" +"Transfer the selected options to the newly selected preset \n" +"\"%1%\"." +msgstr "" +"Transfer the selected options to the newly selected preset \n" +"\"%1%\"." + +#, boost-format +msgid "Preset \"%1%\" contains the following unsaved changes:" +msgstr "Preset \"%1%\" contains the following unsaved changes:" + +#, boost-format +msgid "" +"Preset \"%1%\" is not compatible with the new printer profile and it " +"contains the following unsaved changes:" +msgstr "" +"Preset \"%1%\" is not compatible with the new printer profile and it " +"contains the following unsaved changes:" + +#, boost-format +msgid "" +"Preset \"%1%\" is not compatible with the new process profile and it " +"contains the following unsaved changes:" +msgstr "" +"Preset \"%1%\" is not compatible with the new process profile and it " +"contains the following unsaved changes:" + +#, boost-format +msgid "" +"You have changed some settings of preset \"%1%\". \n" +"Would you like to keep these changed settings (new value) after switching " +"preset?" +msgstr "" + +msgid "" +"You have changed some preset settings. \n" +"Would you like to keep these changed settings (new value) after switching " +"preset?" +msgstr "" + +msgid "Extruders count" +msgstr "Conteggio estrusori" + +msgid "General" +msgstr "Generale" + +msgid "Capabilities" +msgstr "Caratteristiche" + +msgid "" +"The P1P printer does not support smooth timelapse, use traditional timelapse " +"instead." +msgstr "" + +msgid "Show all presets (including incompatible)" +msgstr "" + +msgid "Add File" +msgstr "" + +msgid "Set as cover" +msgstr "Set as cover" + +msgid "Cover" +msgstr "Cover" + +#, boost-format +msgid "The name \"%1%\" already exists." +msgstr "The name \"%1%\" already exists." + +msgid "Basic Info" +msgstr "Basic Info" + +msgid "Pictures" +msgstr "Pictures" + +msgid "Bill of Materials" +msgstr "Bill of Materials" + +msgid "Assembly Guide" +msgstr "Assembly Guide" + +msgid "Choose files" +msgstr "Choose files" + +msgid "Author" +msgstr "" + +msgid "Model Name" +msgstr "Model Name" + +#, c-format, boost-format +msgid "%s Update" +msgstr "%s Update" + +msgid "A new version is available" +msgstr "A new version is available" + +msgid "Configuration update" +msgstr "Aggiornamento di configurazione" + +msgid "A new configuration package available, Do you want to install it?" +msgstr "A new configuration package is available. Do you want to install it?" + +msgid "Description:" +msgstr "Description:" + +msgid "Configuration incompatible" +msgstr "Configuration incompatible" + +msgid "the configuration package is incompatible with current application." +msgstr "" +"the configuration package is incompatible with the current application." + +#, 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 "" +"The configuration package is incompatible with the current application.\n" +"%s will update the configuration package to allow the application to start." + +#, c-format, boost-format +msgid "Exit %s" +msgstr "Chiudi %s" + +msgid "the Configuration package is incompatible with current APP." +msgstr "" +"The configuration package is incompatible with the current version of Bambu " +"Studio." + +msgid "Configuration updates" +msgstr "Aggiornamenti di configurazione" + +msgid "No updates available." +msgstr "No updates available." + +msgid "The configuration is up to date." +msgstr "The configuration is up to date." + +msgid "Flushing volumes for filament change" +msgstr "Flushing volumes for filament change" + +msgid "Auto-Calc" +msgstr "Auto-Calc" + +msgid "Flushing volume (mm³) for each filament pair." +msgstr "Flushing volume (mm³) for each filament pair." + +msgid "Multiplier" +msgstr "" + +msgid "Actual Volume = Flushing Volume * Multiplier" +msgstr "" + +#, c-format, boost-format +msgid "Suggestion: Actual Volume in range [%d, %d]" +msgstr "" + +#, c-format, boost-format +msgid "The multiplier should be in range [%.2f, %.2f]." +msgstr "" + +msgid "unloaded" +msgstr "scaricato" + +msgid "loaded" +msgstr "caricato" + +msgid "Filament #" +msgstr "Filament #" + +msgid "From" +msgstr "Da" + +msgid "To" +msgstr "To" + +msgid "Login" +msgstr "Login" + +msgid "The configuration package is changed in previous Config Guide" +msgstr "The configuration package is changed in previous Config Guide" + +msgid "Configuration package changed" +msgstr "Configuration package changed" + +msgid "Toolbar" +msgstr "Toolbar" + +msgid "Objects list" +msgstr "Objects list" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files." +msgstr "Import geometry data from STL/STEP/3MF/OBJ/AMF files." + +msgid "Copy to clipboard" +msgstr "Copia negli appunti" + +msgid "Paste from clipboard" +msgstr "Incolla dagli appunti" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Mostra elenco scorciatoie di tastiera" + +msgid "Global shortcuts" +msgstr "Global shortcuts" + +msgid "Rotate View" +msgstr "" + +msgid "Pan View" +msgstr "" + +msgid "Mouse wheel" +msgstr "" + +msgid "Zoom View" +msgstr "" + +msgid "" +"Auto orientates selected objects or all objects.If there are selected " +"objects, it just orientates the selected ones.Otherwise, it will orientates " +"all objects in the current disk." +msgstr "" +"This auto orients selected objects or all objects. If there are selected " +"objects, it just orients the selected ones. Otherwise, it will orient all " +"objects in the current plate." + +msgid "Collapse/Expand the sidebar" +msgstr "Riduci/Espandi barra laterale" + +msgid "⌘+Any arrow" +msgstr "" + +msgid "Movement in camera space" +msgstr "Movimento nello spazio della camera" + +msgid "⌥+Left mouse button" +msgstr "" + +msgid "Select a part" +msgstr "" + +msgid "⌘+Left mouse button" +msgstr "" + +msgid "Select multiple objects" +msgstr "Select multiple objects" + +msgid "Ctrl+Any arrow" +msgstr "" + +msgid "Alt+Left mouse button" +msgstr "" + +msgid "Ctrl+Left mouse button" +msgstr "" + +msgid "Shift+Left mouse button" +msgstr "" + +msgid "Select objects by rectangle" +msgstr "Select objects by rectangle" + +msgid "Arrow Up" +msgstr "Freccia Su" + +msgid "Move selection 10 mm in positive Y direction" +msgstr "Sposta selezione 10 mm in direzione Y positiva" + +msgid "Arrow Down" +msgstr "Freccia Giù" + +msgid "Move selection 10 mm in negative Y direction" +msgstr "Sposta selezione 10 mm in direzione Y negativa" + +msgid "Arrow Left" +msgstr "Freccia Sinistra" + +msgid "Move selection 10 mm in negative X direction" +msgstr "Sposta selezione 10 mm in direzione X negativa" + +msgid "Arrow Right" +msgstr "Freccia Destra" + +msgid "Move selection 10 mm in positive X direction" +msgstr "Sposta selezione 10 mm in direzione X positiva" + +msgid "Shift+Any arrow" +msgstr "" + +msgid "Movement step set to 1 mm" +msgstr "Passo movimento impostato a 1 mm" + +msgid "keyboard 1-9: set filament for object/part" +msgstr "Keyboard 1-9: set filament for object/part" + +msgid "Camera view - Default" +msgstr "Camera view - Default" + +msgid "Camera view - Top" +msgstr "Camera view - Top" + +msgid "Camera view - Bottom" +msgstr "Camera view - Bottom" + +msgid "Camera view - Front" +msgstr "Camera view - Front" + +msgid "Camera view - Behind" +msgstr "Camera view - Behind" + +msgid "Camera Angle - Left side" +msgstr "Camera Angle - Left side" + +msgid "Camera Angle - Right side" +msgstr "Camera Angle - Right side" + +msgid "Select all objects" +msgstr "Seleziona tutti gli oggetti" + +msgid "Gizmo move" +msgstr "" + +msgid "Gizmo scale" +msgstr "" + +msgid "Gizmo rotate" +msgstr "" + +msgid "Gizmo cut" +msgstr "" + +msgid "Gizmo Place face on bed" +msgstr "" + +msgid "Gizmo SLA support points" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "" + +msgid "Plater" +msgstr "Piano" + +msgid "Move: press to snap by 1mm" +msgstr "Move: press to snap by 1mm" + +msgid "⌘+Mouse wheel" +msgstr "" + +msgid "Support/Color Painting: adjust pen radius" +msgstr "Support/Color Painting: adjust pen radius" + +msgid "⌥+Mouse wheel" +msgstr "" + +msgid "Support/Color Painting: adjust section position" +msgstr "Support/Color Painting: adjust section position" + +msgid "Ctrl+Mouse wheel" +msgstr "" + +msgid "Alt+Mouse wheel" +msgstr "" + +msgid "Gizmo" +msgstr "Gizmo" + +msgid "Set extruder number for the objects and parts" +msgstr "Set extruder number for the objects and parts" + +msgid "Delete objects, parts, modifiers " +msgstr "Delete objects, parts, modifiers" + +msgid "Space" +msgstr "Space" + +msgid "Select the object/part and press space to change the name" +msgstr "Select the object/part and press space to change the name" + +msgid "Mouse click" +msgstr "Mouse click" + +msgid "Select the object/part and mouse click to change the name" +msgstr "Select the object/part and mouse click to change the name" + +msgid "Objects List" +msgstr "Elenco oggetti" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Cursore di scorrimento verticale - Solleva cursore attivo" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Cursore di scorrimento verticale - Abbassa cursore attivo" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "" +"Cursore di scorrimento orizzontale - Sposta a sinistra il cursore attivo" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Cursore di scorrimento orizzontale - Sposta a destra il cursore attivo" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "On/Off modalità un layer del cursore di scorrimento verticale" + +msgid "Move slider 5x faster" +msgstr "Move slider 5x faster" + +msgid "Shift+Mouse wheel" +msgstr "" + +msgid "Release Note" +msgstr "" + +#, c-format, boost-format +msgid "version %s update information :" +msgstr "" + +msgid "New version of Bambu Studio" +msgstr "New version of Bambu Studio" + +msgid "Don't remind me of this version again" +msgstr "" + +msgid "Model:" +msgstr "" + +msgid "Serial:" +msgstr "" + +msgid "Version:" +msgstr "" + +msgid "Update firmware" +msgstr "" + +msgid "Printing" +msgstr "" + +msgid "Idle" +msgstr "" + +msgid "Latest version" +msgstr "" + +msgid "Updating" +msgstr "" + +msgid "Updating failed" +msgstr "" + +msgid "Updating successful" +msgstr "" + +msgid "" +"Are you sure you want to update? This will take about 10 minutes. Do not " +"turn off the power while the printer is updating." +msgstr "" + +msgid "" +"An important update was detected and needs to be run before printing can " +"continue. Do you want to update now? You can also update later from 'Upgrade " +"firmware'." +msgstr "" + +msgid "" +"The firmware version is abnormal. Repairing and updating are required before " +"printing. Do you want to update now? You can also update later on printer or " +"update next time starting the studio." +msgstr "" + +msgid "Extension Board" +msgstr "" + +msgid "Saving objects into the 3mf failed." +msgstr "Saving objects into the 3mf failed." + +msgid "Only Windows 10 is supported." +msgstr "Only Windows 10 is supported." + +msgid "Failed to initialize the WinRT library." +msgstr "Failed to initialize the WinRT library." + +msgid "Exporting objects" +msgstr "Exporting objects" + +msgid "Failed loading objects." +msgstr "Failed loading objects." + +msgid "Repairing object by Windows service" +msgstr "Repairing object by Windows service" + +msgid "Repair failed." +msgstr "Repair failed." + +msgid "Loading repaired objects" +msgstr "Loading repaired objects" + +msgid "Exporting 3mf file failed" +msgstr "Exporting 3mf file failed" + +msgid "Import 3mf file failed" +msgstr "Import 3mf file failed" + +msgid "Repaired 3mf file does not contain any object" +msgstr "The repaired 3mf file does not contain any objects." + +msgid "Repaired 3mf file contains more than one object" +msgstr "The repaired 3mf file contains more than one object." + +msgid "Repaired 3mf file does not contain any volume" +msgstr "The repaired 3mf file does not contain any volume." + +msgid "Repaired 3mf file contains more than one volume" +msgstr "The repaired 3mf file contains more than one volume." + +msgid "Repair finished" +msgstr "Repair finished" + +msgid "Repair canceled" +msgstr "Repair canceled" + +#, boost-format +msgid "Copying of file %1% to %2% failed: %3%" +msgstr "Copia del file %1% su %2% non riuscita: %3%" + +#, boost-format +msgid "Copying directory %1% to %2% failed: %3%" +msgstr "Copying directory %1% to %2% failed: %3%" + +msgid "Need to check the unsaved changes before configuration updates." +msgstr "Please check any unsaved changes before updating the configuration." + +msgid "Configuration package updated to " +msgstr "Configuration package updated to " + +msgid "Open G-code file:" +msgstr "Apri un file G-code:" + +msgid "" +"One object has empty initial layer and can't be printed. Please Cut the " +"bottom or enable supports." +msgstr "" +"One object has empty initial layer and can't be printed. Please Cut the " +"bottom or enable supports." + +#, boost-format +msgid "Object can't be printed for empty layer between %1% and %2%." +msgstr "The object has empty layers between %1% and %2% and can’t be printed." + +#, boost-format +msgid "Object: %1%" +msgstr "Object: %1%" + +msgid "" +"Maybe parts of the object at these height are too thin, or the object has " +"faulty mesh" +msgstr "" +"Parts of the object at these heights may be too thin or the object may have " +"a faulty mesh." + +msgid "No object can be printed. Maybe too small" +msgstr "No object can be printed. It may be too small." + +msgid "" +"Failed to generate gcode for invalid custom G-code.\n" +"\n" +msgstr "" +"Failed to generate G-code for invalid custom G-code.\n" +"\n" + +msgid "Please check the custom G-code or use the default custom G-code." +msgstr "Please check the custom G-code or use the default custom G-code." + +#, boost-format +msgid "Generating G-code: layer %1%" +msgstr "Generating G-code: layer %1%" + +msgid "Inner wall" +msgstr "Inner wall" + +msgid "Outer wall" +msgstr "Outer wall" + +msgid "Overhang wall" +msgstr "Overhang wall" + +msgid "Sparse infill" +msgstr "Sparse infill" + +msgid "Internal solid infill" +msgstr "Internal solid infill" + +msgid "Top surface" +msgstr "Top surface" + +msgid "Bottom surface" +msgstr "Bottom surface" + +msgid "Bridge" +msgstr "Bridge" + +msgid "Gap infill" +msgstr "Gap infill" + +msgid "Support interface" +msgstr "Support interface" + +msgid "Support transition" +msgstr "Support transition" + +msgid "Multiple" +msgstr "Multiple" + +#, boost-format +msgid "Failed to calculate line width of %1%. Can not get value of \"%2%\" " +msgstr "Failed to calculate line width of %1%. Cannot get value of “%2%” " + +msgid "undefined error" +msgstr "errore non definito" + +msgid "too many files" +msgstr "troppi file" + +msgid "file too large" +msgstr "file troppo grande" + +msgid "unsupported method" +msgstr "metodo non supportato" + +msgid "unsupported encryption" +msgstr "criptaggio non supportato" + +msgid "unsupported feature" +msgstr "caratteristica non supportata" + +msgid "failed finding central directory" +msgstr "directory centrale non trovata" + +msgid "not a ZIP archive" +msgstr "non un archivio ZIP" + +msgid "invalid header or corrupted" +msgstr "invalid header or corrupted" + +msgid "unsupported multidisk" +msgstr "Saving to RAID is not supported." + +msgid "decompression failed" +msgstr "decompression failed" + +msgid "compression failed" +msgstr "compressione fallita" + +msgid "unexpected decompressed size" +msgstr "dimensione decompressa imprevista" + +msgid "CRC check failed" +msgstr "CRC check failed" + +msgid "unsupported central directory size" +msgstr "dimensione della directory centrale non supportata" + +msgid "allocation failed" +msgstr "allocazione fallita" + +msgid "file open failed" +msgstr "apertura file non riuscita" + +msgid "file create failed" +msgstr "generazione del file non riuscita" + +msgid "file write failed" +msgstr "scrittura file fallita" + +msgid "file read failed" +msgstr "lettura del file non riuscita" + +msgid "file close failed" +msgstr "chiusura del file fallita" + +msgid "file seek failed" +msgstr "ricerca file fallita" + +msgid "file stat failed" +msgstr "statistica file non riuscita" + +msgid "invalid parameter" +msgstr "parametro non valido" + +msgid "invalid filename" +msgstr "nome file non valido" + +msgid "buffer too small" +msgstr "buffer troppo piccolo" + +msgid "internal error" +msgstr "errore interno" + +msgid "file not found" +msgstr "file non trovato" + +msgid "archive too large" +msgstr "Archive too large" + +msgid "validation failed" +msgstr "convalida non riuscita" + +msgid "write callback failed" +msgstr "write callback failed" + +#, boost-format +msgid "" +"%1% is too close to exclusion area, there may be collisions when printing." +msgstr "" + +#, boost-format +msgid "%1% is too close to others, and collisions may be caused." +msgstr "%1% is too close to others, and collisions may be caused." + +#, boost-format +msgid "%1% is too tall, and collisions will be caused." +msgstr "%1% is too tall, and collisions will be caused." + +msgid " is too close to others, there may be collisions when printing." +msgstr "" + +msgid " is too close to exclusion area, there may be collisions when printing." +msgstr "" + +msgid "Prime Tower" +msgstr "Prime Tower" + +msgid " is too close to others, and collisions may be caused.\n" +msgstr " is too close to others, and collisions may be caused.\n" + +msgid " is too close to exclusion area, and collisions will be caused.\n" +msgstr " is too close to an exclusion area, and collisions will be caused.\n" + +msgid "" +"Can not print multiple filaments which have large difference of temperature " +"together. Otherwise, the extruder and nozzle may be blocked or damaged " +"during printing" +msgstr "" +"Unable to print multiple filaments which have large temperature differences " +"together. Otherwise, the extruder and nozzle may be blocked or damaged " +"during printing." + +msgid "No extrusions under current settings." +msgstr "No extrusions under current settings." + +msgid "" +"Smooth mode of timelapse is not supported when \"by object\" sequence is " +"enabled." +msgstr "" + +msgid "" +"Please select \"By object\" print sequence to print multiple objects in " +"spiral vase mode." +msgstr "" +"Please select \"By object\" print sequence to print multiple objects in " +"spiral vase mode." + +msgid "" +"The spiral vase mode does not work when an object contains more than one " +"materials." +msgstr "" +"Spiral (vase) mode does not work when an object contains more than one " +"material." + +msgid "The prime tower is not supported in \"By object\" print." +msgstr "A prime tower is not supported in “By object” print." + +msgid "" +"The prime tower is not supported when adaptive layer height is on. It " +"requires that all objects have the same layer height." +msgstr "" +"A prime tower is not supported when adaptive layer height is on. It requires " +"that all objects have the same layer height." + +msgid "The prime tower requires \"support gap\" to be multiple of layer height" +msgstr "" +"A prime tower requires any “support gap” to be a multiple of layer height." + +msgid "The prime tower requires that all objects have the same layer heights" +msgstr "A prime tower requires that all objects have the same layer height." + +msgid "" +"The prime tower requires that all objects are printed over the same number " +"of raft layers" +msgstr "" +"A prime tower requires that all objects are printed over the same number of " +"raft layers." + +msgid "" +"The prime tower requires that all objects are sliced with the same layer " +"heights." +msgstr "" +"A prime tower requires that all objects are sliced with the same layer " +"height." + +msgid "" +"The prime tower is only supported if all objects have the same variable " +"layer height" +msgstr "" + +msgid "Too small line width" +msgstr "Line width too small" + +msgid "Too large line width" +msgstr "Line width too large" + +msgid "" +"The prime tower requires that support has the same layer height with object." +msgstr "" +"A prime tower requires that support has the same layer height as the object." + +msgid "" +"Support enforcers are used but support is not enabled. Please enable support." +msgstr "" +"Support enforcers are used but support is not enabled. Please enable support." + +msgid "Layer height cannot exceed nozzle diameter" +msgstr "Layer height cannot exceed nozzle diameter." + +#, c-format, boost-format +msgid "Plate %d: %s does not support filament %s" +msgstr "" + +msgid "Generating skirt & brim" +msgstr "Generating skirt & brim" + +msgid "Exporting G-code" +msgstr "Esportando il G-code" + +msgid "Generating G-code" +msgstr "Generazione G-code" + +msgid "Failed processing of the filename_format template." +msgstr "Processing of the filename_format template failed." + +msgid "Printable area" +msgstr "Printable area" + +msgid "Bed exclude area" +msgstr "Excluded bed area" + +msgid "" +"Unprintable area in XY plane. For example, X1 Series printers use the front " +"left corner to cut filament during filament change. The area is expressed as " +"polygon by points in following format: \"XxY, XxY, ...\"" +msgstr "" + +msgid "Bed custom texture" +msgstr "" + +msgid "Bed custom model" +msgstr "" + +msgid "Elephant foot compensation" +msgstr "Compensazione zampa d'elefante" + +msgid "" +"Shrink the initial layer on build plate to compensate for elephant foot " +"effect" +msgstr "" +"This shrinks the first layer on the build plate to compensate for elephant " +"foot effect." + +msgid "" +"Slicing height for each layer. Smaller layer height means more accurate and " +"more printing time" +msgstr "" +"This is the height for each layer. Smaller layer heights give greater " +"accuracy but longer printing time." + +msgid "Printable height" +msgstr "Printable height" + +msgid "Maximum printable height which is limited by mechanism of printer" +msgstr "" +"This is the maximum printable height which is limited by the height of the " +"build area." + +msgid "Printer preset names" +msgstr "Nomi dei preset della stampante" + +msgid "Hostname, IP or URL" +msgstr "" + +msgid "" +"Slic3r can upload G-code files to a printer host. This field should contain " +"the hostname, IP address or URL of the printer host instance. Print host " +"behind HAProxy with basic auth enabled can be accessed by putting the user " +"name and password into the URL in the following format: https://username:" +"password@your-octopi-address/" +msgstr "" + +msgid "API Key / Password" +msgstr "" + +msgid "" +"Slic3r can upload G-code files to a printer host. This field should contain " +"the API Key or the password required for authentication." +msgstr "" + +msgid "Name of the printer" +msgstr "" + +msgid "HTTPS CA File" +msgstr "" + +msgid "" +"Custom CA certificate file can be specified for HTTPS OctoPrint connections, " +"in crt/pem format. If left blank, the default OS CA certificate repository " +"is used." +msgstr "" + +msgid "User" +msgstr "" + +msgid "Password" +msgstr "" + +msgid "Ignore HTTPS certificate revocation checks" +msgstr "" + +msgid "" +"Ignore HTTPS certificate revocation checks in case of missing or offline " +"distribution points. One may want to enable this option for self signed " +"certificates if connection fails." +msgstr "" + +msgid "Names of presets related to the physical printer" +msgstr "" + +msgid "Authorization Type" +msgstr "" + +msgid "API key" +msgstr "" + +msgid "HTTP digest" +msgstr "" + +msgid "Avoid crossing wall" +msgstr "" + +msgid "Detour and avoid to travel across wall which may cause blob on surface" +msgstr "" +"This detours to avoid traveling across walls, which may cause blobs on the " +"surface" + +msgid "Avoid crossing wall - Max detour length" +msgstr "" + +msgid "" +"Maximum detour distance for avoiding crossing wall. Don't detour if the " +"detour distance is large than this value. Detour length could be specified " +"either as an absolute value or as percentage (for example 50%) of a direct " +"travel path. Zero to disable" +msgstr "" + +msgid "mm or %" +msgstr "" + +msgid "Other layers" +msgstr "Altri layer" + +msgid "" +"Bed temperature for layers except the initial one. Value 0 means the " +"filament does not support to print on the Cool Plate" +msgstr "" +"This is the bed temperature for layers except for the first one. A value of " +"0 means the filament does not support printing on the Cool Plate." + +msgid "°C" +msgstr "°C" + +msgid "Bed temperature" +msgstr "Temperatura piano" + +msgid "" +"Bed temperature for layers except the initial one. Value 0 means the " +"filament does not support to print on the Engineering Plate" +msgstr "" +"This is the bed temperature for layers except for the first one. A value of " +"0 means the filament does not support printing on the Engineering Plate." + +msgid "" +"Bed temperature for layers except the initial one. Value 0 means the " +"filament does not support to print on the High Temp Plate" +msgstr "" +"This is the bed temperature for layers except for the first one. A value of " +"0 means the filament does not support printing on the High Temp Plate." + +msgid "" +"Bed temperature for layers except the initial one. Value 0 means the " +"filament does not support to print on the Textured PEI Plate" +msgstr "" + +msgid "Initial layer" +msgstr "First layer" + +msgid "Initial layer bed temperature" +msgstr "First layer bed temperature" + +msgid "" +"Bed temperature of the initial layer. Value 0 means the filament does not " +"support to print on the Cool Plate" +msgstr "" +"This is the bed temperature of the first layer. A value of 0 means the " +"filament does not support printing on the Cool Plate." + +msgid "" +"Bed temperature of the initial layer. Value 0 means the filament does not " +"support to print on the Engineering Plate" +msgstr "" +"This is the bed temperature of the first layer. A value of 0 means the " +"filament does not support printing on the Engineering Plate." + +msgid "" +"Bed temperature of the initial layer. Value 0 means the filament does not " +"support to print on the High Temp Plate" +msgstr "" +"This is the bed temperature of the first layer. A value of 0 means the " +"filament does not support printing on the High Temp Plate." + +msgid "" +"Bed temperature of the initial layer. Value 0 means the filament does not " +"support to print on the Textured PEI Plate" +msgstr "" + +msgid "Bed types supported by the printer" +msgstr "Bed types supported by the printer" + +msgid "This G-code is inserted at every layer change before lifting z" +msgstr "This G-code is inserted at every layer change before lifting z." + +msgid "Bottom shell layers" +msgstr "Bottom shell layers" + +msgid "" +"This is the number of solid layers of bottom shell, including the bottom " +"surface layer. When the thickness calculated by this value is thinner than " +"bottom shell thickness, the bottom shell layers will be increased" +msgstr "" +"This is the number of solid layers of bottom shell, including the bottom " +"surface layer. When the thickness calculated by this value is thinner than " +"bottom shell thickness, the bottom shell layers will be increased" + +msgid "Bottom shell thickness" +msgstr "Bottom shell thickness" + +msgid "" +"The number of bottom solid layers is increased when slicing if the thickness " +"calculated by bottom shell layers is thinner than this value. This can avoid " +"having too thin shell when layer height is small. 0 means that this setting " +"is disabled and thickness of bottom shell is absolutely determained by " +"bottom shell layers" +msgstr "" +"The number of bottom solid layers is increased when slicing if the thickness " +"calculated by bottom shell layers is thinner than this value. This can avoid " +"having too thin a shell when layer height is small. 0 means that this " +"setting is disabled and the thickness of the bottom shell is determined " +"simply by the number of bottom shell layers." + +msgid "Force cooling for overhang and bridge" +msgstr "Force cooling for overhangs and bridges" + +msgid "" +"Enable this option to optimize part cooling fan speed for overhang and " +"bridge to get better cooling" +msgstr "" +"Enable this option to optimize the part cooling fan speed for overhangs and " +"bridges to get better cooling" + +msgid "Fan speed for overhang" +msgstr "Fan speed for overhangs" + +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 "" +"Force part cooling fan to be this speed when printing bridges or overhang " +"walls which have a large overhang degree. Forcing cooling for overhangs and " +"bridges can achieve better quality for these parts." + +msgid "Cooling overhang threshold" +msgstr "Cooling overhang threshold" + +#, c-format +msgid "" +"Force cooling fan to be specific speed when overhang degree of printed part " +"exceeds this value. Expressed as percentage which indicides 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 "" + +msgid "Bridge direction" +msgstr "" + +msgid "" +"Bridging angle override. If left to zero, the bridging angle will be " +"calculated automatically. Otherwise the provided angle will be used for " +"external bridges. Use 180°for zero angle." +msgstr "" + +msgid "Bridge flow" +msgstr "Bridge flow" + +msgid "" +"Decrease this value slightly(for example 0.9) to reduce the amount of " +"material for bridge, to improve sag" +msgstr "" +"Decrease this value slightly (for example 0.9) to reduce the amount of " +"material extruded for bridges to avoid sagging." + +msgid "Only one wall on top surfaces" +msgstr "Only one wall on top surfaces" + +msgid "" +"Use only one wall on flat top surface, to give more space to the top infill " +"pattern" +msgstr "" +"Use only one wall on flat top surfaces, to give more space to the top infill " +"pattern" + +msgid "Slow down for overhang" +msgstr "Slow down for overhangs" + +msgid "Enable this option to slow printing down for different overhang degree" +msgstr "" +"Enable this option to slow down when printing overhangs. The speeds for " +"different overhang percentages are set below." + +msgid "mm/s" +msgstr "mm/s" + +msgid "Speed of bridge and completely overhang wall" +msgstr "This is the speed for bridges and 100% overhang walls." + +msgid "Brim width" +msgstr "Larghezza brim" + +msgid "Distance from model to the outermost brim line" +msgstr "This is the distance from the model to the outermost brim line." + +msgid "Brim type" +msgstr "Tipo di brim" + +msgid "" +"This controls brim position including outer side of models, inner side of " +"holes or both. Auto means both the brim position and brim width is analysed " +"and calculated automatically" +msgstr "" +"This controls brim position including outer side of models, inner side of " +"holes, or both. Auto means both the brim position and brim width are " +"analyzed and calculated automatically." + +msgid "Brim-object gap" +msgstr "Brim-object gap" + +msgid "" +"A gap between innermost brim line and object can make brim be removed more " +"easily" +msgstr "" +"This creates a gap between the innermost brim line and the object and can " +"make the brim easier to remove." + +msgid "Compatible machine" +msgstr "Compatible machine" + +msgid "upward compatible machine" +msgstr "" + +msgid "Compatible machine condition" +msgstr "Compatible machine condition" + +msgid "Compatible process profiles" +msgstr "Compatible process profiles" + +msgid "Compatible process profiles condition" +msgstr "Compatible process profiles condition" + +msgid "Print sequence" +msgstr "Print sequence" + +msgid "Print sequence, layer by layer or object by object" +msgstr "" +"This determines the print sequence, allowing you to print layer-by-layer or " +"object-by-object." + +msgid "By layer" +msgstr "By layer" + +msgid "By object" +msgstr "By object" + +msgid "Slow printing down for better layer cooling" +msgstr "Slow printing down for better layer cooling" + +msgid "" +"Enable this option to slow printing speed down to make the final layer time " +"not shorter than the layer time threshold in \"Max fan speed threshold\", so " +"that layer can be cooled for longer time. This can improve the cooling " +"quality for needle and small details" +msgstr "" +"Enable this option to slow printing speed down to ensure that the final " +"layer time is not shorter than the layer time threshold in \"Max fan speed " +"threshold\", so that the layer can be cooled for a longer time. This can " +"improve the quality for small details." + +msgid "Normal printing" +msgstr "Normal printing" + +msgid "" +"The default acceleration of both normal printing and travel except initial " +"layer" +msgstr "" +"This is the default acceleration for both normal printing and travel after " +"the first layer." + +msgid "mm/s²" +msgstr "mm/s²" + +msgid "Default filament profile" +msgstr "Profilo filamento predefinito" + +msgid "Default filament profile when switch to this machine profile" +msgstr "Default filament profile when switching to this machine profile" + +msgid "Default process profile" +msgstr "Default process profile" + +msgid "Default process profile when switch to this machine profile" +msgstr "Default process profile when switching to this machine profile" + +msgid "No cooling for the first" +msgstr "No cooling for the first" + +msgid "" +"Close all cooling fan for the first certain layers. Cooling fan of the first " +"layer used to be closed to get better build plate adhesion" +msgstr "" +"Turn off all cooling fans for the first few layers. This can be used to " +"improve bed adhesion." + +msgid "layers" +msgstr "layer" + +msgid "Don't support bridges" +msgstr "Non supportare i bridge" + +msgid "" +"Don't support the whole bridge area which make support very large. Bridge " +"usually can be printing directly without support if not very long" +msgstr "" +"This disables supporting bridges, which decreases the amount of support " +"required. Bridges can usually be printed directly without support over a " +"reasonable distance." + +msgid "Thick bridges" +msgstr "" + +msgid "" +"If enabled, bridges are more reliable, can bridge longer distances, but may " +"look worse. If disabled, bridges look better but are reliable just for " +"shorter bridged distances." +msgstr "" + +msgid "Max bridge length" +msgstr "Lunghezza massima Bridge" + +msgid "" +"Max length of bridges that don't need support. Set it to 0 if you want all " +"bridges to be supported, and set it to a very large value if you don't want " +"any bridges to be supported." +msgstr "" +"This is the maximum length of bridges that don't need support. Set it to 0 " +"if you want all bridges to be supported, and set it to a very large value if " +"you don't want any bridges to be supported." + +msgid "End G-code" +msgstr "G-code finale" + +msgid "End G-code when finish the whole printing" +msgstr "Add end G-Code when finishing the entire print." + +msgid "End G-code when finish the printing of this filament" +msgstr "Add end G-code when finishing the printing of this filament." + +msgid "Ensure vertical shell thickness" +msgstr "" + +msgid "" +"Add solid infill near sloping surfaces to guarantee the vertical shell " +"thickness (top+bottom solid layers)" +msgstr "" + +msgid "Internal bridge support thickness" +msgstr "" + +msgid "" +"If enabled, Studio will generate support loops under the contours of " +"internal bridges.These support loops could prevent internal bridges from " +"extruding over the air and improve the top surface quality, especially when " +"the sparse infill density is low.This value determines the thickness of the " +"support loops. 0 means disable this feature" +msgstr "" + +msgid "Top surface pattern" +msgstr "Top surface pattern" + +msgid "Line pattern of top surface infill" +msgstr "This is the line pattern for top surface infill." + +msgid "Concentric" +msgstr "Concentrico" + +msgid "Rectilinear" +msgstr "Rettilineo" + +msgid "Monotonic" +msgstr "Monotonico" + +msgid "Monotonic line" +msgstr "Monotonic line" + +msgid "Aligned Rectilinear" +msgstr "" + +msgid "Hilbert Curve" +msgstr "" + +msgid "Archimedean Chords" +msgstr "" + +msgid "Octagram Spiral" +msgstr "" + +msgid "Bottom surface pattern" +msgstr "Bottom surface pattern" + +msgid "Line pattern of bottom surface infill, not bridge infill" +msgstr "" +"This is the line pattern of bottom surface infill, not including bridge " +"infill." + +msgid "Line width of outer wall" +msgstr "Line width of outer wall" + +msgid "" +"Speed of outer wall which is outermost and visible. It's used to be slower " +"than inner wall speed to get better quality." +msgstr "" +"This is the printing speed for the outer walls of parts. These are generally " +"printed slower than inner walls for higher quality." + +msgid "Order of inner wall/outer wall/infil" +msgstr "Order of inner wall/outer wall/infill" + +msgid "Print sequence of inner wall, outer wall and infill. " +msgstr "This is the print sequence of inner walls, outer walls, and infill." + +msgid "inner/outer/infill" +msgstr "inner/outer/infill" + +msgid "outer/inner/infill" +msgstr "outer/inner/infill" + +msgid "infill/inner/outer" +msgstr "infill/inner/outer" + +msgid "infill/outer/inner" +msgstr "infill/outer/inner" + +msgid "Height to rod" +msgstr "Height to rod" + +msgid "" +"Distance of the nozzle tip to the lower rod. Used for collision avoidance in " +"by-object printing." +msgstr "" + +msgid "Height to lid" +msgstr "Height to lid" + +msgid "" +"Distance of the nozzle tip to the lid. Used for collision avoidance in by-" +"object printing." +msgstr "" + +msgid "" +"Clearance radius around extruder. Used for collision avoidance in by-object " +"printing." +msgstr "" + +msgid "Max Radius" +msgstr "" + +msgid "" +"Max clearance radius around extruder. Used for collision avoidance in by-" +"object printing." +msgstr "" + +msgid "Extruder Color" +msgstr "Colore estrusore" + +msgid "Only used as a visual help on UI" +msgstr "Only used as a visual help on UI" + +msgid "Extruder offset" +msgstr "Offset estrusore" + +msgid "Flow ratio" +msgstr "Flow ratio" + +msgid "" +"The material may have volumetric change after switching between molten state " +"and crystalline state. This setting changes all extrusion flow of this " +"filament in gcode proportionally. Recommended value range is between 0.95 " +"and 1.05. Maybe you can tune this value to get nice flat surface when there " +"has slight overflow or underflow" +msgstr "" +"The material may have volumetric change after switching between molten and " +"crystalline states. This setting changes all extrusion flow of this filament " +"in G-code proportionally. The recommended value range is between 0.95 and " +"1.05. You may be able to tune this value to get a nice flat surface if there " +"is slight overflow or underflow." + +msgid "Default line width if some line width is set to be zero" +msgstr "Default line width for line widths set to 0" + +msgid "Keep fan always on" +msgstr "Mantieni la ventola sempre accesa" + +msgid "" +"If enable this setting, part cooling fan will never be stoped and will run " +"at least at minimum speed to reduce the frequency of starting and stoping" +msgstr "" +"Enabling this setting means that part cooling fan will never stop entirely " +"and will instead run at least at minimum speed to reduce the frequency of " +"starting and stopping." + +msgid "Layer time" +msgstr "Layer time" + +msgid "" +"Part cooling fan will be enabled for layers of which estimated time is " +"shorter than this value. Fan speed is interpolated between the minimum and " +"maximum fan speeds according to layer printing time" +msgstr "" +"The part cooling fan will be enabled for layers where the estimated time is " +"shorter than this value. Fan speed is interpolated between the minimum and " +"maximum fan speeds according to layer printing time." + +msgid "s" +msgstr "s" + +msgid "Default color" +msgstr "" + +msgid "Default filament color" +msgstr "" + +msgid "Color" +msgstr "Colore" + +msgid "Required nozzle HRC" +msgstr "" + +msgid "" +"Minimum HRC of nozzle required to print the filament. Zero means no checking " +"of nozzle's HRC." +msgstr "" + +msgid "Max volumetric speed" +msgstr "Massima velocità volumetrica" + +msgid "" +"This setting stands for how much volume of filament can be melted and " +"extruded per second. Printing speed is limited by max volumetric speed, in " +"case of too high and unreasonable speed setting. Can't be zero" +msgstr "" + +msgid "mm³/s" +msgstr "mm³/s" + +msgid "Minimal purge on wipe tower" +msgstr "Spurgo minimo sulla torre di pulitura" + +msgid "mm³" +msgstr "mm³" + +msgid "Filament load time" +msgstr "Durata caricamento filamento" + +msgid "Time to load new filament when switch filament. For statistics only" +msgstr "" +"Time to load new filament when switching filament, for statistical purposes " +"only." + +msgid "Filament unload time" +msgstr "Durata scaricamento filamento" + +msgid "Time to unload old filament when switch filament. For statistics only" +msgstr "" +"Time to unload old filament when switching filament, for statistical " +"purposes only." + +msgid "" +"Filament diameter is used to calculate extrusion in gcode, so it's important " +"and should be accurate" +msgstr "" +"Filament diameter is used to calculate extrusion variables in G-code, so it " +"is important that this is accurate and precise." + +msgid "Density" +msgstr "Densità" + +msgid "Filament density. For statistics only" +msgstr "Filament density, for statistical purposes only." + +msgid "g/cm³" +msgstr "g/cm³" + +msgid "Type" +msgstr "Type" + +msgid "The material type of filament" +msgstr "Filament material type" + +msgid "Soluble material" +msgstr "Materiale solubile" + +msgid "" +"Soluble material is commonly used to print support and support interface" +msgstr "" +"Soluble material is commonly used to print support and support interfaces" + +msgid "Support material" +msgstr "Materiale di supporto" + +msgid "" +"Support material is commonly used to print support and support interface" +msgstr "" +"Support material is commonly used to print support and support interfaces." + +msgid "Temperature of vitrificaiton" +msgstr "Temperature of vitrification" + +msgid "" +"Material becomes soft at this temperature. Thus the heatbed cannot be hotter " +"than this tempature" +msgstr "" +"Material becomes soft at this temperature. Thus, the heat bed cannot be " +"hotter than this temperature." + +msgid "Price" +msgstr "Price" + +msgid "Filament price. For statistics only" +msgstr "Filament price, for statistical purposes only." + +msgid "money/kg" +msgstr "soldi/kg" + +msgid "(Undefined)" +msgstr "(Undefined)" + +msgid "Infill direction" +msgstr "Infill direction" + +msgid "" +"Angle for sparse infill pattern, which controls the start or main direction " +"of line" +msgstr "" +"This is the angle for sparse infill pattern, which controls the start or " +"main direction of lines." + +msgid "Sparse infill density" +msgstr "Sparse infill density" + +#, c-format +msgid "Density of internal sparse infill, 100% means solid throughout" +msgstr "" +"This is the density of internal sparse infill. 100% means that the object " +"will be solid throughout." + +msgid "Sparse infill pattern" +msgstr "Sparse infill pattern" + +msgid "Line pattern for internal sparse infill" +msgstr "This is the line pattern for internal sparse infill." + +msgid "Grid" +msgstr "Griglia" + +msgid "Line" +msgstr "Linea" + +msgid "Cubic" +msgstr "Cubico" + +msgid "Tri-hexagon" +msgstr "Tri-hexagon" + +msgid "Gyroid" +msgstr "Giroide" + +msgid "Honeycomb" +msgstr "Nido d'ape" + +msgid "Adaptive Cubic" +msgstr "Adattivo Cubico" + +msgid "3D Honeycomb" +msgstr "" + +msgid "Support Cubic" +msgstr "" + +msgid "Lightning" +msgstr "" + +msgid "" +"Acceleration of top surface infill. Using a lower value may improve top " +"surface quality" +msgstr "" +"This is the acceleration of top surface infill. Using a lower value may " +"improve top surface quality." + +msgid "Acceleration of outer wall. Using a lower value can improve quality" +msgstr "" + +msgid "" +"Acceleration of initial layer. Using a lower value can improve build plate " +"adhensive" +msgstr "" +"This is the printing acceleration for the first layer. Using limited " +"acceleration can improve build plate adhesion." + +msgid "Line width of initial layer" +msgstr "Line width of first layer" + +msgid "Initial layer height" +msgstr "Altezza layer iniziale" + +msgid "" +"Height of initial layer. Making initial layer height to be thick slightly " +"can improve build plate adhension" +msgstr "" +"This is the height of the first layer. Making the first layer height thicker " +"can improve build plate adhesion." + +msgid "Speed of initial layer except the solid infill part" +msgstr "" +"This is the speed for the first layer except for solid infill sections." + +msgid "Initial layer infill" +msgstr "First layer infill" + +msgid "Speed of solid infill part of initial layer" +msgstr "This is the speed for solid infill parts of the first layer." + +msgid "Initial layer nozzle temperature" +msgstr "First layer nozzle temperature" + +msgid "Nozzle temperature to print initial layer when using this filament" +msgstr "Nozzle temperature for printing the first layer with this filament" + +msgid "Full fan speed at layer" +msgstr "Massima velocità della ventola al layer" + +msgid "" +"Randomly jitter while printing the wall, so that the surface has a rough " +"look. This setting controls the fuzzy position" +msgstr "" +"This setting makes the toolhead randomly jitter while printing walls so that " +"the surface has a rough textured look. This setting controls the fuzzy " +"position." + +msgid "None" +msgstr "Nessuno" + +msgid "All walls" +msgstr "Tutte le pareti" + +msgid "Fuzzy skin thickness" +msgstr "Spessore superficie crespa" + +msgid "" +"The width within which to jitter. It's adversed to be below outer wall line " +"width" +msgstr "" +"The width of jittering: it’s recommended to keep this lower than the outer " +"wall line width." + +msgid "Fuzzy skin point distance" +msgstr "Distanza punti superficie crespa" + +msgid "" +"The average diatance between the random points introducded on each line " +"segment" +msgstr "" +"The average distance between the random points introduced on each line " +"segment" + +msgid "" +"Speed of gap infill. Gap usually has irregular line width and should be " +"printed more slowly" +msgstr "" +"This is the speed for gap infill. Gaps usually have irregular line width and " +"should be printed more slowly." + +msgid "Arc fitting" +msgstr "Arc fitting" + +msgid "" +"Enable this to get a G-code file which has G2 and G3 moves. And the fitting " +"tolerance is same with resolution" +msgstr "" +"Enable this to get a G-code file with G2 and G3 moves. The fitting tolerance " +"is the same as the resolution." + +msgid "Add line number" +msgstr "Add line number" + +msgid "Enable this to add line number(Nx) at the beginning of each G-Code line" +msgstr "" +"Enable this to add line number(Nx) at the beginning of each G-Code line." + +msgid "Scan first layer" +msgstr "Scan first layer" + +msgid "" +"Enable this to enable the camera on printer to check the quality of first " +"layer" +msgstr "" +"Enable this to allow the camera on the printer to check the quality of the " +"first layer." + +msgid "Nozzle type" +msgstr "Nozzle type" + +msgid "" +"The metallic material of nozzle. This determines the abrasive resistance of " +"nozzle, and what kind of filament can be printed" +msgstr "" +"The metallic material of the nozzle: This determines the abrasive resistance " +"of the nozzle and what kind of filament can be printed." + +msgid "Undefine" +msgstr "" + +msgid "Hardened steel" +msgstr "Hardened steel" + +msgid "Stainless steel" +msgstr "Stainless steel" + +msgid "Brass" +msgstr "Brass" + +msgid "Nozzle HRC" +msgstr "" + +msgid "" +"The nozzle's hardness. Zero means no checking for nozzle's hardness during " +"slicing." +msgstr "" + +msgid "HRC" +msgstr "" + +msgid "Enable this option if machine has auxiliary part cooling fan" +msgstr "Enable this option if the machine has an auxiliary part cooling fan" + +msgid "G-code flavor" +msgstr "Formato G-code" + +msgid "What kind of gcode the printer is compatible with" +msgstr "What kind of G-code the printer is compatible with." + +msgid "Infill combination" +msgstr "Infill combination" + +msgid "" +"Automatically Combine sparse infill of several layers to print together to " +"reduce time. Wall is still printed with original layer height." +msgstr "" +"Automatically combine sparse infill of several layers to print together in " +"order to reduce time. Walls are still printed with original layer height." + +msgid "Filament to print internal sparse infill." +msgstr "This is the filament for printing internal sparse infill." + +msgid "Line width of internal sparse infill" +msgstr "Line width of internal sparse infill" + +msgid "Infill/Wall overlap" +msgstr "Infill/wall overlap" + +msgid "" +"Infill area is enlarged slightly to overlap with wall for better bonding. " +"The percentage value is relative to line width of sparse infill" +msgstr "" +"This allows the infill area to be enlarged slightly to overlap with walls " +"for better bonding. The percentage value is relative to line width of sparse " +"infill." + +msgid "Speed of internal sparse infill" +msgstr "This is the speed for internal sparse infill." + +msgid "Ironing Type" +msgstr "Tipo di stiratura" + +msgid "" +"Ironing is using small flow to print on same height of surface again to make " +"flat surface more smooth. This setting controls which layer being ironed" +msgstr "" +"Ironing uses a small flow to print at the same height of a surface to make " +"flat surfaces smoother. This setting controls which layers are being ironed." + +msgid "No ironing" +msgstr "No ironing" + +msgid "Top surfaces" +msgstr "All top surfaces" + +msgid "Topmost surface" +msgstr "Topmost surface only" + +msgid "All solid layer" +msgstr "All solid layers" + +msgid "Ironing flow" +msgstr "Ironing flow" + +msgid "" +"The amount of material to extrude during ironing. Relative to flow of normal " +"layer height. Too high value results in overextrusion on the surface" +msgstr "" +"This is the amount of material to be extruded during ironing. It is relative " +"to the flow of normal layer height. Too high a value will result in " +"overextrusion on the surface." + +msgid "Ironing line spacing" +msgstr "Ironing line spacing" + +msgid "The distance between the lines of ironing" +msgstr "This is the distance between the lines used for ironing." + +msgid "Ironing speed" +msgstr "Ironing speed" + +msgid "Print speed of ironing lines" +msgstr "This is the print speed for ironing lines." + +msgid "This gcode part is inserted at every layer change after lift z" +msgstr "This G-code is inserted at every layer change after the z lift." + +msgid "Supports silent mode" +msgstr "Silent Mode" + +msgid "" +"Whether the machine supports silent mode in which machine use lower " +"acceleration to print" +msgstr "" +"Whether the machine supports silent mode in which machine uses lower " +"acceleration to print more quietly" + +msgid "" +"This G-code will be used as a code for the pause print. User can insert " +"pause G-code in gcode viewer" +msgstr "" + +msgid "This G-code will be used as a custom code" +msgstr "" + +msgid "Maximum speed X" +msgstr "Maximum speed X" + +msgid "Maximum speed Y" +msgstr "Maximum speed Y" + +msgid "Maximum speed Z" +msgstr "Maximum speed Z" + +msgid "Maximum speed E" +msgstr "Maximum speed E" + +msgid "Machine limits" +msgstr "Limiti macchina" + +msgid "Maximum X speed" +msgstr "Maximum X speed" + +msgid "Maximum Y speed" +msgstr "Maximum Y speed" + +msgid "Maximum Z speed" +msgstr "Maximum Z speed" + +msgid "Maximum E speed" +msgstr "Maximum E speed" + +msgid "Maximum acceleration X" +msgstr "Accelerazione massima X" + +msgid "Maximum acceleration Y" +msgstr "Accelerazione massima Y" + +msgid "Maximum acceleration Z" +msgstr "Accelerazione massima Z" + +msgid "Maximum acceleration E" +msgstr "Accelerazione massima E" + +msgid "Maximum acceleration of the X axis" +msgstr "Accelerazione massima dell'asse X" + +msgid "Maximum acceleration of the Y axis" +msgstr "Accelerazione massima dell'asse Y" + +msgid "Maximum acceleration of the Z axis" +msgstr "Accelerazione massima dell'asse Z" + +msgid "Maximum acceleration of the E axis" +msgstr "Accelerazione massima dell'asse E" + +msgid "Maximum jerk X" +msgstr "Jerk massimo X" + +msgid "Maximum jerk Y" +msgstr "Jerk massimo Y" + +msgid "Maximum jerk Z" +msgstr "Jerk massimo Z" + +msgid "Maximum jerk E" +msgstr "Jerk massimo E" + +msgid "Maximum jerk of the X axis" +msgstr "Jerk massimo dell'asse X" + +msgid "Maximum jerk of the Y axis" +msgstr "Jerk massimo dell'asse Y" + +msgid "Maximum jerk of the Z axis" +msgstr "Jerk massimo dell'asse Z" + +msgid "Maximum jerk of the E axis" +msgstr "Jerk massimo dell'asse E" + +msgid "Minimum speed for extruding" +msgstr "Minimum speed for extruding" + +msgid "Minimum speed for extruding (M205 S)" +msgstr "Minimum speed for extruding (M205 S)" + +msgid "Minimum travel speed" +msgstr "Minimum travel speed" + +msgid "Minimum travel speed (M205 T)" +msgstr "Minimum travel speed (M205 T)" + +msgid "Maximum acceleration for extruding" +msgstr "Maximum acceleration for extruding" + +msgid "Maximum acceleration for extruding (M204 P)" +msgstr "Maximum acceleration for extruding (M204 P)" + +msgid "Maximum acceleration for retracting" +msgstr "Maximum acceleration for retracting" + +msgid "Maximum acceleration for retracting (M204 R)" +msgstr "Maximum acceleration for retracting (M204 R)" + +msgid "Maximum acceleration for travel" +msgstr "Maximum acceleration for travel" + +msgid "Maximum acceleration for travel (M204 T)" +msgstr "Maximum acceleration for travel (M204 T)" + +msgid "Fan speed" +msgstr "Velocità ventola" + +msgid "" +"Part cooling fan speed may be increased when auto cooling is enabled. This " +"is the maximum speed limitation of part cooling fan" +msgstr "" +"The part cooling fan speed may be increased when auto cooling is enabled. " +"This is the maximum speed for the part cooling fan." + +msgid "Max" +msgstr "Massimo" + +msgid "" +"The largest printable layer height for extruder. Used tp limits the maximum " +"layer hight when enable adaptive layer height" +msgstr "" +"The highest printable layer height for the extruder: this is used to limit " +"the maximum layer height when adaptive layer height is enabled." + +msgid "Minimum speed for part cooling fan" +msgstr "Minimum speed for part cooling fan" + +msgid "" +"Speed of auxiliary part cooling fan. Auxiliary fan will run at this speed " +"during printing except the first several layers which is defined by no " +"cooling layers" +msgstr "" +"This is the speed of auxiliary part cooling fan. The auxiliary fan will run " +"at this speed during printing except for during the first several layers " +"which may be set to have no part cooling." + +msgid "Min" +msgstr "Minimo" + +msgid "" +"The lowest printable layer height for extruder. Used tp limits the minimum " +"layer hight when enable adaptive layer height" +msgstr "" +"The lowest printable layer height for the extruder. This is used to limit " +"the minimum layer height when adaptive layer height is enabled." + +msgid "Min print speed" +msgstr "Velocità minima di stampa" + +msgid "The minimum printing speed when slow down for cooling" +msgstr "The minimum printing speed when slowing down for cooling." + +msgid "Nozzle diameter" +msgstr "Diametro ugello" + +msgid "Diameter of nozzle" +msgstr "The diameter of the nozzle" + +msgid "Host Type" +msgstr "" + +msgid "" +"Slic3r can upload G-code files to a printer host. This field must contain " +"the kind of the host." +msgstr "" + +msgid "Nozzle volume" +msgstr "Nozzle volume" + +msgid "Volume of nozzle between the cutter and the end of nozzle" +msgstr "Volume of nozzle between the filament cutter and the end of the nozzle" + +msgid "Reduce infill retraction" +msgstr "Reduce infill retraction" + +msgid "" +"Don't retract when the travel is in infill area absolutely. That means the " +"oozing can't been seen. This can reduce times of retraction for complex " +"model and save printing time, but make slicing and G-code generating slower" +msgstr "" + +msgid "Enable" +msgstr "Abilita" + +msgid "Filename format" +msgstr "Filename format" + +msgid "User can self-define the project file name when export" +msgstr "Users can decide project file names when exporting." + +msgid "Detect overhang wall" +msgstr "Detect overhang walls" + +#, c-format, boost-format +msgid "" +"Detect the overhang percentage relative to line width and use different " +"speed to print. For 100%% overhang, bridge speed is used." +msgstr "" +"This detects the overhang percentage relative to line width and uses a " +"different speed to print. For 100%% overhang, bridging speed is used." + +msgid "Line width of inner wall" +msgstr "Line width of inner walls" + +msgid "Speed of inner wall" +msgstr "This is the speed for inner walls." + +msgid "Number of walls of every layer" +msgstr "This is the number of walls per layer." + +msgid "Raft contact Z distance" +msgstr "Distanza di contatto Z Raft" + +msgid "Z gap between object and raft. Ignored for soluble interface" +msgstr "" +"This is the Z gap between an object and a raft. It is ignored for soluble " +"interfaces." + +msgid "Raft expansion" +msgstr "Espansione del raft" + +msgid "Expand all raft layers in XY plane" +msgstr "This expands all raft layers in XY plane." + +msgid "Initial layer density" +msgstr "First layer density" + +msgid "Density of the first raft or support layer" +msgstr "This is the density of the first raft or support layer." + +msgid "Initial layer expansion" +msgstr "First layer expansion" + +msgid "Expand the first raft or support layer to improve bed plate adhesion" +msgstr "This expands the first raft or support layer to improve bed adhesion." + +msgid "Raft layers" +msgstr "Layer raft" + +msgid "" +"Object will be raised by this number of support layers. Use this function to " +"avoid wrapping when print ABS" +msgstr "" +"Object will be raised by this number of support layers. Use this function to " +"avoid warping when printing ABS." + +msgid "" +"G-code path is genereated after simplifing the contour of model to avoid too " +"much points and gcode lines in gcode file. Smaller value means higher " +"resolution and more time to slice" +msgstr "" +"The G-code path is generated after simplifying the contour of models to " +"avoid too many points and G-code lines. Smaller values mean higher " +"resolution and more time required to slice." + +msgid "Travel distance threshold" +msgstr "Travel distance threshold" + +msgid "" +"Only trigger retraction when the travel distance is longer than this " +"threshold" +msgstr "" +"Only trigger retraction when the travel distance is longer than this " +"threshold." + +msgid "Retract amount before wipe" +msgstr "Retrai la quantità prima di pulire" + +msgid "" +"The length of fast retraction before wipe, relative to retraction length" +msgstr "" +"This is the length of fast retraction before a wipe, relative to retraction " +"length." + +msgid "Retract when change layer" +msgstr "Retract on layer change" + +msgid "Force a retraction when changes layer" +msgstr "This forces a retraction on layer changes." + +msgid "Length" +msgstr "Lunghezza" + +msgid "Retraction Length" +msgstr "Lunghezza Retrazione" + +msgid "" +"Some amount of material in extruder is pulled back to avoid ooze during long " +"travel. Set zero to disable retraction" +msgstr "" +"This is the amount of filament in the extruder that is pulled back to avoid " +"oozing during long travel distances. Set to 0 to disable retraction." + +msgid "Z hop when retract" +msgstr "Z hop when retracting" + +msgid "" +"Whenever the retraction is done, the nozzle is lifted a little to create " +"clearance between nozzle and the print. It prevents nozzle from hitting the " +"print when travel move. Using spiral line to lift z can prevent stringing" +msgstr "" +"Whenever there is a retraction, the nozzle is lifted a little to create " +"clearance between the nozzle and the print. This prevents the nozzle from " +"hitting the print when traveling more. Using spiral lines to lift z can " +"prevent stringing." + +msgid "Retraction Speed" +msgstr "Velocità di retrazione" + +msgid "Speed of retractions" +msgstr "This is the speed for retraction." + +msgid "Deretraction Speed" +msgstr "Velocità di deretrazione" + +msgid "" +"Speed for reloading filament into extruder. Zero means same speed with " +"retraction" +msgstr "" +"The speed for reloading filament into the extruder after a retraction; " +"setting this to 0 means that it will be the same speed as the retraction." + +msgid "Seam position" +msgstr "Posizione giunzione" + +msgid "The start position to print each part of outer wall" +msgstr "This is the starting position for each part of the outer wall." + +msgid "Nearest" +msgstr "Più vicino" + +msgid "Aligned" +msgstr "Allineato" + +msgid "Back" +msgstr "Back" + +msgid "Random" +msgstr "" + +msgid "Skirt distance" +msgstr "Skirt distance" + +msgid "Distance from skirt to brim or object" +msgstr "This is the distance from the skirt to the brim or the object." + +msgid "Skirt loops" +msgstr "Skirt loops" + +msgid "Number of loops for the skirt. Zero means disabling skirt" +msgstr "" +"This is the number of loops for the skirt. 0 means the skirt is disabled." + +msgid "" +"The printing speed in exported gcode will be slowed down, when the estimated " +"layer time is shorter than this value, to get better cooling for these layers" +msgstr "" +"The printing speed in exported G-code will be slowed down when the estimated " +"layer time is shorter than this value in order to get better cooling for " +"these layers." + +msgid "Minimum sparse infill threshold" +msgstr "Minimum sparse infill threshold" + +msgid "" +"Sparse infill area which is smaller than threshold value is replaced by " +"internal solid infill" +msgstr "" +"Sparse infill areas which are smaller than this threshold value are replaced " +"by internal solid infill." + +msgid "mm²" +msgstr "mm²" + +msgid "Line width of internal solid infill" +msgstr "Line width of internal solid infill" + +msgid "Speed of internal solid infill, not the top and bottom surface" +msgstr "" +"This is the speed for internal solid infill, not including the top or bottom " +"surface." + +msgid "Spiral vase" +msgstr "" + +msgid "" +"Spiralize smooths out the z moves of the outer contour. And turns a solid " +"model into a single walled print with solid bottom layers. The final " +"generated model has no seam" +msgstr "" +"This enables spiraling, which smooths out the Z moves of the outer contour " +"and turns a solid model into a single walled print with solid bottom layers. " +"The final generated model has no seam." + +msgid "" +"If smooth or traditional mode is selected, a timelapse video will be " +"generated for each print. After each layer is printed, a snapshot is taken " +"with the chamber camera. All of these snapshots are composed into a " +"timelapse video when printing completes. If smooth mode is selected, the " +"toolhead will move to the excess chute after each layer is printed and then " +"take a snapshot. Since the melt filament may leak from the nozzle during the " +"process of taking a snapshot, prime tower is required for smooth mode to " +"wipe nozzle." +msgstr "" + +msgid "Traditional" +msgstr "" + +msgid "Temperature variation" +msgstr "Variazione di temperatura" + +msgid "Start G-code" +msgstr "G-code iniziale" + +msgid "Start G-code when start the whole printing" +msgstr "G-code added when starting a print" + +msgid "Start G-code when start the printing of this filament" +msgstr "G-code added when the printer starts using this filament" + +msgid "Slice gap closing radius" +msgstr "" + +msgid "" +"Cracks smaller than 2x gap closing radius are being filled during the " +"triangle mesh slicing. The gap closing operation may reduce the final print " +"resolution, therefore it is advisable to keep the value reasonably low." +msgstr "" + +msgid "Slicing Mode" +msgstr "" + +msgid "" +"Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to " +"close all holes in the model." +msgstr "" + +msgid "Regular" +msgstr "" + +msgid "Even-odd" +msgstr "" + +msgid "Close holes" +msgstr "" + +msgid "Enable support" +msgstr "Enable support" + +msgid "Enable support generation." +msgstr "This enables support generation." + +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 "normal(auto)" + +msgid "tree(auto)" +msgstr "tree(auto)" + +msgid "normal(manual)" +msgstr "" + +msgid "tree(manual)" +msgstr "" + +msgid "Support/object xy distance" +msgstr "Support/object xy distance" + +msgid "XY separation between an object and its support" +msgstr "Separazione XY tra un oggetto e il suo supporto" + +msgid "Pattern angle" +msgstr "Angolo trama" + +msgid "Use this setting to rotate the support pattern on the horizontal plane." +msgstr "" +"Use this setting to rotate the support pattern on the horizontal plane." + +msgid "On build plate only" +msgstr "On build plate only" + +msgid "Don't create support on model surface, only on build plate" +msgstr "This setting only generates supports that begin on the build plate." + +msgid "Support critical regions only" +msgstr "" + +msgid "" +"Only create support for critical regions including sharp tail, cantilever, " +"etc." +msgstr "" + +msgid "Top Z distance" +msgstr "Top Z distance" + +msgid "The z gap between the top support interface and object" +msgstr "This determines the Z gap between top support interfaces and objects." + +msgid "Bottom Z distance" +msgstr "" + +msgid "The z gap between the bottom support interface and object" +msgstr "" + +msgid "Support base" +msgstr "" + +msgid "" +"Filament to print support base and raft. \"Default\" means no specific " +"filament for support and current filament is used" +msgstr "" + +msgid "Line width of support" +msgstr "Line width of support" + +msgid "Interface use loop pattern" +msgstr "Loop pattern interface" + +msgid "" +"Cover the top contact layer of the supports with loops. Disabled by default." +msgstr "" +"Copre con anelli il layer superiore del supporto a contatto. Disattivato per " +"impostazione predefinita." + +msgid "" +"Filament to print support interface. \"Default\" means no specific filament " +"for support interface and current filament is used" +msgstr "" + +msgid "Top interface layers" +msgstr "Layer superiori di interfaccia " + +msgid "Number of top interface layers" +msgstr "This is the number of top interface layers." + +msgid "Bottom interface layers" +msgstr "Layer inferiori di interfaccia " + +msgid "Top interface spacing" +msgstr "Top interface spacing" + +msgid "Spacing of interface lines. Zero means solid interface" +msgstr "This is the spacing of interface lines. 0 means solid interface." + +msgid "Bottom interface spacing" +msgstr "Bottom interface spacing" + +msgid "Spacing of bottom interface lines. Zero means solid interface" +msgstr "" +"This is the spacing of bottom interface lines. 0 means solid interface." + +msgid "Speed of support interface" +msgstr "This is the speed for support interfaces." + +msgid "Base pattern" +msgstr "Base pattern" + +msgid "Line pattern of support" +msgstr "This is the line pattern for support." + +msgid "Rectilinear grid" +msgstr "Griglia rettilinea" + +msgid "Hollow" +msgstr "" + +msgid "Interface pattern" +msgstr "Trama interfaccia" + +msgid "" +"Line pattern of support interface. Default pattern for non-soluble support " +"interface is Rectilinear, while default pattern for soluble support " +"interface is Concentric" +msgstr "" +"This is the line pattern for support interfaces. The default pattern for non-" +"soluble support interfaces is Rectilinear while the default pattern for " +"soluble support interfaces is Concentric." + +msgid "Base pattern spacing" +msgstr "Base pattern spacing" + +msgid "Spacing between support lines" +msgstr "This determines the spacing between support lines." + +msgid "Normal Support expansion" +msgstr "" + +msgid "Expand (+) or shrink (-) the horizontal span of normal support" +msgstr "" + +msgid "Speed of support" +msgstr "This is the speed for support." + +msgid "Style" +msgstr "Stile" + +msgid "" +"Style and shape of the support. For normal support, projecting the supports " +"into a regular grid will create more stable supports (default), while snug " +"support towers will save material and reduce object scarring.\n" +"For tree support, tight style will merge branches more aggressively and save " +"a lot of material (default), while hybrid style will create similar " +"structure to normal support under large flat overhangs." +msgstr "" + +msgid "Snug" +msgstr "Aderenti" + +msgid "Tree Slim" +msgstr "" + +msgid "Tree Strong" +msgstr "" + +msgid "Tree Hybrid" +msgstr "" + +msgid "Independent support layer height" +msgstr "Independent support layer height" + +msgid "" +"Support layer uses layer height independent with object layer. This is to " +"support customizing z-gap and save print time." +msgstr "" + +msgid "Threshold angle" +msgstr "Threshold angle" + +msgid "" +"Support will be generated for overhangs whose slope angle is below the " +"threshold." +msgstr "" +"Support will be generated for overhangs whose slope angle is below this " +"threshold." + +msgid "Tree support branch angle" +msgstr "Tree support branch angle" + +msgid "" +"This setting determines the maximum overhang angle that t he branches of " +"tree support allowed to make.If the angle is increased, the branches can be " +"printed more horizontally, allowing them to reach farther." +msgstr "" +"This setting determines the maximum overhang angle that the branches of tree " +"support are allowed to make. If the angle is increased, the branches can be " +"printed more horizontally, allowing them to reach farther." + +msgid "Tree support branch distance" +msgstr "Tree support branch distance" + +msgid "" +"This setting determines the distance between neighboring tree support nodes." +msgstr "" +"This setting determines the distance between neighboring tree support nodes." + +msgid "Tree support branch diameter" +msgstr "Tree support branch diameter" + +msgid "This setting determines the initial diameter of support nodes." +msgstr "This setting determines the initial diameter of support nodes." + +msgid "Tree support wall loops" +msgstr "Tree support wall loops" + +msgid "This setting specify the count of walls around tree support" +msgstr "This setting specifies the wall count around tree support." + +msgid "Nozzle temperature for layers after the initial one" +msgstr "Nozzle temperature after the first layer" + +msgid "Nozzle temperature" +msgstr "Temperatura ugello" + +msgid "Bed temperature difference" +msgstr "Bed temperature difference" + +msgid "" +"Do not recommand bed temperature of other layer to be lower than initial " +"layer for more than this threshold. Too low bed temperature of other layer " +"may cause the model broken free from build plate" +msgstr "" +"It is not recommended to have the bed temperature of other layers to be " +"lower than the first layer by more than this threshold. Bed temperatures " +"that are too low may cause models to break free from the build plate." + +msgid "Detect thin wall" +msgstr "Detect thin walls" + +msgid "" +"Detect thin wall which can't contain two line width. And use single line to " +"print. Maybe printed not very well, because it's not closed loop" +msgstr "" +"This detects thin walls which can’t contain two lines and uses a single line " +"to print. It may not print as well because it’s not a closed loop." + +msgid "" +"This gcode is inserted when change filament, including T command to trigger " +"tool change" +msgstr "" +"This G-code is inserted when filament is changed, including T commands to " +"trigger tool change." + +msgid "Line width for top surfaces" +msgstr "Line width for top surfaces" + +msgid "Speed of top surface infill which is solid" +msgstr "This is the speed for solid top surface infill." + +msgid "Top shell layers" +msgstr "Top shell layers" + +msgid "" +"This is the number of solid layers of top shell, including the top surface " +"layer. When the thickness calculated by this value is thinner than top shell " +"thickness, the top shell layers will be increased" +msgstr "" +"This is the number of solid layers of top shell, including the top surface " +"layer. When the thickness calculated by this value is thinner than the top " +"shell thickness, the top shell layers will be increased" + +msgid "Top solid layers" +msgstr "Layer solidi superiori" + +msgid "Top shell thickness" +msgstr "Top shell thickness" + +msgid "" +"The number of top solid layers is increased when slicing if the thickness " +"calculated by top shell layers is thinner than this value. This can avoid " +"having too thin shell when layer height is small. 0 means that this setting " +"is disabled and thickness of top shell is absolutely determained by top " +"shell layers" +msgstr "" +"The number of top solid layers is increased when slicing if the thickness " +"calculated by top shell layers is thinner than this value. This can avoid " +"having too thin a shell when layer height is small. 0 means that this " +"setting is disabled and thickness of top shell is determined simply by the " +"number of top shell layers." + +msgid "Speed of travel which is faster and without extrusion" +msgstr "This is the speed at which traveling is done." + +msgid "Wipe while retracting" +msgstr "Pulisci durante la retrazione" + +msgid "" +"Move nozzle along the last extrusion path when retracting to clean leaked " +"material on nozzle. This can minimize blob when print new part after travel" +msgstr "" +"This moves the nozzle along the last extrusion path when retracting to clean " +"any leaked material on the nozzle. This can minimize blobs when printing a " +"new part after traveling." + +msgid "Wipe Distance" +msgstr "Wipe distance" + +msgid "" +"Discribe how long the nozzle will move along the last path when retracting" +msgstr "" +"This describes how long the nozzle will move along the last path while " +"retracting." + +msgid "" +"Print a tower to prime material in nozzle after switching to a new material." +msgstr "" +"This option enables printing a tower to prime material in the nozzle after " +"switching to a new material." + +msgid "Purging volumes" +msgstr "Volumi di spurgo" + +msgid "Flush multiplier" +msgstr "Flush multiplier" + +msgid "" +"The actual flushing volumes is equal to the flush multiplier multiplied by " +"the flushing volumes in the table." +msgstr "" + +msgid "Prime volume" +msgstr "Prime volume" + +msgid "The volume of material to prime extruder on tower." +msgstr "" +"This is the volume of material to prime the extruder with on the tower." + +msgid "Width" +msgstr "Larghezza" + +msgid "Width of prime tower" +msgstr "This is the width of prime towers." + +msgid "" +"Purging after filament change will be done inside objects' infills. This may " +"lower the amount of waste and decrease the print time. If the walls are " +"printed with transparent filament, the mixed color infill will be seen " +"outside. It will not take effect, unless the prime tower is enabled." +msgstr "" + +msgid "" +"Purging after filament change will be done inside objects' support. This may " +"lower the amount of waste and decrease the print time. It will not take " +"effect, unless the prime tower is enabled." +msgstr "" + +msgid "" +"This object will be used to purge the nozzle after a filament change to save " +"filament and decrease the print time. Colours of the objects will be mixed " +"as a result. It will not take effect, unless the prime tower is enabled." +msgstr "" + +msgid "X-Y hole compensation" +msgstr "X-Y hole compensation" + +msgid "" +"Holes of object will be grown or shrunk in XY plane by the configured value. " +"Positive value makes holes bigger. Negative value makes holes smaller. This " +"function is used to adjust size slightly when the object has assembling issue" +msgstr "" +"Holes in objects will be grown or shrunk in the XY plane by the set value. " +"Positive values make holes bigger and negative values make holes smaller. " +"This function is used to adjust size slightly when objects have assembly " +"issues." + +msgid "X-Y contour compensation" +msgstr "X-Y contour compensation" + +msgid "" +"Contour of object will be grown or shrunk in XY plane by the configured " +"value. Positive value makes contour bigger. Negative value makes contour " +"smaller. This function is used to adjust size slightly when the object has " +"assembling issue" +msgstr "" +"The contour of objects will be grown or shrunk in the XY plane by the set " +"value. Positive values make contours bigger, and negative values make " +"contours smaller. This function is used to adjust sizes slightly when " +"objects have assembly issues." + +msgid "" +"Classic wall generator produces walls with constant extrusion width and for " +"very thin areas is used gap-fill. Arachne engine produces walls with " +"variable extrusion width" +msgstr "" + +msgid "Classic" +msgstr "" + +msgid "Arachne" +msgstr "" + +msgid "Wall transition length" +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 "" + +msgid "" +"Prevent transitioning back and forth between one extra wall and one less. " +"This margin extends the range of extrusion widths which follow to [Minimum " +"wall width - margin, 2 * Minimum wall width + margin]. Increasing this " +"margin reduces the number of transitions, which reduces the number of " +"extrusion starts/stops and travel time. However, large extrusion width " +"variation can lead to under- or overextrusion problems. It's expressed as a " +"percentage over nozzle diameter" +msgstr "" + +msgid "Wall transitioning threshold angle" +msgstr "" + +msgid "" +"When to create transitions between even and odd numbers of walls. A wedge " +"shape with an angle greater than this setting will not have transitions and " +"no walls will be printed in the center to fill the remaining space. Reducing " +"this setting reduces the number and length of these center walls, but may " +"leave gaps or overextrude" +msgstr "" + +msgid "Wall distribution count" +msgstr "" + +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 "" + +msgid "Minimum feature size" +msgstr "" + +msgid "" +"Minimum thickness of thin features. Model features that are thinner than " +"this value will not be printed, while features thicker than the Minimum " +"feature size will be widened to the Minimum wall width. It's expressed as a " +"percentage over nozzle diameter" +msgstr "" + +msgid "Minimum wall width" +msgstr "" + +msgid "" +"Width of the wall that will replace thin features (according to the Minimum " +"feature size) of the model. If the Minimum wall width is thinner than the " +"thickness of the feature, the wall will become as thick as the feature " +"itself. It's expressed as a percentage over nozzle diameter" +msgstr "" + +msgid "Detect narrow internal solid infill" +msgstr "Detect narrow internal solid infill" + +msgid "" +"This option will auto detect narrow internal solid infill area. If enabled, " +"concentric pattern will be used for the area to speed printing up. " +"Otherwise, rectilinear pattern is used defaultly." +msgstr "" +"This option will auto-detect narrow internal solid infill areas. If enabled, " +"the concentric pattern will be used for the area to speed up printing. " +"Otherwise, the rectilinear pattern will be used by default." + +msgid "Export 3MF" +msgstr "Esporta 3MF" + +msgid "Export project as 3MF." +msgstr "This exports the project as a 3mf file." + +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 "Slice the plates: 0-all plates, i-plate i, others-invalid" +msgstr "Slice the plates: 0-all plates, i-plate i, others-invalid" + +msgid "Show command help." +msgstr "This shows command help." + +msgid "UpToDate" +msgstr "" + +msgid "Update the configs values of 3mf to latest." +msgstr "" + +msgid "Output Model Info" +msgstr "Info Modello di output" + +msgid "Output the model's information." +msgstr "This outputs the model’s information." + +msgid "Export Settings" +msgstr "Export Settings" + +msgid "Export settings to a file." +msgstr "This exports settings to a file." + +msgid "Send progress to pipe" +msgstr "" + +msgid "Send progress to pipe." +msgstr "" + +msgid "Arrange Options" +msgstr "Arrange Options" + +msgid "Arrange options: 0-disable, 1-enable, others-auto" +msgstr "Arrange options: 0-disable, 1-enable, others-auto" + +msgid "Convert Unit" +msgstr "Convert Unit" + +msgid "Convert the units of model" +msgstr "Convert the units of model" + +msgid "Orient the model" +msgstr "Orient the model" + +msgid "Scale the model by a float factor" +msgstr "Scale the model by a float factor" + +msgid "Load General Settings" +msgstr "Load General Settings" + +msgid "Load process/machine settings from the specified file" +msgstr "Load process/machine settings from the specified file" + +msgid "Load Filament Settings" +msgstr "Load Filament Settings" + +msgid "Load filament settings from the specified file list" +msgstr "Load filament settings from the specified file list" + +msgid "Output directory" +msgstr "Output directory" + +msgid "Output directory for the exported files." +msgstr "This is the output directory for exported files." + +msgid "Debug level" +msgstr "Debug level" + +msgid "" +"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:" +"trace\n" +msgstr "" +"Sets debug logging level. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:" +"trace\n" + +msgid "Error in zip archive" +msgstr "Error in zip archive" + +msgid "Generating walls" +msgstr "Generating walls" + +msgid "Generating infill regions" +msgstr "Generating infill regions" + +msgid "Generating infill toolpath" +msgstr "Generating infill toolpath" + +msgid "Generating support" +msgstr "Generating support" + +msgid "Checking support necessity" +msgstr "Checking support necessity" + +#, c-format, boost-format +msgid "" +"It seems object %s has completely floating regions. Please re-orient the " +"object or enable support generation." +msgstr "" + +#, c-format, boost-format +msgid "" +"It seems object %s has large overhangs. Please enable support generation." +msgstr "" + +msgid "Optimizing toolpath" +msgstr "Optimizing toolpath" + +msgid "Empty layers around bottom are replaced by nearest normal layers." +msgstr "Empty layers around bottom are replaced by nearest normal layers." + +msgid "The model has too many empty layers." +msgstr "" + +msgid "Slicing mesh" +msgstr "Slicing mesh" + +#, c-format, boost-format +msgid "Support: generate toolpath at layer %d" +msgstr "Support: generate toolpath at layer %d" + +msgid "Support: detect overhangs" +msgstr "Support: detect overhangs" + +msgid "Support: generate contact points" +msgstr "Support: generate contact points" + +msgid "Support: propagate branches" +msgstr "Support: propagate branches" + +msgid "Support: draw polygons" +msgstr "Support: draw polygons" + +msgid "Support: generate toolpath" +msgstr "Support: generate toolpath" + +#, c-format, boost-format +msgid "Support: generate polygons at layer %d" +msgstr "Support: generate polygons at layer %d" + +#, c-format, boost-format +msgid "Support: fix holes at layer %d" +msgstr "Support: fix holes at layer %d" + +#, c-format, boost-format +msgid "Support: propagate branches at layer %d" +msgstr "Support: propagate branches at layer %d" + +#: resources/data/hints.ini: [hint:3D Scene Operations] +msgid "" +"3D Scene Operations\n" +"Did you know how to control view and object/part selection with mouse and " +"touchpanel in the 3D scene?" +msgstr "" + +#: resources/data/hints.ini: [hint:Cut Tool] +msgid "" +"Cut Tool\n" +"Did you know that you can cut a model at any angle and position with the " +"cutting tool?" +msgstr "" + +#: resources/data/hints.ini: [hint:Fix Model] +msgid "" +"Fix Model\n" +"Did you know that you can fix a corrupted 3D model to avoid a lot of slicing " +"problems?" +msgstr "" + +#: resources/data/hints.ini: [hint:Timelapse] +msgid "" +"Timelapse\n" +"Did you know that you can generate a timelapse video during each print?" +msgstr "" + +#: resources/data/hints.ini: [hint:Auto-Arrange] +msgid "" +"Auto-Arrange\n" +"Did you know that you can auto-arrange all objects in your project?" +msgstr "" + +#: resources/data/hints.ini: [hint:Auto-Orient] +msgid "" +"Auto-Orient\n" +"Did you know that you can rotate objects to an optimal orientation for " +"printing by a simple click?" +msgstr "" + +#: resources/data/hints.ini: [hint:Lay on Face] +msgid "" +"Lay on Face\n" +"Did you know that you can quickly orient a model so that one of its faces " +"sits on the print bed? Select the \"Place on face\" function or press the " +"F key." +msgstr "" + +#: resources/data/hints.ini: [hint:Object List] +msgid "" +"Object List\n" +"Did you know that you can view all objects/parts in a list and change " +"settings for each object/part?" +msgstr "" + +#: resources/data/hints.ini: [hint:Simplify Model] +msgid "" +"Simplify Model\n" +"Did you know that you can reduce the number of triangles in a mesh using the " +"Simplify mesh feature? Right-click the model and select Simplify model. Read " +"more in the documentation." +msgstr "" + +#: resources/data/hints.ini: [hint:Slicing Parameter Table] +msgid "" +"Slicing Parameter Table\n" +"Did you know that you can view all objects/parts on a table and change " +"settings for each object/part?" +msgstr "" + +#: resources/data/hints.ini: [hint:Split to Objects/Parts] +msgid "" +"Split to Objects/Parts\n" +"Did you know that you can split a big object into small ones for easy " +"colorizing or printing?" +msgstr "" + +#: resources/data/hints.ini: [hint:Subtract a Part] +msgid "" +"Subtract a Part\n" +"Did you know that you can subtract one mesh from another using the Negative " +"part modifier? That way you can, for example, create easily resizable holes " +"directly in Bambu Studio. Read more in the documentation." +msgstr "" + +#: resources/data/hints.ini: [hint:STEP] +msgid "" +"STEP\n" +"Did you know that you can improve your print quality by slicing a STEP file " +"instead of an STL?\n" +"Bambu Studio supports slicing STEP files, providing smoother results than a " +"lower resolution STL. Give it a try!" +msgstr "" + +#: resources/data/hints.ini: [hint:Z seam location] +msgid "" +"Z seam location\n" +"Did you know that you can customize the location of the Z seam, and even " +"paint it on your print, to have it in a less visible location? This improves " +"the overall look of your model. Check it out!" +msgstr "" + +#: resources/data/hints.ini: [hint:Fine-tuning for flow rate] +msgid "" +"Fine-tuning for flow rate\n" +"Did you know that flow rate can be fine-tuned for even better-looking " +"prints? Depending on the material, you can improve the overall finish of the " +"printed model by doing some fine-tuning." +msgstr "" + +#: resources/data/hints.ini: [hint:Split your prints into plates] +msgid "" +"Split your prints into plates\n" +"Did you know that you can split a model that has a lot of parts into " +"individual plates ready to print? This will simplify the process of keeping " +"track of all the parts." +msgstr "" + +#: resources/data/hints.ini: [hint:Speed up your print with Adaptive Layer +#: Height] +msgid "" +"Speed up your print with Adaptive Layer Height\n" +"Did you know that you can print a model even faster, by using the Adaptive " +"Layer Height option? Check it out!" +msgstr "" + +#: resources/data/hints.ini: [hint:Support painting] +msgid "" +"Support painting\n" +"Did you know that you can paint the location of your supports? This feature " +"makes it easy to place the support material only on the sections of the " +"model that actually need it." +msgstr "" + +#: resources/data/hints.ini: [hint:Different types of supports] +msgid "" +"Different types of supports\n" +"Did you know that you can choose from multiple types of supports? Tree " +"supports work great for organic models, while saving filament and improving " +"print speed. Check them out!" +msgstr "" + +#: resources/data/hints.ini: [hint:Printing Silk Filament] +msgid "" +"Printing Silk Filament\n" +"Did you know that Silk filament needs special consideration to print it " +"successfully? Higher temperature and lower speed are always recommended for " +"the best results." +msgstr "" + +#: resources/data/hints.ini: [hint:Brim for better adhesion] +msgid "" +"Brim for better adhesion\n" +"Did you know that when printing models have a small contact interface with " +"the printing surface, it's recommended to use a brim?" +msgstr "" + +#: resources/data/hints.ini: [hint:Set parameters for multiple objects] +msgid "" +"Set parameters for multiple objects\n" +"Did you know that you can set slicing parameters for all selected objects at " +"one time?" +msgstr "" + +#: resources/data/hints.ini: [hint:Stack objects] +msgid "" +"Stack objects\n" +"Did you know that you can stack objects as a whole one?" +msgstr "" + +#: resources/data/hints.ini: [hint:Flush into support/objects/infill] +msgid "" +"Flush into support/objects/infill\n" +"Did you know that you can save the wasted filament by flushing them into " +"support/objects/infill during filament change?" +msgstr "" + +#: resources/data/hints.ini: [hint:Improve strength] +msgid "" +"Improve strength\n" +"Did you know that you can use more wall loops and higher sparse infill " +"density to improve the strength of the model?" +msgstr "" + +#~ msgid "" +#~ "\n" +#~ "%1% is too close to exclusion area, there will be collisions when " +#~ "printing." +#~ msgstr "" +#~ "\n" +#~ "%1% is too close to an exclusion area; there will be collisions when " +#~ "printing." + +#~ msgid "" +#~ "%1% is too close to exclusion area, there will be collisions when " +#~ "printing." +#~ msgstr "" +#~ "%1% is too close to an exclusion area; there will be collisions when " +#~ "printing." + +#~ msgid "0%" +#~ msgstr "0%" + +#~ msgid "Adaptive layer height" +#~ msgstr "Adaptive layer height" + +#~ msgid "" +#~ "An object is layed over the boundary of plate.\n" +#~ "Please solve the problem by moving it totally inside or outside plate." +#~ msgstr "" +#~ "An object is laid over the edge of the plate or exceeds the height " +#~ "limit.\n" +#~ "Please solve the problem by moving it totally on or off the plate, and " +#~ "confirming that the height is within the build volume." + +#~ msgid "" +#~ "Arachne engine only works when overhang slowing down is disabled.\n" +#~ "This may cause decline in the quality of overhang surface when print " +#~ "fastly\n" +#~ msgstr "\n" + +#~ msgid "Auto arrange" +#~ msgstr "Auto Arrange" + +#~ msgid "" +#~ "Auto orientates selected objects or all objects.If there are selected " +#~ "objects, it just orientates the selected ones.Otherwise, it will " +#~ "orientates all objects in the project." +#~ msgstr "" +#~ "This anuto orients selected objects or all objects.\n" +#~ "If there are selected objects, it just orients the selected ones. " +#~ "Otherwise, it will orient all objects in the project." + +#~ msgid "Aux Cooling" +#~ msgstr "Aux Cooling" + +#~ msgid "Avoid crossing wall when travel" +#~ msgstr "Avoid walls when traveling" + +#~ msgid "" +#~ "Bed temperature is higher than vitrification temperature of this " +#~ "filament.\n" +#~ "This may cause nozzle blocked and printing failure" +#~ msgstr "" +#~ "The bed temperature is higher than the vitrification temperature of this " +#~ "filament.\n" +#~ "This may cause a nozzle blockage or print failure" + +#~ msgid "Choose one or more files (3mf/step/stl/obj/amf):" +#~ msgstr "Choose one or more files (3mf/step/stl/obj/amf):" + +#~ msgid "Clear all" +#~ msgstr "Pulisci tutto" + +#~ msgid "" +#~ "Clearance radius around extruder. Used as input of auto-arrange to avoid " +#~ "collision when print object by object" +#~ msgstr "" +#~ "Clearance radius around extruder: used as input for auto-arranging to " +#~ "avoid collisions when printing object by object" + +#~ msgid "Color Print" +#~ msgstr "Color Print (Stampa a Colori)" + +#~ msgid "Comsumption" +#~ msgstr "Consumption" + +#~ msgid "Creating" +#~ msgstr "Creating" + +#~ msgid "Ctrl + Any arrow" +#~ msgstr "Ctrl + Any arrow" + +#~ msgid "Ctrl + Left mouse button" +#~ msgstr "Ctrl + Left mouse button" + +#~ msgid "Debug" +#~ msgstr "Debug" + +#~ msgid "Designer" +#~ msgstr "Designer" + +#~ msgid "Device:" +#~ msgstr "Dispositivo:" + +#~ msgid "Display printable box" +#~ msgstr "Display printable box" + +#~ msgid "Display shadow of objects" +#~ msgstr "Display shadow of objects" + +#~ msgid "Display triangles of models" +#~ msgstr "Display triangles of models" + +#~ msgid "" +#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" +#~ "Contains the following information:\n" +#~ "1. The Process presets\n" +#~ "2. The Filament presets\n" +#~ "3. The Printer presets\n" +#~ msgstr "" +#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" +#~ "This includes the following information:\n" +#~ "1. Process presets\n" +#~ "2. Filament presets\n" +#~ "3. Printer presets\n" + +#~ msgid "" +#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" +#~ "It contains the following information:\n" +#~ "1. The Process presets\n" +#~ "2. The Filament presets\n" +#~ "3. The Printer presets\n" +#~ msgstr "\n" + +#~ msgid "" +#~ "Don't retract when the travel is in infill area absolutely. That means " +#~ "the oozing can't been seen" +#~ msgstr "" +#~ "This disables retraction when travel is entirely within an infill area " +#~ "and oozing can’t be seen." + +#~ msgid "" +#~ "Enabling this option means the height of every layer except the first " +#~ "will be automatically calculated during slicing according to the slope of " +#~ "the model’s surface.\n" +#~ "Note that this option only takes effect if no prime tower is generated in " +#~ "current plate." +#~ msgstr "" +#~ "Enabling this option means that the height of each layer after the first " +#~ "will be automatically calculated according to the slope of the model’s " +#~ "surface.\n" +#~ "Please note that this option only takes effect if there is no prime tower " +#~ "generated on the current plate." + +#~ msgid "Enter a search term" +#~ msgstr "Inserire un termine di ricerca" + +#~ msgid "Erase painting" +#~ msgstr "Erase painting" + +#~ msgid "Error at line %1%:\n" +#~ msgstr "Error at line %1%:\n" + +#~ msgid "Export Sliced File" +#~ msgstr "Export Sliced File" + +#~ msgid "Export current Sliced file" +#~ msgstr "Export Sliced File" + +#~ msgid "Export ok." +#~ msgstr "Export ok." + +#~ msgid "Export sliced file" +#~ msgstr "Export Sliced File" + +#~ msgid "Extruder position" +#~ msgstr "Extruder position" + +#~ msgid "Failed" +#~ msgstr "Failed" + +#~ msgid "Filament 1" +#~ msgstr "Filament 1" + +#~ msgid "Filament N XX" +#~ msgstr "Filament N XX" + +#~ msgid "" +#~ "Filament to print support and skirt. 0 means no specific filament for " +#~ "support and current filament is used" +#~ msgstr "" +#~ "This is the filament used to print supports and skirts. 0 means no " +#~ "specific filament for support and the current filament is used." + +#~ msgid "" +#~ "Filament to print support interface. 0 means no specific filament for " +#~ "support interface and current filament is used" +#~ msgstr "" +#~ "This is the filament to print support interfaces. 0 means no specific " +#~ "filament for support interfaces and the current filament is used" + +#~ msgid "Filaments Selection" +#~ msgstr "Filaments selection" + +#~ msgid "Finish" +#~ msgstr "Finish" + +#~ msgid "Finished" +#~ msgstr "Finito" + +#~ msgid "Fix model locally" +#~ msgstr "Fix model locally" + +#~ msgid "Fix model through cloud" +#~ msgstr "Fix model through cloud" + +#~ msgid "Flushed filament" +#~ msgstr "Flushed filament" + +#~ msgid "" +#~ "Force cooling fan to be specific speed when overhang degree of printed " +#~ "part exceeds this value. Expressed as percentage which indicides how much " +#~ "width of the line without support from lower layer" +#~ msgstr "" +#~ "This forces the cooling fan to use a specific speed when overhang degrees " +#~ "of parts exceed the set value. It is expressed as percentage which " +#~ "indicates how much line is acceptable without support from lower layers." + +#~ msgid "Fragment Filter" +#~ msgstr "Fragment Filter" + +#~ msgid "Fragment area" +#~ msgstr "Fragment area" + +#~ msgid "Fragment filter" +#~ msgstr "Fragment filter" + +#~ msgid "" +#~ "Heat the nozzle to target \n" +#~ "temperature" +#~ msgstr "" +#~ "Heat the nozzle to the target \n" +#~ "temperature" + +#~ msgid "Height:" +#~ msgstr "Height:" + +#~ msgid "" +#~ "Height of the clearance cylinder around extruder. Used as input of auto-" +#~ "arrange to avoid collision when print object by object" +#~ msgstr "" +#~ "Height of the clearance cylinder around extruder: used as input for auto-" +#~ "arranging to avoid collisions when printing object by object" + +#~ msgid "Import 3MF/STL/STEP/OBJ/AMF" +#~ msgstr "Import 3MF/STL/STEP/OBJ/AMF" + +#~ msgid "In the calibration of extrusion flow" +#~ msgstr "In the calibration of extrusion flow" + +#~ msgid "In the calibration of laser scanner" +#~ msgstr "In the calibration of laser scanner" + +#~ msgid "Initialize failed [%d]!" +#~ msgstr "Initalization failed [%d]!" + +#~ msgid "Inner wall speed" +#~ msgstr "Inner wall speed" + +#~ msgid "" +#~ "It seems object %s needs support to print. Please enable support " +#~ "generation." +#~ msgstr "" +#~ "It seems object %s needs support to print. Please enable support " +#~ "generation." + +#~ msgid "Line type" +#~ msgstr "Line type" + +#~ msgid "Management" +#~ msgstr "Management" + +#~ msgid "Max travel detour distance" +#~ msgstr "Max travel detour distance" + +#~ msgid "" +#~ "Maximum detour distance for avoiding crossing wall. Don't detour if the " +#~ "detour distance is large than this value" +#~ msgstr "" +#~ "Maximum detour distance for avoiding travel across walls. If the distance " +#~ "is larger than this value, there will be no detour." + +#~ msgid "Module" +#~ msgstr "Module" + +#~ msgid "Monitoring" +#~ msgstr "Monitoring" + +#~ msgid "Monitoring Recording" +#~ msgstr "Monitoring Recording" + +#~ msgid "Open" +#~ msgstr "Open" + +#~ msgid "Open &PrusaSlicer" +#~ msgstr "Apri &PrusaSlicer" + +#~ msgid "Open PrusaSlicer" +#~ msgstr "Apri PrusaSlicer" + +#~ msgid "Output file" +#~ msgstr "File di output" + +#~ msgid "Part Cooling" +#~ msgstr "Part Cooling" + +#~ msgid "Pause(heated bed temperature error)" +#~ msgstr "Pause(heated bed temperature error)" + +#~ msgid "Pause(hotend temperature error)" +#~ msgstr "Pause(hotend temperature error)" + +#~ msgid "Pause(toolhead shell off)" +#~ msgstr "Pause(toolhead shell off)" + +#~ msgid "Per object edit" +#~ msgstr "Per Object Edit" + +#~ msgid "Plate %d: %s does not support filament %s\n" +#~ msgstr "\n" + +#~ msgid "Plate %d: %s does not support filament %s.\n" +#~ msgstr "Plate %d: %s does not support filament %s.\n" + +#~ msgid "Plate %d: %s does not support filament %s (%s).\n" +#~ msgstr "\n" + +#~ msgid "" +#~ "Please check the following infomation and click Confirm to continue " +#~ "sending print:\n" +#~ msgstr "\n" + +#~ msgid "Please fill report first." +#~ msgstr "Please fill report first." + +#~ msgid "Please upgrade your printer first" +#~ msgstr "Please update your printer first" + +#~ msgid "Position:" +#~ msgstr "Position:" + +#~ msgid "" +#~ "Preview only mode:\n" +#~ "The loaded file contains gcode only." +#~ msgstr "" +#~ "Preview only mode:\n" +#~ "The loaded file contains G-code only." + +#~ msgid "Preview only mode for gcode file." +#~ msgstr "Preview only mode for G-code file." + +#~ msgid "Printer Selection" +#~ msgstr "Printer Selection" + +#~ msgid "" +#~ "Purging after filament change will be done inside objects' infills. This " +#~ "may lower the amount of waste and decrease the print time. If the walls " +#~ "are printed with transparent filament, the mixed color infill will be " +#~ "seen outside" +#~ msgstr "" +#~ "Purging after filament change will be done inside objects' infill. This " +#~ "may lower the amount of waste and decrease the print time. If the walls " +#~ "are printed with transparent filament, the mixed color infill will be " +#~ "visible." + +#~ msgid "" +#~ "Purging after filament change will be done inside objects' support. This " +#~ "may lower the amount of waste and decrease the print time" +#~ msgstr "" +#~ "Purging after filament change will be done inside objects' support. This " +#~ "may lower the amount of waste and decrease the print time." + +#~ msgid "" +#~ "Push new filament \n" +#~ "into extruder" +#~ msgstr "" +#~ "Push new filament \n" +#~ "into extruder" + +#~ msgid "" +#~ "Record timelapse video of printing without showing toolhead. In this mode " +#~ "the toolhead docks near the excess chute at each layer change, and then a " +#~ "snapshot is taken with the chamber camera. When printing finishes a " +#~ "timelapse video is composed of all the snapshots." +#~ msgstr "" +#~ "Record timelapse video of printing without showing the toolhead. In this " +#~ "mode the toolhead docks near the excess chute at each layer change, and " +#~ "then a snapshot is taken with the chamber camera. When printing finishes, " +#~ "a timelapse video is created from all the snapshots." + +#~ msgid "Reduce Triangles" +#~ msgstr "Reduce Triangles" + +#~ msgid "Reload item" +#~ msgstr "Reload item" + +#~ msgid "Reload items" +#~ msgstr "Reload items" + +#~ msgid "Repair" +#~ msgstr "Ripara" + +#~ msgid "Repair the model's meshes if it is non-manifold mesh" +#~ msgstr "Repair the model’s meshes if they are non-manifold." + +#~ msgid "Report" +#~ msgstr "Report" + +#~ msgid "Rotation:" +#~ msgstr "Rotation:" + +#~ msgid "Save configuration as:" +#~ msgstr "Salva configurazione come:" + +#~ msgid "Sending" +#~ msgstr "Sending" + +#~ msgid "Set pen size" +#~ msgstr "Set pen size" + +#~ msgid "Shift + Any arrow" +#~ msgstr "Shift + Any arrow" + +#~ msgid "Shift + Mouse wheel" +#~ msgstr "Shift + Mouse wheel" + +#~ msgid "Show Model Mesh(TODO)" +#~ msgstr "Show Model Mesh(TODO)" + +#~ msgid "Show Model Shadow(TODO)" +#~ msgstr "Show Model Shadow(TODO)" + +#~ msgid "Show Printable Box(TODO)" +#~ msgstr "Show Printable Box(TODO)" + +#~ msgid "Spiral mode" +#~ msgstr "Spiral/Vase mode" + +#~ msgid "" +#~ "Spiral mode only works when wall loops is 1, \n" +#~ "support is disabled, top shell layers is 0 and sparse infill density is " +#~ "0\n" +#~ msgstr "" +#~ "Spiral (vase) mode only works when wall loops is set to 1, \n" +#~ "support is disabled, top shell layers is 0, and sparse infill density is " +#~ "0\n" + +#~ msgid "Successfully sent.Will automatically jump to the device page in %s s" +#~ msgstr "" +#~ "Successfully sent. Will automatically jump to the device page in %s s" + +#~ msgid "" +#~ "Support layer uses layer height independent with object layer. This is to " +#~ "support custom support gap,but may cause extra filament switches if " +#~ "support is specified as different extruder with object" +#~ msgstr "" +#~ "The support layer uses layer height independent of object layers. This is " +#~ "to support custom support gaps, but may cause extra filament switches if " +#~ "support is specified as a different filament from the object." + +#~ msgid "" +#~ "Switch to rectilinear pattern?\n" +#~ "Yes - switch to rectilinear pattern automaticlly\n" +#~ "No - reset density to default non 100% value automaticlly\n" +#~ msgstr "\n" + +#~ msgid "" +#~ "Switch to zig-zag pattern?\n" +#~ "Yes - switch to zig-zag pattern automaticlly\n" +#~ "No - reset density to default non 100% value automaticlly\n" +#~ msgstr "" +#~ "Switch to zig-zag pattern?\n" +#~ "Yes - Switch to zig-zag pattern automatically\n" +#~ "No - Reset density to default non-100% value automatically\n" + +#~ msgid "Swith cloud environment, Please login again!" +#~ msgstr "Cloud environment has switched; please login again!" + +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " +#~ "unrecognized:\n" +#~ msgstr "" +#~ "The 3mf file's version %s is newer than %s's version %s, Found the " +#~ "following unrecognized keys:\n" + +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " +#~ "your software.\n" +#~ msgstr "\n" + +#~ msgid "The Config is not compatible and can not be loaded." +#~ msgstr "The configuration is not compatible and cannot be loaded!" + +#~ msgid "" +#~ "The firmware versions of printer and AMS are too low.Please update to the " +#~ "latest version before sending the print job" +#~ msgstr "" +#~ "The firmware versions of the printer and AMS are too low. Please update " +#~ "them to the latest version before sending any print jobs." + +#~ msgid "" +#~ "The model has overlapping or self-intersecting facets. I tried to repair " +#~ "it, however you might want to check the results or repair the input file " +#~ "and retry." +#~ msgstr "" +#~ "The model has overlapping or self-intersecting facets. Repair was " +#~ "attempted, however we recommend checking the results or repairing the " +#~ "input file and retrying." + +#~ msgid "" +#~ "The printer type used to generate G-code is not the same type as the " +#~ "currently selected physical printer. It is recommend to re-slice by " +#~ "selecting the same printer type.\n" +#~ msgstr "\n" + +#~ msgid "" +#~ "This object will be used to purge the nozzle after a filament change to " +#~ "save filament and decrease the print time. Colours of the objects will be " +#~ "mixed as a result" +#~ msgstr "" +#~ "This object will be used to purge the nozzle after a filament change to " +#~ "save filament and decrease the print time. Colors of the objects will be " +#~ "mixed as a result." + +#~ msgid "" +#~ "This setting specifies whether to add infill inside large hollows of tree " +#~ "support" +#~ msgstr "" +#~ "This setting specifies whether to add infill inside large hollows of tree " +#~ "support." + +#~ msgid "" +#~ "This setting stands for how much volume of filament can be melted and " +#~ "extruded per second. Printing speed is limited by max volumetric speed, " +#~ "in case of too high and unreasonable speed setting. Zero means no limit" +#~ msgstr "" +#~ "Use this to set the maximum volume of filament that can be melted and " +#~ "extruded per second. Printing speed is limited by maximum volumetric " +#~ "speed if settings are unreasonably high. 0 means there is no limit." + +#~ msgid "Timelapse Wipe Tower" +#~ msgstr "Timelapse Wipe Tower" + +#~ msgid "Translation" +#~ msgstr "Traduzione" + +#~ msgid "Tree support with infill" +#~ msgstr "Tree support with infill" + +#~ msgid "Unable to create zip file" +#~ msgstr "Unable to create zip file" + +#~ msgid "Uploading" +#~ msgstr "Caricamento" + +#~ msgid "User pause" +#~ msgstr "User pause" + +#~ msgid "Waiting" +#~ msgstr "Waiting" + +#~ 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\".\n" +#~ msgstr "\n" + +#~ msgid "" +#~ "You have changed some preset settings. \n" +#~ "Would you like to keep these changed settings after switching preset?" +#~ msgstr "" +#~ "You have changed some preset settings. \n" +#~ "Would you like to keep these changed settings after switching presets?" + +#~ msgid "Zig zag" +#~ msgstr "Zig zag" + +#~ msgid " Object:" +#~ msgstr " Object:" + +#~ msgid "" +#~ " is too close to exclusion area, there may be collisions when printing.\n" +#~ msgstr "\n" + +#~ msgid "" +#~ " is too close to exclusion area, there will be collisions when printing.\n" +#~ msgstr "" +#~ " is too close to an exclusion area, there will be collisions when " +#~ "printing.\n" + +#~ msgid " is too close to others, there may be collisions when printing.\n" +#~ msgstr "\n" + +#~ msgid " is too close to others, there will be collisions when printing.\n" +#~ msgstr " is too close to others, there will be collisions when printing.\n" + +#~ msgid "hybrid(auto)" +#~ msgstr "hybrid(auto)" + +#~ msgid "normal" +#~ msgstr "normal" + +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal or tree is selected, only support enforcers are generated" +#~ msgstr "" +#~ "normal(auto), hybrid(auto) and tree(auto) are used to generate support " +#~ "automatically. If normal or tree is selected, only support enforcers are " +#~ "generated." + +#~ msgid "the 3mf is not compatible, load geometry data only!" +#~ msgstr "The 3mf is not compatible, loading geometry data only!" + +#~ msgid "tree" +#~ msgstr "tree" diff --git a/bbl/i18n/nl/BambuStudio_nl.po b/bbl/i18n/nl/BambuStudio_nl.po index d80aa0641..3b6432c6f 100644 --- a/bbl/i18n/nl/BambuStudio_nl.po +++ b/bbl/i18n/nl/BambuStudio_nl.po @@ -2,16 +2,13 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-21 10:35+0800\n" -"PO-Revision-Date: \n" -"Last-Translator: \n" -"Language-Team: \n" +"POT-Creation-Date: 2022-12-22 17:44+0800\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Localazy (https://localazy.com)\n" "Plural-Forms: nplurals=2; plural=(n==1) ? 0 : 1;\n" -"X-Generator: Poedit 3.1\n" msgid "Supports Painting" msgstr "Onderteuning (Support) tekenen" @@ -1916,7 +1913,7 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly\n" +"This may cause decline in the quality of overhang surface when print fastly" msgstr "" msgid "" @@ -1925,18 +1922,6 @@ msgid "" "No - Give up using arachne this time" msgstr "" -msgid "" -"We have added an experimental style \"Tree Slim\" that features smaller " -"support volume but weaker strength.\n" -"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" -msgstr "" - -msgid "" -"Change these settings automatically? \n" -"Yes - Change these settings automatically\n" -"No - Do not change these settings for me" -msgstr "" - msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -1980,7 +1965,7 @@ msgstr "%1% het gekozen vulling patroon ondersteund geen 100%% dichtheid." msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly\n" +"No - reset density to default non 100% value automaticlly" msgstr "" msgid "Auto bed leveling" @@ -2901,13 +2886,8 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets\n" +"3. The Printer presets" msgstr "" -"Do you want to synchronize your personal data from Bambu Cloud? \n" -"It contains the following information:\n" -"1. The Process presets\n" -"2. The Filament presets\n" -"3. The Printer presets\n" msgid "Synchronization" msgstr "Synchronisatie" @@ -3566,10 +3546,8 @@ msgstr "" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:\n" +"unrecognized:" msgstr "" -"De 3mf-versie %s is nieuwer dan %s-versie %s, Gevonden volgende sleutels " -"zijn niet herkend:\n" msgid "You'd better upgrade your software.\n" msgstr "U dient de software te upgraden.\n" @@ -3580,7 +3558,7 @@ msgstr "Nieuwere versie 3mf" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software.\n" +"software." msgstr "" msgid "The 3mf is not compatible, load geometry data only!" @@ -3864,7 +3842,7 @@ msgid "" msgstr "" #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s (%s).\n" +msgid "Plate %d: %s does not support filament %s (%s)." msgstr "" msgid "Switching the language requires application restart.\n" @@ -4357,13 +4335,13 @@ msgstr "" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:\n" +"print:" msgstr "" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type.\n" +"selecting the same printer type." msgstr "" #, c-format, boost-format @@ -4459,11 +4437,29 @@ msgid "" "model without prime tower. Do you want to enable prime tower?" msgstr "" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls." +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" + +msgid "" +"When using support material for the support interface, We recommand the " +"following settings:\n" +"0 top distance, 0 interface spacing, concentric pattern." +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\".\n" +"\"->\"Timelapse Wipe Tower\"." msgstr "" msgid "Line width" @@ -5539,11 +5535,10 @@ msgstr "%1% staat te dicht bij anderen en er kunnen botsingen ontstaan." msgid "%1% is too tall, and collisions will be caused." msgstr "%1% is te hoog en er kunnen botsingen ontstaan." -msgid " is too close to others, there may be collisions when printing.\n" +msgid " is too close to others, there may be collisions when printing." msgstr "" -msgid "" -" is too close to exclusion area, there may be collisions when printing.\n" +msgid " is too close to exclusion area, there may be collisions when printing." msgstr "" msgid "Prime Tower" @@ -5648,7 +5643,7 @@ msgid "Layer height cannot exceed nozzle diameter" msgstr "De laaghoogte kan niet groter zijn dan de diameter van de nozzle" #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s\n" +msgid "Plate %d: %s does not support filament %s" msgstr "" msgid "Generating skirt & brim" @@ -7310,6 +7305,9 @@ msgstr "Dit is het lijnpatroon voor support." msgid "Rectilinear grid" msgstr "Rechtlijnig raster" +msgid "Hollow" +msgstr "" + msgid "Interface pattern" msgstr "Interfacepatroon" @@ -8026,74 +8024,6 @@ msgid "" "density to improve the strength of the model?" msgstr "" -#~ msgid "" -#~ "normal(auto) and tree(auto) is used to generate support automatically. If " -#~ "normal or tree is selected, only support enforcers are generated" -#~ msgstr "" -#~ "normal (auto), hybride (auto) en tree (auto) worden gebruikt om " -#~ "automatisch support te genereren. Als normaal of tree is geselecteerd, " -#~ "worden alleen vereiste support gegenereerd." - -#~ msgid "hybrid(auto)" -#~ msgstr "Hybride (automatisch)" - -#~ msgid "" -#~ "Spiral mode only works when wall loops is 1, \n" -#~ "support is disabled, top shell layers is 0 and sparse infill density is " -#~ "0\n" -#~ msgstr "" -#~ "Spiraal modus werkt alleen indien indien er 1 wall gekozen is, \n" -#~ "support uitgeschakeld is, er 0 top layers gekozen zijn en de vulling " -#~ "dichtheid 0 is\n" - -#~ msgid "Choose one or more files (3mf/step/stl/obj/amf):" -#~ msgstr "Kies een of meer bestanden (3mf/step/stl/obj/amf):" - -#~ msgid "Finish" -#~ msgstr "Klaar" - -#~ msgid "Import 3MF/STL/STEP/OBJ/AMF" -#~ msgstr "Importeer 3MF/STL/STEP/OBJ/AMF" - -#~ msgid "Part Cooling" -#~ msgstr "Koeling van de printkop" - -#~ msgid "Aux Cooling" -#~ msgstr "Extra koeling" - -#~ msgid "" -#~ "Filament to print support and skirt. 0 means no specific filament for " -#~ "support and current filament is used" -#~ msgstr "" -#~ "Filament om randen (skirt) en support te printen. Indien u kiest voor 0 " -#~ "dan is er geen specifiek filament en wordt het huidige filament gebruikt" - -#~ msgid "" -#~ "Filament to print support interface. 0 means no specific filament for " -#~ "support interface and current filament is used" -#~ msgstr "" -#~ "Filament om support te printen. Indien u kiest voor 0 dan is er geen " -#~ "specifiek filament en wordt het huidige filament gebruikt" - -#~ msgid "Repair" -#~ msgstr "Repareren" - -#~ msgid "Repair the model's meshes if it is non-manifold mesh" -#~ msgstr "Repareer de meshes van het model als ze niet-manifold zijn." - -#~ msgid "Monitoring Recording" -#~ msgstr "Monitoring en opname" - -#~ msgid "Tree support with infill" -#~ msgstr "Tree support met vulling" - -#~ msgid "" -#~ "This setting specifies whether to add infill inside large hollows of tree " -#~ "support" -#~ msgstr "" -#~ "Deze instelling geeft aan of er opvulling moet worden toegevoegd in grote " -#~ "holtes van de tree support." - #~ msgid "" #~ "\n" #~ "%1% is too close to exclusion area, there will be collisions when " @@ -8124,6 +8054,12 @@ msgstr "" #~ "Los dit probleem op door het object geheel binnen of buiten de printplaat " #~ "te plaatsen." +#~ msgid "" +#~ "Arachne engine only works when overhang slowing down is disabled.\n" +#~ "This may cause decline in the quality of overhang surface when print " +#~ "fastly\n" +#~ msgstr "\n" + #~ msgid "Auto arrange" #~ msgstr "Automatisch rangschikken" @@ -8136,6 +8072,9 @@ msgstr "" #~ "deze georiënteert. Anders worden alle objecten op de huidige project " #~ "georiënteert." +#~ msgid "Aux Cooling" +#~ msgstr "Extra koeling" + #~ msgid "Avoid crossing wall when travel" #~ msgstr "Vermijd wanden tijdens het verplaatsen" @@ -8148,6 +8087,9 @@ msgstr "" #~ "filament. Hierdoor kan de nozzle verstopt raken en kan het printen " #~ "mislukken" +#~ msgid "Choose one or more files (3mf/step/stl/obj/amf):" +#~ msgstr "Kies een of meer bestanden (3mf/step/stl/obj/amf):" + #~ msgid "Clear all" #~ msgstr "Alles wissen" @@ -8205,6 +8147,14 @@ msgstr "" #~ "2. Voorinstellingen voor filament\n" #~ "3. Voorinstellingen voor printers\n" +#~ msgid "" +#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" +#~ "It contains the following information:\n" +#~ "1. The Process presets\n" +#~ "2. The Filament presets\n" +#~ "3. The Printer presets\n" +#~ msgstr "\n" + #~ msgid "" #~ "Don't retract when the travel is in infill area absolutely. That means " #~ "the oozing can't been seen" @@ -8258,9 +8208,26 @@ msgstr "" #~ msgid "Filament N XX" #~ msgstr "Filament N XX" +#~ msgid "" +#~ "Filament to print support and skirt. 0 means no specific filament for " +#~ "support and current filament is used" +#~ msgstr "" +#~ "Filament om randen (skirt) en support te printen. Indien u kiest voor 0 " +#~ "dan is er geen specifiek filament en wordt het huidige filament gebruikt" + +#~ msgid "" +#~ "Filament to print support interface. 0 means no specific filament for " +#~ "support interface and current filament is used" +#~ msgstr "" +#~ "Filament om support te printen. Indien u kiest voor 0 dan is er geen " +#~ "specifiek filament en wordt het huidige filament gebruikt" + #~ msgid "Filaments Selection" #~ msgstr "Filaments selectie" +#~ msgid "Finish" +#~ msgstr "Klaar" + #~ msgid "Finished" #~ msgstr "Voltooid" @@ -8306,6 +8273,9 @@ msgstr "" #~ "voor automatisch rangschikken om botsingen te voorkomen bij object voor " #~ "object printen." +#~ msgid "Import 3MF/STL/STEP/OBJ/AMF" +#~ msgstr "Importeer 3MF/STL/STEP/OBJ/AMF" + #~ msgid "In the calibration of extrusion flow" #~ msgstr "Bij de kalibratie van de extrusieflow" @@ -8347,6 +8317,9 @@ msgstr "" #~ msgid "Monitoring" #~ msgstr "Monitoren" +#~ msgid "Monitoring Recording" +#~ msgstr "Monitoring en opname" + #~ msgid "Open" #~ msgstr "Open" @@ -8359,6 +8332,9 @@ msgstr "" #~ msgid "Output file" #~ msgstr "Bestand weergeven" +#~ msgid "Part Cooling" +#~ msgstr "Koeling van de printkop" + #~ msgid "Pause(heated bed temperature error)" #~ msgstr "Pauze (fout in temperatuur printbed)" @@ -8371,9 +8347,20 @@ msgstr "" #~ msgid "Per object edit" #~ msgstr "Instellingen per object" +#~ msgid "Plate %d: %s does not support filament %s\n" +#~ msgstr "\n" + #~ msgid "Plate %d: %s does not support filament %s.\n" #~ msgstr "Printbed %d: %s onderstand filament %s niet.\n" +#~ msgid "Plate %d: %s does not support filament %s (%s).\n" +#~ msgstr "\n" + +#~ msgid "" +#~ "Please check the following infomation and click Confirm to continue " +#~ "sending print:\n" +#~ msgstr "\n" + #~ msgid "Please fill report first." #~ msgstr "Gelieve eerst het rapport in te vullen." @@ -8439,6 +8426,12 @@ msgstr "" #~ msgid "Reload items" #~ msgstr "Onderdelen opnieuw laden" +#~ msgid "Repair" +#~ msgstr "Repareren" + +#~ msgid "Repair the model's meshes if it is non-manifold mesh" +#~ msgstr "Repareer de meshes van het model als ze niet-manifold zijn." + #~ msgid "Report" #~ msgstr "Rapport" @@ -8472,6 +8465,15 @@ msgstr "" #~ msgid "Spiral mode" #~ msgstr "Spiraal modus" +#~ msgid "" +#~ "Spiral mode only works when wall loops is 1, \n" +#~ "support is disabled, top shell layers is 0 and sparse infill density is " +#~ "0\n" +#~ msgstr "" +#~ "Spiraal modus werkt alleen indien indien er 1 wall gekozen is, \n" +#~ "support uitgeschakeld is, er 0 top layers gekozen zijn en de vulling " +#~ "dichtheid 0 is\n" + #~ msgid "Successfully sent.Will automatically jump to the device page in %s s" #~ msgstr "" #~ "Succesvol verzonden. Automatisch terug naar de apparaatpagina in %s s" @@ -8486,6 +8488,12 @@ msgstr "" #~ "filament wisselingen veroorzaken indien support is gespecificeerd als een " #~ "andere extruder dan het object" +#~ msgid "" +#~ "Switch to rectilinear pattern?\n" +#~ "Yes - switch to rectilinear pattern automaticlly\n" +#~ "No - reset density to default non 100% value automaticlly\n" +#~ msgstr "\n" + #~ msgid "" #~ "Switch to zig-zag pattern?\n" #~ "Yes - switch to zig-zag pattern automaticlly\n" @@ -8498,6 +8506,18 @@ msgstr "" #~ msgid "Swith cloud environment, Please login again!" #~ msgstr "De cloud omgeving is aangepast. Log opnieuw in aub." +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " +#~ "unrecognized:\n" +#~ msgstr "" +#~ "De 3mf-versie %s is nieuwer dan %s-versie %s, Gevonden volgende sleutels " +#~ "zijn niet herkend:\n" + +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " +#~ "your software.\n" +#~ msgstr "\n" + #~ msgid "The Config is not compatible and can not be loaded." #~ msgstr "De configuratie is niet compatibel en kan niet geladen worden!" @@ -8517,6 +8537,12 @@ msgstr "" #~ "heeft geprobeerd om het te repareren, maar misschien wilt u de resultaten " #~ "controleren of het invoerbestand repareren en het opnieuw proberen." +#~ msgid "" +#~ "The printer type used to generate G-code is not the same type as the " +#~ "currently selected physical printer. It is recommend to re-slice by " +#~ "selecting the same printer type.\n" +#~ msgstr "\n" + #~ msgid "" #~ "This object will be used to purge the nozzle after a filament change to " #~ "save filament and decrease the print time. Colours of the objects will be " @@ -8526,6 +8552,13 @@ msgstr "" #~ "om filament te besparen en de print tijd te verkorten. De kleuren van de " #~ "objecten worden gemengd als resultaat" +#~ msgid "" +#~ "This setting specifies whether to add infill inside large hollows of tree " +#~ "support" +#~ msgstr "" +#~ "Deze instelling geeft aan of er opvulling moet worden toegevoegd in grote " +#~ "holtes van de tree support." + #~ msgid "" #~ "This setting stands for how much volume of filament can be melted and " #~ "extruded per second. Printing speed is limited by max volumetric speed, " @@ -8542,6 +8575,9 @@ msgstr "" #~ msgid "Translation" #~ msgstr "Vertaling" +#~ msgid "Tree support with infill" +#~ msgstr "Tree support met vulling" + #~ msgid "Unable to create zip file" #~ msgstr "Kan het zip-bestand niet aanmaken" @@ -8554,6 +8590,13 @@ msgstr "" #~ msgid "Waiting" #~ msgstr "Wachten" +#~ 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\".\n" +#~ msgstr "\n" + #~ msgid "" #~ "You have changed some preset settings. \n" #~ "Would you like to keep these changed settings after switching preset?" @@ -8568,20 +8611,38 @@ msgstr "" #~ msgid " Object:" #~ msgstr "Object" +#~ msgid "" +#~ " is too close to exclusion area, there may be collisions when printing.\n" +#~ msgstr "\n" + #~ msgid "" #~ " is too close to exclusion area, there will be collisions when printing.\n" #~ msgstr "" #~ " komt te dichtbij het uitgesloten gebied, er zullen botsingen optreden " #~ "tijdens het printen.\n" +#~ msgid " is too close to others, there may be collisions when printing.\n" +#~ msgstr "\n" + #~ msgid " is too close to others, there will be collisions when printing.\n" #~ msgstr "" #~ " bevindt zich te dichtbij andere objecten, er zullen botsingen optreden " #~ "tijdens het printen.\n" +#~ msgid "hybrid(auto)" +#~ msgstr "Hybride (automatisch)" + #~ msgid "normal" #~ msgstr "Normaal" +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal or tree is selected, only support enforcers are generated" +#~ msgstr "" +#~ "normal (auto), hybride (auto) en tree (auto) worden gebruikt om " +#~ "automatisch support te genereren. Als normaal of tree is geselecteerd, " +#~ "worden alleen vereiste support gegenereerd." + #~ msgid "the 3mf is not compatible, load geometry data only!" #~ msgstr "" #~ "Het 3mf bestand is niet compatibel, enkel de geometrische data wordt " diff --git a/bbl/i18n/sv/BambuStudio_sv.po b/bbl/i18n/sv/BambuStudio_sv.po index a94d3eeca..b90fe4a3f 100644 --- a/bbl/i18n/sv/BambuStudio_sv.po +++ b/bbl/i18n/sv/BambuStudio_sv.po @@ -2,16 +2,13 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-21 10:35+0800\n" -"PO-Revision-Date: \n" -"Last-Translator: \n" -"Language-Team: \n" +"POT-Creation-Date: 2022-12-22 17:44+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Localazy (https://localazy.com)\n" "Plural-Forms: nplurals=2; plural=(n==1) ? 0 : 1;\n" -"X-Generator: Poedit 3.1\n" msgid "Supports Painting" msgstr "Färgläggning av Support" @@ -1886,7 +1883,7 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly\n" +"This may cause decline in the quality of overhang surface when print fastly" msgstr "" msgid "" @@ -1895,18 +1892,6 @@ msgid "" "No - Give up using arachne this time" msgstr "" -msgid "" -"We have added an experimental style \"Tree Slim\" that features smaller " -"support volume but weaker strength.\n" -"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" -msgstr "" - -msgid "" -"Change these settings automatically? \n" -"Yes - Change these settings automatically\n" -"No - Do not change these settings for me" -msgstr "" - msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -1949,11 +1934,8 @@ msgstr "%1% ifyllnads mönster stöds ej 100%% densitet." msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly\n" +"No - reset density to default non 100% value automaticlly" msgstr "" -"Switch to rectilinear pattern?\n" -"Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly\n" msgid "Auto bed leveling" msgstr "Auto justera byggplattan" @@ -2873,7 +2855,7 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets\n" +"3. The Printer presets" msgstr "" msgid "Synchronization" @@ -3523,10 +3505,8 @@ msgstr "" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:\n" +"unrecognized:" msgstr "" -"3mf's version %s är nyare än %s's version %s, Följande nycklar känns inte " -"igen:\n" msgid "You'd better upgrade your software.\n" msgstr "Uppdatera mjukvaran.\n" @@ -3537,7 +3517,7 @@ msgstr "Nyare 3mf version" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software.\n" +"software." msgstr "" msgid "The 3mf is not compatible, load geometry data only!" @@ -3812,7 +3792,7 @@ msgid "" msgstr "" #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s (%s).\n" +msgid "Plate %d: %s does not support filament %s (%s)." msgstr "" msgid "Switching the language requires application restart.\n" @@ -4291,13 +4271,13 @@ msgstr "" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:\n" +"print:" msgstr "" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type.\n" +"selecting the same printer type." msgstr "" #, c-format, boost-format @@ -4391,11 +4371,29 @@ msgid "" "model without prime tower. Do you want to enable prime tower?" msgstr "" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls." +msgstr "" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" + +msgid "" +"When using support material for the support interface, We recommand the " +"following settings:\n" +"0 top distance, 0 interface spacing, concentric pattern." +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\".\n" +"\"->\"Timelapse Wipe Tower\"." msgstr "" msgid "Line width" @@ -5456,14 +5454,11 @@ msgstr "%1% är för nära andra och kan orsaka kollisioner." msgid "%1% is too tall, and collisions will be caused." msgstr "%1% är för hög, och kollisioner kommer att uppstå." -msgid " is too close to others, there may be collisions when printing.\n" -msgstr " is too close to others, there may be collisions when printing.\n" - -msgid "" -" is too close to exclusion area, there may be collisions when printing.\n" +msgid " is too close to others, there may be collisions when printing." +msgstr "" + +msgid " is too close to exclusion area, there may be collisions when printing." msgstr "" -" is too close to exclusion area, there may be collisions when printing.\n" -"\n" msgid "Prime Tower" msgstr "Prime Torn" @@ -5557,7 +5552,7 @@ msgid "Layer height cannot exceed nozzle diameter" msgstr "Lagerhöjden kan inte överstiga nozzel diametern" #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s\n" +msgid "Plate %d: %s does not support filament %s" msgstr "" msgid "Generating skirt & brim" @@ -7177,6 +7172,9 @@ msgstr "Supportens linje mönster" msgid "Rectilinear grid" msgstr "Rät linjärt nät" +msgid "Hollow" +msgstr "" + msgid "Interface pattern" msgstr "Gränssnitts mönster" @@ -7186,8 +7184,8 @@ msgid "" "interface is Concentric" msgstr "" "Linje mönster för support gränssnittsytan .Standardmönstret för olösligt " -"(material) support gränssnittet är Räta medan standardmönstret för " -"lösligt(material) stödgränssnittet är koncentriskt" +"(material) support gränssnittet är Räta medan standardmönstret för lösligt" +"(material) stödgränssnittet är koncentriskt" msgid "Base pattern spacing" msgstr "Basens mönster mellanrum" @@ -7882,73 +7880,6 @@ msgid "" "density to improve the strength of the model?" msgstr "" -#~ msgid "" -#~ "normal(auto) and tree(auto) is used to generate support automatically. If " -#~ "normal or tree is selected, only support enforcers are generated" -#~ msgstr "" -#~ "normal(auto), hybrid(auto) och tree(auto) används för att skapa support " -#~ "automatiskt. Om normal eller tree är vald, kommer endast tvingande " -#~ "support skapas" - -#~ msgid "hybrid(auto)" -#~ msgstr "hybrid(auto)" - -#~ msgid "" -#~ "Spiral mode only works when wall loops is 1, \n" -#~ "support is disabled, top shell layers is 0 and sparse infill density is " -#~ "0\n" -#~ msgstr "" -#~ "Spiral läge fungerar bara när vägg antalet är 1,\n" -#~ "support är inaktiverad, top lager är 0 och låg ifyllnads densitet är 0\n" - -#~ msgid "Choose one or more files (3mf/step/stl/obj/amf):" -#~ msgstr "Välj en eller flera filer (3mf/step/stl/obj/amf):" - -#~ msgid "Finish" -#~ msgstr "Slutför" - -#~ msgid "Import 3MF/STL/STEP/OBJ/AMF" -#~ msgstr "Importera 3MF/STL/STEP/OBJ/AMF" - -#~ msgid "Part Cooling" -#~ msgstr "Del Kylning" - -#~ msgid "Aux Cooling" -#~ msgstr "Extra Kylning" - -#~ msgid "" -#~ "Filament to print support and skirt. 0 means no specific filament for " -#~ "support and current filament is used" -#~ msgstr "" -#~ "Filament för att skriva ut support och skirt med. 0 betyder inget " -#~ "speciellt filament för support och nuvarande filament används" - -#~ msgid "" -#~ "Filament to print support interface. 0 means no specific filament for " -#~ "support interface and current filament is used" -#~ msgstr "" -#~ "Support filament för utskrift. 0 betyder att inget specifikt filament för " -#~ "support gränssnitt och nuvarande filament används" - -#~ msgid "Repair" -#~ msgstr "Reparera" - -#~ msgid "Repair the model's meshes if it is non-manifold mesh" -#~ msgstr "Reparera modellens mesh om den inte är mångfaldig" - -#~ msgid "Monitoring Recording" -#~ msgstr "Övervaknings Inspelning" - -#~ msgid "Tree support with infill" -#~ msgstr "Tree support med ifyllnad" - -#~ msgid "" -#~ "This setting specifies whether to add infill inside large hollows of tree " -#~ "support" -#~ msgstr "" -#~ "Inställningen bestämmer om det ska läggas till ifyllnad i stora hålrum av " -#~ "tree support" - #~ msgid "" #~ "\n" #~ "%1% is too close to exclusion area, there will be collisions when " @@ -7975,6 +7906,12 @@ msgstr "" #~ "Ett objekt är placerad över byggplattans begränsningar.\n" #~ "Flytta objektet så det är helt inom eller utom byggplattans begränsningar." +#~ msgid "" +#~ "Arachne engine only works when overhang slowing down is disabled.\n" +#~ "This may cause decline in the quality of overhang surface when print " +#~ "fastly\n" +#~ msgstr "\n" + #~ msgid "Auto arrange" #~ msgstr "Auto arrangera" @@ -7986,6 +7923,9 @@ msgstr "" #~ "Auto placera valda objekt eller alla objekt. Om det finns valda objekt så " #~ "placeras endast dem. Alternativt så placeras alla objekt i projektet." +#~ msgid "Aux Cooling" +#~ msgstr "Extra Kylning" + #~ msgid "Avoid crossing wall when travel" #~ msgstr "Undvik väggar vid förflyttning" @@ -7998,6 +7938,9 @@ msgstr "" #~ "filament.\n" #~ "Detta kan orsaka att nozzeln blockeras och utskriften misslyckas" +#~ msgid "Choose one or more files (3mf/step/stl/obj/amf):" +#~ msgstr "Välj en eller flera filer (3mf/step/stl/obj/amf):" + #~ msgid "Clear all" #~ msgstr "Rensa allt" @@ -8054,6 +7997,14 @@ msgstr "" #~ "2. Filament förinställningar\n" #~ "3. Skrivare förinställningar\n" +#~ msgid "" +#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" +#~ "It contains the following information:\n" +#~ "1. The Process presets\n" +#~ "2. The Filament presets\n" +#~ "3. The Printer presets\n" +#~ msgstr "\n" + #~ msgid "" #~ "Don't retract when the travel is in infill area absolutely. That means " #~ "the oozing can't been seen" @@ -8107,9 +8058,26 @@ msgstr "" #~ msgid "Filament N XX" #~ msgstr "Filament N XX" +#~ msgid "" +#~ "Filament to print support and skirt. 0 means no specific filament for " +#~ "support and current filament is used" +#~ msgstr "" +#~ "Filament för att skriva ut support och skirt med. 0 betyder inget " +#~ "speciellt filament för support och nuvarande filament används" + +#~ msgid "" +#~ "Filament to print support interface. 0 means no specific filament for " +#~ "support interface and current filament is used" +#~ msgstr "" +#~ "Support filament för utskrift. 0 betyder att inget specifikt filament för " +#~ "support gränssnitt och nuvarande filament används" + #~ msgid "Filaments Selection" #~ msgstr "Filament Val" +#~ msgid "Finish" +#~ msgstr "Slutför" + #~ msgid "Finished" #~ msgstr "Färdig" @@ -8158,6 +8126,9 @@ msgstr "" #~ "auto-placering för att undvika kollision när man skriver ut objekt för " #~ "objekt" +#~ msgid "Import 3MF/STL/STEP/OBJ/AMF" +#~ msgstr "Importera 3MF/STL/STEP/OBJ/AMF" + #~ msgid "In the calibration of extrusion flow" #~ msgstr "Vid kalibrering av extruderingsflödet" @@ -8199,6 +8170,9 @@ msgstr "" #~ msgid "Monitoring" #~ msgstr "Övervakar" +#~ msgid "Monitoring Recording" +#~ msgstr "Övervaknings Inspelning" + #~ msgid "Open" #~ msgstr "Öppna" @@ -8211,6 +8185,9 @@ msgstr "" #~ msgid "Output file" #~ msgstr "Utdatafil" +#~ msgid "Part Cooling" +#~ msgstr "Del Kylning" + #~ msgid "Pause(heated bed temperature error)" #~ msgstr "Paus (temperaturfel i byggplattan)" @@ -8223,9 +8200,20 @@ msgstr "" #~ msgid "Per object edit" #~ msgstr "Redigera per objekt" +#~ msgid "Plate %d: %s does not support filament %s\n" +#~ msgstr "\n" + #~ msgid "Plate %d: %s does not support filament %s.\n" #~ msgstr "Plattan %d: %s stöds ej av filament %s.\n" +#~ msgid "Plate %d: %s does not support filament %s (%s).\n" +#~ msgstr "\n" + +#~ msgid "" +#~ "Please check the following infomation and click Confirm to continue " +#~ "sending print:\n" +#~ msgstr "\n" + #~ msgid "Please fill report first." #~ msgstr "Fyll i rapporten först." @@ -8293,6 +8281,12 @@ msgstr "" #~ msgid "Reload items" #~ msgstr "Ladda om objekten" +#~ msgid "Repair" +#~ msgstr "Reparera" + +#~ msgid "Repair the model's meshes if it is non-manifold mesh" +#~ msgstr "Reparera modellens mesh om den inte är mångfaldig" + #~ msgid "Report" #~ msgstr "Rapportera" @@ -8326,6 +8320,14 @@ msgstr "" #~ msgid "Spiral mode" #~ msgstr "Spiral läge" +#~ msgid "" +#~ "Spiral mode only works when wall loops is 1, \n" +#~ "support is disabled, top shell layers is 0 and sparse infill density is " +#~ "0\n" +#~ msgstr "" +#~ "Spiral läge fungerar bara när vägg antalet är 1,\n" +#~ "support är inaktiverad, top lager är 0 och låg ifyllnads densitet är 0\n" + #~ msgid "Successfully sent.Will automatically jump to the device page in %s s" #~ msgstr "" #~ "Framgångsrikt skickat. Kommer automatiskt att hoppa till enhetssidan om " @@ -8340,6 +8342,12 @@ msgstr "" #~ "stöda custom support mellanrum, detta kan orsaka extra filament byten om " #~ "support (materialet) är vald som en annan extruder än objektets" +#~ msgid "" +#~ "Switch to rectilinear pattern?\n" +#~ "Yes - switch to rectilinear pattern automaticlly\n" +#~ "No - reset density to default non 100% value automaticlly\n" +#~ msgstr "\n" + #~ msgid "" #~ "Switch to zig-zag pattern?\n" #~ "Yes - switch to zig-zag pattern automaticlly\n" @@ -8352,6 +8360,18 @@ msgstr "" #~ msgid "Swith cloud environment, Please login again!" #~ msgstr "Byte av moln miljö, Logga in igen!" +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " +#~ "unrecognized:\n" +#~ msgstr "" +#~ "3mf's version %s är nyare än %s's version %s, Följande nycklar känns inte " +#~ "igen:\n" + +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " +#~ "your software.\n" +#~ msgstr "\n" + #~ msgid "The Config is not compatible and can not be loaded." #~ msgstr "Ej kompatibel konfiguration; kan inte laddas." @@ -8370,6 +8390,12 @@ msgstr "" #~ "Modellen har överlappande eller självkorsande aspekter.Reparation utförd, " #~ "men kontrollera resultaten eller reparera indatafilen och försöka igen." +#~ msgid "" +#~ "The printer type used to generate G-code is not the same type as the " +#~ "currently selected physical printer. It is recommend to re-slice by " +#~ "selecting the same printer type.\n" +#~ msgstr "\n" + #~ msgid "" #~ "This object will be used to purge the nozzle after a filament change to " #~ "save filament and decrease the print time. Colours of the objects will be " @@ -8379,6 +8405,13 @@ msgstr "" #~ "byte för att spara filament och minska utskriftstiden. Objektens färger " #~ "blandas som ett resultat" +#~ msgid "" +#~ "This setting specifies whether to add infill inside large hollows of tree " +#~ "support" +#~ msgstr "" +#~ "Inställningen bestämmer om det ska läggas till ifyllnad i stora hålrum av " +#~ "tree support" + #~ msgid "" #~ "This setting stands for how much volume of filament can be melted and " #~ "extruded per second. Printing speed is limited by max volumetric speed, " @@ -8395,6 +8428,9 @@ msgstr "" #~ msgid "Translation" #~ msgstr "Översättning" +#~ msgid "Tree support with infill" +#~ msgstr "Tree support med ifyllnad" + #~ msgid "Unable to create zip file" #~ msgstr "Det gick inte att skapa zip-fil" @@ -8407,6 +8443,13 @@ msgstr "" #~ msgid "Waiting" #~ msgstr "Väntar" +#~ 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\".\n" +#~ msgstr "\n" + #~ msgid "" #~ "You have changed some preset settings. \n" #~ "Would you like to keep these changed settings after switching preset?" @@ -8420,16 +8463,34 @@ msgstr "" #~ msgid " Object:" #~ msgstr " Objekt:" +#~ msgid "" +#~ " is too close to exclusion area, there may be collisions when printing.\n" +#~ msgstr "\n" + #~ msgid "" #~ " is too close to exclusion area, there will be collisions when printing.\n" #~ msgstr " för tätt inpå den isolerade ytan, utskriften kolliderar.\n" +#~ msgid " is too close to others, there may be collisions when printing.\n" +#~ msgstr "\n" + #~ msgid " is too close to others, there will be collisions when printing.\n" #~ msgstr " för tätt inpå andra, utskriften kolliderar.\n" +#~ msgid "hybrid(auto)" +#~ msgstr "hybrid(auto)" + #~ msgid "normal" #~ msgstr "normal" +#~ msgid "" +#~ "normal(auto) and tree(auto) is used to generate support automatically. If " +#~ "normal or tree is selected, only support enforcers are generated" +#~ msgstr "" +#~ "normal(auto), hybrid(auto) och tree(auto) används för att skapa support " +#~ "automatiskt. Om normal eller tree är vald, kommer endast tvingande " +#~ "support skapas" + #~ msgid "the 3mf is not compatible, load geometry data only!" #~ msgstr "3mf ej kompatibel, laddar endast geometrin !" diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index 9596147ae..79b0a4d1f 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-12-21 10:35+0800\n" -"PO-Revision-Date: 2022-12-13 20:18+0800\n" +"POT-Creation-Date: 2022-12-22 17:44+0800\n" +"PO-Revision-Date: 2022-12-22 17:47+0800\n" "Last-Translator: Jiang Yue \n" "Language-Team: \n" "Language: zh_CN\n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 3.0.1\n" +"X-Generator: Poedit 3.1\n" msgid "Supports Painting" msgstr "支撑绘制" @@ -1838,10 +1838,8 @@ msgstr "" msgid "" "Arachne engine only works when overhang slowing down is disabled.\n" -"This may cause decline in the quality of overhang surface when print fastly\n" +"This may cause decline in the quality of overhang surface when print fastly" msgstr "" -"Arachne引擎只在关闭悬垂降速时起作用。\n" -"这可能会导致高速打印时悬垂表面质量的下降\n" msgid "" "Disable overhang slowing down automatically? \n" @@ -1852,21 +1850,6 @@ msgstr "" "是 - 使用arachne并关闭悬垂降速\n" "否 - 此次放弃使用arachne" -msgid "" -"We have added an experimental style \"Tree Slim\" that features smaller " -"support volume but weaker strength.\n" -"We recommand using it with: 0 interface layers, 0 top distance, 2 walls.\n" -msgstr "" - -msgid "" -"Change these settings automatically? \n" -"Yes - Change these settings automatically\n" -"No - Do not change these settings for me" -msgstr "" -"自动调整这些设置?\n" -"是 - 自动调整这些设置\n" -"否 - 不用为我调整这些设置" - msgid "" "Prime tower does not work when Adaptive Layer Height or Independent Support " "Layer Height is on.\n" @@ -1908,11 +1891,8 @@ msgstr "%1% 填充图案不支持 100%% 密度。" msgid "" "Switch to rectilinear pattern?\n" "Yes - switch to rectilinear pattern automaticlly\n" -"No - reset density to default non 100% value automaticlly\n" +"No - reset density to default non 100% value automaticlly" msgstr "" -"切换到直线图案?\n" -"是 - 自动切换到直线图案\n" -"否 - 自动重置为非100%填充密度\n" msgid "Auto bed leveling" msgstr "自动热床调平" @@ -2832,13 +2812,8 @@ msgid "" "It contains the following information:\n" "1. The Process presets\n" "2. The Filament presets\n" -"3. The Printer presets\n" +"3. The Printer presets" msgstr "" -"想从Bambu 云同步你的个人数据吗?\n" -"包含如下信息:\n" -"1. 工艺预设\n" -"2. 打印丝预设\n" -"3. 打印机预设\n" msgid "Synchronization" msgstr "同步" @@ -3493,8 +3468,8 @@ msgstr "该3mf文件来自旧版本的Bambu Lab,将只加载几何数据。" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Found following keys " -"unrecognized:\n" -msgstr "该3mf的版本%s比%s的版本%s新,发现以下参数键值无法识别;\n" +"unrecognized:" +msgstr "" msgid "You'd better upgrade your software.\n" msgstr "建议升级您的软件版本。\n" @@ -3505,8 +3480,8 @@ msgstr "较新的3mf版本" #, c-format, boost-format msgid "" "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your " -"software.\n" -msgstr "该3mf文件的版本%s 比%s的版本%s更新,建议升级您的软件。\n" +"software." +msgstr "" msgid "The 3mf is not compatible, load geometry data only!" msgstr "该3mf文件与软件不兼容,将只加载几何数据。" @@ -3784,8 +3759,8 @@ msgstr "" "模型。" #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s (%s).\n" -msgstr "盘%d:%s不支持耗材丝%s (%s)。\n" +msgid "Plate %d: %s does not support filament %s (%s)." +msgstr "" msgid "Switching the language requires application restart.\n" msgstr "切换语言要求重启应用程序。\n" @@ -4259,16 +4234,14 @@ msgstr "错误" msgid "" "Please check the following infomation and click Confirm to continue sending " -"print:\n" -msgstr "请检查以下信息,点击确认后继续发送打印:\n" +"print:" +msgstr "" msgid "" "The printer type used to generate G-code is not the same type as the " "currently selected physical printer. It is recommend to re-slice by " -"selecting the same printer type.\n" +"selecting the same printer type." msgstr "" -"用于生成G-code的打印机类型与当前选定的物理打印机类型不同,建议选择相同的打印" -"机类型重新切片。\n" #, c-format, boost-format msgid "The %s filament is too soft to be used with the AMS" @@ -4366,14 +4339,38 @@ msgid "" msgstr "" "平滑模式的延时摄影需要擦料塔,否则打印件上可能会有瑕疵。您想打开擦料塔吗?" +msgid "" +"We have added an experimental style \"Tree Slim\" that features smaller " +"support volume but weaker strength.\n" +"We recommand using it with: 0 interface layers, 0 top distance, 2 walls." +msgstr "" +"我们加入一个新的实验性风格\\\"苗条树\\\",它使用更少的支撑体积,但强度可能较" +"弱。\n" +"\"因此我们推荐以下参数:接触层数为0,顶部Z距离为0,墙层数为2。" + +msgid "" +"Change these settings automatically? \n" +"Yes - Change these settings automatically\n" +"No - Do not change these settings for me" +msgstr "" +"自动调整这些设置?\n" +"是 - 自动调整这些设置\n" +"否 - 不用为我调整这些设置" + +msgid "" +"When using support material for the support interface, We recommand the " +"following settings:\n" +"0 top distance, 0 interface spacing, concentric pattern." +msgstr "" +"当使用支撑材料作为支撑面,我们推荐以下设置:\n" +"顶部Z距离为0, 支撑面线距为0,接触面图案为同。" + 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\".\n" +"\"->\"Timelapse Wipe Tower\"." msgstr "" -"在录制无工具头延时摄影视频时,建议添加“延时摄影擦料塔”\n" -"右键单击构建板的空白位置,选择“添加标准模型”->“延时摄影擦料塔”。\n" msgid "Line width" msgstr "线宽" @@ -5400,12 +5397,11 @@ msgstr "%1%离其它对象太近,可能会发生碰撞。" msgid "%1% is too tall, and collisions will be caused." msgstr "%1%太高,会发生碰撞。" -msgid " is too close to others, there may be collisions when printing.\n" -msgstr "到其他对象的距离太近了,可能在打印过程中发生碰撞。\n" +msgid " is too close to others, there may be collisions when printing." +msgstr "" -msgid "" -" is too close to exclusion area, there may be collisions when printing.\n" -msgstr "到屏蔽区域的距离太近了,可能在打印过程中发生碰撞。\n" +msgid " is too close to exclusion area, there may be collisions when printing." +msgstr "" msgid "Prime Tower" msgstr "擦拭塔" @@ -5488,8 +5484,8 @@ msgid "Layer height cannot exceed nozzle diameter" msgstr "层高不能超过喷嘴直径" #, c-format, boost-format -msgid "Plate %d: %s does not support filament %s\n" -msgstr "盘%d: %s 不支持耗材丝 %s\n" +msgid "Plate %d: %s does not support filament %s" +msgstr "" msgid "Generating skirt & brim" msgstr "正在生成skirt和brim" @@ -6906,8 +6902,8 @@ msgid "" "normal(manual) or tree(manual) is selected, only support enforcers are " "generated" msgstr "" -"普通(自动)和树状(自动)用于自动生成支撑体。如果选择普通(手动)" -"或树状(手动),仅会在支撑强制面上生成支撑。" +"普通(自动)和树状(自动)用于自动生成支撑体。如果选择普通(手动)或树状(手" +"动),仅会在支撑强制面上生成支撑。" msgid "normal(auto)" msgstr "普通(自动)" @@ -6965,7 +6961,8 @@ msgstr "支撑主体" msgid "" "Filament to print support base and raft. \"Default\" means no specific " "filament for support and current filament is used" -msgstr "打印支撑主体和筏层的耗材丝。\"缺省\"代表不指定特定的耗材丝,并使用当前耗材" +msgstr "" +"打印支撑主体和筏层的耗材丝。\"缺省\"代表不指定特定的耗材丝,并使用当前耗材" msgid "Line width of support" msgstr "支撑的线宽" @@ -7015,6 +7012,9 @@ msgstr "支撑走线图案" msgid "Rectilinear grid" msgstr "直线网格" +msgid "Hollow" +msgstr "空心" + msgid "Interface pattern" msgstr "支撑面图案" @@ -7057,13 +7057,13 @@ msgid "Snug" msgstr "紧贴" msgid "Tree Slim" -msgstr "" +msgstr "苗条树" msgid "Tree Strong" -msgstr "" +msgstr "粗壮树" msgid "Tree Hybrid" -msgstr "" +msgstr "混合树" msgid "Independent support layer height" msgstr "支撑独立层高" @@ -7785,6 +7785,81 @@ msgstr "" "提高强度\n" "你知道吗?你可以使用更多的墙层数和更高的疏散填充密度来提高模型的强度。" +#~ msgid "" +#~ "Arachne engine only works when overhang slowing down is disabled.\n" +#~ "This may cause decline in the quality of overhang surface when print " +#~ "fastly\n" +#~ msgstr "" +#~ "Arachne引擎只在关闭悬垂降速时起作用。\n" +#~ "这可能会导致高速打印时悬垂表面质量的下降\n" + +#~ msgid "" +#~ "Switch to rectilinear pattern?\n" +#~ "Yes - switch to rectilinear pattern automaticlly\n" +#~ "No - reset density to default non 100% value automaticlly\n" +#~ msgstr "" +#~ "切换到直线图案?\n" +#~ "是 - 自动切换到直线图案\n" +#~ "否 - 自动重置为非100%填充密度\n" + +#~ msgid "" +#~ "Do you want to synchronize your personal data from Bambu Cloud? \n" +#~ "It contains the following information:\n" +#~ "1. The Process presets\n" +#~ "2. The Filament presets\n" +#~ "3. The Printer presets\n" +#~ msgstr "" +#~ "想从Bambu 云同步你的个人数据吗?\n" +#~ "包含如下信息:\n" +#~ "1. 工艺预设\n" +#~ "2. 打印丝预设\n" +#~ "3. 打印机预设\n" + +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Found following keys " +#~ "unrecognized:\n" +#~ msgstr "该3mf的版本%s比%s的版本%s新,发现以下参数键值无法识别;\n" + +#~ msgid "" +#~ "The 3mf's version %s is newer than %s's version %s, Suggest to upgrade " +#~ "your software.\n" +#~ msgstr "该3mf文件的版本%s 比%s的版本%s更新,建议升级您的软件。\n" + +#~ msgid "Plate %d: %s does not support filament %s (%s).\n" +#~ msgstr "盘%d:%s不支持耗材丝%s (%s)。\n" + +#~ msgid "" +#~ "Please check the following infomation and click Confirm to continue " +#~ "sending print:\n" +#~ msgstr "请检查以下信息,点击确认后继续发送打印:\n" + +#~ msgid "" +#~ "The printer type used to generate G-code is not the same type as the " +#~ "currently selected physical printer. It is recommend to re-slice by " +#~ "selecting the same printer type.\n" +#~ msgstr "" +#~ "用于生成G-code的打印机类型与当前选定的物理打印机类型不同,建议选择相同的打" +#~ "印机类型重新切片。\n" + +#~ 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\".\n" +#~ msgstr "" +#~ "在录制无工具头延时摄影视频时,建议添加“延时摄影擦料塔”\n" +#~ "右键单击构建板的空白位置,选择“添加标准模型”->“延时摄影擦料塔”。\n" + +#~ msgid " is too close to others, there may be collisions when printing.\n" +#~ msgstr "到其他对象的距离太近了,可能在打印过程中发生碰撞。\n" + +#~ msgid "" +#~ " is too close to exclusion area, there may be collisions when printing.\n" +#~ msgstr "到屏蔽区域的距离太近了,可能在打印过程中发生碰撞。\n" + +#~ msgid "Plate %d: %s does not support filament %s\n" +#~ msgstr "盘%d: %s 不支持耗材丝 %s\n" + #~ msgid "" #~ "normal(auto) and tree(auto) is used to generate support automatically. If " #~ "normal or tree is selected, only support enforcers are generated" diff --git a/resources/i18n/de/BambuStudio.mo b/resources/i18n/de/BambuStudio.mo index 788d58153bac75355a84bb96ebc06174e1ac3333..5ab08aaff7e0bd14627e3f4fb00906416881bc0b 100644 GIT binary patch delta 29640 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 F{|^8Nf&u^l delta 29815 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 V7#y3>yK{W}K<4m1tKXf9{|_Ny(q{kw diff --git a/resources/i18n/en/BambuStudio.mo b/resources/i18n/en/BambuStudio.mo index 36e18fbd24075176fd06e824ef860d3955cda1cb..09b14d79f0b9769d452deab9366c9b33d0be2985 100644 GIT binary patch delta 36604 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%0Dm?&tQFQ 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 delta 36328 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 K%ji|q>%RfDVOrM! diff --git a/resources/i18n/es/BambuStudio.mo b/resources/i18n/es/BambuStudio.mo index ac394c58519c07ee61c58551060f176c4f28f726..87d1dffab6dfb02fb6d0387f88fc32263dfde80b 100644 GIT binary patch delta 29631 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 GYyCfSS8t5~ delta 29824 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 diff --git a/resources/i18n/hu/BambuStudio.mo b/resources/i18n/hu/BambuStudio.mo index 9417c55b027e37e899aca9b6c1c6a9cd7f6a0bbb..6062ad0ea246b739a490d558cc1a36f96091379a 100644 GIT binary patch delta 36222 zcmY-21$Y$6qK4s~;1+^AgkXUrBtU|@yGw9)cV}>SUmO;9cXwZ07YMevEwDJ;@1Lri zhuhC>-tww0=@~-y+$|BYeqD*>zMC-W42NrCbjL}J<3k;1UrfjO-bSg8^LCu$#KL!& z62D6w=s0n)D5k0*>=9 zs-w>~9&M5e@N}prOn`dAG#C}rp$3o<6Jr6JUll`$SH~JS46EUF)XZd^Y-X}O7NdV> zBmqsyNz?$&Vm!Qwf%pXVgo&q^{4|)1cs8tw#jy^~LLYpCdO~NadGgq(_EVr{APuS? ze{`#(Faq(hgw3dd35YjAb=(crV1JuG0uvFRihAYt+OzqRo%sDZeq zIZj%PHjVjDLm(pwnXx!(AZ@V`_Qi&H12ur$(@nXes3&M`?O`2)8u&z1JBu(cZp0J# z471}VwtNkYn8EyOB%w3STGl|Vc{|jacR_y~fO?{3sD{^JBHV{%@gn+R%2_7A5au9W z39FzRRsJuV{}3w?f3FNZNwL{xZ7N&qq6W|cHHBSJ<@(zANGwcz5*EPo7>Kd|Fy-^0 zH}RsVC9Z-RctacSh#82x`xD4YV4+Pog_@C9sLc|0j@j+WP)m>+lVfJo0E?goRsl8j z;WoV;h7j+Cn{fqdbJm+{j%RzMAGb4#fC?^0HFzD>(L)@AuP`O{o@b_bD(d)cL*7}= zZq$<d70Uc6V1)xt^#88H!qh@u&gKK@E5frgRh7L!d8S!@*c}u^Hh- z+@kmr$LWAk|1<;aid~66#vWK_DV^Y19D!AqnLTh7wJGnSX3(|V3^X-rZ)8Wermzr! zv{(|gOPiyXqBkbPVW_E{YxB2aQsO634c)Wx*BFg>v=wG);-K0|h+49=s2RzCnz^7A z%)h20FA1tx7FD4#szN=~?r)5$*akI)-B9(0p~_Fggt!nj;LVr>PothZ!ukzWKIux+ zj^9e=Ur(Higy>iX^`w13iag6P&0cF zbK!AphF>ud-3`~8z*y9j?!dTs0yTgum=#~3I!Ln4JW*zhNjwNO6S+|xl*cd}ggJ35 z=EEl#fa%v$7As+>&i`!T7{qq1NsPYG6K_Ov6E#iFi5Gns&z6 z*cY{VhhrKXgXM4q>H*%_^thXu4W0jN1WIE?)C^2RZL*aZ1NYnXLU?u8_j-#gZ3?{%Q zs9paBGo#-&GZW=d9T|)CdEx zE#^nf&{9+fYfR!>-;|? zpktJ9A77aTiGJ8jZ9DXG@$D4LkiPYZ`SSQ3I})$RbZB6^F%*xX2J#iPR2h$% z2MDv4L3LagqhTA=5_PiiA?Vhck0PKcn}?ZkGwKO$qVgj!9e%XwNsgP%ml^{|uaD|z z6h_CH7z^j4_P`3%Zr^|<@e*oglAU1wqZ7z-!X#uzt#x74lh(l;*bLRdbkw>36ZIsU zP)~jo)!;~n)DyNs&0KHP-Wp@m7vd=58!?m4f8KK(0}>jcKHUzZ zp6D8?!)K_5;+;1QrNgYm!%#EP81*DQum=vpsQ4cB#GkD(|1#;xQRUNM3Z4HfHlrA7 zd)Ps~U>{sr~{$2k;h5YK(ldbO-$y)U|=1~dgV zlWR}|K8|Yd?p5YrQ~8brHSBfGZaUO^!3UL}3=^S0YHbVJ^kS%T)iDazMLl6dR0kbw z+>LRGPsH{(*T!R9XZ|P#uI=!!SPa{HPf!k2*fR@gJNV8NXr5O-605MVJj& zV*p-74ZwBN%#=4yCm!G?u#Uh%ERCIRnRov-RQw0lz>>Gk$LDO+Ogu#GjZdfNrhXu%B_4`OuYsD`=8C%s^dg{}^6sRYyVXcpPvgW8w*d5i;DAa?^M|HRjwO04L6y^$F;kWkbUl|a=G$LQD$n_yd12d7apd>%C;5x50E zBlX?R+GplT4p}c+?_1xYmcaGgnA{p{EsfeU4NJ?oLwN#za^Yi~+ z1k~_w>pbgLj7R!e)BtZ`Y>Yr{x)&G|e_;xY`Nj;~550*8qUseuZRTP&y)?!lUh56( zpPoQdTVR;Y7>zSXpN?@c+gr1id8{q0Q>^<@$L*-AT|C4@8Z0h%Go0waaH=9$bqt@DUclm#7&E{MS5DepGv6_6P zKcYHL`k(304>cnp$b-3^;so^ZIKVm=HC4M&Bj1Ora1;yTH5*U#$*g52Y)5)-%z}$C z5uQSIdEDU-*%SywO=T#mfx;Mw)v+16Q3HB_I!4bh6k~ib@q(C{ zcs;C)L(ms5pr>QhgZ#8{pRdd){X1z0sKXG{)Rx5DSQ8WDI829&P~{Gyp6Ci{ul$V} z@iA(EvA>y_Nq~AFKhyvMQTh2$$FeB8l~LLjsDWDJCa8klQG25wYUCqO$7dG$<4V-P zE}{nX4mF@JsPpgj-K=>6%t|~RD!m-~Vfc6EUr*HECQL$&Y%^+i?!;7h95oXUP`mmQ zY9QZn5XSpqmS{ZsxcCZ($4Ga6nHfEfYWJFr|BY(z&P-BnhTQKh#BmX#B-cGaScFKvSF$i((qggN?8u z&csak0X5>3{D4UL!5E6IF$m{j9XyRH=NHB0d8Ow;O??&A()L9SWISrGxn~g2lPp7x zbOUN?_n_yAP&0A`^+flv6n;d_P=TmsAmONEIKlcE)n4;xrlZcN_S{$-M`0nN&RqhU zlGM>n1wU(coJe|pypE@EDK3s-22?txsaFH5l3o`p;%d|beL{b9#d3KzT{a9Oo)2?k zXHPoozl4CEWD{zapGP$i;VHoPdDM)2K}}ig*yc%6VgPYJ)Rb37m1~aLygg9u4aIag z9W?`6QRVhx7W#M25$K8^QB&PIjw#p!lMo+(NpULb6}`&lzq0usF(v77;+i$ij2dV@ zRLA8oJ+?&+U>xccO+&X5W)skET!hJR1?rq0K&|0ps*mdu2_dDU7^xHQ67BwSIB6G@;qfSQ{vgB^31OXkRDyS#ykDAh%s3+Ks zS@0mLqo=6d{1J6Jk|j1z9)ucDVbnltpgIaiwbKgqfE`fnbjR5G{2y!+#-SRV?a5%X zp=M?m>Iu%GHr*rClR8Pv8_@^z5zT0AWYcF`*P;e=5VgsVp_c3-dj9_ZkboL~kD7t_ zNzD^yLoGpd)E=mhdIdMfDA*fyzWbvFG#B+`Yfw+V6Ll<)+x!ctej-rizN1^4DONJG zyEC8~tcF#wD{7>NQ3JVxs(1%ArO&NzQSJPP8i-GFGh@D}`gu_UDvv4`j+)tS$vOW@ z7(s$w!3$Aqy%)6!A7N#Dk6OFpDO{d^87YSv&=gd;IjG~f3O!SeS&1J*4fGAFpO4n~ zDNVVoDLMaYAUg?Kn?hI%%b_YRL`~r`%#9mt{2x^Lx0nyV+j#C&W~qv!j$?V$jMTUB z_SlH{0Mtz0b`#LZpQ28|FVyi0NNpO(je4Ros3)js(_3L#;=Qpu9z^Y(&@|@LtqSS^ zhNAY)Xw(;($;ij9vmW(8?w16#HW|{IFB~~gr(lwG8ET|^Pz|26@$*=X_-)ja2BmX3 z3$ZW;;$5tdaeQ5#pRBY-ZQi+97&jn$&F#D<(3=GB^yd7IM9supRKq7wPj&;d;d>0j zw0>q!)U?*e)ucB=4K!W`Gh>M`n0OEdVMEN0<1kR?e>VYj^aQmRKBF3lkE=Hq&=LrF(!g+;St9Y4Ahe=Qa z%Y^DMH&(*3Hhrc|Ut#0BPfEM&T1NHiCTj0=!?TpPqGxXWam*IQg=`tMxc)8Yt(?gqTVlYvzdWpMa^`P zY@Gi=1j>*w50B$wY#v}fWTFMSoGHY!U}fBeRWN3d%kw*7;pj{JK9)kS?B;ltMb#UL z#V~oWd85`t4SWsilw5Ta&{TMZxIDiDRs^+%yReVabGV%HF5dB|^Lsp}%Nc-=P&3pt zmzlX)n2Y#!%!to16yt}Qb6yfN5$}&hX>T#|e~$Y>nEBqGERQKT6#G+f7wU<^^17V5 zs)*I_Dk?ooKJ#_EBQ_(x8?{H$94db1TSY`)?2#GS+!U{S17#O#sT zSXk$OIf2b&JjOaWoB7cj>Md$_2N!cWSFr+~!t}*m&Ov-(U0cFz+Kweny>(cT{FgSK zuawLAi+CS=jb%%_Jii-~rwmK1^WU9-cK1uvi{d+$Kv!8a)uk{N@o}j98K~Vp2lZJo zAN68ciRx$*Y7Y!4XO7`=)bZSdN`Gk6W3sW_YA_7}b>L?WM7?-&qmD@#)EAB_s2QnY z^E;zD9*jDMV^CkgW}}YvI#fGHP;bO5HvSZKJinCZ{3|0`1@kIRf!Z9IQ8SVkqhVQ8 zLzPkIyD_Tcj#wOfVFBEQdXSG89e<%-Y|$&4_I*+DAWV&AD!NUe1qu3&Hv~1ZKTsVk zLp8V_HK3iS89Rv@*g4c2@v@D-MwS0y{fR0cvy%CXOg!`@o*7lYjGKU_xDu*^T9_VN zqMmdV>PcqU{CPIM7S+)fo4yY~rZC)C;v z#TqyZ%is&tlH{slEQKmp2i0%~R73qyGdBh`uoiy%ytZH5m zu~8pB*-;&oLd{G)^v7nH8ONcfZZm3XccMDlhuU;EPy>FA`Ov9m+R2YfFK(@gX>|Tu z5zww4j+(kfsAIJX)zMbeKz7^w!9Wb@QfdP{Y*Qj(U*2sDWNY&D1s2 zOgzFQYTz9KjVwk@vx`%pp0pM!eE{lj!4pwWxB}JSJ`BdgHvTW_n0`V%z&C7)(QCOp zzjo6G8xdcJ88L2c9-s(;90c@g?TXqY>rs2)5UQgjbX>yx9ox~UcK<-lHHA1U>0H)RX;(Iu$=q$1*`(^U6(+>L{Z%52{{y z8?S#lu82C$jZhD;997S~ivZ`)If#1V!>FmhhI*2(s8?&O`sPEa6l!2& zQ2FCgYdIIy;9}I~TZx*vEvQ%R5!CLFKn?UY`sw_CBA|1hvVj>u4%7%sp=UFpI_QLY zk{+l{G!oU&L{zz1sDZ6R&E!T@hg)s_Vbp+bAm4MHrx;fUIDRAZ^*c4zr$9lhjk8fx z_y#pY-?0+@M14=F*x39Kjwe=4RksQ8PFOH6szIfj>e$ z;3ri1=q)(^n&MI|%*d*vM%obDVpr^mw^0MB*3vvt2UJ6SY9Y)RM zO`HA>wHaf#GW}#}75Smj?Z@ z80x&YLk(mGcEokq2~)Y-m?s*GSxK0Q+T{nWm#mLaQ}`chbH!?FHdjh~NW30~V&Qh? zL#R7y0OwF0|A*Q$-tA5OWEf1`?N2~^ARINtEl``yjry>dk2&$X%@6M2^88{_d2CPm z6jTR4PyF-OdF9z9ig3J(<(V9J2&iooHj!=lEt+ z{!7$S{Xi{Miq2+D^P&b)3pM2(F$8DZ_$kz}`+)j_lCq07JLfMW0Zn;U%z_0_o2fZ! zM*5;Q&2-e}+JqX|Y1GuG>1xtl-Aw(IsHrWEb+H?2@0>*q@Fi}=sNH!H>HO~^ptXxY zo!cZm%%)6@nz9g7#e%4T)I`lhSImJ!u{3VQ)%Xp^;PRd(Kctt-^WTs(L-q3>$Dx03 z&i`NnTM6hz64uA8eJNB2&C&D9MGb7EO`m{T(*-tvEo!FrV`99C>G3trM4!GcXFjgL zIasQn%k!(<5&by-!%0}y-;5~R05kIKIF0n81I-VWuHY)-JqDT0la^x}Ks*4oS?i!4 zpeJhSMxb6~b5T>j2=zWVh}wMDQ3HPDCZLi2LcMs>4>k>ip>}Tt)Hj)Ws8?qX)RMSS z^~Rw-oYtXcWDDvP971inbFP5%$I`C<(*7P+Ekz}Y@x&YMX&53HKg4NxUfHs#KHC3}v1$Wp27f_q#IUc}t z!_1579%@g-8g2&egBm~}>fN8u#wVj@a=vvfYG8ZtI^8-K33%SwBg`A?Flq{4U_Shb zs*rc2IoFk~eNj`t6wBjk?2R9>Bz7ESey*??wY1++d%$P3*)v%%MCZR00X=yy)TWtf zoomwPbJLHc7nkF3*40mkibL9ISzNFf-qCe(Q@fW#u9ki>OIYrt8Q(8`Z#Tc4X`t6 z2G63V{vXt)`(V>!PB)v{4>jXqs3j@mCZIK`WUYm2pdr@8_BQ<>s^Ur1KyRVm3%^ju zF!2mC1F2AJTM{+Jtx*H%g(^SRx)5g&cW))2cYXPp=E>`$FY)fEO*b9G@w!b9nPt+e zp=Mw@YGCuN8!(9YAymh2&=;f3Ht&gysF^B?>2?0=5zq@}0BY?vVJqB=*)hW(=2TQi zEma%To3a}Q<3!Yq?MLl}v#6n;9;x?+I zm)8GKQ|HVxKf_Iep0!7PU+9c=a29IH-=OEkg?WhQoo~L-bV2Q{{g{AFeGNT-|9`r` zydZvJF$(xEbUFDc&<-__WsA&d*nnF51Go$yp=NCCVlzWCQ1LaWnb?k+nRBR)Z`=I$ zs5k6S^!)x$f+gmBrp4T3W`%Ae+ilnQkkisKSoi0u_$ z%KL!_T937fpI>I)8=01K{$^v9K` zwY`WM_*2v-Oti)fv;bx$UJlh^cbh&N^gN=yefM2k;1lYbO|-RU7bieXt*?z| zMV*eks7+Q5^&~Y>d!ZF-_YcOBI0-e7E0`C5VmRhmXC7oS@*(DSb`dB`Mg-~|oprtW z@F;^?qkh-|XJBRgikiA|8%#s}QJZinY9{ug2J{Hk-cK7(z0u5AZq!mXMbF>=+Y-=b z>xJ6wYfw+V3H7AAQ8RN4wU!rA9o|PR#TT3Iv&nqT_CVzdx0)qNiQ4r6s3oa@dSlkJ z@m{FCF#_G`39KfdsXmKp@CjYJ#JAES0_%H3uygHbb83H1Yn7N|}6 zC+gH}MLqEeynxp*5LfIm?Od@wLzVlvhx4x|jkniyoCP%#xll7v88wy7P*XM(GvNx% zfah%bJJc~vy3Y(S7ivJ|Q4iD*wRCM!uk_BSe)_rzsG;e$z)sW???-*EU&bhS3-!Xe ziyGJq)Mor;KAH`%q<&Q+QGY2)04X8bG7&VY{sQT{91PT&(h}sLj2Uug)s5olV zv^{8^cm(QHtik-a6${`S)MgAgWS*!Ho*^ENA2H)$^UrlDkGMSldEP{8l%t;af!par zKpz?xQE#N|$IO(KLCru7)SIgwYRv{>F&vNj`~P{=EBY1ciNB$i%;&h7*$~u|*Tk3D z7}Zb36B;n*uO$IZ(O^`@G}IKWMNRo;)Bq0H{0FEHpKqwmnBb(T=a2rxi=o~R?Jxj` zqS{}N8pt8k0MB9^`gdLuP{*Iq)8HvH1OBKd3`M=kYM?51MXm7^)FxVn>fj)%{AJ9G z|6&mgIBm+eNA=@IE#+)<>-a1tpbj?ULcD-F=UvX2inCC!)-|XZxs2M?5vX_kOVogp zo;3r=hMIwLsF`bu>UcP6)6GZqyY4LKUk&ajK~sJPwT2h1|Dg83H&jKhb0$9_Y6-HS z(hFfxtc2=#B5JCaqvutQYJWGXy@RMzb>bZ7Uj@&QpiOkm7JP&n*mG2cPd5E0>dB*? zH&5V$8c2H7+ULRY*u*dNvYO4J*0J5t~693-Gu=Ot7} zZ&159#uXFKj2cj3)cG%G4M%-;v_`$cJ7ZZKgIe=THvcwiMjoOUzQw5c9+T+&e$~@&;L0J zP+_z6wDkdIBK<3B^Z4E{o2&}vAl?VH2UeqAH0Mxz<%>1NO%u;&t&3W+zSeQ*`TPHT zo3H`(B!{dK)?cX2l=hbS?YM%d7u8hjD(gY(b?ia@Yt-p!e%mZbJJd{fw{iDv&cCK| zGzsc>JZehUpk6G;QOD#h>PZv-ZGNVk2ZM>XL6x74Dz^pI!FANJe2BjI#hUVtnUMmh z{Q7q|{~BRe612(spx#u&Pz}vP4Q!>2pFmCFWz-AhvGs+`e}{S@{lHL+ch~Hp;;3U+ z5fiXSnxOVrH}^gBdpskod#vxQSt87c8={_cAZoA7#vt5?8u(qC{tR`@T=&gsiI1A$ zw5VP0hn_blY6;zi2oxhw6IF30*2AT!C;5e%iTDqUsZhr?3+f3bx#P9ly<}&9@gdkXxv!{|9ycU!ux? zKn=+C$aIhx^&yi1%VQ}1fo@bgDIRM;oc~M&G^N>5Z?e+34eQ(V1pk;P%Zimq4@bRn zm!k%J4z;#-Py={}KCE%nC+7GjdFt|P!UCulPy^IVG{!{q@3bLM0|zJpFIXR8AL5@; zQ`_~K*^G-&OLYL%&^gqmyoRd(6tm%X)C^^LZpsIv9<&hZGoco`#}k-FK&Qa>h3Oy* zs>9N#W7iXdaW>Y$lUM?MUz#Uwfm-w4r~yntouXyd{iu$wV>Nt(TGC>#IR7~bG=60g zrlLl?5%pv{F#r#t*7y}__kOi;pV#J9n+Ej&`K(1zo2(3KrfQ=G)WYTuMD2m$uia)h zPbNVX)}cS{MUC(=YCuumnEW`XW0(@P_F^A&ELN_GZXED=`bPccm|<%e|c2L z^-&Ml9MfYr%!2Oe1j-WFizPAIM>A#RQ7@KoYjf0+bV5yCZ&bs>Py-)loof99)!`y+ zfE!S!C+>ePrythC-1_{#NN1cK0ElbnNVow~7Cj>&UWgI>SPuVTi- zhQ!C9HqR3*jNec%to*!IG-FjzZ_??g&37909(ZiyJ}xiMDGETHqP*x*sf0RKtx@?CQ3Ky--Hqz-C~9+FM0I!r zHG`i~dm?T$x0mM^4N^t(@=W;%)SGHDs^UsiLmN;P_M)Er465S@tchOHy*&TcQwQ}$ zQSNhG3#tW{pdt*046}8_;m{#XnIm zmZPYFUA4YLy?ElqHcy%jRW1xwt~6@tn%VpT$Wrsa|4Bfv+!?4f+HW$PyQrytiQ0Uw zIA$OzF)HzVs3$Ir;aDCk;Gb9&-=JnJB(7PCBB&WCXX6c#{m&*MpfzfTYOot>#Dh>z zFb6f&Yfv+B95tnnQB(g7wHbZmnE{tU>Np*0=E7{eJgR;Zn?3-who+!g85;-$ z;u)Lq8P!lyA1}{uFa%;f;v-ROcpo(*-%tZcn!pSw9jf6F)Bq}@W~e!8FO9}RxE(d) z9};l>^+exEP{k+-&03{LeJ=<=b<_xTEc>EnWQt8+kJ>Y*P*eQOrYB5f-h4r*B?w2g zHwRneIrPP_#GHRkeeJ}igO;c-mjh9oY#3@LMxzF@0JVvBp^oP{)VYp8eV)HS4Jbhp zvnO((1{Q7|f||kAs7-s+O+ZtTCaIU_m(Mbx)^-SL*H1-NSc96WW2h%Ni>mhvwS+N} z88e_>JVns6+ffhD5cSoqJ8F}kK`oK{I)TyzUZS2TS8`LaG*%&A50$*1{XL6v5aG3*&BFjM_vEQh9lP znl%Kq=?+;>V`k!)QBU~QT0ON{n$@T^--hZqO&T*Jp%`E1zdQj=Sv}O$x4@p*6ZK>- z@HYOyvUoGCm*;zcUpg<(eeH?is-xGI9Pj741mSl)F(Q{fIi}aWb0*{ZV@&47EhFt*cN|ycF6VMa=g`PFV;>2SFm@3a0*_>M%XroIbJ6*jCe>+GqtU-GVv+65+hJ=yfL}FJpUR01MI=yKb=vb z=FRmz%**pVKY4ERAu$E@ar+l)6TU_*N#;CeO-rI5@iwTA#$gi|YmDu&Kt3;L66q`Q zo70u2fS2dLuP?B%S-nWzDl zDq`OGEl`_xIELUHY>HSgT;t{L@hy{;^woV zCN?C#5lf+W3G;@miF#GXFKPBfV=Pa+2R_3CI0RRfGD{gy+U%{7=#C&`0f9&8F5~66 zn7S5ac{5?Fa$cVQ8g_DdGxC2>YhI{=nX!3zllTivMfqbDy*z(|x?jo5^Lu_-E1M-d ziuyEtfOY63W8dm#0C}yYP#?3^Q7@2AsN**s z^(I?|s&^38(GApl;VJ6aMyX*w6_cReBUw=cEa)bn21=s}HbkA@&R7HcU?n_@nu(M( z&8svM>ctd6 z(^1E4jmP7JitKz>lUZROfFN=EOO4u92u?k*5eSh$6Y93%F z)+T-kYhm(c=Ch&`>U+c#R68GmRDLPclGaBJtUc<%hFiy>9%w3RKNxGTUO_#{Ya9Q7I(FWz z%nKzY>V=aN)lqHK19V1pxCAvLt1t>~vFcC#s{>mhS@itTk zdr(hs8nq->Z2WK3RR4oI1>aG7C2d|b1xfCrY&!;v84IZ`7Y|5q;of6T``GgXAu1BixZpjVWg#*OalL$ zZ9xs@>0W_lGkx6X*sw?i?FV0#23=$Q`)IUT5{r{w7<#oU+7TahaK8y5`($_p+HpINjWM+ zq2fJT#?vBytfQQM-Avao@>^5>9BHSy`NqosbQ!NN?o#CGJJxsZiKLgeb@+@vW5YK>aRC(+(*{!SdXZR{;tPra(i|^f{)h2x%2*v^?RNgkK>4aOjjHt)1QX0Q0F@LBvs<-N?Bb?$$<{-f4`>N$RAXkLAlSw z``fhqlSq&=ZrTN}R_c|sce*4sM<(TIWvsa&7% zPYuvk=t8=#Lbl;1gqzr~(ic(g79B)hX9?%x-eT*OvU%TZovl%s|F6!~d1?yp zprOhXDnv^S8Nf}_9^qNyDX|83Y3_EUXG8um$%#+6Q)JILfja~3CL}K{c}G##T-*6K z>ZQ^VO3j^yTUTMsN`aJA2;=T(*R~1aZrqj0Ur+uu+gNGpWKmuF07(hQCvQ1rMv|6^ ztmVWLaVH}@i*!H2KD4FFy_pIniR347l5Ip8_eu9BuFt+1n1qV@yobhr<7gl^`QuHpQ;B%EZPX_HKbjG%M;k?{^ZT`hZ>ayf`q>6nP$(~ji<8ru zJ2UCMurM9-o!gmUpDGpun@)TX&c*=lY z^{>M{n}S0rbcO~-;~EO;N@`tCzOH;U5_#!+Q3~RjD6^L~#!zM);lHUrio6cCV07|2 zlE=T%I;F`kifyP@gf#aE{&10)kGlW`bsfQD4CFNT0P?p{;T!q7N>kBAdQ$EwlpBt^ zYT1FEFi~e4dC95!!L~V{FyDNf{J0QTkp5Zgzk`IxD-Rt-qd|Qm zhW%(DkUKYN`gV7a21?k9@$fil@zI;IcPZ1Hvbs(Y?nnA02ANgmiR(&6e1#oQZ0Zyw zFBbO%HwAK%(3S>nQK&YB_4PBKead0B;n5)B)60{tD;M=z*sy!5%~S?|U2+c5@qC-9G+hhr$jj20uBzOAl+8rB)#Q2M z9_pPUtv&ZX?vIqcL|St4uT$RNKFD9h8&STpX_LPpP$-xJH@M$WaXN8blW5=};iKIA zI)oEIJb;QHDbv|hb~4duand5M$Aqhs){i@a@M1CwP4I~Xf>XE;5$3lHoRl;4d=&CBB-5^K!o@ zP1k;FJsKZKnZ+1+%_pxR?c}s+Lv2QC(sY&NE=Ar1;tOcAh0fm=8d*ujycj~~3(3%R z&w7Bg$+p2`q;)0S+s0LnU$5|79r?2wZRl!4oycn_;Xuk`&F>za=dVCQ zaWdC&7q*R^px_O{{c$Vl>j_^~8CngalPBC2d5RI-cgg#gaxKZ*YFP~K>A8QuZV~B3y>s09n`JcWE#q#& zeUADw@e1jC$*;};c-=WgNc)rf0PU9NF6Tu=S6VzlrCStC{#!?(3X^x5^bg$IXygj_ zN0R@=R5UUZA53f7FOj<_E#y*jTw83*t!Ux8eVpqy&6MCZMT`1Dhpsm^?}>FSX)fwE z;Qq@_!xMVSP96O}wk$@PA7!s`ySUHm@0;n#98YHzZHMh>WIAbisHm$E;WSj*SJ}dQ zY-8;_6-?q5!f7e-_dJ^s zSy4aSib;W6xX)(xrczw;(lXfngzIr9A}dPn5)yv>|(cJ0>jR5NTN%3VYwzh4)~|H)mJ0qBZnXQ4lh?Imr2N#=iDn;&@D zGF2(F#HNdAq(`T}MxM4!|NI^ip9B;P1f~> zjrowLt0;NH3CFPm7>2b-UrO3H%K6%I2`RUn@M_w-hyA#RQ+5#dSi;lvX%fuHh7f6o zx^h`#lD3-oEAG{V8`E%E+hIvtM&=DXzrOnoq39{`C zr|e1FPDa8P$>gZRiztrlYU6f%RC1a=JQE zt`+ew)E!5;p0>_L(wp1Pk5D(z6n8R`=2`#Q6liK2$xH(~shFBHT@5I-j9c}4kypZ# z$_G3R_2DjH>%}2FnR@9_*BIM*Z5vnGGQx2c;JQqHeZBv6&8GEvWcH!c-1vg{D>{q3 zGLqJU3foA_M45FO4Obb`Y7%~q-AO-zf!w;raQjiOj3>qq(n)W{{kN_Ag0>3lrwKhs z$WO*98dyVEKQ-S?MP2=Qx>lrLApJke%%f6!;**INv}I;eZWDR4xbxcCct*G<<#a8k zPG!m-!)~O#A?-1Danf9F{y0q}6%FcYK%wfS#h~C`+kn!8X*h&NGmuvbb!9|<%4Ejf zw!X>X#YH<4sZ)gX9E7`bzaujPWp8kQqu$?YE3!gI5|>iAIf;?iJ_^0%o<`-zq<=zP zI|;wE<*HL}kmu);h3ya;(`^@O%_pa@t&xp*b82>>Ok2{g+1jhEn@E4dy@N8RNqa~6 z`-HP`Z?|Rk5KdwHAn0u5?o7M}ef-j!{@WJ&f=XPYR!zlpjKw;`RY-veV8EV4GFxeuQiCoAXX5oA>}r+KN4BxC(c@$QCe> z&D&}1h}Eg{(8gcef%eB!l;3Xa_M}Ws+S1j_S{^4-ZmpYXO=$;EfC6)D_%`X!h(BX? z#{D(}V~Cd{K22rmxFB}|; zosIh(iG8@!(5U{x9C_WbPuK&GQ%=_m$`!-8G?IYy%lP}{^;^6S;hD5ofsQ*+|1a+P z6yB;gNp3QO$sA4QP@GG{Av_}|u zU8P*H-^x@|=VaEvm6RRNtt%^cMef0Lq|1jkE^@cDai#fkC#HNo+Vs51Gym3+3iKqi zGZl&wZcd@W7(|&X3?L63rXw#N;cRM{vJ;8tAYPfgxWvB`FGroREP%BE$p#B00F55q?aEe^Q|@ z;g}4n5$Vr7Z_`+$q#)%oO?{!6@wTb#l-^C+1{=Rjyb5Knk@ktOuA_FA4iPU;IEIZ^ z!abDzkGg@}DG0Bnk4cnU%&iZjWTvd!nMYtFiScbmWeDp^!Tp^39qHA%zYvNrcHgD5KnngxW*!o}mBaPS7E*Ww;Z8I>!VW-bk=GgmqiDmI{Bm|Mk$H1$`9Ddh zLtZUAfU(5=33t`=pC^)l27*ZFYdft&V@-b>zz!R}@LO7c>gf7T!!Nnl(b)ytVPf)1 z(Z)f_7bk5r22pkceca$4KsW>G{2r8=;AoJziblHQ?^g^eUgG|P^r5IL59O*5PeTJ; zZTSE?n@y(|NxMP0VWcM}?K5fZsWTdraQCC`f7~U=Pe9pVy$W9w(A9?ukyjaMb@<~cnaybI zu5Iv$?NpUQ^#_+fm43h8(`g~@hNO3}>AT4Et~de+qqLv$)-J8=J(ARk~3#ej+{X` zbNc4UlRq>xAS7={$gKKJTx|lwgUYn*)UsRC9-X`8_pR8udD9L}`}OtpZ_}ekm+tw4 zgFD!i?9DrO%sT6E6Iaezahtjx?BIVRH*e7$`Tlh69lK*lcCXK_X#ISPRjM(oOEa&e ZJAQ?DEllVtHml1@SF#<=N_t%k_&Iz0Wa7KAcUl;rA4tYZ(*IcDQCHb(~zdv8>}9 zP3}02!jV3s+(he29UVd5YsC zavYCSn?Onu>SHMk!HPHNj*l@lrkLtDIWY@rV5Kn&Rzb$?gkXB?h$v?|e@n2??95J5U|%v+-Z8XHhe}gqqV|2eT4?jx90O4997MT`@gw zMXk_b)XdMI+P{fffjj6?M^6c;qxYB&Q_nO5$b}h*7e#ek8P#BIo8JU|iFZKFJO(r3 zDAbnCMJ@f0sQTM%d_QU+M`p7Ac?kSULT>yE3t_5RW+0`pGx3_(374P-@BvjW1xHsC zC~2)~ZHO9p8`OltF$fdz5U$5S96X2h4j^iE3JJeq0nrqHP8PuLv#3EP+HKS-$ z!voM4$6$S&kNNPH%}@HJIn-IODe3i5<-bJLU+p2#n7~fdOj6D>dz00g4>f=Q)Dl)i zm8)svO|csBwpbbGVsSiU^PTx-?^B?*I2)?tLN@LxPar=DwXrDnw(%LLt=Wt^Eay-+(|T5`MwF zSZJ~1#A03a$L%-~@8CG>|FxOvznF=5@+D@4a-(Km1a-PAp|+|TY9gPZwxAViK;1E& zhd>+w&1@7V;9?wx*_UdB%mg4jjf@(MpRc``n zNx#A(xDMGh=Qq^SfBv0mcQI;!D=-Ca^AM;+-~j5dyhqI_)%V7ns3rEtX;>3e;Tg=0 z*HIn6!xETowV6cDrc|7MO=se_$QXv=YN(T_yi=OF_PenKrQt)%!R*V z6?}l2L6LQ4MuC`?cmq^=TO5m>QSIG9b)54@^F5#ms$3sby}p=Q&%ehTaGXgtV;*W| zE3H3ZI^vsAd-pSHV83Bbe2E1y<9f5FL70+wP1NCSjM|D8*Z}*Ywq(1~_57bB;D^t# zE@s|fR-hy5koCi4IM$|5MPK5}Y9%UpAU8Jc${IU&W007&QQ&O-x=R z%}qcSK~*e+Dp1+l8a0D{s2NQ~&3qQB;dQ7}zaIW8y95)ms;JcpIW7(#FR7qYkSF z3*)#gtiPVmbtGuSXHY9~6;t6o)PVlRa7?t-tWXrHgLu>%aRlm+F2D+S5wl|YZRTUS z2x`DRQ0+%p2Y3i*0K-v-Y#D0A8&NBA0)6o&Y71Usam=*c3?vw<5pRISa2%@M2Gjt5 zww}Sv#D7Qc<7(4A9|&mAQ|~a}12SPI;z2kZ8>6=11Wv-=QHL~Yr|DoLYG(UT4gZ1~ zz$t8rw^8j^++|iI7#k9AhopO)Wds6ASdDs&E@KOH?KVr_5)TsZj#}y>drY}tTuZzc zR>CZMc`0FY)DoB6X9ivwHSqv(&z*Jui$p-Q`gY*0<>) zsKeL|Rj(Ho#aPUNi%^GjD+c3k)CxHV%oZm@wVxHe-~S5{s6s+8cE>MJOMDZ3Tr|$~ z>k%*hllc-Ehf%~2q6Sv_XY}U{Z80xK+4RX+jrc6|$1|voKG^)UznG^hGbSTFFXqF-zp(zb2{a@@ zr++G{qs2D90=4IxQ8PV(rSKA}gVcx3^Pdwnk)o)XS3$Mc7_(z1)O%te=E2dJ1(zLW z|CO?6&dqs0rP`O!zOB#q{UQK0%pJksKd4f^|&2D9oqY-0j0QLRx!Z@6 zP1bG`Zqo-H~6WukBO$Ahb6sm#2SP`dVGCXQMgPPf8 z)KWh{4d4T6Vwvxmb^=gmrILq$4p&puh`XXHCZH-zMlIQLOpNPLOTP(qIQO8=#ILB1 zZ=mWw#blV|zNw!ElMv5_nn)h2$DcqT2|<_$dtnNUKy@6CJ~#~3;7C-56H!b06>1=> zQ8U_sDexpF#Y@-~Z=l+*`KMXoy2u1QPFn&S$mok|puht&lZw^`)^^r#)D|RIr&+(X z?na%NbLfw+Fu&S;XkOX%F)#6WEJFXzYyzsV+j_&A_%D-Q7&XI&)^^t3)`6(Ub&Pe1 zb*J?L29y5`wMAtg8EZ>D|1E7o4{Sv|4z*WDP)m3cwWJqp{03?%@1f4fLsY|wADgEm z6KaMfZM+%ksfa{PbUJFKH=;-H=)(lm(Opb~k5CQ2wPt!^;>A(d?R=<9!Ed?%@+9AraMo~D>gNzCVwdw#~-X$ ztSO$E^zx|3t~+XL5>QXqEY!f(payp68S9^(z$p?m@|!l}0cwd~pho%{Rqj1%>C!zn zpAiL6Pen(pjy+H-v8Ra6-fHR3@{gJA_Y)eT@*DyPe}smxC(0IjZhu6$66SM zqi_|fV&F?-Im}4B3aWln9En|Q`YkL&{3X`JV*i+r`6yJ!Q;_~V&U^w|l9i~LZAX1P z{%!SrWtOTmY5?U><*Q&7Y+~aRQCqYK``}tEjM-nC!x@a~xD{&4LecyAAMOqC`HpTf zM%n_)P)oTQeQ`7D&>g{U_z!A8?cbPhI-yvWxW~pfVj<$Eu?fCLH`f2xY*jdB(DOgQ zCX7QZ>1bQd3L z_!IF#j?25E)%bmwCfvm3F$pb6P=h^C9VOTTV^K>r8FS%$%#B+x5YM5`L}GqUqopl{ znsH^+3e>hXLQSkC>Jauum5cKb&`5@&mUtv;i6>wUoQ)OmJa)pgiCo_ILL_RyGf?^8 zVp+V70hlSV%ll`+HBsf}V^;hDwe*KjTkCmBKqE<<#H>Ub)J$@tMp_uPv}MpcBh-pC zLd~ch*1;&$3T;3Qm(olq28$3+Kpn=VSdRXk9|@Eu;jYcdk;=@Z zDC(5gMXg9%RK;$n73qhX$q3ZS%s_vfk6QAdQROb9&eTIxdv8!rN$S+pqkpG30TnEZ zg|QCy!zk2JUq^ND5HsW7m<3a&ad}_SeyIE~RDKlZz>%mu{t7kFA5k6eLw(BLK#wXW zO6&4IMyXKo^r*v_4RvVpqGnzJwIy|NAhtj)`4QC2PNE*io2V7Li)!yFY5=b>52i@x z^8SdoNII9tdw7PBpvP(-s)Os+2dI_#2i0(L9_DPA2GwvORDK}py-?l8JD_GBiJFK9 zwIyS0{sPQSe06%Be--$d1U&`EQ6oK%n(-YQe}N^4C&^$ehkDGytTRztvJdrfe$mF? zqE^s1qgg3`RJ*0DH9Q2=VN=v|-vu?ZJ~q8SYK9|F1D$E}=cD#`DQYIWQ1vgMw&EtL z-ruMiC~t;itcec^GY5zynY2DSG)P><0e)C`}amNac#VLX*lY1FF-YT z7@OgJ)Icj`Hv?&es@Dp&q}{B&QSC&dIvR&su`f~e*P#ZqKReIA3Z5iEOZz7({toqF zk~N2!d0EsU?1)V;0(CgIV?Er5TA36%O}UJy$I%bHON~W|S49o97pkAAoIL*ujI{-q zpgLNCI*gmJ74Ab-%$mzAVQwr>ys(XTMwRc46*11n*P^y+JL*vGN3F;i8^7ft(3yn4 zQA-(;+l;&`>M0nAI(*-t8d!^((H_*m58Cu=SfBV~jK!cl=IpG-(!>v;Ch!I|ASbVR z<9d=4(8q2e)Qozd_GSU<3&$$dW0lNp%#9jo8B~KcY`iWuCmw>{#}5}1-;BkvwV%uB zfFrRCUPlhE$MMbQ^8U$3Vbo#ki34#A>iK<-S_$9$rs3+Sr=l4a!w4*gb5LjEnDq>P zNBk0MprZ?z6`P19h%d(gJ^$wj1d@=bpc!dt)C{_y&O%>Q10EY6joQOms6)35b*k5( zR%Q=sK*vx6^eJQ>(*V=}gHc;pACuF+(^vs)jq0ciY9+!@do>!>;bhdn7NI&^i;Z!w zO;20cq~}GID}_1}HEnz%>M2`@+NvMWqsPKk#4L$FYH2&54%YzGV>Au*x&1A=@nXR$gy zM=fm`f74JnYGnqZ8^@w1v=X&-r_l#*pgO*ddQ6|82KL_HV_r1ri<=GuP)lA5+u&#T z1%87IF<*eoS%P~|A3C9dE@wK9#3q=zgvP8+cH$Wn;rte z1ma4WSL|lg43d>Lhp`lDWjbR5EpQKx?iro?5a z_skEdezu~g0D*Ch%=5Vhwbc7j>3`bvbd61e1yCInwU$A>XsV)~nkJ|(BCSy?(%$9| zKy^G8^;k|ry$=>Qw$J}YTkr_-q2OG$@yDp=mEWj)(^I2fv2N7a2tch!b<~@)DQZBi zP|tf$RL5~x6Nh4D+>4sX+a@0KPEOj?yz$bYIw)-8Wic1=Ce{elH<@v$fqjkYU^S}2 zO{f9wL2bba)WFW7-jtVY`~|A~zaAS%(#%vyhx#2(CUj!}s(~h`C2oo8pdelz5&(IcAI_>HITEYfqNbkP{miMz4?IpkVxCy94bFl2fa{R6OY=v@uakjf>SzaQAp30oVJt=bG}4WexRuNM7nDY!-k9B6Q%@PY2xuk; zP$RvFTB@t4m3V*}@hjB8(zY?D*o~TLM^ySq)Y+MhD!&%h-a#yZhi&{d>M?zf-oO9n z)7IsLl8^>#V+?l2jaUGE+nG045bD)B2z5p_q0YcBsE%^AHv{%VtwP$RAZBeEUrhI916A!ZScBuMY zQ0@0a9m-K1c>dM#OcLZW>n7{Zw%`R+19wm}eTACYJJeH=xTAS2v!PzOMNl32TdSe! zHMjBBr~!m~2&m&hsKYfL)zNa)m&Yxrj&54-qxSBJ^>0*%uTUNQiz@GQGVx^A)Ts0f zsKc8L3!ul3fDTz*RL3Ex=Q#{DgEgp%dr^Y$c*6l!48Q3G9w;kXXtF-LDRkZGt7o9|KWY_aj5QD@r8p)X}Ena;QVo7}Y>))Q3nf)RN9c?e#aP!?qjsnQ;Y6W91lo7O*by@fd+8 zQ4_1u*E>Lu(~>|x5_+Nb=r`1%yoc)OC2G%o`kDN6=q8>AHL&Wa$E+E)z^_mr=TB|E ze}A)8RZv^i7PX}VF{_^cSp>A?tFa_ru<_)v=CLb-`U=$!b=te5mb^C>#=)q=v=p@> zTTvaHL7kx|sDY)3GfUqQm0lyB`tnA2$-Og@y1HYVYz6 zG>>gd)Zy%aTCo_^5)VNQWF~5*)?q2!huV_osDFRrR2t;+{vEGBPz7QVT;6|dvINyp z>A~i=<-Kqi@#m-)N!$>#_oGl9EJdx%2GslHC!2l@wWU{W{sYuXy&J;wpNT-W&&{{l z0Gva-DK5f0I3Gt1b$R~|c-}8u-am}KjT1=^=kXnnFK{M$hM6Ba`3`qEtB7wvot;i2 z%wyRHby(-1Ca`e?6}5KZ2;Ouy#egfTB@LJ^?k* zg{T!>g&N3i)KXtWorUK%J^g4?-cyW#GAf{E(h{|IeNd;gAF81V)@7)}wHvik=TYTe z+Wd55%$X^Qdr0q$MKRA<({6p#z?&ii_Bas)^zI*I5}XsLrMzN&fEw5vynyM)nGWxv zURbX2W~GW@MdDRa&e!wsFl5i4e>q>)bn3P+OCY2S$GCSD75ID4R;=Pxk8#m6#grFPCT^$(#A z>21_w{SI|@GR@}sSHY^YjrCD84nfVV0~W&s8()T+;eOP>kD;E1r&tS9%rQ1bm78u| zfci9Djva9=YT&6nbIsBhL>;;^sEm53=RXv+P68VwIUw$!+BU1cc8ZJ3HHQ) zF%Y{gG*88J)E0b;YUf8RfyYrR_71b?`A@aTENwnifg-3w*A@?BJnHaN|H^z(X^VP} zkDyi}$70iwzqK4{<*H*dY>D2zM}1#di*4{crq%Nw__cj=VFls?u`&LDI$ZBC1E)Ik z5;L>HOU?VCDxM<07Y1X+Z(L3#$_+uyeDgB%RP03^)|0p#U!YcQ!E&B|y+BqFP{K~s z<8cVJMAuLQcxdwzuP}!)9qRechk8s)px$T=ZG1TDur9;~xD?giL)2EjLA9IdTb}J4~(m3e`b|IQq;FHu|Y6f2?6_vUO=MGdS!>ab0= zE=EoGN7R-a`rc#q_9O{^-XHl;Gc9G~l~7yM0CmRNqb3rDoCS|Fkbo*q$J+QcY9N1L5T^Ul>~($AOqQU| z%n_`QPf@SxO6%=s2x^NaVh>z_O)%94vvTcG?My=N_y0`!E_rg z)Tyt6+LDf_S7(Hck42r0Ip~KwP)mIk)!-}C08(!=D^my+?||B}cpS*%yb#+E&$NT* zKaxP?4)X%}4NDVGztg-4Yhf_)A((}VyHHzjc9-!AYG$`lOZ_KmOJ1T5tN(7Zl{HW+ z)fx43gm~11H}2;7*JJY&37YXmJc)O)IBwlz8v4Wf230QIUNf^isE&hBD^VM@5?xR$ z8H-x6nOG3FqJF!7&8GW!_L=9jFlvOgQ3L9LYB(A-!@;O``Y=>S6HpB;xA})rGd_Vy z@ir#H2dKmP7&WlBsKc0kzlnR?1iFz>)+WqFHS|4dAbU}V=?rQh*H8`I#wz$X>MWEx zz#g+jA*eGm_@J5b9Mn^>6D#3QSQ(w4yob@_R3V@lHNm48jxVs>&-Tyn4!OMlj&HFw z(=XLz+Wo)4Q9Yl~We9;g>r1ZvBspw7}F)XxE~V;X(_zbBv>r#@o#%n!A+ z!Kj&s;X~|;>ZsFEGvEQJ6`GDpUxr$tU8p5LfEvI_oBtg3%1(XEY;``&rsuyR0lkr0 zpq}d?=#Mi|9qd63w&5_0(AzKqE>t}djI|J zDFUi+8-p;>ujYqERZtZ^M|Cs}wU?_+zZse{za8f ze%hp`L(M!hY65t;)a zpq6@+jZZ@@khgFS6sPEqQ=i`hQT* z|2y>l`=2ED%!o3gUK9mU@947F5bNMPoQ7(s*nKmg@~9=Pj(X#@!A%%x)ARjlCRPa> zlOB$GP=l|r7^Zn-mM92Sp$2NEO;Dc+J#i8)Lp=qh z9-9t=P+Qps^@16LdfZlF8~hDxVW}r(!tqad{E&s87YfXFUI!K|>N`bJQ7Vi<)^a)PUk` z{uI<1n2kEkOHk!^V-Y-#I&?2l1IqN=M%cQ zM%7TKzXPh{NYo7D&<{sqVO);&@i^ATEU(RqbwIsX!mV+rE%BgMZXBxJS;)Zo`#&b& zd}I9%)!~oW5%;1VpWJU;&R~qd@^}aJhRgl0c~4YD4P-FZz&)s^z7pFFuy|$IO}_tGZe#6 zTX75B*!6>1k>Qw9&;JAh@i-eBU@D$=4X71r09~xnxQqBue1w%daQ1uI=qis!W1dYmgL58;>A%*J_q%pT7sb{$G)D|8`t<)7%$4{{(`g&6O zcz*)Y8}*Il9BLr1QIAQYRHlPesD`s(QOu2coa&)gE(FzZAJk{bB-9&jF=_xiP+M{Y zwZ->Phu4!RwP~n`wJfT^8mPT)gPM61>i6x#u`KRFy}_QL_Od`4v&XGaTi6Trp)(uZ zxDoYUIfok99izwbNo)2f4{9kZqYBnV6>NjryI7k)8MW76qF%WxP+N4urawk4^*hwz z%b3m##2*tAZ-`pCrr1``e+L4ek+2bKpp)J#SukoVnxR&py^Tks5Ai{$EgFJqa3pHL zQ&AK69<|gvQ7dr)wW2RkOP@LehmroBQUo;Owx|M87>pxPGyDm)#E(#WnKz@4_nT25 zDjtD>I2d&XR-s54m^c0y)JB6_w=~b~k&P8qEGt`Qt&TIxyI5W?`mZ~HPYB(4*fG(&dibEZy zc~}(>p_V*J7BizXsCt=DTU8qMy`T!JqZrgfI34*P><&|)M0<>A)xPi zZ&4%4m)*RfYN7@fZk>Tz!X4Na&!JW#Fo%!#FQb)5t>g^Uss9F5ekW@0&!Z-C6;&^N zPP4V1Y&K99y{8?$ryVteXl#R{P^bI~YK!h+U3`a{QSDr&UK?ymJOY)z16A)=)O+QU z^(pe1!23V9kJFco9H@>bqV{w#mcd=9kKL!J23&c}jIyDdcwW>~Py@SRQ{0a0QD-PB zuaEa{KFvU#`qS3SSV+(RZ33EMDz~vaYHxO+_WWm5$ANxkMe3ji)B&|(5vZk)$9Nor z`m}qCmoaTVAMZD%KT+QU%H;R){<+{f%&+I)RlvvlCzu7X5b;SEg&R%cI_yw@~dr#R{0MFwcKE0?i1>G1i@^Q~eBe z22vI=4Z2YSD1_SE%BaKC1odgx8r4yER0sV~pAoB2D|i{T1hd(4O9F#uPi%3ne~zOPU#y$PF_<+iHm+|p_UEhr@ zi03S84qr5?{hZ~@XF(8tMtmkt*Ykg!KxY#Al{b&uNz`Ess$iBn8k-QGhb!?O>J2zO z$jAHd|Nq1|7azM7%^NLoWgqYNem7QCJ@kJ3q7LOt)D{I+(H8UkH6oxr?2GDXCU&L4 zn;3z$s`)rmN&lg`dEBbk@bUgrtU;*q&rkyj4mR=mSc~|5Y=i+deZ2n`Y%pp-iE5dZ z3dZmC{C`DYEjFxeM*14_632r9 z4qK&0KF;sh0&ioP#y*aV70lLz7Z&Dd>f`-6VC`mR;PadD{A=%@lAxt**4)SW4Hsih zDkQY<@&49oc8HJn?*U##?cJc3=3{ma_9VUl^{V!1WnRgBFe&jk>k!oYU`r&%i%A7?F z;Gy+3>YG(kPh0b1$%k6%`lvTtCsf5aR7aCgFN}q#=XeY1)ABIt1#=ZOz$d8sZ&2kj zv@?%$e$?40j*W2`Y9&0s63{F6H`E*J2CBi7?ado7H|j73TSHL;8;*MM%tOumJJhRu zGiqQ5Q7dr~)&6zVht^%2pP_?yB|T0-6L89+mZ%mM$7bk{Ls2WR3N_+wHhvI`5kHF> z$OoIBzN1;moTwEki5gfX)XLOHy$`y0^LhThAfOqHL%jiKp|)Zz4#xwi4(fC=E72OY zw*xQ&zeK(95_dNB+gSUd&c;Mkdn-{Zy9>4VC(--!|Az!L<5XRIyg$JRLY?xVsHIL=*Y$g+o;jssCk z9E(c-!a5T*;+3cw9Yihd4b+xBKy~yAwN>wJe%fwki?ZPi(raNJW^x{T5`WR1=U+?T zv4>gG-lz|s38(?gL@oVF)Shia9j=R51s|dgRnai>bcCP=8jafP38=5*ORyQPuE4&2xw22pxQC-x4 z+M~X3M4+CgXzMuCM3&n4N@VLj&VB-Vq5O*a%5?{|0x2WS4DzEoY>irxPM8RLStC## z#-L{2A60&!jelVsY17A{&e&8es?Yx~3Fw`^AGLRua}4(5+GGY&_!AA_2}7pN^6r#SsP(+FrU=A&LL>rjW~G-{;xu@F8(ZB_Od zvqI&qO;LN_8+8aLqV{?YYU|dcCbl27#b;3yd5j({^nJ}<=0m-BerMw* za_>?tt^!obPexB=+Uqjmztxz%+7e#Ie)J?B!>xhn`oZA*OM6@%=bCMFB?(_?1G)Bd zm!`pT+DNWPrm#0$hK98&A-1!jlo?JN1-!ZDmwv>r5}fc!S`=-lIsUN437~EPZ=09<-;| zax7^f_$6sAsGpSdWF8VT*bdi|n3K4!MR1p1b)2sW^q}F7S0>8&(5bHSpA6ij z@UcwU{JYSB~_qc0kQB zmNZ=lDVL8jdJ&DlnYf7j7KHmyCMkDiTlNL%M+l!F?_2)-N%g(gP#Q^T8~=iibhYL# zPTFJcA8iBP41Sr$!1iGZ^45Gz#4(gxZR2BUvp;RUr?byVTSZAFu3`nNRvL8eC6!@F#g4h+iVFDs{Kmfj`4>#Pw;{7mwOD4`Leb zp|;`5`tR=@AW~C}k`aP!sZxv}p z)2kGb(e&j@nT)uPw)6q#8DvZCv_7Z6$4f7fKpOI;!lzeXI{#o35|clZIIjw41otRz zeU<;0v?_!z5I#qnJM6&v*tQB$udx38Wm=nY)XqrlrljJ>Ycb)1G?0#RSqOKt11vy8 z&uF9wmLoko_fO=N|D>I|#Q(4jb*J1p^7uS+rrJLDC$i_SDVep&Tt!9-!ozH(EfnrV zT-OhD7D)Iu<$fhTmir0e9CUJ?`-Tc}UE}7jdU=0Z-ktOxXyZ%L_yczD6-+z2T2i-; z_x(#`8JWvT;E(B?sg{7Lg8tSdKpy1t_Eh2-fIbSG&` z$v?`iZ$Ia`S8&JB#wN-%BHivzIm)4(LcyKSebQ6JB`dJ;};SK~2d=h09Z z(k7912vbn^KIyvR?11KDNt>3M`~d3Q!BM2Y(fj`g66)AS|D|9P?t-@RS@I?m-b91n z(t$qs8vVVv`dY%d zX{#jVek1K7`I+!59K!v{<#DD^Xq@e6GKCVT_zibs(kFaU_!N1$xFfkgy;|9bej^e_ z-ZR>&YU{PI?Ovm;A><4)_jIz4y0^G>Wu#1E@^2H? zm(oUr_uG2YDZ7_@nD_s`LFQ*fGHW!1{pkGT)t-(Q+sGwbxfAhBlxjQ@cTh$FO|x2AEE+3J#kV} zX%gxxL^zsTS0WnNMFWwziL$kEvMuLNcs${Ll+*7Cbn)W>r!M7m4JBV!66z1-{zvbB ze@2qqHej;NuQ7C(K%wuc^o`9QPT4rZWl7g{iSQq^@tkm9n^v8)3ZxZLyQICdb!&TT z@cyU0A$A~IaioE5av8FK+Al>hnL0jN#lBD5Q%Y`8maj2XX&P{A)Y<>vW>)KIx^nn{kgP zZN1Ic&k=NWCVeCKQo?!%%>|lz~@gCB@vI8(Dj)WlF$VyC0;nOrwm_q!#(fd!V zCXm*S`ybNVQ9jg`4`%?{!od~a8oAAVi@T7mr@R}s%&&A-m3rx^{|;9Y4Xr{hIVr6%1lBA8Y)0$47Wd(E|dN_=~Ia(^OoWVRfIpi&Jnpny%Ut{LWg;5 zemmlO2&bc+T7-4ABR`(Ft~UDbZ?>fK2=2n%8)@VhoJ8Szwn7QwXK5s}Z8RTtq>&+% zZG^h6+Ok0yP5CF>yU82GU6lOC#Q!ARfV(yIx-fwDgk$yn|KpWF!csE%UA9w^a7{AS zP*K-t+qsGHK}0!S{EZ#Q-*)~ZWxl1Jt`;^wnEK<%-(l;2M*0QP`q?^B`jA;hg?I{N zCvy%Bw5PyU(yQCX)?2@)T;Y!cv1#h87qf}811)JA_9GsqOfLQcrT6;GmYHqaSWCJm zfQI^UH?f%`Y3wiJ`EWS}u9E(gIDaS6dmZQ3H+FXVe@6dIUS}HolKc_mH6%Wj^xr8n z3Vn%prH!W8-1fl_RJ~Wk$M^pi6x6kpLb`sn9Vk4K!VifrrLulcdZ&)LKVG?PCrNC6KI-UdKwMQjVJp%~*nxX0*#>vmMt-*yQlXo) zc{HdWQhZCrUBs`@$Vi-sS!kqz?T{${?Qi{RuFQn%l6Q)-(bUaEcsW^zh<{F=i}*)& z)`~hK?4(Q%-vK`cwEl026s4f92pT9zM-yozF%@-vPue{b)ZZm^?vXx(cn<31!!F#( z3FqSONLgJsDYL;2WT8pYf5XoCmHSJ|%%zX=+&4Y^qU!|r3M%|b{4s@Y5T0-I`Vb#T zejgewL0Wz8tK`oio`SHOyA+*I;QmvMaSf%D=iFbCcb@u937_K5L0H!YrPGEdl*BSb zDpGkm4K5*koU|Varzf1&ly|lg)-{U;dQkD>m6Y^Ul-2b&cQ@*OdbOn8r?%5HWQ-?2 zEp;l9R$V{;Nk?P1NvuvmUDdhYQlJn8B1tP~D=V)S_jKZZq^F_Y2g?2a$zUE4F3CNC zGXHR2S0#I$qmMn@!->y8UA6W6C!)eQI|C)wq+-2K;*$smQQ<201MY9g59R)N?WKMI zku;&LxQ`~SdZ zxF{S#Vn!OSMFS1F9h;Y%pswkZS<79F@H{MQ^OZMkXMs%b{fh>UV9oZLb(Ure&qc{UaSU0 z__t5$ccg4D;$Lw8XxnT;nYQ#3MS1W3pC{qt^%IG$RhSOu;cVj5$e&IHUA>6cP#XDp z$eL+*>+liHg(ri8aYd_GMVQnoQKj0`0?_!l>$lFL*6R#rjYiQ4$cz)n}Ka2 zZ8m8yiB~2*#11Tn-ZnE!_D!t+(6aZRcD148KEeelv62>R+9`ePZ9M5?ZCV8q=MdgV ztJ|qJn)qSVm6f!6+`S18roHR*`jqf6{CKSiu;!X{YJ(2<4A{lKwO4 zQ|Tj?G#A4;!u=27@|62qUk28YxsSU53D<3BE3KI+*x1gm25I@JJQr`0{ud1g<6LfC zi^^`1ya8u`j5R-}A4?h3TmjC%p)f2F-@`C#~D}*{=&UmUj`RZ=`e-flJJ(yyHuKm>utqE#4~*i)5v#(Q<1io zGRwGkaaWB`H$BC`kP3an>_FS?;%o}N;634Lc!(~_=$TE z_e*YFKd3O*D_lm}0_vnA+>12t|IiIP5>LrpjJqjirqEV$jAPLIDLudqQPlM#^?Q)#y(sUm9|jMmU)|j+lDpaMR6qMh?{qf2|+7jDA zEz0OKO;;&v4aycLzZ3(Rir*10Wb|j5{0gRpgcBP9S|Dab0f8^2dOWCN7=Xc2c&~alOO(hqnCQ?*caPAxPq+IWBNyh#)Zd3S4vqb(A~0kn7dj3nC@Y*vF^V8 z!(zkYVpEnj$#ugcL!-jz?_+wIkHy2IUFci}#s{$btY!Xv|@!$QdkjiW$x z^_1VY(D=9*4XAr$WJ1a&F>We&8+P{yi;fMCOHjQYVLe0R zBjeoBG12Z)B}*1`4+xEn5Bs#LPeRHq+lshmxI)TA^(-9g9>97qM|Z(kcX+HjI&2^V zj_Vz&g#VFS++8;&KDvjyXG~;d%)s#IUhasngjjccG((N)rSB#au1Zd(=ci z-!ON4Y*-JCs#jQaSpU$tFn7Ix?lC>WydA}`JuGP~D`yIa#(ERF$M^5gT1F`soSnc3?wf^^|o6hefzU z2YU;}5OPNx*gPOCE+TC3Pt)Dz=pIfers%YD?k8u3Zy6A^)f2 z`v3k+r~dSL*mA3=&uf>*&7pSpJg}rsqz*J^doXLzC)9mld!Nv5-HN-TI6&^uB7=+m z&+LM+#s7N^W23Z5kzvv9i1^6vtc`aeBU!DucoxwK9_$Wo9P*zhDz1|Ed`|iQFCHcK@Bjb+ diff --git a/resources/i18n/it/BambuStudio.mo b/resources/i18n/it/BambuStudio.mo new file mode 100644 index 0000000000000000000000000000000000000000..3d6751372bc44635a37413240a576254f3c363b7 GIT binary patch literal 142633 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 F@IOw@xPbrw literal 0 HcmV?d00001 diff --git a/resources/i18n/nl/BambuStudio.mo b/resources/i18n/nl/BambuStudio.mo index 2d7f8394f962c1b2243a7e2327711735ac828640..e03c38e8292fad9aa31cd2392cf16c313cbfbdfd 100644 GIT binary patch delta 35279 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 delta 36179 zcmcKDb#ztNqVMsQpusJ;Y&;M&5Gd~M?h+tCkOT=1UASv;r?|UAacGg^?i4Lj+={*L zZ_mklocr#0mzzTXU|x6F5Cj9>x6pPfYh_qNr0HuFlaNCp8Yu=Qy)tI?mI! zN_Cuuqa4Q%8(~RojTLb*7Q|;ZJ@aVCiA}sM`d~LKg^^eWw_*VPi@7l47{`g?IIdHh zKr9mKV_powLO2<7#vy*n#;;rd!q}ugLe20EM#Xoi0er$Fm}s2I&x(17XTv(!7;E8L z)XF&H9VaFIJEaLIp&7Cy&U}o6i!d&(#~io^HNz)1{|zQ1?lZx0>S79PfZ?bWID%TC zOBfIDpxS?dT7fs{s-tfN)KQ#?juRhKqSCWtLM({txDu+t+BUx_CMF(+n)v`sgukF3 z*%H*!??u)B-NsL&26A~K>z|gubrRCxC(ME=CYgbh#OB0nVl!Na8bI7%Ou1yJfflz` zu{Oknq=#ZI?1g#+OHuv(i+W@!CbRx}_IW0oXIlURh?hoh?hf^pNh&~fz@yaYQQl#b9w|xTpLJ-+FaRDOH}|>u!N0Q#p1;4VG*2y zIq5u9-qmAdojKoV}HVn0KcLD(|$tKi@&Z2hp4b)Qqg~{HPPe z$8unf`DTPOu`BVo3wV8^i-YkE4#Qr*nmzIbwF#pyG#zC_4YVw3FVsh^SSV`gJE1n^ z7}O)1k8Uyos|aW*5849PF)8sEsD@%JGV!FS(~=X_a6VK+g;9^FJZeR%pjNIPY9(5t z>UBYt?};iucoFNb-9CZ@Rh)=g!da+_t56koVIuq;HQ=l0kFQWm9CNWTBdUCHR6CVX zGj4*KU<9VXk(dM*E@u4|*hYdHJb|k47iuZrVF1QlLSf8{8Sp%61>U0u_7w|b!lhIbD@^-t4g%3hD26eyENTU+p*je`V4R9UcpMAiR}93TR`RmK zHkco0+xThJ%Enk_zE`BiqQncKCeRa^kn8j(piMU2W-P@K#8;yl%)i=n9EPcg&p|b? z9aV1+#=$?WS8e)3)WqIdzo1qm>KgONl3;3`|EvVma9PZZEio1j$EY|7^@5p(m2fla zQGB)ODc15Fi5JB3*a$WA1*ko>1!LfGn|=cI_!p+c zIJ?be%!;Lm=R~bU1jg6-?@2%%3`bR%ibZifw#H|urL6TEuT3AvnSm9E&)#Fc>)pl9 z#PjVn1N#;86JL!Q$Q{&-WA8H)NNvr9@mw-W63}s}fqEwOY`i_{8Hc0x#1PDaGf^|x zhsysQ)8Tbg`e)Q;i?ZLmqD!MD7>>#xfPOd>T|L|J1hl)SVOiXP+T~wS72+K*aevga z&5U{k#W62dLUqs&b5i32Fd! zFbF$hX`F{1yn|YD-^1q9F$3yRG{mgf8MOjau{tit68IidVZkG&-#RVkaYUmhd!`rA8h;`IVBppT)&xTQP9%`i*SvQ$<*EvYQ zkBmQ1&-kp#aGs(b$xGCXe27xuO3D=-uBo#^Ak&jnbA z_?_eWFyr|LpD+amV|p@{p;qFk^*QniaQy!?OMDhJqid)~avNje1Js^*Y2$t;&4iMm zRwftb$1)ffd!zUK4=1phgsGSVE1xnA_ChWFV2q)B)J*519>H2njr%Yy-au{2�A5 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 diff --git a/resources/i18n/zh_cn/BambuStudio.mo b/resources/i18n/zh_cn/BambuStudio.mo index bfb466d6011d6496d12826c8520c8a283307f21e..95b14cfa0500119cfd06f741eeb8af5b0cac36e4 100644 GIT binary patch delta 46215 zcmYh^1(X!mx`yGJ!Gmjt!3KACcXto&?gWR>XwU$`-QC@NaMu9A-Q5oa?)&xrxr z&a>TW@9Lg`aK=7}eDrc;-;G#dCwW}?BYIv!d{@--!bJAG6N8oNd6(CCUI1RfNO%>4 z@jezoZ>{I$hN4I{uQ!&&q1X+Nqv{t~M;R=J#c>Fx@jRb*gg_<|USk*xS?_tjU<%BN znXw!;!MwN%s=>FY2EL*i48NUK!q}*e`=ge8yt%~O ziLppOiz;_-JL?~xz$X$SV5}XkgJ4uVIjUfK)C>!wIxdchu_7kI_LvGsq9(8o8{$4} zfFV0wz5b|j!%>@ijgNq4aNB%genHJV;x6~hgHa7gZHr6a6M|^;rHt7ai=5@kH8`fhdWU--;dh$$52c552nG#m>y&8bElyYs{A(8 z0QaF*>@1eS`lutCpl3M)d8v6PP`llC$i1n?p*mcN zDt8>K;8#?`6?xF=unu;_W~fJc4in;I9D(7FxJ^6`gNaW>pO$yn+qzw`1;wv>AUV{ts#ol{?P*k0Q|HI7b2l zPq-x-g*v}eQO|r8YRR^u27C;|;0=s|cQ6vZL_NySsDVW|={9c=DxMxyz5r@MWlysH zT8cU(^u}&D0AHYH(CL)t4OARIW9QSnoUrW~HXt-|xyAc15-LT6!J_qmtD&Foq z8x?QiP;7R=ZNkSs0$TDnsDZ@2=w_M)HS=N^4J%@JtdH6Y%}^^b2(=x43uN-=5ElLLed;F;NW$qXv)y)nHCk10_)}qN?~SHpjTw z54CdR%~h!KM^NotK>rF@{%6zx<6O}S@%$4Ih)+Te)Y4SKIM~4Kit1<>s-an^rCx_= zFcjzGGt{FT`>$Kt^_Z0SQB;RdQ4@HB+Jxb*vRQThV-e8ILr|M49j3)8SQYo7j#cby z?pG9`VCC4sT#@>~!583Ho%7-xJV`V&8CItx}?vt|ltK zB?jXV)H9uf@o^DqMtd+jp2MaX{-%4?wlOE81{R7M_<7X8Zrx=4HPeqIg){H?T*v1v zA>v*4>@$LoHPwbC{)1M6JvM)RHboJ%a710iQ&*_XJa7_y=xpWk4OjTo@LM zVp;T+BA{nH&JtFmp7ke7kNwciI4hPSy*lc2Oh=uHH5dU8Vsbo*%72YIE#V)zcrZpK zo*6Zeg7}R7y)p#UK+eZ*#syKEu^eh<^-%-rgsM2woP?@3*YcN|p{NPnK+W_kYDEH` zxONj^8seETmCpZf1oD&M!$`OTRq-H(!(&(h&mc$KOZ3$3-jAq96^&_VpoviNEU4XG z81<}cq1tPOYOg(p$FAr<|GfzmC1Dtb!K2s+Phu3z_}r~PK2*FWM#QF=8rz`;KEa%Y zzYt%7+I;I#1KW*l@FZ&Ga=&2GYOpYYs8|6t^12v=T~NDzB<9A$s8{cI)QbK3(#@ng zs>8Zw3rt45Ge*Y=sJ*cO^(YUcR_xA8)?b_CJqdbdkzTnMM{3jvYhWR)kLhp*s^THk zz^|AOP@C~BYGoq5cKNYT?Ib}BAT?@pmdAnE_%+Wz27x;yjK;U9T|VHAYv3^ISzSOi zd=+EiJ*y|p`9jiq=1*+pUs1@6Seeg6+!gBB354E>^1XM8n2lqWaJL=pv z#cDVl>*7^xjJZC#XE_BA5MPXXRP8>wdP6WD@#Pl3kGz$=$e-OKdV-qpd(?{g!vD|n ze+5g3n&DE6j_b^Q7?b!})WGhd9$BO>ZpMjF@wBKnV?hkTMwUJRqYZq9) z;D6V5#I(d0pf>AC)ByfPt-w=B|K5KDl3?_J0RJw}j2ci~)XdtTHeDx+55hRahnurd zE4Cg};StmdytMoesP-c>dZnjFovLi;OHZJSWz0f#ywKtsPe+>&HtR`L0~b-} zJWiMZuLR~s?VWz8jz(L20%~OzU{+j>>gQIN0Qd9%OA<80|I8R+-BKk-HJAhAV+l-% z4KW_}MZLJjqxQsHOpJ$6kMceSp%>1TkB=&!1(jbYoG-w?d+U%8LP7`B(vCsRbOEa4 z6{u%-5cTZ-LCxq9YJhJo9wxk7sc5K`3qnmSDQd!F@)KWvFJF(-zJ=q8dEQxmU*&9Mh+Kv%I6`d$zyOrT(-0Ixg# zftm3wYN?a|65#*%EP@(&ebkb+N6la;YDveUj_E8*Uxs=_8!Y`8>J|JCYE%CYSs@?W z(lrzbwWP684JF1tm<~JPBGk&njp80bD%7segG#T2!>|!*FFZsY->6Xo+>d0a7u5r7 zkN?A1>c3SqH?lscXFD6!@LJUQJ%l~*752kc(cRMCLoNMh)JnvU;W|o=dXY`Vj5rHZ z;BnLnzB0X-l%szy27!wh7qw(hu`ve5at${_ZNd(yhKHeMJQ}rPvrxxvDe6(ILGA8c zm;f*1G<=6@e@tvwe-ZjrVKV{k_5+v+PgsF3sF6pB6X5X<@v>rd;@RT{_`eYiLk;Kx zs@xS!ir-L=AS513PQ6m7c->zEyq!1zbvgc3iW*Qq)Q83} z)M=QAdd7264K6_qbgQ`+wY!g?R`eRG+-=mcdxLsa$4lr|Ixng{Utt1a2$VuCVL8+; zt%I6D8%ytpsxS&Qu<_Uq=U6;)BKIhQ%v7i)&w(0HL9-aD{nE&z@p-igXa$C#p5-ij zfGbcPj!*3Jr=cpYN3GO;Oot~hJ$^+03oD81un0~hy(Cs;6aI^ zCr#!O+Mr&sYf-!WE|$aG$$12U{Hg`D#A8yrnaxKHa0O~FtVbQMbEuVkj5+ZWYSU&) zTcql}iGA2pCtsN-55)oxAHKwBa8d|n?bFc3A9Q5K(oYG9Vd z=c9iQpq6qArpCjV2VbH#XPT@5-eN3*dgDDr)%zuz+cR;^tmyy!Uqu3XMYhBgIMScN z$0%y^96>GR4b%)DqBiM!%a4-Xtz0rQGis&2^$2pI22u_+!^Wsb)eE)xhN3p>bkv)41*+ZwRQb!O6?lbO(J!dI;N|4}>sdr6 zpbnFvDrQ3ss1&MVB@BmkP#rfi+hZo;y-}YbOHt2yC92+LR6F}n{TxND;5F0$p5)~G zYX+Z5P{nAu+-3^G#>A7L8XkaZa0qH?$6_6vhnnFR+<>ujyA?T%n$R`#nfcX>lE*!Q zgn2msdKTF&p`6(SwRw7>K3ry?_Q+w(fKO5H{Ghx6{vRgupvpHfhnP#uWB5PvpQC2} zD4+AA&jR7|yM(x?^PR#hY}PfqV^Q+Qp=Nl_ykovG0}BNBeT0Rt>QUQxF?mu=RaaGcWz^%Mw|{c;u5HWl~Cuq4Qgh6P%|HlDmMo8=%%6uI1^QV9%|{= zV{SZ*TB+}-V;Q?R=f5z41O)U5>R~x-gDSWYwIWAQ9bG_md;|5&AESCzjZ9zko=K)R!r(ubPK zB-G4jq4vOhR7cBD6WEU$z$w&3Z(s;ME9r9`L@nh$OoC7|D1ycDFC2nrQ4QBB?QDSB z#m!Lz?}_SQ5Dv!imLIQ-`wU2n#Yk^}AvhN`uzfxP8qrDAQeH)^z;o31fz)N4rBF-U z0yU7<*cm&a>fOQu_{QRy%eg&J)U1YW$!~_K@f7M2`#uoRNPa2rmNFh{sS}&&F@$&? z)C}vOmb?w>QFK8y)EE7)X3Ri*9yY~OsCro|xPcc%efcbdmG$}Gl0Xg;He1G1Ohr6W zMfV$uEEq!Ehskg*YQUkWfu2Tne9e4edX-#$EYzb)f-08{HQ*BH|NY-@1a$seV=nB8 zIyS3O@Ayzug}bPke?)EC@0bE3R(3PXh&pyTP%BdsHNeW2Umx}2X=dqdq|Sd20vh39 z)U%z8+ElYp4K78Ee4E9OV;bVuPy-BC#SJVaYG4^r6Uv3!TP0Dask){Aftt{0^!b;R zfJPRIs&Eu_zAvE~e2ZFX}tT?Tvn@8IDCAr>Ur!FGbC4 zJ?fF{MyRFQ^7v)^#0q#S1*sL8yjn*AMV& zVIwSvn^8;o4pr}eX7~mH-WcMs@Dk3$h1k0xKlNhbMgjUmX`i={fJU0Lv1_OpRv}&n zwHc>j1zduf@jFa|-%uTmc9ZtQSvml?z2ZnhU4_Uq^NH6nEl(s1CO`bM5?#s&@xd)4%tY zKo?BV+^xi4s1B#2KIP`)uecTUW%Uf|!|5TaT>2KSTz1s=g|etU(;P#1bUkqo@u@A{ zgnnz~2GkmTYG614&2${<6wF1PibWP*i5kE<)CwI%E&XLwxqH|XpQ83cv(~PiHmFC| z5!FvGR6heyA8zAXbN;IlSVMw#XJ8xqa6om?((H;_vi_(6jzxXGPee7m%JMf^{19qS zowD?+s4pVVEFPn+TcMe-ex8=^Y?-5i4YiZ%%~^EIevzZo^NJ*X8r zZSfnJnfMDcaXWYJE1CU#1oTXoqei&T;`cEX@vo=>ByaD|aSqg@D1%z+#;6Wkn%z+Y z8DdUEO>80R#kL;x%HM@rIo~Y;s_+Qa(I?c*B6V;DVxTrv5NhVxQ4Li@?egDH_1dBu z?u#1OY;z&1{BkUcn=m(iM2@k~%iPgDi{DUhs&=RW_)vS`Pt**@qn3Ie>NqV&&EObn z0Ov3e@8Sh~fLf^?o!p)|j~d8j)FZx&QFQ)45zq>R>+CY(qT=aL4dg?;K&qjZvJ+}x zf1ozm2uzQYQ7g3{^(e2SRwAH_`^psoRX#H&#R3>t=f5EV&7d1KuxT)<=004@Bf+;(6j7=>S#2o!gSP&WD#m5 zwxYfloIy484E4yqqQ11o_}y6!l|ICrikiqu)XJ?xJ<46bbN(iLOqI3mOdJ_HML ziulG7&^MU{sHNYBdgf126~3XCJgB#OXXivMbq&<9?1x%`QCJDLp^k6FKKk`Kzgt4h zv^J`IV+_SkF7ETP_jPZ;VyI102Q`p}s1+HG8ps%PDXQFlRD*|6Gx`T>;vH1IJpJ4w zEQI=6Uk3G=;j{Fq7+L3kzCXa{IqHS79kpcp@ee$WI%XCBa7*7174L`*(T6I31NAC@ zih3Ue_IIZ!6RLb()XJ2@%2*X6>HNI4dX(=_U(I3-a5Jxh+8e{L0Zu}FuXv08^B-xTn?Vv(gBdKI4XY9_j2h72I0xrr z1}ruxz^jLyFgqScZL05B2xAX+r=lA6B;FPEf_s8mq3?q^|7tk>5I3^|n2vaD)OWc- zI1{&`magVdH`Ds4cypYD?NECl;LiYWIYvcIWGiY#cVlL}jM}Ubhq=>{YZyzVnY19G z8;(Z}D8g{Jxq|Qz@zkgWUtmdmXZiU?xIIx8wae?E$~8qD%hss9(FZl5VWRDDpb=cT!gX*{|-o{?27gF6(ZpMAE1o5R< z3!kGNfv?19x1^m>FP2`Y4u+#vVlrwbOHc#ahT3F@up-_=mCN>*D_0zQ5wD3#KZV-F zH!YrKOn|qKcwS`UKJNV?8w`j9$~A@~h7fh23) zcf>Bp%K5w%1PYRI2j^nQI`<*757Q8DvflmupOL6d^grB+!#B7A6y4}{{~(M+`Zz3v z)3G^TLG7JFn*#j*bxmtj{REr!n-|XC1p=y&VT*fVw8M+Uhv89durbE-c(?Eo zYDJE2cj>QC=YHJ|*UoFyl4sfJ;(y?2;ydvLj@}jE|J$>DcayI3zlDHy=deBQ#o+CA z@BA337e!nwjww;6r44GPYfwwN4fPojd7t|Xh=KY^C?4uP5FhnfkplHf&WIXNA@rpn z5N*GEC1yuG`!cBX&Xzt2b=;PtI=X}!z%}y$s^M3t7fwK^`~-Bo6kf%@`lG z5~)$`WJ3+4&;icBUWKJe$d4mYGdqMD@fi${w^1KLk5C;49&`;wN0m=t@sy}?Sur7& zH(R4V3x=WwFbg$+Wj+FGU_ELEJ5ft~0yUGfs86*^7Jq}P_z6`n;E*#is$N_S!e9)+ z?5K8XpdL+KR6k8IDf+q+&=O5V&2+vMSZ48UsLiq$)#13qu7T;Ofh|W3=pd^8Db%yQ zi0bGbYDM0mK7^tjapjXD`93cl0X^${sDV^M?eh8-pN~z5uSJ!Mb<}OvR9KyOek_e+ zQG4N%`53jgzMuvaqW}AUHUgSiA=He@px)`tP&1g0dgjYf<+fk|?nAvo zLs1{Q4^f-=8>-_t$K8^rMXgX)OoRDQ?~i5}PUn9l0gY%JY5}=Q7>0P! zi=2P0KuHpsU==KZ>#-qz#NJrzp8)@Vzjp>x5U+m8z4LovbK+Z3pMr@lyIo!v&lB%} z+N4FVxQ-{G_Rw_HgckY;Xo=UMj?Wg<%yye+P&2rLI!2#RFQ!=kx@Vglb*u`bR<0VV zeqGciY;WlUQJZxHYHzGU?FHX)0wDzMqAG^H>KcrP+9YXF9p*91nsv=~sB-;K^+%yL z^DNYa=A(}7GSq3>h5B$hi45H5opAy0uK5AgV5DoV;~>;7PK)ZGB&NgKs1631BT&zD zoH-HI(NxsR%s>rn0jl0of1GW*#xgcq#x~S0--~+IN3l4*Ks~c;*WFjB!l;4%iyGKt zERA1KkEHkwmtPCD0xeJ-_eS=*H$dq+HiHQ0*-SzIZ-pqk4dm1 zs-X_3P1ysr#G_G5KNi*D1k0a?8qgMtAGY{)Y{wEjzs332Qq;NQW>60`kk*(L`s9o3 zh+6t5s2RP*mKg4Vi?>JB>yJ7e1F$fzz@qpRGh)VvuD^Pii@2{H0WHmZ)Hz>_TB0qe zf$cZXp`Ps>)C#>qeN0DxT<| z8d{8c1Zyon6t%R+%v-1>{9uN8;yR3hsuyBrN0lpOR!0r2v0u(#X9B7)zzR$-=bEdq z3HjSmxs5j?=ty|0zZl)G4`)T7lOX0Y9N8>b>UtYa~%$yG<2>dgT_z z>ew7raI1OHJcrudH!Yszjhj&h%%=LNkK?YW`fE@F*=b(Hy2M|+;rwd=W#77`s&BS5 zJDYt_GZN8>n4#U%C?Jus}P4f-<|NJl9S2v?r z=x+!$!fckF*DPgLM?K5NW)D=o(Uw04Rez<$H=tH@uNn0}7q5$DdH;Az2&}}{sQBz} z?pH5~zdKu->#-F1Us313I3K=xG0iap0$jWq>d_rUZOU_~P592z!v+TW_fSmq|M$NM z324M=QO_s~szO;*Lv>K^{+6hjcQZ$#W z0zG}&4Z&VG0=3Hn!#bm)Ua3K-4lX!t z|4dLb++gves1>