From 76abbe97f637398601d69799e3dbe5affe2f0a56 Mon Sep 17 00:00:00 2001 From: David Kocik Date: Mon, 17 Jan 2022 11:14:30 +0100 Subject: [PATCH 01/13] fix of of unchecked substr in Upload Dialog possible fix of #7681 --- src/slic3r/GUI/PrintHostDialogs.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/PrintHostDialogs.cpp b/src/slic3r/GUI/PrintHostDialogs.cpp index af2494dc8..9d80f9dd4 100644 --- a/src/slic3r/GUI/PrintHostDialogs.cpp +++ b/src/slic3r/GUI/PrintHostDialogs.cpp @@ -75,8 +75,9 @@ PrintHostSendDialog::PrintHostSendDialog(const fs::path &path, PrintHostPostUplo txt_filename->SetValue(recent_path); txt_filename->SetFocus(); - - m_valid_suffix = recent_path.substr(recent_path.find_last_of('.')); + + if (size_t extension_start = recent_path.find_last_of('.'); extension_start != std::string::npos) + m_valid_suffix = recent_path.substr(extension_start); // .gcode suffix control auto validate_path = [this](const wxString &path) -> bool { if (! path.Lower().EndsWith(m_valid_suffix.Lower())) { From 878dce1fdf5f52ca8957a1b7fd1f29cb5035f233 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Mon, 17 Jan 2022 12:20:44 +0100 Subject: [PATCH 02/13] Workaround for "Internal compiler error" in 32-bit MSVC (19.29.30037) compiler after dc00f0bf983902a6cb81503afa78be4a0ccafb71. --- src/libslic3r/GCode/AvoidCrossingPerimeters.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp b/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp index 9041b4446..a8a0994f7 100644 --- a/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp +++ b/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp @@ -422,7 +422,7 @@ static Direction get_shortest_direction(const AvoidCrossingPerimeters::Boundary } // Straighten the travel path as long as it does not collide with the contours stored in edge_grid. -static std::vector simplify_travel(const AvoidCrossingPerimeters::Boundary &boundary, const std::vector &travel) +static std::vector simplify_travel(const AvoidCrossingPerimeters::Boundary &boundary, std::vector &travel) { FirstIntersectionVisitor visitor(boundary.grid); std::vector simplified_path; @@ -439,7 +439,15 @@ static std::vector simplify_travel(const AvoidCrossingPerimeters::B visitor.pt_current = ¤t_point; if (!next.do_not_remove) - for (size_t point_idx_2 = point_idx + 1; point_idx_2 < travel.size() && !travel[point_idx_2].do_not_remove; ++point_idx_2) { + for (size_t point_idx_2 = point_idx + 1; point_idx_2 < travel.size(); ++point_idx_2) { + // Workaround for some issue in MSVC 19.29.30037 32-bit compiler. +#if defined(_WIN32) && !defined(_WIN64) + if (bool volatile do_not_remove = travel[point_idx_2].do_not_remove; do_not_remove) + break; +#else + if (travel[point_idx_2].do_not_remove) + break; +#endif if (travel[point_idx_2].point == current_point) { next = travel[point_idx_2]; point_idx = point_idx_2; From c54b8908dddd2f2d72188a5d9524c4cdf5f1468a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Mon, 17 Jan 2022 12:25:02 +0100 Subject: [PATCH 03/13] Follow-up of 878dce1fdf5f52ca8957a1b7fd1f29cb5035f233. --- src/libslic3r/GCode/AvoidCrossingPerimeters.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp b/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp index a8a0994f7..f846d8cec 100644 --- a/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp +++ b/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp @@ -422,7 +422,7 @@ static Direction get_shortest_direction(const AvoidCrossingPerimeters::Boundary } // Straighten the travel path as long as it does not collide with the contours stored in edge_grid. -static std::vector simplify_travel(const AvoidCrossingPerimeters::Boundary &boundary, std::vector &travel) +static std::vector simplify_travel(const AvoidCrossingPerimeters::Boundary &boundary, const std::vector &travel) { FirstIntersectionVisitor visitor(boundary.grid); std::vector simplified_path; From 658f01b64b02104979069c2ed5d1f3850c982656 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Thu, 6 Jan 2022 13:01:49 +0100 Subject: [PATCH 04/13] WIP: G-code find / replace using a new gcode_substitutions PrintConfig parameter. --- src/libslic3r/CMakeLists.txt | 2 + src/libslic3r/GCode.cpp | 23 +++++++++- src/libslic3r/GCode.hpp | 2 + src/libslic3r/GCode/FindReplace.cpp | 71 +++++++++++++++++++++++++++++ src/libslic3r/GCode/FindReplace.hpp | 26 +++++++++++ src/libslic3r/PrintConfig.cpp | 6 +++ src/libslic3r/PrintConfig.hpp | 1 + 7 files changed, 129 insertions(+), 2 deletions(-) create mode 100644 src/libslic3r/GCode/FindReplace.cpp create mode 100644 src/libslic3r/GCode/FindReplace.hpp diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt index deaa0b924..99d010d9c 100644 --- a/src/libslic3r/CMakeLists.txt +++ b/src/libslic3r/CMakeLists.txt @@ -98,6 +98,8 @@ add_library(libslic3r STATIC GCode/ThumbnailData.hpp GCode/CoolingBuffer.cpp GCode/CoolingBuffer.hpp + GCode/FindReplace.cpp + GCode/FindReplace.hpp GCode/PostProcessor.cpp GCode/PostProcessor.hpp # GCode/PressureEqualizer.cpp diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index a91f15b2a..14b1f8744 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1155,6 +1155,9 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato m_enable_extrusion_role_markers = false; #endif /* HAS_PRESSURE_EQUALIZER */ + if (! print.config().gcode_substitutions.values.empty()) + m_find_replace = make_unique(print.config()); + // Write information on the generator. file.write_format("; %s\n\n", Slic3r::header_slic3r_generated().c_str()); @@ -1560,13 +1563,21 @@ void GCode::process_layers( [&cooling_buffer = *this->m_cooling_buffer.get()](GCode::LayerResult in) -> std::string { return cooling_buffer.process_layer(std::move(in.gcode), in.layer_id, in.cooling_buffer_flush); }); + const auto find_replace = tbb::make_filter(slic3r_tbb_filtermode::serial_in_order, + [&self = *this->m_find_replace.get()](std::string s) -> std::string { + return self.process_layer(std::move(s)); + }); const auto output = tbb::make_filter(slic3r_tbb_filtermode::serial_in_order, [&output_stream](std::string s) { output_stream.write(s); } ); // The pipeline elements are joined using const references, thus no copying is performed. - if (m_spiral_vase) + if (m_spiral_vase && m_find_replace) + tbb::parallel_pipeline(12, generator & spiral_vase & cooling & find_replace & output); + else if (m_spiral_vase) tbb::parallel_pipeline(12, generator & spiral_vase & cooling & output); + else if (m_find_replace) + tbb::parallel_pipeline(12, generator & cooling & find_replace & output); else tbb::parallel_pipeline(12, generator & cooling & output); } @@ -1603,13 +1614,21 @@ void GCode::process_layers( [&cooling_buffer = *this->m_cooling_buffer.get()](GCode::LayerResult in)->std::string { return cooling_buffer.process_layer(std::move(in.gcode), in.layer_id, in.cooling_buffer_flush); }); + const auto find_replace = tbb::make_filter(slic3r_tbb_filtermode::serial_in_order, + [&self = *this->m_find_replace.get()](std::string s) -> std::string { + return self.process_layer(std::move(s)); + }); const auto output = tbb::make_filter(slic3r_tbb_filtermode::serial_in_order, [&output_stream](std::string s) { output_stream.write(s); } ); // The pipeline elements are joined using const references, thus no copying is performed. - if (m_spiral_vase) + if (m_spiral_vase && m_find_replace) + tbb::parallel_pipeline(12, generator & spiral_vase & cooling & find_replace & output); + else if (m_spiral_vase) tbb::parallel_pipeline(12, generator & spiral_vase & cooling & output); + else if (m_find_replace) + tbb::parallel_pipeline(12, generator & cooling & find_replace & output); else tbb::parallel_pipeline(12, generator & cooling & output); } diff --git a/src/libslic3r/GCode.hpp b/src/libslic3r/GCode.hpp index 1b2c560da..94bb47f85 100644 --- a/src/libslic3r/GCode.hpp +++ b/src/libslic3r/GCode.hpp @@ -10,6 +10,7 @@ #include "PrintConfig.hpp" #include "GCode/AvoidCrossingPerimeters.hpp" #include "GCode/CoolingBuffer.hpp" +#include "GCode/FindReplace.hpp" #include "GCode/SpiralVase.hpp" #include "GCode/ToolOrdering.hpp" #include "GCode/WipeTower.hpp" @@ -393,6 +394,7 @@ private: std::unique_ptr m_cooling_buffer; std::unique_ptr m_spiral_vase; + std::unique_ptr m_find_replace; #ifdef HAS_PRESSURE_EQUALIZER std::unique_ptr m_pressure_equalizer; #endif /* HAS_PRESSURE_EQUALIZER */ diff --git a/src/libslic3r/GCode/FindReplace.cpp b/src/libslic3r/GCode/FindReplace.cpp new file mode 100644 index 000000000..6d489b948 --- /dev/null +++ b/src/libslic3r/GCode/FindReplace.cpp @@ -0,0 +1,71 @@ +#include "FindReplace.hpp" +#include "../Utils.hpp" + +namespace Slic3r { + +GCodeFindReplace::GCodeFindReplace(const PrintConfig &print_config) +{ + const std::vector &subst = print_config.gcode_substitutions.values; + + if ((subst.size() % 3) != 0) + throw RuntimeError("Invalid length of gcode_substitutions parameter"); + + m_substitutions.reserve(subst.size() / 3); + for (size_t i = 0; i < subst.size(); i += 3) { + boost::regex pattern; + try { + pattern.assign(subst[i]); + } catch (const std::exception &ex) { + throw RuntimeError(std::string("Invalid gcode_substitutions parameter, failed to compile regular expression: ") + ex.what()); + } + m_substitutions.push_back({ std::move(pattern), subst[i + 1] }); + } +} + +class ToStringIterator +{ +public: + using iterator_category = std::output_iterator_tag; + using value_type = void; + using difference_type = void; + using pointer = void; + using reference = void; + + ToStringIterator(std::string &data) : m_data(&data) {} + + ToStringIterator& operator=(const char val) { + size_t needs = m_data->size() + 1; + if (m_data->capacity() < needs) + m_data->reserve(next_highest_power_of_2(needs)); + m_data->push_back(val); + return *this; + } + + ToStringIterator& operator*() { return *this; } + ToStringIterator& operator++() { return *this; } + ToStringIterator operator++(int) { return *this; } + +private: + std::string *m_data; +}; + +std::string GCodeFindReplace::process_layer(const std::string &ain) +{ + std::string out; + const std::string *in = &ain; + std::string temp; + temp.reserve(in->size()); + + for (const Substitution &substitution : m_substitutions) { + temp.clear(); + temp.reserve(in->size()); + boost::regex_replace(ToStringIterator(temp), in->begin(), in->end(), + substitution.pattern, substitution.format, boost::match_default | boost::format_all); + std::swap(out, temp); + in = &out; + } + + return out; +} + +} diff --git a/src/libslic3r/GCode/FindReplace.hpp b/src/libslic3r/GCode/FindReplace.hpp new file mode 100644 index 000000000..57577e792 --- /dev/null +++ b/src/libslic3r/GCode/FindReplace.hpp @@ -0,0 +1,26 @@ +#ifndef slic3r_FindReplace_hpp_ +#define slic3r_FindReplace_hpp_ + +#include "../PrintConfig.hpp" + +#include + +namespace Slic3r { + +class GCodeFindReplace { +public: + GCodeFindReplace(const PrintConfig &print_config); + + std::string process_layer(const std::string &gcode); + +private: + struct Substitution { + boost::regex pattern; + std::string format; + }; + std::vector m_substitutions; +}; + +} + +#endif // slic3r_FindReplace_hpp_ diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 2048dc66e..b1a25829b 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1357,6 +1357,12 @@ void PrintConfigDef::init_fff_params() def->mode = comAdvanced; def->set_default_value(new ConfigOptionBool(0)); + def = this->add("gcode_substitutions", coStrings); + def->label = L("G-code substitutions"); + def->tooltip = L("Find / replace patterns in G-code lines and substitute them."); + def->mode = comExpert; + def->set_default_value(new ConfigOptionStrings()); + def = this->add("high_current_on_filament_swap", coBool); def->label = L("High extruder current on filament swap"); def->tooltip = L("It may be beneficial to increase the extruder motor current during the filament exchange" diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 6851ceb10..5f7c99911 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -641,6 +641,7 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionBool, gcode_comments)) ((ConfigOptionEnum, gcode_flavor)) ((ConfigOptionBool, gcode_label_objects)) + ((ConfigOptionStrings, gcode_substitutions)) ((ConfigOptionString, layer_gcode)) ((ConfigOptionFloat, max_print_speed)) ((ConfigOptionFloat, max_volumetric_speed)) From add1e994fac2c7446d813fe158dda16e34c7097a Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Thu, 6 Jan 2022 14:13:36 +0100 Subject: [PATCH 05/13] WIP G-code Find-Replace: Optimize regexps, process complete G-code, not only G-code of layers. --- src/libslic3r/GCode.cpp | 17 +++++++++++++---- src/libslic3r/GCode.hpp | 11 +++++++++-- src/libslic3r/GCode/FindReplace.cpp | 4 ++-- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 14b1f8744..cb0ffc01d 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -1099,6 +1099,11 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato // modifies m_silent_time_estimator_enabled DoExport::init_gcode_processor(print.config(), m_processor, m_silent_time_estimator_enabled); + if (! print.config().gcode_substitutions.values.empty()) { + m_find_replace = make_unique(print.config()); + file.set_find_replace(m_find_replace.get()); + } + // resets analyzer's tracking data m_last_height = 0.f; m_last_layer_z = 0.f; @@ -1155,9 +1160,6 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato m_enable_extrusion_role_markers = false; #endif /* HAS_PRESSURE_EQUALIZER */ - if (! print.config().gcode_substitutions.values.empty()) - m_find_replace = make_unique(print.config()); - // Write information on the generator. file.write_format("; %s\n\n", Slic3r::header_slic3r_generated().c_str()); @@ -1572,6 +1574,7 @@ void GCode::process_layers( ); // The pipeline elements are joined using const references, thus no copying is performed. + output_stream.set_find_replace(nullptr); if (m_spiral_vase && m_find_replace) tbb::parallel_pipeline(12, generator & spiral_vase & cooling & find_replace & output); else if (m_spiral_vase) @@ -1580,6 +1583,7 @@ void GCode::process_layers( tbb::parallel_pipeline(12, generator & cooling & find_replace & output); else tbb::parallel_pipeline(12, generator & cooling & output); + output_stream.set_find_replace(m_find_replace.get()); } // Process all layers of a single object instance (sequential mode) with a parallel pipeline: @@ -1623,6 +1627,7 @@ void GCode::process_layers( ); // The pipeline elements are joined using const references, thus no copying is performed. + output_stream.set_find_replace(nullptr); if (m_spiral_vase && m_find_replace) tbb::parallel_pipeline(12, generator & spiral_vase & cooling & find_replace & output); else if (m_spiral_vase) @@ -1631,6 +1636,7 @@ void GCode::process_layers( tbb::parallel_pipeline(12, generator & cooling & find_replace & output); else tbb::parallel_pipeline(12, generator & cooling & output); + output_stream.set_find_replace(m_find_replace.get()); } std::string GCode::placeholder_parser_process(const std::string &name, const std::string &templ, unsigned int current_extruder_id, const DynamicConfig *config_override) @@ -2847,7 +2853,10 @@ void GCode::GCodeOutputStream::write(const char *what) // writes string to file fwrite(gcode, 1, ::strlen(gcode), this->f); //FIXME don't allocate a string, maybe process a batch of lines? - m_processor.process_buffer(std::string(gcode)); + if (m_find_replace) + m_processor.process_buffer(m_find_replace->process_layer(std::string(gcode))); + else + m_processor.process_buffer(std::string(gcode)); } } diff --git a/src/libslic3r/GCode.hpp b/src/libslic3r/GCode.hpp index 94bb47f85..f46558c35 100644 --- a/src/libslic3r/GCode.hpp +++ b/src/libslic3r/GCode.hpp @@ -190,6 +190,11 @@ private: GCodeOutputStream(FILE *f, GCodeProcessor &processor) : f(f), m_processor(processor) {} ~GCodeOutputStream() { this->close(); } + // Set a find-replace post-processor to modify the G-code before GCodePostProcessor. + // It is being set to null inside process_layers(), because the find-replace process + // is being called on a secondary thread to improve performance. + void set_find_replace(GCodeFindReplace *find_replace) { m_find_replace = find_replace; } + bool is_open() const { return f; } bool is_error() const; @@ -209,8 +214,10 @@ private: void write_format(const char* format, ...); private: - FILE *f = nullptr; - GCodeProcessor &m_processor; + FILE *f { nullptr }; + // Find-replace post-processor to be called before GCodePostProcessor. + GCodeFindReplace *m_find_replace { nullptr }; + GCodeProcessor &m_processor; }; void _do_export(Print &print, GCodeOutputStream &file, ThumbnailsGeneratorCallback thumbnail_cb); diff --git a/src/libslic3r/GCode/FindReplace.cpp b/src/libslic3r/GCode/FindReplace.cpp index 6d489b948..e78e34c11 100644 --- a/src/libslic3r/GCode/FindReplace.cpp +++ b/src/libslic3r/GCode/FindReplace.cpp @@ -14,7 +14,7 @@ GCodeFindReplace::GCodeFindReplace(const PrintConfig &print_config) for (size_t i = 0; i < subst.size(); i += 3) { boost::regex pattern; try { - pattern.assign(subst[i]); + pattern.assign(subst[i], boost::regex::optimize); // boost::regex::icase } catch (const std::exception &ex) { throw RuntimeError(std::string("Invalid gcode_substitutions parameter, failed to compile regular expression: ") + ex.what()); } @@ -60,7 +60,7 @@ std::string GCodeFindReplace::process_layer(const std::string &ain) temp.clear(); temp.reserve(in->size()); boost::regex_replace(ToStringIterator(temp), in->begin(), in->end(), - substitution.pattern, substitution.format, boost::match_default | boost::format_all); + substitution.pattern, substitution.format, boost::match_default | boost::match_not_dot_newline | boost::match_not_dot_null | boost::format_all); std::swap(out, temp); in = &out; } From d4fd95bd4aa4db5265a4dc5bb3ff849e9af88fbb Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Thu, 6 Jan 2022 16:41:54 +0100 Subject: [PATCH 06/13] WIP: G-code find & replace: Support for non-regular expression, whole word and case insensitive search. --- src/libslic3r/GCode.cpp | 11 ++-- src/libslic3r/GCode/FindReplace.cpp | 80 ++++++++++++++++++++++++++--- src/libslic3r/GCode/FindReplace.hpp | 9 +++- src/libslic3r/PrintConfig.hpp | 5 ++ 4 files changed, 88 insertions(+), 17 deletions(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index cb0ffc01d..d79e8177f 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -2849,14 +2849,11 @@ void GCode::GCodeOutputStream::close() void GCode::GCodeOutputStream::write(const char *what) { if (what != nullptr) { - const char* gcode = what; - // writes string to file - fwrite(gcode, 1, ::strlen(gcode), this->f); //FIXME don't allocate a string, maybe process a batch of lines? - if (m_find_replace) - m_processor.process_buffer(m_find_replace->process_layer(std::string(gcode))); - else - m_processor.process_buffer(std::string(gcode)); + std::string gcode(m_find_replace ? m_find_replace->process_layer(what) : what); + // writes string to file + fwrite(gcode.c_str(), 1, gcode.size(), this->f); + m_processor.process_buffer(gcode); } } diff --git a/src/libslic3r/GCode/FindReplace.cpp b/src/libslic3r/GCode/FindReplace.cpp index e78e34c11..bb81876d8 100644 --- a/src/libslic3r/GCode/FindReplace.cpp +++ b/src/libslic3r/GCode/FindReplace.cpp @@ -1,6 +1,8 @@ #include "FindReplace.hpp" #include "../Utils.hpp" +#include // isalpha + namespace Slic3r { GCodeFindReplace::GCodeFindReplace(const PrintConfig &print_config) @@ -12,13 +14,24 @@ GCodeFindReplace::GCodeFindReplace(const PrintConfig &print_config) m_substitutions.reserve(subst.size() / 3); for (size_t i = 0; i < subst.size(); i += 3) { - boost::regex pattern; + Substitution out; try { - pattern.assign(subst[i], boost::regex::optimize); // boost::regex::icase + out.plain_pattern = subst[i]; + out.format = subst[i + 1]; + const std::string ¶ms = subst[i + 2]; + out.regexp = strchr(params.c_str(), 'r') != nullptr || strchr(params.c_str(), 'R') != nullptr; + out.case_insensitive = strchr(params.c_str(), 'i') != nullptr || strchr(params.c_str(), 'I') != nullptr; + out.whole_word = strchr(params.c_str(), 'w') != nullptr || strchr(params.c_str(), 'W') != nullptr; + if (out.regexp) + out.regexp_pattern.assign( + out.whole_word ? + std::string("\b") + out.plain_pattern + "\b" : + out.plain_pattern, + (out.case_insensitive ? boost::regex::icase : 0) | boost::regex::optimize); } catch (const std::exception &ex) { throw RuntimeError(std::string("Invalid gcode_substitutions parameter, failed to compile regular expression: ") + ex.what()); } - m_substitutions.push_back({ std::move(pattern), subst[i + 1] }); + m_substitutions.emplace_back(std::move(out)); } } @@ -49,6 +62,29 @@ private: std::string *m_data; }; +template +static void find_and_replace_whole_word(std::string &inout, const std::string &match, const std::string &replace, FindFn find_fn) +{ + if (! match.empty() && inout.size() >= match.size() && match != replace) { + std::string out; + auto [i, j] = find_fn(inout, 0, match); + size_t k = 0; + for (; i != std::string::npos; std::tie(i, j) = find_fn(inout, i, match)) { + if ((i == 0 || ! std::isalnum(inout[i - 1])) && (j == inout.size() || ! std::isalnum(inout[j]))) { + out.reserve(inout.size()); + out.append(inout, k, i - k); + out.append(replace); + i = k = j; + } else + i += match.size(); + } + if (k > 0) { + out.append(inout, k, inout.size() - k); + inout.swap(out); + } + } +} + std::string GCodeFindReplace::process_layer(const std::string &ain) { std::string out; @@ -57,11 +93,39 @@ std::string GCodeFindReplace::process_layer(const std::string &ain) temp.reserve(in->size()); for (const Substitution &substitution : m_substitutions) { - temp.clear(); - temp.reserve(in->size()); - boost::regex_replace(ToStringIterator(temp), in->begin(), in->end(), - substitution.pattern, substitution.format, boost::match_default | boost::match_not_dot_newline | boost::match_not_dot_null | boost::format_all); - std::swap(out, temp); + if (substitution.regexp) { + temp.clear(); + temp.reserve(in->size()); + boost::regex_replace(ToStringIterator(temp), in->begin(), in->end(), + substitution.regexp_pattern, substitution.format, boost::match_default | boost::match_not_dot_newline | boost::match_not_dot_null | boost::format_all); + std::swap(out, temp); + } else { + if (in == &ain) + out = ain; + // Plain substitution + if (substitution.case_insensitive) { + if (substitution.whole_word) + find_and_replace_whole_word(out, substitution.plain_pattern, substitution.format, + [](const std::string &str, size_t start_pos, const std::string &match) { + auto begin = str.begin() + start_pos; + auto res = boost::ifind_first( + boost::iterator_range(begin, str.end()), + boost::iterator_range(match.begin(), match.end())); + return res ? std::make_pair(size_t(res.begin() - begin), size_t(res.end() - begin)) : std::make_pair(std::string::npos, std::string::npos); + }); + else + boost::ireplace_all(out, substitution.plain_pattern, substitution.format); + } else { + if (substitution.whole_word) + find_and_replace_whole_word(out, substitution.plain_pattern, substitution.format, + [](const std::string &str, size_t start_pos, const std::string &match) { + size_t pos = str.find(match, start_pos); + return std::make_pair(pos, pos + (pos == std::string::npos ? 0 : match.size())); + }); + else + boost::replace_all(out, substitution.plain_pattern, substitution.format); + } + } in = &out; } diff --git a/src/libslic3r/GCode/FindReplace.hpp b/src/libslic3r/GCode/FindReplace.hpp index 57577e792..ff25700b9 100644 --- a/src/libslic3r/GCode/FindReplace.hpp +++ b/src/libslic3r/GCode/FindReplace.hpp @@ -15,8 +15,13 @@ public: private: struct Substitution { - boost::regex pattern; - std::string format; + std::string plain_pattern; + boost::regex regexp_pattern; + std::string format; + + bool regexp { false }; + bool case_insensitive { false }; + bool whole_word { false }; }; std::vector m_substitutions; }; diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 5f7c99911..2cc758e7b 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -641,6 +641,11 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionBool, gcode_comments)) ((ConfigOptionEnum, gcode_flavor)) ((ConfigOptionBool, gcode_label_objects)) + // Triples of strings: "search pattern", "replace with pattern", "attribs" + // where "attribs" are one of: + // r - regular expression + // i - case insensitive + // w - whole word ((ConfigOptionStrings, gcode_substitutions)) ((ConfigOptionString, layer_gcode)) ((ConfigOptionFloat, max_print_speed)) From 2da3d80a62e092495ccff543e93e399576e11204 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Thu, 6 Jan 2022 17:35:21 +0100 Subject: [PATCH 07/13] Fixing compilation on non-MSVC. --- src/libslic3r/GCode/FindReplace.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/GCode/FindReplace.cpp b/src/libslic3r/GCode/FindReplace.cpp index bb81876d8..d349632b5 100644 --- a/src/libslic3r/GCode/FindReplace.cpp +++ b/src/libslic3r/GCode/FindReplace.cpp @@ -108,9 +108,9 @@ std::string GCodeFindReplace::process_layer(const std::string &ain) find_and_replace_whole_word(out, substitution.plain_pattern, substitution.format, [](const std::string &str, size_t start_pos, const std::string &match) { auto begin = str.begin() + start_pos; - auto res = boost::ifind_first( - boost::iterator_range(begin, str.end()), - boost::iterator_range(match.begin(), match.end())); + boost::iterator_range r1(begin, str.end()); + boost::iterator_range r2(match.begin(), match.end()); + auto res = boost::ifind_first(r1, r2); return res ? std::make_pair(size_t(res.begin() - begin), size_t(res.end() - begin)) : std::make_pair(std::string::npos, std::string::npos); }); else From aa62868ccbc4cc2d296f263325adc5fe9ebfcec4 Mon Sep 17 00:00:00 2001 From: Vojtech Bubnik Date: Fri, 7 Jan 2022 12:23:15 +0100 Subject: [PATCH 08/13] WIP G-code find & replace: Unit tests and some bug fixes. --- src/libslic3r/GCode/FindReplace.cpp | 38 +++- src/libslic3r/GCode/FindReplace.hpp | 4 +- tests/fff_print/CMakeLists.txt | 1 + tests/fff_print/test_gcodefindreplace.cpp | 218 ++++++++++++++++++++++ 4 files changed, 250 insertions(+), 11 deletions(-) create mode 100644 tests/fff_print/test_gcodefindreplace.cpp diff --git a/src/libslic3r/GCode/FindReplace.cpp b/src/libslic3r/GCode/FindReplace.cpp index d349632b5..480994da8 100644 --- a/src/libslic3r/GCode/FindReplace.cpp +++ b/src/libslic3r/GCode/FindReplace.cpp @@ -5,29 +5,47 @@ namespace Slic3r { -GCodeFindReplace::GCodeFindReplace(const PrintConfig &print_config) +// Similar to https://npp-user-manual.org/docs/searching/#extended-search-mode +const void unescape_extended_search_mode(std::string &s) { - const std::vector &subst = print_config.gcode_substitutions.values; + boost::replace_all(s, "\\n", "\n"); // Line Feed control character LF (ASCII 0x0A) + boost::replace_all(s, "\\r", "\r"); // Carriage Return control character CR (ASCII 0x0D) + boost::replace_all(s, "\\t", "\t"); // TAB control character (ASCII 0x09) + boost::replace_all(s, "\\0", "\0x00"); // NUL control character (ASCII 0x00) + boost::replace_all(s, "\\\\", "\\"); // Backslash character (ASCII 0x5C) - if ((subst.size() % 3) != 0) +// Notepad++ also supports: +// \o: the octal representation of a byte, made of 3 digits in the 0-7 range +// \d: the decimal representation of a byte, made of 3 digits in the 0-9 range +// \x: the hexadecimal representation of a byte, made of 2 digits in the 0-9, A-F/a-f range. +// \u: The hexadecimal representation of a two-byte character, made of 4 digits in the 0-9, A-F/a-f range. +} + +GCodeFindReplace::GCodeFindReplace(const std::vector &gcode_substitutions) +{ + if ((gcode_substitutions.size() % 3) != 0) throw RuntimeError("Invalid length of gcode_substitutions parameter"); - m_substitutions.reserve(subst.size() / 3); - for (size_t i = 0; i < subst.size(); i += 3) { + m_substitutions.reserve(gcode_substitutions.size() / 3); + for (size_t i = 0; i < gcode_substitutions.size(); i += 3) { Substitution out; try { - out.plain_pattern = subst[i]; - out.format = subst[i + 1]; - const std::string ¶ms = subst[i + 2]; + out.plain_pattern = gcode_substitutions[i]; + out.format = gcode_substitutions[i + 1]; + const std::string ¶ms = gcode_substitutions[i + 2]; out.regexp = strchr(params.c_str(), 'r') != nullptr || strchr(params.c_str(), 'R') != nullptr; out.case_insensitive = strchr(params.c_str(), 'i') != nullptr || strchr(params.c_str(), 'I') != nullptr; out.whole_word = strchr(params.c_str(), 'w') != nullptr || strchr(params.c_str(), 'W') != nullptr; - if (out.regexp) + if (out.regexp) { out.regexp_pattern.assign( out.whole_word ? - std::string("\b") + out.plain_pattern + "\b" : + std::string("\\b") + out.plain_pattern + "\\b" : out.plain_pattern, (out.case_insensitive ? boost::regex::icase : 0) | boost::regex::optimize); + } else { + unescape_extended_search_mode(out.plain_pattern); + unescape_extended_search_mode(out.format); + } } catch (const std::exception &ex) { throw RuntimeError(std::string("Invalid gcode_substitutions parameter, failed to compile regular expression: ") + ex.what()); } diff --git a/src/libslic3r/GCode/FindReplace.hpp b/src/libslic3r/GCode/FindReplace.hpp index ff25700b9..2d12cf28b 100644 --- a/src/libslic3r/GCode/FindReplace.hpp +++ b/src/libslic3r/GCode/FindReplace.hpp @@ -9,7 +9,9 @@ namespace Slic3r { class GCodeFindReplace { public: - GCodeFindReplace(const PrintConfig &print_config); + GCodeFindReplace(const PrintConfig &print_config) : GCodeFindReplace(print_config.gcode_substitutions.values) {} + GCodeFindReplace(const std::vector &gcode_substitutions); + std::string process_layer(const std::string &gcode); diff --git a/tests/fff_print/CMakeLists.txt b/tests/fff_print/CMakeLists.txt index c69e722af..50b45e384 100644 --- a/tests/fff_print/CMakeLists.txt +++ b/tests/fff_print/CMakeLists.txt @@ -7,6 +7,7 @@ add_executable(${_TEST_NAME}_tests test_fill.cpp test_flow.cpp test_gcode.cpp + test_gcodefindreplace.cpp test_gcodewriter.cpp test_model.cpp test_print.cpp diff --git a/tests/fff_print/test_gcodefindreplace.cpp b/tests/fff_print/test_gcodefindreplace.cpp new file mode 100644 index 000000000..be0dd8a01 --- /dev/null +++ b/tests/fff_print/test_gcodefindreplace.cpp @@ -0,0 +1,218 @@ +#include + +#include + +#include "libslic3r/GCode/FindReplace.hpp" + +using namespace Slic3r; + +SCENARIO("Find/Replace with plain text", "[GCodeFindReplace]") { + GIVEN("G-code") { + const std::string gcode = + "G1 Z0; home\n" + "G1 Z1; move up\n" + "G1 X0 Y1 Z1; perimeter\n" + "G1 X13 Y32 Z1; infill\n" + "G1 X13 Y32 Z1; wipe\n"; + WHEN("Replace \"move up\" with \"move down\", case sensitive") { + GCodeFindReplace find_replace({ "move up", "move down", "" }); + REQUIRE(find_replace.process_layer(gcode) == + "G1 Z0; home\n" + // substituted + "G1 Z1; move down\n" + "G1 X0 Y1 Z1; perimeter\n" + "G1 X13 Y32 Z1; infill\n" + "G1 X13 Y32 Z1; wipe\n"); + } + WHEN("Replace \"move up\" with \"move down\", case insensitive") { + GCodeFindReplace find_replace({ "move up", "move down", "i" }); + REQUIRE(find_replace.process_layer(gcode) == + "G1 Z0; home\n" + // substituted + "G1 Z1; move down\n" + "G1 X0 Y1 Z1; perimeter\n" + "G1 X13 Y32 Z1; infill\n" + "G1 X13 Y32 Z1; wipe\n"); + } + WHEN("Replace \"move UP\" with \"move down\", case insensitive") { + GCodeFindReplace find_replace({ "move UP", "move down", "i" }); + REQUIRE(find_replace.process_layer(gcode) == + "G1 Z0; home\n" + // substituted + "G1 Z1; move down\n" + "G1 X0 Y1 Z1; perimeter\n" + "G1 X13 Y32 Z1; infill\n" + "G1 X13 Y32 Z1; wipe\n"); + } + WHEN("Replace \"move up\" with \"move down\", case sensitive") { + GCodeFindReplace find_replace({ "move UP", "move down", "" }); + REQUIRE(find_replace.process_layer(gcode) == gcode); + } + + // Whole word + WHEN("Replace \"move up\" with \"move down\", whole word") { + GCodeFindReplace find_replace({ "move up", "move down", "w" }); + REQUIRE(find_replace.process_layer(gcode) == + "G1 Z0; home\n" + // substituted + "G1 Z1; move down\n" + "G1 X0 Y1 Z1; perimeter\n" + "G1 X13 Y32 Z1; infill\n" + "G1 X13 Y32 Z1; wipe\n"); + } + WHEN("Replace \"move u\" with \"move down\", whole word") { + GCodeFindReplace find_replace({ "move u", "move down", "w" }); + REQUIRE(find_replace.process_layer(gcode) == gcode); + } + WHEN("Replace \"ove up\" with \"move down\", whole word") { + GCodeFindReplace find_replace({ "move u", "move down", "w" }); + REQUIRE(find_replace.process_layer(gcode) == gcode); + } + + // Multi-line replace + WHEN("Replace \"move up\\nG1 X0 \" with \"move down\\nG0 X1 \"") { + GCodeFindReplace find_replace({ "move up\\nG1 X0 ", "move down\\nG0 X1 ", "" }); + REQUIRE(find_replace.process_layer(gcode) == + "G1 Z0; home\n" + // substituted + "G1 Z1; move down\n" + "G0 X1 Y1 Z1; perimeter\n" + "G1 X13 Y32 Z1; infill\n" + "G1 X13 Y32 Z1; wipe\n"); + } + // Multi-line replace, whole word. + WHEN("Replace \"move up\\nG1 X0\" with \"move down\\nG0 X1\", whole word") { + GCodeFindReplace find_replace({ "move up\\nG1 X0", "move down\\nG0 X1", "w" }); + REQUIRE(find_replace.process_layer(gcode) == + "G1 Z0; home\n" + // substituted + "G1 Z1; move down\n" + "G0 X1 Y1 Z1; perimeter\n" + "G1 X13 Y32 Z1; infill\n" + "G1 X13 Y32 Z1; wipe\n"); + } + // Multi-line replace, whole word, fails. + WHEN("Replace \"move up\\nG1 X\" with \"move down\\nG0 X\", whole word") { + GCodeFindReplace find_replace({ "move up\\nG1 X", "move down\\nG0 X", "w" }); + REQUIRE(find_replace.process_layer(gcode) == gcode); + } + } + + GIVEN("G-code with decimals") { + const std::string gcode = + "G1 Z0.123; home\n" + "G1 Z1.21; move up\n" + "G1 X0 Y.33 Z.431 E1.2; perimeter\n"; + WHEN("Regular expression NOT processed in non-regex mode") { + GCodeFindReplace find_replace({ "( [XYZEF]-?)\\.([0-9]+)", "\\10.\\2", "" }); + REQUIRE(find_replace.process_layer(gcode) == gcode); + } + } +} + +SCENARIO("Find/Replace with regexp", "[GCodeFindReplace]") { + GIVEN("G-code") { + const std::string gcode = + "G1 Z0; home\n" + "G1 Z1; move up\n" + "G1 X0 Y1 Z1; perimeter\n" + "G1 X13 Y32 Z1; infill\n" + "G1 X13 Y32 Z1; wipe\n"; + WHEN("Replace \"move up\" with \"move down\", case sensitive") { + GCodeFindReplace find_replace({ "move up", "move down", "r" }); + REQUIRE(find_replace.process_layer(gcode) == + "G1 Z0; home\n" + // substituted + "G1 Z1; move down\n" + "G1 X0 Y1 Z1; perimeter\n" + "G1 X13 Y32 Z1; infill\n" + "G1 X13 Y32 Z1; wipe\n"); + } + WHEN("Replace \"move up\" with \"move down\", case insensitive") { + GCodeFindReplace find_replace({ "move up", "move down", "ri" }); + REQUIRE(find_replace.process_layer(gcode) == + "G1 Z0; home\n" + // substituted + "G1 Z1; move down\n" + "G1 X0 Y1 Z1; perimeter\n" + "G1 X13 Y32 Z1; infill\n" + "G1 X13 Y32 Z1; wipe\n"); + } + WHEN("Replace \"move UP\" with \"move down\", case insensitive") { + GCodeFindReplace find_replace({ "move UP", "move down", "ri" }); + REQUIRE(find_replace.process_layer(gcode) == + "G1 Z0; home\n" + // substituted + "G1 Z1; move down\n" + "G1 X0 Y1 Z1; perimeter\n" + "G1 X13 Y32 Z1; infill\n" + "G1 X13 Y32 Z1; wipe\n"); + } + WHEN("Replace \"move up\" with \"move down\", case sensitive") { + GCodeFindReplace find_replace({ "move UP", "move down", "r" }); + REQUIRE(find_replace.process_layer(gcode) == gcode); + } + + // Whole word + WHEN("Replace \"move up\" with \"move down\", whole word") { + GCodeFindReplace find_replace({ "move up", "move down", "rw" }); + REQUIRE(find_replace.process_layer(gcode) == + "G1 Z0; home\n" + // substituted + "G1 Z1; move down\n" + "G1 X0 Y1 Z1; perimeter\n" + "G1 X13 Y32 Z1; infill\n" + "G1 X13 Y32 Z1; wipe\n"); + } + WHEN("Replace \"move u\" with \"move down\", whole word") { + GCodeFindReplace find_replace({ "move u", "move down", "rw" }); + REQUIRE(find_replace.process_layer(gcode) == gcode); + } + WHEN("Replace \"ove up\" with \"move down\", whole word") { + GCodeFindReplace find_replace({ "move u", "move down", "rw" }); + REQUIRE(find_replace.process_layer(gcode) == gcode); + } + + // Multi-line replace + WHEN("Replace \"move up\\nG1 X0 \" with \"move down\\nG0 X1 \"") { + GCodeFindReplace find_replace({ "move up\\nG1 X0 ", "move down\\nG0 X1 ", "r" }); + REQUIRE(find_replace.process_layer(gcode) == + "G1 Z0; home\n" + // substituted + "G1 Z1; move down\n" + "G0 X1 Y1 Z1; perimeter\n" + "G1 X13 Y32 Z1; infill\n" + "G1 X13 Y32 Z1; wipe\n"); + } + // Multi-line replace, whole word. + WHEN("Replace \"move up\\nG1 X0\" with \"move down\\nG0 X1\", whole word") { + GCodeFindReplace find_replace({ "move up\\nG1 X0", "move down\\nG0 X1", "rw" }); + REQUIRE(find_replace.process_layer(gcode) == + "G1 Z0; home\n" + // substituted + "G1 Z1; move down\n" + "G0 X1 Y1 Z1; perimeter\n" + "G1 X13 Y32 Z1; infill\n" + "G1 X13 Y32 Z1; wipe\n"); + } + // Multi-line replace, whole word, fails. + WHEN("Replace \"move up\\nG1 X\" with \"move down\\nG0 X\", whole word") { + GCodeFindReplace find_replace({ "move up\\nG1 X", "move down\\nG0 X", "rw" }); + REQUIRE(find_replace.process_layer(gcode) == gcode); + } + } + + GIVEN("G-code with decimals") { + const std::string gcode = + "G1 Z0.123; home\n" + "G1 Z1.21; move up\n" + "G1 X0 Y.33 Z.431 E1.2; perimeter\n"; + WHEN("Missing zeros before dot filled in") { + GCodeFindReplace find_replace({ "( [XYZEF]-?)\\.([0-9]+)", "\\10.\\2", "r" }); + REQUIRE(find_replace.process_layer(gcode) == + "G1 Z0.123; home\n" + "G1 Z1.21; move up\n" + "G1 X0 Y0.33 Z0.431 E1.2; perimeter\n"); + } + } +} From 8a387fc52d3116956944aab6b128185b021f915f Mon Sep 17 00:00:00 2001 From: YuSanka Date: Fri, 7 Jan 2022 16:54:31 +0100 Subject: [PATCH 09/13] WIP: First IU implementation for G-code substitutions --- src/libslic3r/Preset.cpp | 2 +- src/libslic3r/Print.cpp | 1 + src/slic3r/GUI/Tab.cpp | 245 +++++++++++++++++++++++++++++++++++++++ src/slic3r/GUI/Tab.hpp | 39 +++++++ 4 files changed, 286 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index 2397a7d19..b3ed6f57f 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -439,7 +439,7 @@ static std::vector s_Preset_print_options { "support_material_interface_pattern", "support_material_interface_spacing", "support_material_interface_contact_loops", "support_material_contact_distance", "support_material_bottom_contact_distance", "support_material_buildplate_only", "dont_support_bridges", "thick_bridges", "notes", "complete_objects", "extruder_clearance_radius", - "extruder_clearance_height", "gcode_comments", "gcode_label_objects", "output_filename_format", "post_process", "perimeter_extruder", + "extruder_clearance_height", "gcode_comments", "gcode_label_objects", "output_filename_format", "post_process", "gcode_substitutions", "perimeter_extruder", "infill_extruder", "solid_infill_extruder", "support_material_extruder", "support_material_interface_extruder", "ooze_prevention", "standby_temperature_delta", "interface_shells", "extrusion_width", "first_layer_extrusion_width", "perimeter_extrusion_width", "external_perimeter_extrusion_width", "infill_extrusion_width", "solid_infill_extrusion_width", diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 70c5756ef..d82a1a093 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -110,6 +110,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n "output_filename_format", "perimeter_acceleration", "post_process", + "gcode_substitutions", "printer_notes", "retract_before_travel", "retract_before_wipe", diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 044a0c77d..b76d6e4e2 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1697,6 +1697,18 @@ void TabPrint::build() option.opt.height = 5;//50; optgroup->append_single_option_line(option); + optgroup = page->new_optgroup(L("G-code Substitutions"), 0); + option = optgroup->get_option("gcode_substitutions"); + option.opt.full_width = true; + option.opt.height = 0;//50; + optgroup->append_single_option_line(option); + line = { "", "" }; + line.full_width = 1; + line.widget = [this](wxWindow* parent) { + return create_substitution_widget(parent); + }; + optgroup->append_line(line); + page = add_options_page(L("Notes"), "note.png"); optgroup = page->new_optgroup(L("Notes"), 0); option = optgroup->get_option("notes"); @@ -3862,6 +3874,239 @@ wxSizer* Tab::compatible_widget_create(wxWindow* parent, PresetDependencies &dep return sizer; } +// G-code substitutions + +void SubstitutionManager::init(DynamicPrintConfig* config, wxWindow* parent, wxFlexGridSizer* grid_sizer) +{ + m_config = config; + m_parent = parent; + m_grid_sizer = grid_sizer; + m_em = em_unit(parent); +} + +void SubstitutionManager::create_legend() +{ + if (!m_grid_sizer->IsEmpty()) + return; + // name of the first column is empty + m_grid_sizer->Add(new wxStaticText(m_parent, wxID_ANY, wxEmptyString)); + // Legend for another columns + for (const std::string col : { L("Plain pattern"), L("Format"), L("Params") }) { + auto temp = new wxStaticText(m_parent, wxID_ANY, _(col), wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_MIDDLE); + // temp->SetBackgroundStyle(wxBG_STYLE_PAINT); + m_grid_sizer->Add(temp); + } +} + +// delete substitution_id from substitutions +void SubstitutionManager::delete_substitution(int substitution_id) +{ + // delete substitution + std::vector& substitutions = m_config->option("gcode_substitutions")->values; + if ((substitutions.size() % 3) != 0) + throw RuntimeError("Invalid length of gcode_substitutions parameter"); + + if ((substitutions.size() / 3) < substitution_id) + throw RuntimeError("Invalid substitution_id to delete"); + + substitutions.erase(std::next(substitutions.begin(), substitution_id * 3), std::next(substitutions.begin(), substitution_id * 3 + 3)); + call_ui_update(); + + // update grid_sizer + add_all(); +} + +// Add substitution line +void SubstitutionManager::add_substitution(int substitution_id, const std::string& plain_pattern, const std::string& format, const std::string& params) +{ + bool call_after_layout = false; + + if (substitution_id < 0) { + if (m_grid_sizer->IsEmpty()) { + create_legend(); + substitution_id = 0; + } + substitution_id = m_grid_sizer->GetEffectiveRowsCount() - 1; + + // create new substitution + // it have to be added toconfig too + std::vector& substitutions = m_config->option("gcode_substitutions")->values; + for (size_t i = 0; i < 3; i ++) + substitutions.push_back(std::string()); + + call_after_layout = true; + } + + auto del_btn = new ScalableButton(m_parent, wxID_ANY, "cross"); + del_btn->Bind(wxEVT_BUTTON, [substitution_id, this](wxEvent&) { + delete_substitution(substitution_id); + }); + + m_grid_sizer->Add(del_btn, 0, wxRIGHT | wxLEFT, m_em); + + auto add_text_editor = [substitution_id, this](const wxString& value, int opt_pos) { + auto editor = new wxTextCtrl(m_parent, wxID_ANY, value, wxDefaultPosition, wxSize(15 * m_em, wxDefaultCoord), wxTE_PROCESS_ENTER +#ifdef _WIN32 + | wxBORDER_SIMPLE +#endif + ); + + editor->SetFont(wxGetApp().normal_font()); + wxGetApp().UpdateDarkUI(editor); + m_grid_sizer->Add(editor, 0, wxALIGN_CENTER_VERTICAL); + + editor->Bind(wxEVT_TEXT_ENTER, [this, editor, substitution_id, opt_pos](wxEvent& e) { +#if !defined(__WXGTK__) + e.Skip(); +#endif // __WXGTK__ + edit_substitution(substitution_id, opt_pos, into_u8(editor->GetValue())); + }); + + editor->Bind(wxEVT_KILL_FOCUS, [this, editor, substitution_id, opt_pos](wxEvent& e) { + e.Skip(); + edit_substitution(substitution_id, opt_pos, into_u8(editor->GetValue())); + }); + }; + + add_text_editor(from_u8(plain_pattern), 0); + add_text_editor(from_u8(format), 1); + + auto params_sizer = new wxBoxSizer(wxHORIZONTAL); + bool regexp = strchr(params.c_str(), 'r') != nullptr || strchr(params.c_str(), 'R') != nullptr; + bool case_insensitive = strchr(params.c_str(), 'i') != nullptr || strchr(params.c_str(), 'I') != nullptr; + bool whole_word = strchr(params.c_str(), 'w') != nullptr || strchr(params.c_str(), 'W') != nullptr; + + auto chb_regexp = new wxCheckBox(m_parent, wxID_ANY, wxString("Regular expression")); + chb_regexp->SetValue(regexp); + params_sizer->Add(chb_regexp, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, m_em); + + auto chb_case_insensitive = new wxCheckBox(m_parent, wxID_ANY, wxString("Case sensitive")); + chb_regexp->SetValue(case_insensitive); + params_sizer->Add(chb_case_insensitive, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, m_em); + + auto chb_whole_word = new wxCheckBox(m_parent, wxID_ANY, wxString("Whole word")); + chb_regexp->SetValue(whole_word); + params_sizer->Add(chb_whole_word, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, m_em); + + for (wxCheckBox* chb : std::initializer_list{ chb_regexp, chb_case_insensitive, chb_whole_word }) { + chb->SetFont(wxGetApp().normal_font()); + chb->Bind(wxEVT_CHECKBOX, [this, substitution_id, chb_regexp, chb_case_insensitive, chb_whole_word](wxCommandEvent e) { + std::string value = std::string(); + if (chb_regexp->GetValue()) + value += "r"; + if (chb_case_insensitive->GetValue()) + value += "i"; + if (chb_whole_word->GetValue()) + value += "w"; + edit_substitution(substitution_id, 2, value); + }); + } + + m_grid_sizer->Add(params_sizer); + + if (call_after_layout) { + m_parent->GetParent()->Layout(); + call_ui_update(); + } +} + +void SubstitutionManager::add_all() +{ + if (!m_grid_sizer->IsEmpty()) + m_grid_sizer->Clear(true); + + std::vector& subst = m_config->option("gcode_substitutions")->values; + if (!subst.empty()) + create_legend(); + + if ((subst.size() % 3) != 0) + throw RuntimeError("Invalid length of gcode_substitutions parameter"); + + int subst_id = 0; + for (size_t i = 0; i < subst.size(); i += 3) + add_substitution(subst_id++, subst[i], subst[i + 1], subst[i + 2]); + + m_parent->GetParent()->Layout(); +} + +void SubstitutionManager::delete_all() +{ + m_config->option("gcode_substitutions")->values.clear(); + call_ui_update(); + + if (!m_grid_sizer->IsEmpty()) + m_grid_sizer->Clear(true); + + m_parent->GetParent()->Layout(); +} + +void SubstitutionManager::edit_substitution(int substitution_id, int opt_pos, const std::string& value) +{ + std::vector& substitutions = m_config->option("gcode_substitutions")->values; + + if ((substitutions.size() % 3) != 0) + throw RuntimeError("Invalid length of gcode_substitutions parameter"); + + if ((substitutions.size() / 3) != m_grid_sizer->GetEffectiveRowsCount()-1) + throw RuntimeError("Invalid compatibility between UI and BE"); + + if ((substitutions.size() / 3) < substitution_id) + throw RuntimeError("Invalid substitution_id to edit"); + + substitutions[substitution_id * 3 + opt_pos] = value; + + call_ui_update(); +} + +// Return a callback to create a TabPrint widget to edit G-code substitutions +wxSizer* TabPrint::create_substitution_widget(wxWindow* parent) +{ + ScalableButton* add_btn = new ScalableButton(parent, wxID_ANY, "add_copies", " " + _L("Add G-code substitution") + " ", + wxDefaultSize, wxDefaultPosition, wxBU_LEFT | wxBU_EXACTFIT, true); + add_btn->SetFont(wxGetApp().normal_font()); + add_btn->SetSize(add_btn->GetBestSize()); + + ScalableButton* del_all_btn = new ScalableButton(parent, wxID_ANY, "cross", " " + _L("Delete all G-code substitution") + " ", + wxDefaultSize, wxDefaultPosition, wxBU_LEFT | wxBU_EXACTFIT, true); + del_all_btn->SetFont(wxGetApp().normal_font()); + del_all_btn->SetSize(del_all_btn->GetBestSize()); + del_all_btn->Hide(); + + auto btns_sizer = new wxBoxSizer(wxHORIZONTAL); + btns_sizer->Add(add_btn, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, em_unit(parent)); + btns_sizer->Add(del_all_btn, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, em_unit(parent)); + + auto v_sizer = new wxBoxSizer(wxVERTICAL); + v_sizer->Add(btns_sizer); + + wxFlexGridSizer* grid_sizer = new wxFlexGridSizer(4, 5, wxGetApp().em_unit()); // "Old val", "New val", "Params" & buttons sizer + grid_sizer->SetFlexibleDirection(wxHORIZONTAL); + + m_subst_manager.init(m_config, parent, grid_sizer); + m_subst_manager.set_cb_edited_substitution([this]() { + // load_key_value("gcode_substitution", custom_model); + update_changed_ui(); + }); + + del_all_btn->Bind(wxEVT_BUTTON, [this, del_all_btn](wxCommandEvent e) { + m_subst_manager.delete_all(); + del_all_btn->Hide(); + }); + + add_btn->Bind(wxEVT_BUTTON, [this, del_all_btn](wxCommandEvent e) { + m_subst_manager.add_substitution(); + del_all_btn->Show(); + }); + + v_sizer->Add(grid_sizer, 0, wxEXPAND | wxTOP, em_unit(parent)); + + auto sizer = new wxBoxSizer(wxHORIZONTAL); + sizer->Add(v_sizer, 0, wxALIGN_CENTER_VERTICAL); + + parent->GetParent()->Layout(); + return sizer; +} + // Return a callback to create a TabPrinter widget to edit bed shape wxSizer* TabPrinter::create_bed_shape_widget(wxWindow* parent) { diff --git a/src/slic3r/GUI/Tab.hpp b/src/slic3r/GUI/Tab.hpp index e8d939cf7..56b6048e9 100644 --- a/src/slic3r/GUI/Tab.hpp +++ b/src/slic3r/GUI/Tab.hpp @@ -43,6 +43,43 @@ namespace GUI { class TabPresetComboBox; class OG_CustomCtrl; +// G-code substitutions + +// Substitution Manager - helper for manipuation of the substitutions +class SubstitutionManager +{ + DynamicPrintConfig* m_config{ nullptr }; + wxWindow* m_parent{ nullptr }; + wxFlexGridSizer* m_grid_sizer{ nullptr }; + + int m_em{10}; + std::function m_cb_edited_substitution{ nullptr }; + +public: + SubstitutionManager() {}; + ~SubstitutionManager() {}; + + void init(DynamicPrintConfig* config, wxWindow* parent, wxFlexGridSizer* grid_sizer); + void create_legend(); + void delete_substitution(int substitution_id); + void add_substitution( int substitution_id = -1, + const std::string& plain_pattern = std::string(), + const std::string& format = std::string(), + const std::string& params = std::string()); + void add_all(); + void delete_all(); + void edit_substitution(int substitution_id, + int opt_pos, // option position insubstitution [0, 2] + const std::string& value); + void set_cb_edited_substitution(std::function cb_edited_substitution) { + m_cb_edited_substitution = cb_edited_substitution; + } + void call_ui_update() { + if (m_cb_edited_substitution) + m_cb_edited_substitution(); + } +}; + // Single Tab page containing a{ vsizer } of{ optgroups } // package Slic3r::GUI::Tab::Page; using ConfigOptionsGroupShp = std::shared_ptr; @@ -383,11 +420,13 @@ public: void update() override; void clear_pages() override; bool supports_printer_technology(const PrinterTechnology tech) const override { return tech == ptFFF; } + wxSizer* create_substitution_widget(wxWindow* parent); private: ogStaticText* m_recommended_thin_wall_thickness_description_line = nullptr; ogStaticText* m_top_bottom_shell_thickness_explanation = nullptr; ogStaticText* m_post_process_explanation = nullptr; + SubstitutionManager m_subst_manager; }; class TabFilament : public Tab From 3a81dd5c5ae8262370ebb97503df1ea1929ad005 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Mon, 10 Jan 2022 13:27:47 +0100 Subject: [PATCH 10/13] Completed UI for G-code find & replace --- src/slic3r/GUI/GUI.cpp | 2 +- src/slic3r/GUI/OptionsGroup.cpp | 4 +- src/slic3r/GUI/Tab.cpp | 112 ++++++++++++++++++-------------- src/slic3r/GUI/Tab.hpp | 7 +- 4 files changed, 73 insertions(+), 52 deletions(-) diff --git a/src/slic3r/GUI/GUI.cpp b/src/slic3r/GUI/GUI.cpp index fb7fa00f1..a0b674e27 100644 --- a/src/slic3r/GUI/GUI.cpp +++ b/src/slic3r/GUI/GUI.cpp @@ -143,7 +143,7 @@ void change_opt_value(DynamicPrintConfig& config, const t_config_option_key& opt config.set_key_value(opt_key, new ConfigOptionString(boost::any_cast(value))); break; case coStrings:{ - if (opt_key == "compatible_prints" || opt_key == "compatible_printers") { + if (opt_key == "compatible_prints" || opt_key == "compatible_printers" || opt_key == "gcode_substitutions") { config.option(opt_key)->values = boost::any_cast>(value); } diff --git a/src/slic3r/GUI/OptionsGroup.cpp b/src/slic3r/GUI/OptionsGroup.cpp index 3238b0650..0cd924001 100644 --- a/src/slic3r/GUI/OptionsGroup.cpp +++ b/src/slic3r/GUI/OptionsGroup.cpp @@ -596,7 +596,7 @@ void ConfigOptionsGroup::back_to_config_value(const DynamicPrintConfig& config, } else if (m_opt_map.find(opt_key) == m_opt_map.end() || // This option don't have corresponded field - opt_key == "bed_shape" || opt_key == "filament_ramming_parameters" || + opt_key == "bed_shape" || opt_key == "filament_ramming_parameters" || opt_key == "gcode_substitutions" || opt_key == "compatible_printers" || opt_key == "compatible_prints" ) { value = get_config_value(config, opt_key); this->change_opt_value(opt_key, value); @@ -875,7 +875,7 @@ boost::any ConfigOptionsGroup::get_config_value(const DynamicPrintConfig& config ret = from_u8(config.opt_string(opt_key)); break; case coStrings: - if (opt_key == "compatible_printers" || opt_key == "compatible_prints") { + if (opt_key == "compatible_printers" || opt_key == "compatible_prints" || opt_key == "gcode_substitutions") { ret = config.option(opt_key)->values; break; } diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index b76d6e4e2..ee85a55b6 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -859,6 +859,12 @@ void Tab::on_roll_back_value(const bool to_sys /*= true*/) if ((m_options_list["filament_ramming_parameters"] & os) == 0) to_sys ? group->back_to_sys_value("filament_ramming_parameters") : group->back_to_initial_value("filament_ramming_parameters"); } + if (group->title == "G-code Substitutions") { + if ((m_options_list["gcode_substitutions"] & os) == 0) { + to_sys ? group->back_to_sys_value("gcode_substitutions") : group->back_to_initial_value("gcode_substitutions"); + load_key_value("gcode_substitutions", true/*some value*/, true); + } + } if (group->title == "Profile dependencies") { // "compatible_printers" option doesn't exists in Printer Settimgs Tab if (m_type != Preset::TYPE_PRINTER && (m_options_list["compatible_printers"] & os) == 0) { @@ -953,7 +959,7 @@ void Tab::update_visibility() page->update_visibility(m_mode, page.get() == m_active_page); rebuild_page_tree(); - if (m_type == Preset::TYPE_SLA_PRINT) + if (m_type == Preset::TYPE_SLA_PRINT || m_type == Preset::TYPE_PRINT) update_description_lines(); Layout(); @@ -1697,15 +1703,15 @@ void TabPrint::build() option.opt.height = 5;//50; optgroup->append_single_option_line(option); - optgroup = page->new_optgroup(L("G-code Substitutions"), 0); - option = optgroup->get_option("gcode_substitutions"); - option.opt.full_width = true; - option.opt.height = 0;//50; - optgroup->append_single_option_line(option); + optgroup = page->new_optgroup(L("G-code Substitutions")); + + create_line_with_widget(optgroup.get(), "gcode_substitutions", "", [this](wxWindow* parent) { + return create_manage_substitution_widget(parent); + }); line = { "", "" }; line.full_width = 1; line.widget = [this](wxWindow* parent) { - return create_substitution_widget(parent); + return create_substitutions_widget(parent); }; optgroup->append_line(line); @@ -1753,12 +1759,20 @@ void TabPrint::update_description_lines() from_u8(PresetHints::top_bottom_shell_thickness_explanation(*m_preset_bundle))); } - if (m_active_page && m_active_page->title() == "Output options" && m_post_process_explanation) { - m_post_process_explanation->SetText( - _L("Post processing scripts shall modify G-code file in place.")); + if (m_active_page && m_active_page->title() == "Output options") { + if (m_post_process_explanation) { + m_post_process_explanation->SetText( + _L("Post processing scripts shall modify G-code file in place.")); #ifndef __linux__ - m_post_process_explanation->SetPathEnd("post-processing-scripts_283913"); + m_post_process_explanation->SetPathEnd("post-processing-scripts_283913"); #endif // __linux__ + } + // upadte G-code substitutions from the current configuration + { + m_subst_manager.update_from_config(); + if (m_del_all_substitutions_btn) + m_del_all_substitutions_btn->Show(!m_subst_manager.is_empty_substitutions()); + } } } @@ -3913,7 +3927,7 @@ void SubstitutionManager::delete_substitution(int substitution_id) call_ui_update(); // update grid_sizer - add_all(); + update_from_config(); } // Add substitution line @@ -3980,12 +3994,12 @@ void SubstitutionManager::add_substitution(int substitution_id, const std::strin chb_regexp->SetValue(regexp); params_sizer->Add(chb_regexp, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, m_em); - auto chb_case_insensitive = new wxCheckBox(m_parent, wxID_ANY, wxString("Case sensitive")); - chb_regexp->SetValue(case_insensitive); + auto chb_case_insensitive = new wxCheckBox(m_parent, wxID_ANY, wxString("Case insensitive")); + chb_case_insensitive->SetValue(case_insensitive); params_sizer->Add(chb_case_insensitive, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, m_em); auto chb_whole_word = new wxCheckBox(m_parent, wxID_ANY, wxString("Whole word")); - chb_regexp->SetValue(whole_word); + chb_whole_word->SetValue(whole_word); params_sizer->Add(chb_whole_word, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, m_em); for (wxCheckBox* chb : std::initializer_list{ chb_regexp, chb_case_insensitive, chb_whole_word }) { @@ -4010,7 +4024,7 @@ void SubstitutionManager::add_substitution(int substitution_id, const std::strin } } -void SubstitutionManager::add_all() +void SubstitutionManager::update_from_config() { if (!m_grid_sizer->IsEmpty()) m_grid_sizer->Clear(true); @@ -4058,50 +4072,54 @@ void SubstitutionManager::edit_substitution(int substitution_id, int opt_pos, co call_ui_update(); } -// Return a callback to create a TabPrint widget to edit G-code substitutions -wxSizer* TabPrint::create_substitution_widget(wxWindow* parent) +bool SubstitutionManager::is_empty_substitutions() { - ScalableButton* add_btn = new ScalableButton(parent, wxID_ANY, "add_copies", " " + _L("Add G-code substitution") + " ", - wxDefaultSize, wxDefaultPosition, wxBU_LEFT | wxBU_EXACTFIT, true); - add_btn->SetFont(wxGetApp().normal_font()); - add_btn->SetSize(add_btn->GetBestSize()); + return m_config->option("gcode_substitutions")->values.empty(); +} - ScalableButton* del_all_btn = new ScalableButton(parent, wxID_ANY, "cross", " " + _L("Delete all G-code substitution") + " ", - wxDefaultSize, wxDefaultPosition, wxBU_LEFT | wxBU_EXACTFIT, true); - del_all_btn->SetFont(wxGetApp().normal_font()); - del_all_btn->SetSize(del_all_btn->GetBestSize()); - del_all_btn->Hide(); +// Return a callback to create a TabPrint widget to edit G-code substitutions +wxSizer* TabPrint::create_manage_substitution_widget(wxWindow* parent) +{ + auto create_btn = [parent](ScalableButton** btn, const wxString& label, const std::string& icon_name) { + *btn = new ScalableButton(parent, wxID_ANY, icon_name, " " + label + " ", wxDefaultSize, wxDefaultPosition, wxBU_LEFT | wxBU_EXACTFIT, true); + (*btn)->SetFont(wxGetApp().normal_font()); + (*btn)->SetSize((*btn)->GetBestSize()); + }; - auto btns_sizer = new wxBoxSizer(wxHORIZONTAL); - btns_sizer->Add(add_btn, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, em_unit(parent)); - btns_sizer->Add(del_all_btn, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, em_unit(parent)); + ScalableButton* add_substitution_btn; + create_btn(&add_substitution_btn, _L("Add G-code substitution"), "add_copies"); + add_substitution_btn->Bind(wxEVT_BUTTON, [this](wxCommandEvent e) { + m_subst_manager.add_substitution(); + m_del_all_substitutions_btn->Show(); + }); - auto v_sizer = new wxBoxSizer(wxVERTICAL); - v_sizer->Add(btns_sizer); + create_btn(&m_del_all_substitutions_btn, _L("Delete all G-code substitution"), "cross"); + m_del_all_substitutions_btn->Bind(wxEVT_BUTTON, [this](wxCommandEvent e) { + m_subst_manager.delete_all(); + m_del_all_substitutions_btn->Hide(); + }); - wxFlexGridSizer* grid_sizer = new wxFlexGridSizer(4, 5, wxGetApp().em_unit()); // "Old val", "New val", "Params" & buttons sizer + auto sizer = new wxBoxSizer(wxHORIZONTAL); + sizer->Add(add_substitution_btn, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, em_unit(parent)); + sizer->Add(m_del_all_substitutions_btn, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT | wxLEFT, em_unit(parent)); + + parent->GetParent()->Layout(); + return sizer; +} + +// Return a callback to create a TabPrint widget to edit G-code substitutions +wxSizer* TabPrint::create_substitutions_widget(wxWindow* parent) +{ + wxFlexGridSizer* grid_sizer = new wxFlexGridSizer(4, 5, wxGetApp().em_unit()); // delete_button, "Old val", "New val", "Params" grid_sizer->SetFlexibleDirection(wxHORIZONTAL); m_subst_manager.init(m_config, parent, grid_sizer); m_subst_manager.set_cb_edited_substitution([this]() { - // load_key_value("gcode_substitution", custom_model); update_changed_ui(); }); - del_all_btn->Bind(wxEVT_BUTTON, [this, del_all_btn](wxCommandEvent e) { - m_subst_manager.delete_all(); - del_all_btn->Hide(); - }); - - add_btn->Bind(wxEVT_BUTTON, [this, del_all_btn](wxCommandEvent e) { - m_subst_manager.add_substitution(); - del_all_btn->Show(); - }); - - v_sizer->Add(grid_sizer, 0, wxEXPAND | wxTOP, em_unit(parent)); - auto sizer = new wxBoxSizer(wxHORIZONTAL); - sizer->Add(v_sizer, 0, wxALIGN_CENTER_VERTICAL); + sizer->Add(grid_sizer, 0, wxALIGN_CENTER_VERTICAL); parent->GetParent()->Layout(); return sizer; diff --git a/src/slic3r/GUI/Tab.hpp b/src/slic3r/GUI/Tab.hpp index 56b6048e9..b0f9fc65f 100644 --- a/src/slic3r/GUI/Tab.hpp +++ b/src/slic3r/GUI/Tab.hpp @@ -66,7 +66,7 @@ public: const std::string& plain_pattern = std::string(), const std::string& format = std::string(), const std::string& params = std::string()); - void add_all(); + void update_from_config(); void delete_all(); void edit_substitution(int substitution_id, int opt_pos, // option position insubstitution [0, 2] @@ -78,6 +78,7 @@ public: if (m_cb_edited_substitution) m_cb_edited_substitution(); } + bool is_empty_substitutions(); }; // Single Tab page containing a{ vsizer } of{ optgroups } @@ -420,12 +421,14 @@ public: void update() override; void clear_pages() override; bool supports_printer_technology(const PrinterTechnology tech) const override { return tech == ptFFF; } - wxSizer* create_substitution_widget(wxWindow* parent); + wxSizer* create_manage_substitution_widget(wxWindow* parent); + wxSizer* create_substitutions_widget(wxWindow* parent); private: ogStaticText* m_recommended_thin_wall_thickness_description_line = nullptr; ogStaticText* m_top_bottom_shell_thickness_explanation = nullptr; ogStaticText* m_post_process_explanation = nullptr; + ScalableButton* m_del_all_substitutions_btn{nullptr}; SubstitutionManager m_subst_manager; }; From 106e520a104e5487f91a79a920af5df17c9c6ec5 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Tue, 11 Jan 2022 16:49:28 +0100 Subject: [PATCH 11/13] Invalidate print when G-code substitution is changed + DiffDialog: Fixed get_string_value() for "gcode_substitution" + some code refactoring : For PresetCollection added is_independent_from_extruder_number_option(opt_key) to check if option is from the list of options with vector variable, which is independent from number of extruders --- src/libslic3r/Preset.cpp | 16 +++++++++++++++- src/libslic3r/Preset.hpp | 1 + src/slic3r/GUI/OptionsGroup.cpp | 4 ++-- src/slic3r/GUI/Tab.cpp | 9 ++++----- src/slic3r/GUI/UnsavedChangesDialog.cpp | 8 ++++++++ 5 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index b3ed6f57f..ba1c440a3 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -1133,6 +1133,20 @@ void add_correct_opts_to_diff(const std::string &opt_key, t_config_option_keys& } } +// list of options with vector variable, which is independent from number of extruders +static const std::vector independent_from_extruder_number_options = { + "bed_shape", + "filament_ramming_parameters", + "gcode_substitutions", + "compatible_prints", + "compatible_printers" +}; + +bool PresetCollection::is_independent_from_extruder_number_option(const std::string& opt_key) +{ + return std::find(independent_from_extruder_number_options.begin(), independent_from_extruder_number_options.end(), opt_key) != independent_from_extruder_number_options.end(); +} + // Use deep_diff to correct return of changed options, considering individual options for each extruder. inline t_config_option_keys deep_diff(const ConfigBase &config_this, const ConfigBase &config_other) { @@ -1142,7 +1156,7 @@ inline t_config_option_keys deep_diff(const ConfigBase &config_this, const Confi const ConfigOption *other_opt = config_other.option(opt_key); if (this_opt != nullptr && other_opt != nullptr && *this_opt != *other_opt) { - if (opt_key == "bed_shape" || opt_key == "thumbnails" || opt_key == "compatible_prints" || opt_key == "compatible_printers") { + if (PresetCollection::is_independent_from_extruder_number_option(opt_key)) { // Scalar variable, or a vector variable, which is independent from number of extruders, // thus the vector is presented to the user as a single input. diff.emplace_back(opt_key); diff --git a/src/libslic3r/Preset.hpp b/src/libslic3r/Preset.hpp index 6764b197d..f4e4c1471 100644 --- a/src/libslic3r/Preset.hpp +++ b/src/libslic3r/Preset.hpp @@ -556,6 +556,7 @@ private: public: static bool is_dirty(const Preset *edited, const Preset *reference); static std::vector dirty_options(const Preset *edited, const Preset *reference, const bool deep_compare = false); + static bool is_independent_from_extruder_number_option(const std::string& opt_key); private: // Type of this PresetCollection: TYPE_PRINT, TYPE_FILAMENT or TYPE_PRINTER. Preset::Type m_type; diff --git a/src/slic3r/GUI/OptionsGroup.cpp b/src/slic3r/GUI/OptionsGroup.cpp index 0cd924001..828806a1f 100644 --- a/src/slic3r/GUI/OptionsGroup.cpp +++ b/src/slic3r/GUI/OptionsGroup.cpp @@ -15,6 +15,7 @@ #include "libslic3r/Exception.hpp" #include "libslic3r/Utils.hpp" #include "libslic3r/AppConfig.hpp" +#include "libslic3r/Preset.hpp" #include "I18N.hpp" namespace Slic3r { namespace GUI { @@ -596,8 +597,7 @@ void ConfigOptionsGroup::back_to_config_value(const DynamicPrintConfig& config, } else if (m_opt_map.find(opt_key) == m_opt_map.end() || // This option don't have corresponded field - opt_key == "bed_shape" || opt_key == "filament_ramming_parameters" || opt_key == "gcode_substitutions" || - opt_key == "compatible_printers" || opt_key == "compatible_prints" ) { + PresetCollection::is_independent_from_extruder_number_option(opt_key) ) { value = get_config_value(config, opt_key); this->change_opt_value(opt_key, value); return; diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index ee85a55b6..23787f4b7 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -532,8 +532,7 @@ void Tab::update_label_colours() else color = &m_modified_label_clr; } - if (opt.first == "bed_shape" || opt.first == "filament_ramming_parameters" || - opt.first == "compatible_prints" || opt.first == "compatible_printers" ) { + if (PresetCollection::is_independent_from_extruder_number_option(opt.first)) { if (m_colored_Label_colors.find(opt.first) != m_colored_Label_colors.end()) m_colored_Label_colors.at(opt.first) = *color; continue; @@ -574,8 +573,7 @@ void Tab::decorate() Field* field = nullptr; wxColour* colored_label_clr = nullptr; - if (opt.first == "bed_shape" || opt.first == "filament_ramming_parameters" || - opt.first == "compatible_prints" || opt.first == "compatible_printers") + if(PresetCollection::is_independent_from_extruder_number_option(opt.first)) colored_label_clr = (m_colored_Label_colors.find(opt.first) == m_colored_Label_colors.end()) ? nullptr : &m_colored_Label_colors.at(opt.first); if (!colored_label_clr) { @@ -4115,7 +4113,8 @@ wxSizer* TabPrint::create_substitutions_widget(wxWindow* parent) m_subst_manager.init(m_config, parent, grid_sizer); m_subst_manager.set_cb_edited_substitution([this]() { - update_changed_ui(); + update_dirty(); + wxGetApp().mainframe->on_config_changed(m_config); // invalidate print }); auto sizer = new wxBoxSizer(wxHORIZONTAL); diff --git a/src/slic3r/GUI/UnsavedChangesDialog.cpp b/src/slic3r/GUI/UnsavedChangesDialog.cpp index f9fb2c468..608721203 100644 --- a/src/slic3r/GUI/UnsavedChangesDialog.cpp +++ b/src/slic3r/GUI/UnsavedChangesDialog.cpp @@ -1156,6 +1156,14 @@ static wxString get_string_value(std::string opt_key, const DynamicPrintConfig& out.RemoveLast(1); return out; } + if (opt_key == "gcode_substitutions") { + if (!strings->empty()) + for (size_t id = 0; id < strings->size(); id += 3) + out += from_u8(strings->get_at(id)) + ";\t" + + from_u8(strings->get_at(id + 1)) + ";\t" + + from_u8(strings->get_at(id + 2)) + ";\n"; + return out; + } if (!strings->empty() && opt_idx < strings->values.size()) return from_u8(strings->get_at(opt_idx)); } From f497ba7bf0c04c640ffdca6367d1f891cc2ceecf Mon Sep 17 00:00:00 2001 From: YuSanka Date: Mon, 17 Jan 2022 12:29:08 +0100 Subject: [PATCH 12/13] Follow-up to 99f510d4 - fixed a typo --- src/libslic3r/GCode/FindReplace.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/GCode/FindReplace.cpp b/src/libslic3r/GCode/FindReplace.cpp index 480994da8..ee21a249a 100644 --- a/src/libslic3r/GCode/FindReplace.cpp +++ b/src/libslic3r/GCode/FindReplace.cpp @@ -129,7 +129,7 @@ std::string GCodeFindReplace::process_layer(const std::string &ain) boost::iterator_range r1(begin, str.end()); boost::iterator_range r2(match.begin(), match.end()); auto res = boost::ifind_first(r1, r2); - return res ? std::make_pair(size_t(res.begin() - begin), size_t(res.end() - begin)) : std::make_pair(std::string::npos, std::string::npos); + return res ? std::make_pair(size_t(res.begin() - str.begin()), size_t(res.end() - str.begin())) : std::make_pair(std::string::npos, std::string::npos); }); else boost::ireplace_all(out, substitution.plain_pattern, substitution.format); From 2cc20594a44ae61c0ad622f5bd3d035a7b52f967 Mon Sep 17 00:00:00 2001 From: YuSanka Date: Mon, 17 Jan 2022 13:42:35 +0100 Subject: [PATCH 13/13] Localization: Updated POT + Fixed some phrases in Preferences and Hints + fixed #7588 - Typo in new help feature in 2.4.0 --- resources/data/hints.ini | 4 +- resources/localization/PrusaSlicer.pot | 3210 ++++++++++++------------ src/slic3r/GUI/Preferences.cpp | 2 +- 3 files changed, 1646 insertions(+), 1570 deletions(-) diff --git a/resources/data/hints.ini b/resources/data/hints.ini index b90976c1a..7a756ad9c 100644 --- a/resources/data/hints.ini +++ b/resources/data/hints.ini @@ -139,7 +139,7 @@ documentation_link= https://help.prusa3d.com/en/article/per-model-settings_1674 disabled_tags = SLA [hint:Solid infill threshold area] -text = Solid infill threshold area\nDid you know that you can make parts of your model with a small cross-section be filled with solid infill automatically? Set theSolid infill threshold area.(Expert mode only.) +text = Solid infill threshold area\nDid you know that you can make parts of your model with a small cross-section be filled with solid infill automatically? Set theSolid infill threshold area.(Expert mode only.) hypertext_type = settings hypertext_settings_opt = solid_infill_below_area hypertext_settings_type = 1 @@ -197,7 +197,7 @@ documentation_link = https://help.prusa3d.com/en/article/insert-pause-or-custom- disabled_tags = SLA [hint:Configuration snapshots] -text = Configuration snapshots\nDid you know that roll back to a complete backup of all system and user profiles? You can view and move back and forth between snapshots using the Configuration - Configuration snapshots menu. +text = Configuration snapshots\nDid you know that you can roll back to a complete backup of all system and user profiles? You can view and move back and forth between snapshots using the Configuration - Configuration snapshots menu. documentation_link = https://help.prusa3d.com/en/article/configuration-snapshots_1776 hypertext_type = menubar hypertext_menubar_menu_name = Configuration diff --git a/resources/localization/PrusaSlicer.pot b/resources/localization/PrusaSlicer.pot index 1ff283b4d..8a8c87297 100644 --- a/resources/localization/PrusaSlicer.pot +++ b/resources/localization/PrusaSlicer.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-12-21 22:19+0100\n" +"POT-Creation-Date: 2022-01-17 13:18+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -189,7 +189,7 @@ msgstr "" #: src/slic3r/GUI/BedShapeDialog.cpp:31 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:218 src/slic3r/GUI/Plater.cpp:204 -#: src/slic3r/GUI/Tab.cpp:2726 +#: src/slic3r/GUI/Tab.cpp:2755 msgid "Size" msgstr "" @@ -215,7 +215,7 @@ msgstr "" #: src/slic3r/GUI/ConfigWizard.cpp:1476 src/slic3r/GUI/ConfigWizard.cpp:1490 #: src/slic3r/GUI/ExtruderSequenceDialog.cpp:100 #: src/slic3r/GUI/GCodeViewer.cpp:3176 src/slic3r/GUI/GCodeViewer.cpp:3182 -#: src/slic3r/GUI/GCodeViewer.cpp:3190 src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:192 +#: src/slic3r/GUI/GCodeViewer.cpp:3190 src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:188 #: src/slic3r/GUI/GUI_ObjectLayers.cpp:145 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:320 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:409 @@ -230,35 +230,35 @@ msgstr "" #: src/libslic3r/PrintConfig.cpp:787 src/libslic3r/PrintConfig.cpp:798 #: src/libslic3r/PrintConfig.cpp:816 src/libslic3r/PrintConfig.cpp:997 #: src/libslic3r/PrintConfig.cpp:1212 src/libslic3r/PrintConfig.cpp:1279 -#: src/libslic3r/PrintConfig.cpp:1289 src/libslic3r/PrintConfig.cpp:1563 -#: src/libslic3r/PrintConfig.cpp:1757 src/libslic3r/PrintConfig.cpp:1818 -#: src/libslic3r/PrintConfig.cpp:1836 src/libslic3r/PrintConfig.cpp:1854 -#: src/libslic3r/PrintConfig.cpp:1917 src/libslic3r/PrintConfig.cpp:1927 -#: src/libslic3r/PrintConfig.cpp:2041 src/libslic3r/PrintConfig.cpp:2050 -#: src/libslic3r/PrintConfig.cpp:2069 src/libslic3r/PrintConfig.cpp:2090 -#: src/libslic3r/PrintConfig.cpp:2102 src/libslic3r/PrintConfig.cpp:2110 -#: src/libslic3r/PrintConfig.cpp:2151 src/libslic3r/PrintConfig.cpp:2159 -#: src/libslic3r/PrintConfig.cpp:2169 src/libslic3r/PrintConfig.cpp:2177 -#: src/libslic3r/PrintConfig.cpp:2185 src/libslic3r/PrintConfig.cpp:2247 -#: src/libslic3r/PrintConfig.cpp:2477 src/libslic3r/PrintConfig.cpp:2547 -#: src/libslic3r/PrintConfig.cpp:2564 src/libslic3r/PrintConfig.cpp:2665 -#: src/libslic3r/PrintConfig.cpp:2674 src/libslic3r/PrintConfig.cpp:2724 -#: src/libslic3r/PrintConfig.cpp:2876 src/libslic3r/PrintConfig.cpp:2964 -#: src/libslic3r/PrintConfig.cpp:2971 src/libslic3r/PrintConfig.cpp:2978 -#: src/libslic3r/PrintConfig.cpp:2992 src/libslic3r/PrintConfig.cpp:3016 -#: src/libslic3r/PrintConfig.cpp:3026 src/libslic3r/PrintConfig.cpp:3036 -#: src/libslic3r/PrintConfig.cpp:3220 src/libslic3r/PrintConfig.cpp:3261 -#: src/libslic3r/PrintConfig.cpp:3421 src/libslic3r/PrintConfig.cpp:3430 -#: src/libslic3r/PrintConfig.cpp:3439 src/libslic3r/PrintConfig.cpp:3449 -#: src/libslic3r/PrintConfig.cpp:3514 src/libslic3r/PrintConfig.cpp:3524 -#: src/libslic3r/PrintConfig.cpp:3536 src/libslic3r/PrintConfig.cpp:3556 -#: src/libslic3r/PrintConfig.cpp:3566 src/libslic3r/PrintConfig.cpp:3576 -#: src/libslic3r/PrintConfig.cpp:3594 src/libslic3r/PrintConfig.cpp:3609 -#: src/libslic3r/PrintConfig.cpp:3623 src/libslic3r/PrintConfig.cpp:3634 -#: src/libslic3r/PrintConfig.cpp:3647 src/libslic3r/PrintConfig.cpp:3692 -#: src/libslic3r/PrintConfig.cpp:3702 src/libslic3r/PrintConfig.cpp:3711 -#: src/libslic3r/PrintConfig.cpp:3721 src/libslic3r/PrintConfig.cpp:3737 -#: src/libslic3r/PrintConfig.cpp:3761 +#: src/libslic3r/PrintConfig.cpp:1289 src/libslic3r/PrintConfig.cpp:1569 +#: src/libslic3r/PrintConfig.cpp:1763 src/libslic3r/PrintConfig.cpp:1824 +#: src/libslic3r/PrintConfig.cpp:1842 src/libslic3r/PrintConfig.cpp:1860 +#: src/libslic3r/PrintConfig.cpp:1923 src/libslic3r/PrintConfig.cpp:1933 +#: src/libslic3r/PrintConfig.cpp:2047 src/libslic3r/PrintConfig.cpp:2056 +#: src/libslic3r/PrintConfig.cpp:2075 src/libslic3r/PrintConfig.cpp:2096 +#: src/libslic3r/PrintConfig.cpp:2108 src/libslic3r/PrintConfig.cpp:2116 +#: src/libslic3r/PrintConfig.cpp:2157 src/libslic3r/PrintConfig.cpp:2165 +#: src/libslic3r/PrintConfig.cpp:2175 src/libslic3r/PrintConfig.cpp:2183 +#: src/libslic3r/PrintConfig.cpp:2191 src/libslic3r/PrintConfig.cpp:2253 +#: src/libslic3r/PrintConfig.cpp:2483 src/libslic3r/PrintConfig.cpp:2553 +#: src/libslic3r/PrintConfig.cpp:2570 src/libslic3r/PrintConfig.cpp:2671 +#: src/libslic3r/PrintConfig.cpp:2680 src/libslic3r/PrintConfig.cpp:2730 +#: src/libslic3r/PrintConfig.cpp:2882 src/libslic3r/PrintConfig.cpp:2970 +#: src/libslic3r/PrintConfig.cpp:2977 src/libslic3r/PrintConfig.cpp:2984 +#: src/libslic3r/PrintConfig.cpp:2998 src/libslic3r/PrintConfig.cpp:3022 +#: src/libslic3r/PrintConfig.cpp:3032 src/libslic3r/PrintConfig.cpp:3042 +#: src/libslic3r/PrintConfig.cpp:3226 src/libslic3r/PrintConfig.cpp:3267 +#: src/libslic3r/PrintConfig.cpp:3427 src/libslic3r/PrintConfig.cpp:3436 +#: src/libslic3r/PrintConfig.cpp:3445 src/libslic3r/PrintConfig.cpp:3455 +#: src/libslic3r/PrintConfig.cpp:3520 src/libslic3r/PrintConfig.cpp:3530 +#: src/libslic3r/PrintConfig.cpp:3542 src/libslic3r/PrintConfig.cpp:3562 +#: src/libslic3r/PrintConfig.cpp:3572 src/libslic3r/PrintConfig.cpp:3582 +#: src/libslic3r/PrintConfig.cpp:3600 src/libslic3r/PrintConfig.cpp:3615 +#: src/libslic3r/PrintConfig.cpp:3629 src/libslic3r/PrintConfig.cpp:3640 +#: src/libslic3r/PrintConfig.cpp:3653 src/libslic3r/PrintConfig.cpp:3698 +#: src/libslic3r/PrintConfig.cpp:3708 src/libslic3r/PrintConfig.cpp:3717 +#: src/libslic3r/PrintConfig.cpp:3727 src/libslic3r/PrintConfig.cpp:3743 +#: src/libslic3r/PrintConfig.cpp:3767 msgid "mm" msgstr "" @@ -304,7 +304,7 @@ msgid "Load..." msgstr "" #: src/slic3r/GUI/BedShapeDialog.cpp:292 src/slic3r/GUI/BedShapeDialog.cpp:362 -#: src/slic3r/GUI/Tab.cpp:3701 +#: src/slic3r/GUI/Tab.cpp:3734 msgid "Remove" msgstr "" @@ -404,7 +404,7 @@ msgid "" msgstr "" #: src/slic3r/GUI/ConfigManipulation.cpp:50 -#: src/slic3r/GUI/GUI_ObjectLayers.cpp:29 src/slic3r/GUI/Tab.cpp:1449 +#: src/slic3r/GUI/GUI_ObjectLayers.cpp:29 src/slic3r/GUI/Tab.cpp:1453 #: src/libslic3r/PrintConfig.cpp:263 msgid "Layer height" msgstr "" @@ -492,14 +492,14 @@ msgstr "" #: src/slic3r/GUI/ConfigManipulation.cpp:199 #: src/slic3r/GUI/GUI_Factories.cpp:55 src/slic3r/GUI/GUI_Factories.cpp:128 -#: src/slic3r/GUI/Plater.cpp:460 src/slic3r/GUI/Tab.cpp:1502 -#: src/slic3r/GUI/Tab.cpp:1504 src/libslic3r/PrintConfig.cpp:452 +#: src/slic3r/GUI/Plater.cpp:460 src/slic3r/GUI/Tab.cpp:1506 +#: src/slic3r/GUI/Tab.cpp:1508 src/libslic3r/PrintConfig.cpp:452 #: src/libslic3r/PrintConfig.cpp:693 src/libslic3r/PrintConfig.cpp:717 #: src/libslic3r/PrintConfig.cpp:1071 src/libslic3r/PrintConfig.cpp:1085 -#: src/libslic3r/PrintConfig.cpp:1122 src/libslic3r/PrintConfig.cpp:1369 -#: src/libslic3r/PrintConfig.cpp:1379 src/libslic3r/PrintConfig.cpp:1448 -#: src/libslic3r/PrintConfig.cpp:1468 src/libslic3r/PrintConfig.cpp:1487 -#: src/libslic3r/PrintConfig.cpp:2308 src/libslic3r/PrintConfig.cpp:2325 +#: src/libslic3r/PrintConfig.cpp:1122 src/libslic3r/PrintConfig.cpp:1375 +#: src/libslic3r/PrintConfig.cpp:1385 src/libslic3r/PrintConfig.cpp:1454 +#: src/libslic3r/PrintConfig.cpp:1474 src/libslic3r/PrintConfig.cpp:1493 +#: src/libslic3r/PrintConfig.cpp:2314 src/libslic3r/PrintConfig.cpp:2331 msgid "Infill" msgstr "" @@ -548,7 +548,7 @@ msgstr "" msgid "PrusaSlicer version" msgstr "" -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:64 src/libslic3r/Preset.cpp:1323 +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:64 src/libslic3r/Preset.cpp:1337 msgid "print" msgstr "" @@ -556,21 +556,21 @@ msgstr "" msgid "filaments" msgstr "" -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:68 src/libslic3r/Preset.cpp:1325 +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:68 src/libslic3r/Preset.cpp:1339 msgid "SLA print" msgstr "" #: src/slic3r/GUI/ConfigSnapshotDialog.cpp:69 #: src/slic3r/GUI/ConfigWizard.cpp:755 src/slic3r/GUI/GUI.cpp:340 -#: src/slic3r/GUI/Plater.cpp:820 src/libslic3r/Preset.cpp:1326 +#: src/slic3r/GUI/Plater.cpp:820 src/libslic3r/Preset.cpp:1340 msgid "SLA material" msgstr "" -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:71 src/libslic3r/Preset.cpp:1327 +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:71 src/libslic3r/Preset.cpp:1341 msgid "printer" msgstr "" -#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:75 src/slic3r/GUI/Tab.cpp:1366 +#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:75 src/slic3r/GUI/Tab.cpp:1370 msgid "vendor" msgstr "" @@ -624,14 +624,14 @@ msgid "Standard" msgstr "" #: src/slic3r/GUI/ConfigWizard.cpp:331 src/slic3r/GUI/ConfigWizard.cpp:651 -#: src/slic3r/GUI/Preferences.cpp:413 src/slic3r/GUI/Tab.cpp:3783 +#: src/slic3r/GUI/Preferences.cpp:434 src/slic3r/GUI/Tab.cpp:3816 #: src/slic3r/GUI/UnsavedChangesDialog.cpp:1153 msgid "All" msgstr "" #: src/slic3r/GUI/ConfigWizard.cpp:332 src/slic3r/GUI/ConfigWizard.cpp:652 #: src/slic3r/GUI/DoubleSlider.cpp:2030 src/slic3r/GUI/Plater.cpp:432 -#: src/slic3r/GUI/Plater.cpp:578 src/slic3r/GUI/Preferences.cpp:415 +#: src/slic3r/GUI/Plater.cpp:578 src/slic3r/GUI/Preferences.cpp:436 #: src/libslic3r/PrintConfig.cpp:1268 msgid "None" msgstr "" @@ -697,7 +697,7 @@ msgid "" msgstr "" #: src/slic3r/GUI/ConfigWizard.cpp:752 src/slic3r/GUI/ConfigWizard.cpp:2043 -#: src/slic3r/GUI/ConfigWizard.cpp:2910 +#: src/slic3r/GUI/ConfigWizard.cpp:2912 msgid "Filaments" msgstr "" @@ -710,7 +710,7 @@ msgstr "" msgid "All installed printers are compatible with the selected %1%." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:755 src/libslic3r/Preset.cpp:1324 +#: src/slic3r/GUI/ConfigWizard.cpp:755 src/libslic3r/Preset.cpp:1338 msgid "filament" msgstr "" @@ -763,7 +763,7 @@ msgid "" "notification mechanisms, no automatic installation is done." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1224 src/slic3r/GUI/Preferences.cpp:173 +#: src/slic3r/GUI/ConfigWizard.cpp:1224 src/slic3r/GUI/Preferences.cpp:175 msgid "Update built-in Presets automatically" msgstr "" @@ -789,7 +789,7 @@ msgid "" msgstr "" #: src/slic3r/GUI/ConfigWizard.cpp:1243 src/slic3r/GUI/GUI_Factories.cpp:726 -#: src/slic3r/GUI/Plater.cpp:3499 +#: src/slic3r/GUI/Plater.cpp:3548 msgid "Reload from disk" msgstr "" @@ -810,11 +810,11 @@ msgstr "" msgid "Files association" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1261 src/slic3r/GUI/Preferences.cpp:155 +#: src/slic3r/GUI/ConfigWizard.cpp:1261 src/slic3r/GUI/Preferences.cpp:157 msgid "Associate .3mf files to PrusaSlicer" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1262 src/slic3r/GUI/Preferences.cpp:162 +#: src/slic3r/GUI/ConfigWizard.cpp:1262 src/slic3r/GUI/Preferences.cpp:164 msgid "Associate .stl files to PrusaSlicer" msgstr "" @@ -864,7 +864,7 @@ msgstr "" msgid "Firmware Type" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:1357 src/slic3r/GUI/Tab.cpp:2334 +#: src/slic3r/GUI/ConfigWizard.cpp:1357 src/slic3r/GUI/Tab.cpp:2358 msgid "Firmware" msgstr "" @@ -938,7 +938,7 @@ msgstr "" #: src/slic3r/GUI/ConfigWizard.cpp:1568 src/slic3r/GUI/ConfigWizard.cpp:1582 #: src/libslic3r/PrintConfig.cpp:395 src/libslic3r/PrintConfig.cpp:1188 -#: src/libslic3r/PrintConfig.cpp:1243 src/libslic3r/PrintConfig.cpp:2786 +#: src/libslic3r/PrintConfig.cpp:1243 src/libslic3r/PrintConfig.cpp:2792 msgid "°C" msgstr "" @@ -958,7 +958,7 @@ msgstr "" msgid "Bed Temperature:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2043 src/slic3r/GUI/ConfigWizard.cpp:2913 +#: src/slic3r/GUI/ConfigWizard.cpp:2043 src/slic3r/GUI/ConfigWizard.cpp:2915 msgid "SLA Materials" msgstr "" @@ -1041,35 +1041,35 @@ msgstr "" msgid "A new SLA material was installed and it will be activated." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2726 +#: src/slic3r/GUI/ConfigWizard.cpp:2729 msgid "Some filaments were uninstalled." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2726 +#: src/slic3r/GUI/ConfigWizard.cpp:2729 msgid "Some SLA materials were uninstalled." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2770 +#: src/slic3r/GUI/ConfigWizard.cpp:2773 msgid "Custom printer was installed and it will be activated." msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2855 +#: src/slic3r/GUI/ConfigWizard.cpp:2858 msgid "Select all standard printers" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2858 +#: src/slic3r/GUI/ConfigWizard.cpp:2861 msgid "< &Back" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2859 +#: src/slic3r/GUI/ConfigWizard.cpp:2862 msgid "&Next >" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2860 +#: src/slic3r/GUI/ConfigWizard.cpp:2863 msgid "&Finish" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2861 +#: src/slic3r/GUI/ConfigWizard.cpp:2864 #: src/slic3r/GUI/DesktopIntegrationDialog.cpp:490 #: src/slic3r/GUI/FirmwareDialog.cpp:153 #: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:58 @@ -1079,40 +1079,40 @@ msgstr "" msgid "Cancel" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2881 +#: src/slic3r/GUI/ConfigWizard.cpp:2884 msgid "Prusa FFF Technology Printers" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2889 +#: src/slic3r/GUI/ConfigWizard.cpp:2892 msgid "Prusa MSLA Technology Printers" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2910 +#: src/slic3r/GUI/ConfigWizard.cpp:2912 msgid "Filament Profiles Selection" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2910 src/slic3r/GUI/ConfigWizard.cpp:2913 +#: src/slic3r/GUI/ConfigWizard.cpp:2912 src/slic3r/GUI/ConfigWizard.cpp:2915 #: src/slic3r/GUI/GUI_ObjectList.cpp:3781 msgid "Type:" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:2913 +#: src/slic3r/GUI/ConfigWizard.cpp:2915 msgid "SLA Material Profiles Selection" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:3034 +#: src/slic3r/GUI/ConfigWizard.cpp:3036 msgid "Configuration Assistant" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:3035 +#: src/slic3r/GUI/ConfigWizard.cpp:3037 msgid "Configuration &Assistant" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:3037 +#: src/slic3r/GUI/ConfigWizard.cpp:3039 msgid "Configuration Wizard" msgstr "" -#: src/slic3r/GUI/ConfigWizard.cpp:3038 +#: src/slic3r/GUI/ConfigWizard.cpp:3040 msgid "Configuration &Wizard" msgstr "" @@ -1139,7 +1139,7 @@ msgid "" msgstr "" #: src/slic3r/GUI/DesktopIntegrationDialog.cpp:459 -#: src/slic3r/GUI/GUI_App.cpp:2161 +#: src/slic3r/GUI/GUI_App.cpp:2222 msgid "Desktop Integration" msgstr "" @@ -1155,7 +1155,7 @@ msgid "Perform" msgstr "" #: src/slic3r/GUI/DesktopIntegrationDialog.cpp:486 -#: src/slic3r/GUI/GLCanvas3D.cpp:4711 src/slic3r/GUI/KBShortcutsDialog.cpp:97 +#: src/slic3r/GUI/GLCanvas3D.cpp:4689 src/slic3r/GUI/KBShortcutsDialog.cpp:97 #: src/slic3r/GUI/MainFrame.cpp:1335 msgid "Undo" msgstr "" @@ -1441,14 +1441,14 @@ msgstr "" msgid "This action will cause deletion of all ticks on vertical slider." msgstr "" -#: src/slic3r/GUI/DoubleSlider.cpp:2087 src/slic3r/GUI/Tab.cpp:1318 +#: src/slic3r/GUI/DoubleSlider.cpp:2087 src/slic3r/GUI/Tab.cpp:1322 msgid "" "This action is not revertible.\n" "Do you want to proceed?" msgstr "" #: src/slic3r/GUI/DoubleSlider.cpp:2088 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1137 src/slic3r/GUI/GUI.cpp:245 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1133 src/slic3r/GUI/GUI.cpp:245 #: src/slic3r/GUI/PhysicalPrinterDialog.cpp:645 #: src/slic3r/GUI/PhysicalPrinterDialog.cpp:675 #: src/slic3r/GUI/WipeTowerDialog.cpp:58 src/slic3r/GUI/WipeTowerDialog.cpp:443 @@ -1538,10 +1538,10 @@ msgid "Set extruder change for every" msgstr "" #: src/slic3r/GUI/ExtruderSequenceDialog.cpp:60 -#: src/libslic3r/PrintConfig.cpp:639 src/libslic3r/PrintConfig.cpp:1382 -#: src/libslic3r/PrintConfig.cpp:2079 src/libslic3r/PrintConfig.cpp:2254 -#: src/libslic3r/PrintConfig.cpp:2330 src/libslic3r/PrintConfig.cpp:2583 -#: src/libslic3r/PrintConfig.cpp:2631 src/libslic3r/PrintConfig.cpp:2650 +#: src/libslic3r/PrintConfig.cpp:639 src/libslic3r/PrintConfig.cpp:1388 +#: src/libslic3r/PrintConfig.cpp:2085 src/libslic3r/PrintConfig.cpp:2260 +#: src/libslic3r/PrintConfig.cpp:2336 src/libslic3r/PrintConfig.cpp:2589 +#: src/libslic3r/PrintConfig.cpp:2637 src/libslic3r/PrintConfig.cpp:2656 msgid "layers" msgstr "" @@ -1635,19 +1635,19 @@ msgstr "" msgid "Flashing failed" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:284 +#: src/slic3r/GUI/FirmwareDialog.cpp:283 msgid "Flashing succeeded!" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:285 +#: src/slic3r/GUI/FirmwareDialog.cpp:284 msgid "Flashing failed. Please see the avrdude log below." msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:286 +#: src/slic3r/GUI/FirmwareDialog.cpp:285 msgid "Flashing cancelled." msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:334 +#: src/slic3r/GUI/FirmwareDialog.cpp:333 #, possible-c-format, possible-boost-format msgid "" "This firmware hex file does not match the printer model.\n" @@ -1658,13 +1658,13 @@ msgid "" "Please only continue if you are sure this is the right thing to do." msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:421 src/slic3r/GUI/FirmwareDialog.cpp:456 +#: src/slic3r/GUI/FirmwareDialog.cpp:420 src/slic3r/GUI/FirmwareDialog.cpp:455 #, possible-c-format, possible-boost-format msgid "" "Multiple %s devices found. Please only connect one at a time for flashing." msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:438 +#: src/slic3r/GUI/FirmwareDialog.cpp:437 #, possible-c-format, possible-boost-format msgid "" "The %s device was not found.\n" @@ -1672,86 +1672,86 @@ msgid "" "connector ..." msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:550 +#: src/slic3r/GUI/FirmwareDialog.cpp:549 #, possible-c-format, possible-boost-format msgid "The %s device could not have been found" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:651 +#: src/slic3r/GUI/FirmwareDialog.cpp:650 #, possible-c-format, possible-boost-format msgid "Error accessing port at %s: %s" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:653 +#: src/slic3r/GUI/FirmwareDialog.cpp:652 #, possible-c-format, possible-boost-format msgid "Error: %s" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:788 +#: src/slic3r/GUI/FirmwareDialog.cpp:787 msgid "Firmware flasher" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:813 +#: src/slic3r/GUI/FirmwareDialog.cpp:812 msgid "Firmware image:" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:814 +#: src/slic3r/GUI/FirmwareDialog.cpp:813 msgid "Select a file" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:816 +#: src/slic3r/GUI/FirmwareDialog.cpp:815 #: src/slic3r/GUI/PhysicalPrinterDialog.cpp:297 #: src/slic3r/GUI/PhysicalPrinterDialog.cpp:372 msgid "Browse" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:818 +#: src/slic3r/GUI/FirmwareDialog.cpp:817 msgid "Serial port:" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:820 +#: src/slic3r/GUI/FirmwareDialog.cpp:819 msgid "Autodetected" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:821 +#: src/slic3r/GUI/FirmwareDialog.cpp:820 msgid "Rescan" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:828 +#: src/slic3r/GUI/FirmwareDialog.cpp:827 msgid "Progress:" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:831 +#: src/slic3r/GUI/FirmwareDialog.cpp:830 msgid "Status:" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:832 +#: src/slic3r/GUI/FirmwareDialog.cpp:831 msgid "Ready" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:852 +#: src/slic3r/GUI/FirmwareDialog.cpp:851 msgid "Advanced: Output log" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:863 +#: src/slic3r/GUI/FirmwareDialog.cpp:862 #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:310 #: src/slic3r/GUI/Mouse3DController.cpp:543 -#: src/slic3r/GUI/PrintHostDialogs.cpp:260 +#: src/slic3r/GUI/PrintHostDialogs.cpp:261 #: src/slic3r/GUI/SendSystemInfoDialog.cpp:122 msgid "Close" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:916 +#: src/slic3r/GUI/FirmwareDialog.cpp:915 msgid "" "Are you sure you want to cancel firmware flashing?\n" "This could leave your printer in an unusable state!" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:917 +#: src/slic3r/GUI/FirmwareDialog.cpp:916 msgid "Confirmation" msgstr "" -#: src/slic3r/GUI/FirmwareDialog.cpp:920 +#: src/slic3r/GUI/FirmwareDialog.cpp:919 msgid "Cancelling..." msgstr "" @@ -1780,8 +1780,8 @@ msgid "Add one or more custom shapes" msgstr "" #: src/slic3r/GUI/GalleryDialog.cpp:118 src/slic3r/GUI/GalleryDialog.cpp:508 -#: src/slic3r/GUI/GLCanvas3D.cpp:4502 src/slic3r/GUI/GUI_Factories.cpp:444 -#: src/slic3r/GUI/Tab.cpp:3701 +#: src/slic3r/GUI/GLCanvas3D.cpp:4480 src/slic3r/GUI/GUI_Factories.cpp:444 +#: src/slic3r/GUI/Tab.cpp:3734 msgid "Delete" msgstr "" @@ -1821,23 +1821,23 @@ msgstr "" msgid "Tool position" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:1462 +#: src/slic3r/GUI/GCodeViewer.cpp:1457 msgid "Generating toolpaths" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:1522 +#: src/slic3r/GUI/GCodeViewer.cpp:1517 msgid "Generating vertex buffer" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:1857 +#: src/slic3r/GUI/GCodeViewer.cpp:1852 msgid "Generating index buffers" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3042 +#: src/slic3r/GUI/GCodeViewer.cpp:3047 msgid "Click to hide" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3042 +#: src/slic3r/GUI/GCodeViewer.cpp:3047 msgid "Click to show" msgstr "" @@ -1863,7 +1863,7 @@ msgid "Percentage" msgstr "" #: src/slic3r/GUI/GCodeViewer.cpp:3251 src/slic3r/GUI/GCodeViewer.cpp:3290 -#: src/slic3r/GUI/GUI_Preview.cpp:217 src/slic3r/GUI/GUI_Preview.cpp:957 +#: src/slic3r/GUI/GUI_Preview.cpp:217 src/slic3r/GUI/GUI_Preview.cpp:958 msgid "Feature type" msgstr "" @@ -1902,12 +1902,12 @@ msgid "Volumetric flow rate (mm³/s)" msgstr "" #: src/slic3r/GUI/GCodeViewer.cpp:3301 src/slic3r/GUI/GUI_Preview.cpp:224 -#: src/slic3r/GUI/GUI_Preview.cpp:957 +#: src/slic3r/GUI/GUI_Preview.cpp:958 msgid "Tool" msgstr "" #: src/slic3r/GUI/GCodeViewer.cpp:3304 src/slic3r/GUI/GUI_Preview.cpp:225 -#: src/slic3r/GUI/GUI_Preview.cpp:956 +#: src/slic3r/GUI/GUI_Preview.cpp:957 msgid "Color Print" msgstr "" @@ -1949,8 +1949,8 @@ msgstr "" msgid "Duration" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3605 src/slic3r/GUI/GUI_Preview.cpp:1048 -#: src/libslic3r/PrintConfig.cpp:2881 +#: src/slic3r/GUI/GCodeViewer.cpp:3605 src/slic3r/GUI/GUI_Preview.cpp:1049 +#: src/libslic3r/PrintConfig.cpp:2887 msgid "Travel" msgstr "" @@ -1962,13 +1962,13 @@ msgstr "" msgid "Extrusion" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3610 src/slic3r/GUI/Tab.cpp:1838 -#: src/slic3r/GUI/Tab.cpp:2773 +#: src/slic3r/GUI/GCodeViewer.cpp:3610 src/slic3r/GUI/Tab.cpp:1862 +#: src/slic3r/GUI/Tab.cpp:2802 msgid "Retraction" msgstr "" #: src/slic3r/GUI/GCodeViewer.cpp:3627 src/slic3r/GUI/GCodeViewer.cpp:3630 -#: src/slic3r/GUI/GUI_Preview.cpp:1049 +#: src/slic3r/GUI/GUI_Preview.cpp:1050 msgid "Wipe" msgstr "" @@ -1977,31 +1977,31 @@ msgstr "" msgid "Options" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3665 src/slic3r/GUI/GUI_Preview.cpp:1050 +#: src/slic3r/GUI/GCodeViewer.cpp:3665 src/slic3r/GUI/GUI_Preview.cpp:1051 msgid "Retractions" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3666 src/slic3r/GUI/GUI_Preview.cpp:1051 +#: src/slic3r/GUI/GCodeViewer.cpp:3666 src/slic3r/GUI/GUI_Preview.cpp:1052 msgid "Deretractions" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3667 src/slic3r/GUI/GUI_Preview.cpp:1052 +#: src/slic3r/GUI/GCodeViewer.cpp:3667 src/slic3r/GUI/GUI_Preview.cpp:1053 msgid "Seams" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3668 src/slic3r/GUI/GUI_Preview.cpp:1053 +#: src/slic3r/GUI/GCodeViewer.cpp:3668 src/slic3r/GUI/GUI_Preview.cpp:1054 msgid "Tool changes" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3669 src/slic3r/GUI/GUI_Preview.cpp:1054 +#: src/slic3r/GUI/GCodeViewer.cpp:3669 src/slic3r/GUI/GUI_Preview.cpp:1055 msgid "Color changes" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3670 src/slic3r/GUI/GUI_Preview.cpp:1055 +#: src/slic3r/GUI/GCodeViewer.cpp:3670 src/slic3r/GUI/GUI_Preview.cpp:1056 msgid "Print pauses" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3671 src/slic3r/GUI/GUI_Preview.cpp:1056 +#: src/slic3r/GUI/GCodeViewer.cpp:3671 src/slic3r/GUI/GUI_Preview.cpp:1057 msgid "Custom G-codes" msgstr "" @@ -2018,7 +2018,7 @@ msgstr "" #: src/slic3r/GUI/GCodeViewer.cpp:3696 src/slic3r/GUI/GCodeViewer.cpp:3722 #: src/slic3r/GUI/GUI.cpp:339 src/slic3r/GUI/Plater.cpp:818 -#: src/slic3r/GUI/Tab.cpp:1938 src/slic3r/GUI/Tab.cpp:1939 +#: src/slic3r/GUI/Tab.cpp:1962 src/slic3r/GUI/Tab.cpp:1963 msgid "Filament" msgstr "" @@ -2044,15 +2044,15 @@ msgstr "" msgid "Total" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3797 +#: src/slic3r/GUI/GCodeViewer.cpp:3792 msgid "Show stealth mode" msgstr "" -#: src/slic3r/GUI/GCodeViewer.cpp:3801 +#: src/slic3r/GUI/GCodeViewer.cpp:3796 msgid "Show normal mode" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:225 src/slic3r/GUI/GLCanvas3D.cpp:4649 +#: src/slic3r/GUI/GLCanvas3D.cpp:225 src/slic3r/GUI/GLCanvas3D.cpp:4627 #: src/slic3r/GUI/ObjectDataViewModel.cpp:53 msgid "Variable layer height" msgstr "" @@ -2121,7 +2121,7 @@ msgstr "" msgid "Keep min" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:295 src/slic3r/GUI/GLCanvas3D.cpp:4078 +#: src/slic3r/GUI/GLCanvas3D.cpp:295 src/slic3r/GUI/GLCanvas3D.cpp:4056 msgid "Reset" msgstr "" @@ -2133,207 +2133,207 @@ msgstr "" msgid "Seq." msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:1276 +#: src/slic3r/GUI/GLCanvas3D.cpp:1265 msgid "Variable layer height - Reset" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:1284 +#: src/slic3r/GUI/GLCanvas3D.cpp:1273 msgid "Variable layer height - Adaptive" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:1292 +#: src/slic3r/GUI/GLCanvas3D.cpp:1281 msgid "Variable layer height - Smooth all" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:1704 +#: src/slic3r/GUI/GLCanvas3D.cpp:1684 msgid "Mirror Object" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:2579 +#: src/slic3r/GUI/GLCanvas3D.cpp:2557 #: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:560 msgid "Gizmo-Move" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:2662 +#: src/slic3r/GUI/GLCanvas3D.cpp:2640 #: src/slic3r/GUI/Gizmos/GLGizmosManager.cpp:562 msgid "Gizmo-Rotate" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3267 +#: src/slic3r/GUI/GLCanvas3D.cpp:3245 msgid "Move Object" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3788 src/slic3r/GUI/GLCanvas3D.cpp:4610 +#: src/slic3r/GUI/GLCanvas3D.cpp:3766 src/slic3r/GUI/GLCanvas3D.cpp:4588 msgid "Switch to Settings" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3789 src/slic3r/GUI/GLCanvas3D.cpp:4610 +#: src/slic3r/GUI/GLCanvas3D.cpp:3767 src/slic3r/GUI/GLCanvas3D.cpp:4588 msgid "Print Settings Tab" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3790 src/slic3r/GUI/GLCanvas3D.cpp:4611 +#: src/slic3r/GUI/GLCanvas3D.cpp:3768 src/slic3r/GUI/GLCanvas3D.cpp:4589 msgid "Filament Settings Tab" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3790 src/slic3r/GUI/GLCanvas3D.cpp:4611 +#: src/slic3r/GUI/GLCanvas3D.cpp:3768 src/slic3r/GUI/GLCanvas3D.cpp:4589 msgid "Material Settings Tab" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3791 src/slic3r/GUI/GLCanvas3D.cpp:4612 +#: src/slic3r/GUI/GLCanvas3D.cpp:3769 src/slic3r/GUI/GLCanvas3D.cpp:4590 msgid "Printer Settings Tab" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3938 +#: src/slic3r/GUI/GLCanvas3D.cpp:3916 msgid "Undo History" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3938 +#: src/slic3r/GUI/GLCanvas3D.cpp:3916 msgid "Redo History" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3958 +#: src/slic3r/GUI/GLCanvas3D.cpp:3936 #, possible-c-format, possible-boost-format msgid "Undo %1$d Action" msgid_plural "Undo %1$d Actions" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3958 +#: src/slic3r/GUI/GLCanvas3D.cpp:3936 #, possible-c-format, possible-boost-format msgid "Redo %1$d Action" msgid_plural "Redo %1$d Actions" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3978 src/slic3r/GUI/GLCanvas3D.cpp:4628 +#: src/slic3r/GUI/GLCanvas3D.cpp:3956 src/slic3r/GUI/GLCanvas3D.cpp:4606 #: src/slic3r/GUI/KBShortcutsDialog.cpp:106 src/slic3r/GUI/Search.cpp:435 msgid "Search" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:3992 src/slic3r/GUI/GLCanvas3D.cpp:4000 +#: src/slic3r/GUI/GLCanvas3D.cpp:3970 src/slic3r/GUI/GLCanvas3D.cpp:3978 #: src/slic3r/GUI/Search.cpp:441 msgid "Enter a search term" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4031 +#: src/slic3r/GUI/GLCanvas3D.cpp:4009 msgid "Arrange options" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4061 +#: src/slic3r/GUI/GLCanvas3D.cpp:4039 #, possible-boost-format msgid "Press %1%left mouse button to enter the exact value" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4063 +#: src/slic3r/GUI/GLCanvas3D.cpp:4041 msgid "Spacing" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4070 +#: src/slic3r/GUI/GLCanvas3D.cpp:4048 msgid "Enable rotations (slow)" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4088 src/slic3r/GUI/GLCanvas3D.cpp:4520 +#: src/slic3r/GUI/GLCanvas3D.cpp:4066 src/slic3r/GUI/GLCanvas3D.cpp:4498 #: src/slic3r/GUI/KBShortcutsDialog.cpp:132 src/slic3r/GUI/Plater.cpp:1666 msgid "Arrange" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4494 +#: src/slic3r/GUI/GLCanvas3D.cpp:4472 msgid "Add..." msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4511 src/slic3r/GUI/KBShortcutsDialog.cpp:96 -#: src/slic3r/GUI/Plater.cpp:5413 +#: src/slic3r/GUI/GLCanvas3D.cpp:4489 src/slic3r/GUI/KBShortcutsDialog.cpp:96 +#: src/slic3r/GUI/Plater.cpp:5463 msgid "Delete all" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4520 src/slic3r/GUI/KBShortcutsDialog.cpp:133 +#: src/slic3r/GUI/GLCanvas3D.cpp:4498 src/slic3r/GUI/KBShortcutsDialog.cpp:133 msgid "Arrange selection" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4520 +#: src/slic3r/GUI/GLCanvas3D.cpp:4498 msgid "Click right mouse button to show arrangement options" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4542 +#: src/slic3r/GUI/GLCanvas3D.cpp:4520 msgid "Copy" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4551 +#: src/slic3r/GUI/GLCanvas3D.cpp:4529 msgid "Paste" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4563 src/slic3r/GUI/GUI_Factories.cpp:1089 -#: src/slic3r/GUI/GUI_Factories.cpp:1113 src/slic3r/GUI/GUI_Factories.cpp:1124 +#: src/slic3r/GUI/GLCanvas3D.cpp:4541 src/slic3r/GUI/GUI_Factories.cpp:1084 +#: src/slic3r/GUI/GUI_Factories.cpp:1108 src/slic3r/GUI/GUI_Factories.cpp:1119 msgid "Add instance" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4574 src/slic3r/GUI/GUI_Factories.cpp:1092 +#: src/slic3r/GUI/GLCanvas3D.cpp:4552 src/slic3r/GUI/GUI_Factories.cpp:1087 msgid "Remove instance" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4587 +#: src/slic3r/GUI/GLCanvas3D.cpp:4565 msgid "Split to objects" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4597 +#: src/slic3r/GUI/GLCanvas3D.cpp:4575 msgid "Split to parts" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4711 src/slic3r/GUI/GLCanvas3D.cpp:4750 +#: src/slic3r/GUI/GLCanvas3D.cpp:4689 src/slic3r/GUI/GLCanvas3D.cpp:4728 msgid "Click right mouse button to open/close History" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4734 +#: src/slic3r/GUI/GLCanvas3D.cpp:4712 #, possible-boost-format msgid "Next Undo action: %1%" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4750 src/slic3r/GUI/KBShortcutsDialog.cpp:98 +#: src/slic3r/GUI/GLCanvas3D.cpp:4728 src/slic3r/GUI/KBShortcutsDialog.cpp:98 #: src/slic3r/GUI/MainFrame.cpp:1338 msgid "Redo" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:4772 +#: src/slic3r/GUI/GLCanvas3D.cpp:4750 #, possible-boost-format msgid "Next Redo action: %1%" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:6389 +#: src/slic3r/GUI/GLCanvas3D.cpp:6367 msgid "An object outside the print area was detected." msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:6390 +#: src/slic3r/GUI/GLCanvas3D.cpp:6368 msgid "A toolpath outside the print area was detected." msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:6391 +#: src/slic3r/GUI/GLCanvas3D.cpp:6369 msgid "SLA supports outside the print area were detected." msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:6392 +#: src/slic3r/GUI/GLCanvas3D.cpp:6370 msgid "Some objects are not visible during editing." msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:6394 +#: src/slic3r/GUI/GLCanvas3D.cpp:6372 msgid "" "An object outside the print area was detected.\n" "Resolve the current problem to continue slicing." msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:6468 +#: src/slic3r/GUI/GLCanvas3D.cpp:6446 msgid "Selection-Add from rectangle" msgstr "" -#: src/slic3r/GUI/GLCanvas3D.cpp:6483 +#: src/slic3r/GUI/GLCanvas3D.cpp:6461 msgid "Selection-Remove from rectangle" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:50 -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:160 src/libslic3r/PrintConfig.cpp:4320 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:160 src/libslic3r/PrintConfig.cpp:4326 msgid "Cut" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:192 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:188 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:320 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:409 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:477 @@ -2341,19 +2341,19 @@ msgstr "" msgid "in" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:198 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:194 msgid "Keep upper part" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:199 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:195 msgid "Keep lower part" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:200 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:196 msgid "Rotate lower part upwards" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:205 +#: src/slic3r/GUI/Gizmos/GLGizmoCut.cpp:201 msgid "Perform cut" msgstr "" @@ -2407,7 +2407,7 @@ msgid "Right mouse button" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:49 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:474 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:434 msgid "Block supports" msgstr "" @@ -2418,9 +2418,9 @@ msgid "Shift + Left mouse button" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:51 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:469 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:429 #: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:40 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:270 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:250 msgid "Remove selection" msgstr "" @@ -2486,88 +2486,79 @@ msgstr "" msgid "On overhangs only" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:179 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:199 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:174 #, possible-boost-format msgid "" "Preselects faces by overhang angle. It is possible to restrict paintable " "facets to only preselected faces when the option \"%1%\" is enabled." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:231 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:382 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:217 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:378 msgid "Paints facets according to the chosen painting brush." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:239 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:395 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:225 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:391 msgid "" "Paints neighboring facets whose relative angle is less or equal to set angle." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:243 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:229 #, possible-boost-format msgid "Allows painting only on facets selected by: \"%1%\"" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:258 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:423 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:155 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:244 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:419 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:144 msgid "Paints all facets inside, regardless of their orientation." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:267 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:432 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:163 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:253 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:428 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:152 msgid "Ignores facets facing away from the camera." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:276 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:441 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:262 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:437 msgid "Paints only one facet." msgstr "" +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:270 #: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:285 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:290 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:307 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:319 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:450 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:455 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:474 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:486 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:137 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:142 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:445 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:462 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:132 msgid "Alt + Mouse wheel" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:296 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:275 msgid "Splits bigger facets into smaller ones while the object is painted." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:340 -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:348 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:505 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:513 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:182 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:190 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:308 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:483 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:170 msgid "Ctrl + Mouse wheel" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:353 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:518 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:195 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:313 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:488 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:175 msgid "Reset selection" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:404 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:364 msgid "Block supports by angle" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:405 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:365 msgid "Add supports by angle" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:472 +#: src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp:432 msgid "Add supports" msgstr "" @@ -2593,7 +2584,7 @@ msgid "Quality" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:34 -#: src/libslic3r/PrintConfig.cpp:3753 +#: src/libslic3r/PrintConfig.cpp:3759 msgid "Closing distance" msgstr "" @@ -2625,19 +2616,19 @@ msgstr "" msgid "Delete drainage hole" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:596 +#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:589 msgid "Hollowing parameter change" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:673 +#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:666 msgid "Change drainage hole diameter" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:767 +#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:760 msgid "Hollow and drill" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:817 +#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:810 msgid "Move drainage hole" msgstr "" @@ -2663,7 +2654,7 @@ msgid "Second color" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:120 -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:701 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:671 msgid "Remove painted color" msgstr "" @@ -2675,15 +2666,15 @@ msgstr "" msgid "Bucket fill" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:408 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:404 msgid "Paints neighboring facets that have the same color." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:461 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:450 msgid "Split bigger facets into smaller ones while the object is painted." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:704 +#: src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp:674 #, possible-boost-format msgid "Painted using: Extruder %1%" msgstr "" @@ -2696,7 +2687,7 @@ msgstr "" #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:543 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:562 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:578 -#: src/libslic3r/PrintConfig.cpp:4374 +#: src/libslic3r/PrintConfig.cpp:4380 msgid "Rotate" msgstr "" @@ -2713,17 +2704,17 @@ msgstr "" #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:216 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:563 #: src/slic3r/GUI/GUI_ObjectManipulation.cpp:579 -#: src/libslic3r/PrintConfig.cpp:4389 +#: src/libslic3r/PrintConfig.cpp:4395 msgid "Scale" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:36 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:273 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:253 msgid "Enforce seam" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:38 -#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:275 +#: src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp:255 msgid "Block seam" msgstr "" @@ -2765,7 +2756,7 @@ msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoSimplify.cpp:157 #: src/slic3r/GUI/MainFrame.cpp:1162 src/slic3r/GUI/MainFrame.cpp:1619 -#: src/slic3r/GUI/PrintHostDialogs.cpp:372 +#: src/slic3r/GUI/PrintHostDialogs.cpp:373 msgid "Error" msgstr "" @@ -2825,7 +2816,7 @@ msgid "Lock supports under new islands" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:41 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1227 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1223 msgid "Remove selected points" msgstr "" @@ -2834,12 +2825,12 @@ msgid "Remove all points" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:43 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1230 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1226 msgid "Apply changes" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:44 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1231 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1227 msgid "Discard changes" msgstr "" @@ -2848,12 +2839,12 @@ msgid "Minimal points distance" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:46 -#: src/libslic3r/PrintConfig.cpp:3583 +#: src/libslic3r/PrintConfig.cpp:3589 msgid "Support points density" msgstr "" #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:47 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1233 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1229 msgid "Auto-generate points" msgstr "" @@ -2869,115 +2860,115 @@ msgstr "" msgid "Delete support point" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:706 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:702 msgid "Change point head diameter" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:774 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:770 msgid "Support parameter change" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:880 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:876 msgid "SLA Support Points" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:901 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:897 msgid "Do you want to save your manually edited support points?" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:902 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:898 msgid "Save support points?" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:962 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:958 msgid "Move support point" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1055 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1051 msgid "Support points edit" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1135 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1131 msgid "Autogeneration will erase all manually edited points." msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1136 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1132 msgid "Are you sure you want to do it?" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1142 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1138 msgid "Autogenerate support points" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1190 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1186 msgid "SLA gizmo keyboard shortcuts" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1201 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1197 msgid "Note: some shortcuts work in (non)editing mode only." msgstr "" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1215 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1218 #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1219 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1222 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1223 msgid "Left click" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1219 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1215 msgid "Add point" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1220 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1216 msgid "Right click" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1220 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1216 msgid "Remove point" msgstr "" +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1217 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1220 #: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1221 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1224 -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1225 msgid "Drag" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1221 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1217 msgid "Move point" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1222 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1218 msgid "Add point to selection" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1223 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1219 msgid "Remove point from selection" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1224 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1220 msgid "Select by rectangle" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1225 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1221 msgid "Deselect by rectangle" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1226 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1222 msgid "Select all points" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1228 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1224 msgid "Mouse wheel" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1228 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1224 msgid "Move clipping plane" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1229 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1225 msgid "Reset clipping plane" msgstr "" -#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1232 +#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1228 msgid "Switch to editing mode" msgstr "" @@ -3195,288 +3186,346 @@ msgid "" "Do you want to continue?" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1128 src/slic3r/GUI/GUI_App.cpp:2988 -#: src/slic3r/GUI/OptionsGroup.cpp:985 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:888 +#: src/slic3r/GUI/GUI_App.cpp:1128 src/slic3r/GUI/GUI_App.cpp:3068 +#: src/slic3r/GUI/Plater.cpp:1728 src/slic3r/GUI/UnsavedChangesDialog.cpp:888 msgid "Remember my choice" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1191 +#: src/slic3r/GUI/GUI_App.cpp:1170 +msgid "Loading configuration" +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:1203 #, possible-boost-format msgid "New release version %1% is available." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1192 +#: src/slic3r/GUI/GUI_App.cpp:1204 msgid "See Download page." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1206 +#: src/slic3r/GUI/GUI_App.cpp:1218 #, possible-boost-format msgid "New prerelease version %1% is available." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1207 +#: src/slic3r/GUI/GUI_App.cpp:1219 msgid "See Releases page." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1244 +#: src/slic3r/GUI/GUI_App.cpp:1256 msgid "Preparing settings tabs" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1595 +#: src/slic3r/GUI/GUI_App.cpp:1327 src/slic3r/GUI/Preferences.cpp:287 +msgid "Restore window position on start" +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:1329 +msgid "PrusaSlicer started after a crash" +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:1330 +#, possible-boost-format +msgid "" +"PrusaSlicer crashed last time when attempting to set window position.\n" +"We are sorry for the inconvenience, it unfortunately happens with certain " +"multiple-monitor setups.\n" +"More precise reason for the crash: \"%1%\".\n" +"For more information see our GitHub issue tracker: \"%2%\" and \"%3%\"\n" +"\n" +"To avoid this problem, consider disabling \"%4%\" in \"Preferences\". " +"Otherwise, the application will most likely crash again next time." +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:1342 +#, possible-boost-format +msgid "Disable \"%1%\"" +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:1343 +#, possible-boost-format +msgid "Leave \"%1%\" enabled" +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:1656 msgid "" "You have the following presets with saved options for \"Print Host upload\"" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1599 +#: src/slic3r/GUI/GUI_App.cpp:1660 msgid "" "But since this version of PrusaSlicer we don't show this information in " "Printer Settings anymore.\n" "Settings will be available in physical printers settings." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1601 +#: src/slic3r/GUI/GUI_App.cpp:1662 msgid "" "By default new Printer devices will be named as \"Printer N\" during its " "creation.\n" "Note: This name can be changed later from the physical printers settings" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1605 src/slic3r/GUI/PhysicalPrinterDialog.cpp:722 +#: src/slic3r/GUI/GUI_App.cpp:1666 src/slic3r/GUI/PhysicalPrinterDialog.cpp:722 msgid "Information" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1618 src/slic3r/GUI/GUI_App.cpp:1629 +#: src/slic3r/GUI/GUI_App.cpp:1679 src/slic3r/GUI/GUI_App.cpp:1690 msgid "Recreating" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1632 +#: src/slic3r/GUI/GUI_App.cpp:1693 msgid "Loading of current presets" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1637 +#: src/slic3r/GUI/GUI_App.cpp:1698 msgid "Loading of a mode view" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1775 +#: src/slic3r/GUI/GUI_App.cpp:1836 msgid "Choose one file (3MF/AMF):" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1787 +#: src/slic3r/GUI/GUI_App.cpp:1848 msgid "Choose one or more files (STL/OBJ/AMF/3MF/PRUSA):" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1799 +#: src/slic3r/GUI/GUI_App.cpp:1860 msgid "Choose one file (GCODE/.GCO/.G/.ngc/NGC):" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1810 +#: src/slic3r/GUI/GUI_App.cpp:1871 msgid "Changing of an application language" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1949 +#: src/slic3r/GUI/GUI_App.cpp:2010 msgid "Select the language" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:1949 +#: src/slic3r/GUI/GUI_App.cpp:2010 msgid "Language" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2098 +#: src/slic3r/GUI/GUI_App.cpp:2159 msgid "modified" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2152 +#: src/slic3r/GUI/GUI_App.cpp:2213 #, possible-c-format, possible-boost-format msgid "Run %s" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2156 +#: src/slic3r/GUI/GUI_App.cpp:2217 msgid "&Configuration Snapshots" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2156 +#: src/slic3r/GUI/GUI_App.cpp:2217 msgid "Inspect / activate configuration snapshots" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2157 +#: src/slic3r/GUI/GUI_App.cpp:2218 msgid "Take Configuration &Snapshot" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2157 +#: src/slic3r/GUI/GUI_App.cpp:2218 msgid "Capture a configuration snapshot" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2158 +#: src/slic3r/GUI/GUI_App.cpp:2219 msgid "Check for Configuration Updates" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2158 +#: src/slic3r/GUI/GUI_App.cpp:2219 msgid "Check for configuration updates" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2165 +#: src/slic3r/GUI/GUI_App.cpp:2226 msgid "&Preferences" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2171 +#: src/slic3r/GUI/GUI_App.cpp:2232 msgid "Application preferences" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2176 src/slic3r/GUI/wxExtensions.cpp:707 +#: src/slic3r/GUI/GUI_App.cpp:2237 src/slic3r/GUI/wxExtensions.cpp:707 msgid "Simple" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2176 +#: src/slic3r/GUI/GUI_App.cpp:2237 msgid "Simple View Mode" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2178 src/slic3r/GUI/wxExtensions.cpp:709 +#: src/slic3r/GUI/GUI_App.cpp:2239 src/slic3r/GUI/wxExtensions.cpp:709 msgctxt "Mode" msgid "Advanced" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2178 +#: src/slic3r/GUI/GUI_App.cpp:2239 msgid "Advanced View Mode" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2179 src/slic3r/GUI/wxExtensions.cpp:710 +#: src/slic3r/GUI/GUI_App.cpp:2240 src/slic3r/GUI/wxExtensions.cpp:710 msgid "Expert" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2179 +#: src/slic3r/GUI/GUI_App.cpp:2240 msgid "Expert View Mode" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2184 +#: src/slic3r/GUI/GUI_App.cpp:2245 msgid "Mode" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2184 +#: src/slic3r/GUI/GUI_App.cpp:2245 #, possible-c-format, possible-boost-format msgid "%s View Mode" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2187 +#: src/slic3r/GUI/GUI_App.cpp:2248 msgid "&Language" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2190 +#: src/slic3r/GUI/GUI_App.cpp:2251 msgid "Flash Printer &Firmware" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2190 +#: src/slic3r/GUI/GUI_App.cpp:2251 msgid "Upload a firmware image into an Arduino based printer" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2210 +#: src/slic3r/GUI/GUI_App.cpp:2271 msgid "Taking a configuration snapshot" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2211 +#: src/slic3r/GUI/GUI_App.cpp:2272 msgid "" "Some presets are modified and the unsaved changes will not be captured by " "the configuration snapshot." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2212 +#: src/slic3r/GUI/GUI_App.cpp:2273 msgid "Snapshot name" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2228 +#: src/slic3r/GUI/GUI_App.cpp:2289 msgid "Loading a configuration snapshot" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2237 +#: src/slic3r/GUI/GUI_App.cpp:2298 #, possible-boost-format msgid "Continue to activate a configuration snapshot %1%?" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2251 +#: src/slic3r/GUI/GUI_App.cpp:2312 msgid "Failed to activate configuration snapshot." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2270 +#: src/slic3r/GUI/GUI_App.cpp:2331 msgid "Restart application" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2304 +#: src/slic3r/GUI/GUI_App.cpp:2365 msgid "Language selection" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2307 +#: src/slic3r/GUI/GUI_App.cpp:2368 msgid "" "Switching the language will trigger application restart.\n" "You will lose content of the plater." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2309 src/slic3r/GUI/Preferences.cpp:561 +#: src/slic3r/GUI/GUI_App.cpp:2370 src/slic3r/GUI/Preferences.cpp:582 msgid "Do you want to proceed?" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2336 +#: src/slic3r/GUI/GUI_App.cpp:2397 msgid "&Configuration" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2453 src/slic3r/GUI/GUI_App.cpp:2514 +#: src/slic3r/GUI/GUI_App.cpp:2514 src/slic3r/GUI/GUI_App.cpp:2575 msgid "The preset modifications are successfully saved" msgid_plural "The presets modifications are successfully saved" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/GUI_App.cpp:2517 +#: src/slic3r/GUI/GUI_App.cpp:2578 msgid "For new project all modifications will be reseted" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2555 +#: src/slic3r/GUI/GUI_App.cpp:2616 msgid "Loading a new project while the current project is modified." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2558 +#: src/slic3r/GUI/GUI_App.cpp:2619 msgid "Project is loading" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2558 +#: src/slic3r/GUI/GUI_App.cpp:2619 msgid "Opening new project while some presets are unsaved." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2577 +#: src/slic3r/GUI/GUI_App.cpp:2638 msgid "The uploads are still ongoing" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2577 +#: src/slic3r/GUI/GUI_App.cpp:2638 msgid "Stop them and continue anyway?" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2581 +#: src/slic3r/GUI/GUI_App.cpp:2642 msgid "Ongoing uploads" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2787 +#: src/slic3r/GUI/GUI_App.cpp:2848 msgid "It's impossible to print multi-part object(s) with SLA technology." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2788 src/slic3r/GUI/Jobs/SLAImportJob.cpp:224 -#: src/slic3r/GUI/Plater.cpp:2404 +#: src/slic3r/GUI/GUI_App.cpp:2849 src/slic3r/GUI/Jobs/SLAImportJob.cpp:224 +#: src/slic3r/GUI/Plater.cpp:2427 msgid "Please check your object list before preset changing." msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2812 +#: src/slic3r/GUI/GUI_App.cpp:2873 msgid "Configuration is editing from ConfigWizard" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2837 +#: src/slic3r/GUI/GUI_App.cpp:2898 msgid "Select a gcode file:" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2987 src/slic3r/GUI/OptionsGroup.cpp:984 +#: src/slic3r/GUI/GUI_App.cpp:3067 src/slic3r/GUI/GUI_App.cpp:3090 msgid "Open hyperlink in default browser?" msgstr "" -#: src/slic3r/GUI/GUI_App.cpp:2987 src/slic3r/GUI/OptionsGroup.cpp:984 +#: src/slic3r/GUI/GUI_App.cpp:3067 src/slic3r/GUI/GUI_App.cpp:3090 msgid "PrusaSlicer: Open hyperlink" msgstr "" +#: src/slic3r/GUI/GUI_App.cpp:3072 src/slic3r/GUI/Preferences.cpp:382 +msgid "Suppress to open hyperlink in browser" +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:3074 src/slic3r/GUI/Plater.cpp:1734 +msgid "PrusaSlicer will remember your choice." +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:3075 +msgid "You will not be asked about it again on hyperlinks hovering." +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:3076 src/slic3r/GUI/Plater.cpp:1738 +#, possible-boost-format +msgid "" +"Visit \"Preferences\" and check \"%1%\"\n" +"to changes your choice." +msgstr "" + +#: src/slic3r/GUI/GUI_App.cpp:3078 src/slic3r/GUI/Plater.cpp:1740 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:905 +msgid "PrusaSlicer: Don't ask me again" +msgstr "" + #: src/slic3r/GUI/GUI_Init.cpp:57 src/slic3r/GUI/GUI_Init.cpp:60 msgid "PrusaSlicer GUI initialization failed" msgstr "" @@ -3491,38 +3540,38 @@ msgstr "" #: src/libslic3r/PrintConfig.cpp:424 src/libslic3r/PrintConfig.cpp:433 #: src/libslic3r/PrintConfig.cpp:685 src/libslic3r/PrintConfig.cpp:752 #: src/libslic3r/PrintConfig.cpp:760 src/libslic3r/PrintConfig.cpp:1209 -#: src/libslic3r/PrintConfig.cpp:1296 src/libslic3r/PrintConfig.cpp:1515 -#: src/libslic3r/PrintConfig.cpp:1907 src/libslic3r/PrintConfig.cpp:1974 -#: src/libslic3r/PrintConfig.cpp:2208 src/libslic3r/PrintConfig.cpp:2794 -#: src/libslic3r/PrintConfig.cpp:2802 src/libslic3r/PrintConfig.cpp:2862 -#: src/libslic3r/PrintConfig.cpp:2871 +#: src/libslic3r/PrintConfig.cpp:1296 src/libslic3r/PrintConfig.cpp:1521 +#: src/libslic3r/PrintConfig.cpp:1913 src/libslic3r/PrintConfig.cpp:1980 +#: src/libslic3r/PrintConfig.cpp:2214 src/libslic3r/PrintConfig.cpp:2800 +#: src/libslic3r/PrintConfig.cpp:2808 src/libslic3r/PrintConfig.cpp:2868 +#: src/libslic3r/PrintConfig.cpp:2877 msgid "Layers and Perimeters" msgstr "" #: src/slic3r/GUI/GUI_Factories.cpp:56 src/slic3r/GUI/GUI_Factories.cpp:131 -#: src/slic3r/GUI/GUI_Preview.cpp:249 src/slic3r/GUI/Tab.cpp:1546 -#: src/slic3r/GUI/Tab.cpp:1548 src/libslic3r/ExtrusionEntity.cpp:328 +#: src/slic3r/GUI/GUI_Preview.cpp:249 src/slic3r/GUI/Tab.cpp:1550 +#: src/slic3r/GUI/Tab.cpp:1552 src/libslic3r/ExtrusionEntity.cpp:328 #: src/libslic3r/ExtrusionEntity.cpp:360 src/libslic3r/PrintConfig.cpp:647 -#: src/libslic3r/PrintConfig.cpp:2039 src/libslic3r/PrintConfig.cpp:2048 -#: src/libslic3r/PrintConfig.cpp:2057 src/libslic3r/PrintConfig.cpp:2067 -#: src/libslic3r/PrintConfig.cpp:2076 src/libslic3r/PrintConfig.cpp:2498 -#: src/libslic3r/PrintConfig.cpp:2504 src/libslic3r/PrintConfig.cpp:2512 -#: src/libslic3r/PrintConfig.cpp:2525 src/libslic3r/PrintConfig.cpp:2535 -#: src/libslic3r/PrintConfig.cpp:2543 src/libslic3r/PrintConfig.cpp:2561 -#: src/libslic3r/PrintConfig.cpp:2578 src/libslic3r/PrintConfig.cpp:2599 -#: src/libslic3r/PrintConfig.cpp:2612 src/libslic3r/PrintConfig.cpp:2629 -#: src/libslic3r/PrintConfig.cpp:2647 src/libslic3r/PrintConfig.cpp:2662 -#: src/libslic3r/PrintConfig.cpp:2672 src/libslic3r/PrintConfig.cpp:2681 -#: src/libslic3r/PrintConfig.cpp:2692 src/libslic3r/PrintConfig.cpp:2706 -#: src/libslic3r/PrintConfig.cpp:2722 src/libslic3r/PrintConfig.cpp:2730 -#: src/libslic3r/PrintConfig.cpp:2731 src/libslic3r/PrintConfig.cpp:2740 -#: src/libslic3r/PrintConfig.cpp:2754 src/libslic3r/PrintConfig.cpp:2762 -#: src/libslic3r/PrintConfig.cpp:2776 +#: src/libslic3r/PrintConfig.cpp:2045 src/libslic3r/PrintConfig.cpp:2054 +#: src/libslic3r/PrintConfig.cpp:2063 src/libslic3r/PrintConfig.cpp:2073 +#: src/libslic3r/PrintConfig.cpp:2082 src/libslic3r/PrintConfig.cpp:2504 +#: src/libslic3r/PrintConfig.cpp:2510 src/libslic3r/PrintConfig.cpp:2518 +#: src/libslic3r/PrintConfig.cpp:2531 src/libslic3r/PrintConfig.cpp:2541 +#: src/libslic3r/PrintConfig.cpp:2549 src/libslic3r/PrintConfig.cpp:2567 +#: src/libslic3r/PrintConfig.cpp:2584 src/libslic3r/PrintConfig.cpp:2605 +#: src/libslic3r/PrintConfig.cpp:2618 src/libslic3r/PrintConfig.cpp:2635 +#: src/libslic3r/PrintConfig.cpp:2653 src/libslic3r/PrintConfig.cpp:2668 +#: src/libslic3r/PrintConfig.cpp:2678 src/libslic3r/PrintConfig.cpp:2687 +#: src/libslic3r/PrintConfig.cpp:2698 src/libslic3r/PrintConfig.cpp:2712 +#: src/libslic3r/PrintConfig.cpp:2728 src/libslic3r/PrintConfig.cpp:2736 +#: src/libslic3r/PrintConfig.cpp:2737 src/libslic3r/PrintConfig.cpp:2746 +#: src/libslic3r/PrintConfig.cpp:2760 src/libslic3r/PrintConfig.cpp:2768 +#: src/libslic3r/PrintConfig.cpp:2782 msgid "Support material" msgstr "" #: src/slic3r/GUI/GUI_Factories.cpp:59 src/slic3r/GUI/GUI_Factories.cpp:135 -#: src/libslic3r/PrintConfig.cpp:2998 src/libslic3r/PrintConfig.cpp:3006 +#: src/libslic3r/PrintConfig.cpp:3004 src/libslic3r/PrintConfig.cpp:3012 msgid "Wipe options" msgstr "" @@ -3531,11 +3580,11 @@ msgid "Pad and Support" msgstr "" #: src/slic3r/GUI/GUI_Factories.cpp:129 src/slic3r/GUI/GUI_Preview.cpp:245 -#: src/slic3r/GUI/Tab.cpp:1512 src/libslic3r/ExtrusionEntity.cpp:324 -#: src/libslic3r/ExtrusionEntity.cpp:352 src/libslic3r/PrintConfig.cpp:1531 -#: src/libslic3r/PrintConfig.cpp:1537 src/libslic3r/PrintConfig.cpp:1551 -#: src/libslic3r/PrintConfig.cpp:1561 src/libslic3r/PrintConfig.cpp:1569 -#: src/libslic3r/PrintConfig.cpp:1571 +#: src/slic3r/GUI/Tab.cpp:1516 src/libslic3r/ExtrusionEntity.cpp:324 +#: src/libslic3r/ExtrusionEntity.cpp:352 src/libslic3r/PrintConfig.cpp:1537 +#: src/libslic3r/PrintConfig.cpp:1543 src/libslic3r/PrintConfig.cpp:1557 +#: src/libslic3r/PrintConfig.cpp:1567 src/libslic3r/PrintConfig.cpp:1575 +#: src/libslic3r/PrintConfig.cpp:1577 msgid "Ironing" msgstr "" @@ -3546,80 +3595,80 @@ msgid "Fuzzy Skin" msgstr "" #: src/slic3r/GUI/GUI_Factories.cpp:132 src/slic3r/GUI/GUI_Preview.cpp:220 -#: src/slic3r/GUI/Tab.cpp:1580 src/libslic3r/PrintConfig.cpp:484 +#: src/slic3r/GUI/Tab.cpp:1584 src/libslic3r/PrintConfig.cpp:484 #: src/libslic3r/PrintConfig.cpp:740 src/libslic3r/PrintConfig.cpp:1303 -#: src/libslic3r/PrintConfig.cpp:1488 src/libslic3r/PrintConfig.cpp:1570 -#: src/libslic3r/PrintConfig.cpp:1964 src/libslic3r/PrintConfig.cpp:2296 -#: src/libslic3r/PrintConfig.cpp:2349 src/libslic3r/PrintConfig.cpp:2847 +#: src/libslic3r/PrintConfig.cpp:1494 src/libslic3r/PrintConfig.cpp:1576 +#: src/libslic3r/PrintConfig.cpp:1970 src/libslic3r/PrintConfig.cpp:2302 +#: src/libslic3r/PrintConfig.cpp:2355 src/libslic3r/PrintConfig.cpp:2853 msgid "Speed" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:133 src/slic3r/GUI/Tab.cpp:1619 -#: src/slic3r/GUI/Tab.cpp:2272 src/libslic3r/PrintConfig.cpp:770 -#: src/libslic3r/PrintConfig.cpp:1441 src/libslic3r/PrintConfig.cpp:1941 -#: src/libslic3r/PrintConfig.cpp:2317 src/libslic3r/PrintConfig.cpp:2591 -#: src/libslic3r/PrintConfig.cpp:2619 +#: src/slic3r/GUI/GUI_Factories.cpp:133 src/slic3r/GUI/Tab.cpp:1623 +#: src/slic3r/GUI/Tab.cpp:2296 src/libslic3r/PrintConfig.cpp:770 +#: src/libslic3r/PrintConfig.cpp:1447 src/libslic3r/PrintConfig.cpp:1947 +#: src/libslic3r/PrintConfig.cpp:2323 src/libslic3r/PrintConfig.cpp:2597 +#: src/libslic3r/PrintConfig.cpp:2625 msgid "Extruders" msgstr "" #: src/slic3r/GUI/GUI_Factories.cpp:134 src/libslic3r/PrintConfig.cpp:728 #: src/libslic3r/PrintConfig.cpp:838 src/libslic3r/PrintConfig.cpp:1195 -#: src/libslic3r/PrintConfig.cpp:1449 src/libslic3r/PrintConfig.cpp:1950 -#: src/libslic3r/PrintConfig.cpp:2337 src/libslic3r/PrintConfig.cpp:2600 -#: src/libslic3r/PrintConfig.cpp:2834 +#: src/libslic3r/PrintConfig.cpp:1455 src/libslic3r/PrintConfig.cpp:1956 +#: src/libslic3r/PrintConfig.cpp:2343 src/libslic3r/PrintConfig.cpp:2606 +#: src/libslic3r/PrintConfig.cpp:2840 msgid "Extrusion Width" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:136 src/slic3r/GUI/Tab.cpp:1532 +#: src/slic3r/GUI/GUI_Factories.cpp:136 src/slic3r/GUI/Tab.cpp:1536 #: src/libslic3r/PrintConfig.cpp:494 src/libslic3r/PrintConfig.cpp:505 #: src/libslic3r/PrintConfig.cpp:521 msgid "Skirt and brim" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:138 src/slic3r/GUI/Tab.cpp:1491 -#: src/slic3r/GUI/Tab.cpp:1524 src/slic3r/GUI/Tab.cpp:1641 -#: src/slic3r/GUI/Tab.cpp:1645 src/slic3r/GUI/Tab.cpp:1999 -#: src/slic3r/GUI/Tab.cpp:2366 src/slic3r/GUI/Tab.cpp:4390 +#: src/slic3r/GUI/GUI_Factories.cpp:138 src/slic3r/GUI/Tab.cpp:1495 +#: src/slic3r/GUI/Tab.cpp:1528 src/slic3r/GUI/Tab.cpp:1645 +#: src/slic3r/GUI/Tab.cpp:1649 src/slic3r/GUI/Tab.cpp:2023 +#: src/slic3r/GUI/Tab.cpp:2393 src/slic3r/GUI/Tab.cpp:4661 #: src/libslic3r/PrintConfig.cpp:247 src/libslic3r/PrintConfig.cpp:472 -#: src/libslic3r/PrintConfig.cpp:1390 src/libslic3r/PrintConfig.cpp:1477 -#: src/libslic3r/PrintConfig.cpp:1524 src/libslic3r/PrintConfig.cpp:2474 -#: src/libslic3r/PrintConfig.cpp:2484 src/libslic3r/PrintConfig.cpp:3022 -#: src/libslic3r/PrintConfig.cpp:3218 +#: src/libslic3r/PrintConfig.cpp:1396 src/libslic3r/PrintConfig.cpp:1483 +#: src/libslic3r/PrintConfig.cpp:1530 src/libslic3r/PrintConfig.cpp:2480 +#: src/libslic3r/PrintConfig.cpp:2490 src/libslic3r/PrintConfig.cpp:3028 +#: src/libslic3r/PrintConfig.cpp:3224 msgid "Advanced" msgstr "" #: src/slic3r/GUI/GUI_Factories.cpp:140 src/slic3r/GUI/Plater.cpp:428 -#: src/slic3r/GUI/Tab.cpp:4324 src/slic3r/GUI/Tab.cpp:4325 -#: src/libslic3r/PrintConfig.cpp:3412 src/libslic3r/PrintConfig.cpp:3419 -#: src/libslic3r/PrintConfig.cpp:3428 src/libslic3r/PrintConfig.cpp:3437 -#: src/libslic3r/PrintConfig.cpp:3447 src/libslic3r/PrintConfig.cpp:3457 -#: src/libslic3r/PrintConfig.cpp:3494 src/libslic3r/PrintConfig.cpp:3501 -#: src/libslic3r/PrintConfig.cpp:3512 src/libslic3r/PrintConfig.cpp:3522 -#: src/libslic3r/PrintConfig.cpp:3531 src/libslic3r/PrintConfig.cpp:3544 -#: src/libslic3r/PrintConfig.cpp:3554 src/libslic3r/PrintConfig.cpp:3563 -#: src/libslic3r/PrintConfig.cpp:3573 src/libslic3r/PrintConfig.cpp:3584 -#: src/libslic3r/PrintConfig.cpp:3592 +#: src/slic3r/GUI/Tab.cpp:4595 src/slic3r/GUI/Tab.cpp:4596 +#: src/libslic3r/PrintConfig.cpp:3418 src/libslic3r/PrintConfig.cpp:3425 +#: src/libslic3r/PrintConfig.cpp:3434 src/libslic3r/PrintConfig.cpp:3443 +#: src/libslic3r/PrintConfig.cpp:3453 src/libslic3r/PrintConfig.cpp:3463 +#: src/libslic3r/PrintConfig.cpp:3500 src/libslic3r/PrintConfig.cpp:3507 +#: src/libslic3r/PrintConfig.cpp:3518 src/libslic3r/PrintConfig.cpp:3528 +#: src/libslic3r/PrintConfig.cpp:3537 src/libslic3r/PrintConfig.cpp:3550 +#: src/libslic3r/PrintConfig.cpp:3560 src/libslic3r/PrintConfig.cpp:3569 +#: src/libslic3r/PrintConfig.cpp:3579 src/libslic3r/PrintConfig.cpp:3590 +#: src/libslic3r/PrintConfig.cpp:3598 msgid "Supports" msgstr "" #: src/slic3r/GUI/GUI_Factories.cpp:141 src/slic3r/GUI/Plater.cpp:574 -#: src/slic3r/GUI/Tab.cpp:4365 src/slic3r/GUI/Tab.cpp:4366 -#: src/slic3r/GUI/Tab.cpp:4438 src/libslic3r/PrintConfig.cpp:3600 -#: src/libslic3r/PrintConfig.cpp:3607 src/libslic3r/PrintConfig.cpp:3621 -#: src/libslic3r/PrintConfig.cpp:3632 src/libslic3r/PrintConfig.cpp:3642 -#: src/libslic3r/PrintConfig.cpp:3664 src/libslic3r/PrintConfig.cpp:3675 -#: src/libslic3r/PrintConfig.cpp:3682 src/libslic3r/PrintConfig.cpp:3689 -#: src/libslic3r/PrintConfig.cpp:3700 src/libslic3r/PrintConfig.cpp:3709 -#: src/libslic3r/PrintConfig.cpp:3718 +#: src/slic3r/GUI/Tab.cpp:4636 src/slic3r/GUI/Tab.cpp:4637 +#: src/slic3r/GUI/Tab.cpp:4709 src/libslic3r/PrintConfig.cpp:3606 +#: src/libslic3r/PrintConfig.cpp:3613 src/libslic3r/PrintConfig.cpp:3627 +#: src/libslic3r/PrintConfig.cpp:3638 src/libslic3r/PrintConfig.cpp:3648 +#: src/libslic3r/PrintConfig.cpp:3670 src/libslic3r/PrintConfig.cpp:3681 +#: src/libslic3r/PrintConfig.cpp:3688 src/libslic3r/PrintConfig.cpp:3695 +#: src/libslic3r/PrintConfig.cpp:3706 src/libslic3r/PrintConfig.cpp:3715 +#: src/libslic3r/PrintConfig.cpp:3724 msgid "Pad" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:142 src/slic3r/GUI/Tab.cpp:4383 -#: src/slic3r/GUI/Tab.cpp:4384 src/libslic3r/SLA/Hollowing.cpp:72 +#: src/slic3r/GUI/GUI_Factories.cpp:142 src/slic3r/GUI/Tab.cpp:4654 +#: src/slic3r/GUI/Tab.cpp:4655 src/libslic3r/SLA/Hollowing.cpp:72 #: src/libslic3r/SLA/Hollowing.cpp:84 src/libslic3r/SLA/Hollowing.cpp:91 -#: src/libslic3r/SLA/Hollowing.cpp:100 src/libslic3r/PrintConfig.cpp:3728 -#: src/libslic3r/PrintConfig.cpp:3735 src/libslic3r/PrintConfig.cpp:3745 -#: src/libslic3r/PrintConfig.cpp:3754 +#: src/libslic3r/SLA/Hollowing.cpp:100 src/libslic3r/PrintConfig.cpp:3734 +#: src/libslic3r/PrintConfig.cpp:3741 src/libslic3r/PrintConfig.cpp:3751 +#: src/libslic3r/PrintConfig.cpp:3760 msgid "Hollowing" msgstr "" @@ -3718,7 +3767,7 @@ msgstr "" msgid "Reload the selected volumes from disk" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:733 src/slic3r/GUI/Plater.cpp:3485 +#: src/slic3r/GUI/GUI_Factories.cpp:733 src/slic3r/GUI/Plater.cpp:3534 msgid "Replace with STL" msgstr "" @@ -3732,125 +3781,125 @@ msgstr "" #: src/slic3r/GUI/GUI_Factories.cpp:778 src/slic3r/Utils/Repetier.cpp:126 #: src/slic3r/Utils/Repetier.cpp:209 src/libslic3r/PrintConfig.cpp:612 -#: src/libslic3r/PrintConfig.cpp:2714 +#: src/libslic3r/PrintConfig.cpp:2720 msgid "Default" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:796 src/slic3r/GUI/GUI_Factories.cpp:800 +#: src/slic3r/GUI/GUI_Factories.cpp:795 msgid "Scale to print volume" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:796 src/slic3r/GUI/GUI_Factories.cpp:800 +#: src/slic3r/GUI/GUI_Factories.cpp:795 msgid "Scale the selected object to fit the print volume" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:840 src/slic3r/GUI/Plater.cpp:5555 +#: src/slic3r/GUI/GUI_Factories.cpp:835 src/slic3r/GUI/Plater.cpp:5605 msgid "Convert from imperial units" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:841 src/slic3r/GUI/Plater.cpp:5556 +#: src/slic3r/GUI/GUI_Factories.cpp:836 src/slic3r/GUI/Plater.cpp:5606 msgid "Revert conversion from imperial units" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:842 src/slic3r/GUI/Plater.cpp:5557 +#: src/slic3r/GUI/GUI_Factories.cpp:837 src/slic3r/GUI/Plater.cpp:5607 msgid "Convert from meters" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:843 src/slic3r/GUI/Plater.cpp:5557 +#: src/slic3r/GUI/GUI_Factories.cpp:838 src/slic3r/GUI/Plater.cpp:5607 msgid "Revert conversion from meters" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:864 src/slic3r/GUI/GUI_ObjectList.cpp:2133 -#: src/libslic3r/PrintConfig.cpp:4365 +#: src/slic3r/GUI/GUI_Factories.cpp:859 src/slic3r/GUI/GUI_ObjectList.cpp:2133 +#: src/libslic3r/PrintConfig.cpp:4371 msgid "Merge" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:864 +#: src/slic3r/GUI/GUI_Factories.cpp:859 msgid "Merge objects to the one multipart object" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:883 +#: src/slic3r/GUI/GUI_Factories.cpp:878 msgid "Along X axis" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:883 +#: src/slic3r/GUI/GUI_Factories.cpp:878 msgid "Mirror the selected object along the X axis" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:885 +#: src/slic3r/GUI/GUI_Factories.cpp:880 msgid "Along Y axis" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:885 +#: src/slic3r/GUI/GUI_Factories.cpp:880 msgid "Mirror the selected object along the Y axis" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:887 +#: src/slic3r/GUI/GUI_Factories.cpp:882 msgid "Along Z axis" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:887 +#: src/slic3r/GUI/GUI_Factories.cpp:882 msgid "Mirror the selected object along the Z axis" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:890 +#: src/slic3r/GUI/GUI_Factories.cpp:885 msgid "Mirror" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:890 +#: src/slic3r/GUI/GUI_Factories.cpp:885 msgid "Mirror the selected object" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:906 src/slic3r/GUI/GUI_ObjectList.cpp:1696 +#: src/slic3r/GUI/GUI_Factories.cpp:901 src/slic3r/GUI/GUI_ObjectList.cpp:1696 msgid "Add Shape" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:942 +#: src/slic3r/GUI/GUI_Factories.cpp:937 msgid "To objects" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:942 src/slic3r/GUI/GUI_Factories.cpp:959 +#: src/slic3r/GUI/GUI_Factories.cpp:937 src/slic3r/GUI/GUI_Factories.cpp:954 msgid "Split the selected object into individual objects" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:945 +#: src/slic3r/GUI/GUI_Factories.cpp:940 msgid "To parts" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:945 src/slic3r/GUI/GUI_Factories.cpp:980 +#: src/slic3r/GUI/GUI_Factories.cpp:940 src/slic3r/GUI/GUI_Factories.cpp:975 msgid "Split the selected object into individual parts" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:949 src/slic3r/GUI/GUI_Factories.cpp:959 -#: src/slic3r/GUI/GUI_Factories.cpp:980 src/libslic3r/PrintConfig.cpp:4394 +#: src/slic3r/GUI/GUI_Factories.cpp:944 src/slic3r/GUI/GUI_Factories.cpp:954 +#: src/slic3r/GUI/GUI_Factories.cpp:975 src/libslic3r/PrintConfig.cpp:4400 msgid "Split" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:949 +#: src/slic3r/GUI/GUI_Factories.cpp:944 msgid "Split the selected object" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:1089 +#: src/slic3r/GUI/GUI_Factories.cpp:1084 msgid "Add one more instance of the selected object" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:1092 +#: src/slic3r/GUI/GUI_Factories.cpp:1087 msgid "Remove one instance of the selected object" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:1095 +#: src/slic3r/GUI/GUI_Factories.cpp:1090 msgid "Set number of instances" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:1095 +#: src/slic3r/GUI/GUI_Factories.cpp:1090 msgid "Change the number of instances of the selected object" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:1099 +#: src/slic3r/GUI/GUI_Factories.cpp:1094 msgid "Fill bed with instances" msgstr "" -#: src/slic3r/GUI/GUI_Factories.cpp:1099 +#: src/slic3r/GUI/GUI_Factories.cpp:1094 msgid "Fill the remaining area of bed with instances of the selected object" msgstr "" @@ -4013,11 +4062,11 @@ msgstr "" msgid "Load Modifier" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1509 src/slic3r/GUI/Plater.cpp:2356 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1509 src/slic3r/GUI/Plater.cpp:2379 msgid "Loading" msgstr "" -#: src/slic3r/GUI/GUI_ObjectList.cpp:1540 src/slic3r/GUI/Plater.cpp:2376 +#: src/slic3r/GUI/GUI_ObjectList.cpp:1540 src/slic3r/GUI/Plater.cpp:2399 msgid "Loading file" msgstr "" @@ -4449,15 +4498,15 @@ msgstr "" msgid "Height" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:219 src/libslic3r/PrintConfig.cpp:2976 +#: src/slic3r/GUI/GUI_Preview.cpp:219 src/libslic3r/PrintConfig.cpp:2982 msgid "Width" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:221 src/slic3r/GUI/Tab.cpp:1984 +#: src/slic3r/GUI/GUI_Preview.cpp:221 src/slic3r/GUI/Tab.cpp:2008 msgid "Fan speed" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:222 src/slic3r/GUI/Tab.cpp:1959 +#: src/slic3r/GUI/GUI_Preview.cpp:222 src/slic3r/GUI/Tab.cpp:1983 msgid "Temperature" msgstr "" @@ -4494,14 +4543,14 @@ msgid "Internal infill" msgstr "" #: src/slic3r/GUI/GUI_Preview.cpp:243 src/libslic3r/ExtrusionEntity.cpp:322 -#: src/libslic3r/ExtrusionEntity.cpp:348 src/libslic3r/PrintConfig.cpp:2336 -#: src/libslic3r/PrintConfig.cpp:2348 +#: src/libslic3r/ExtrusionEntity.cpp:348 src/libslic3r/PrintConfig.cpp:2342 +#: src/libslic3r/PrintConfig.cpp:2354 msgid "Solid infill" msgstr "" #: src/slic3r/GUI/GUI_Preview.cpp:244 src/libslic3r/ExtrusionEntity.cpp:323 -#: src/libslic3r/ExtrusionEntity.cpp:350 src/libslic3r/PrintConfig.cpp:2833 -#: src/libslic3r/PrintConfig.cpp:2846 +#: src/libslic3r/ExtrusionEntity.cpp:350 src/libslic3r/PrintConfig.cpp:2839 +#: src/libslic3r/PrintConfig.cpp:2852 msgid "Top solid infill" msgstr "" @@ -4521,11 +4570,11 @@ msgid "Skirt/Brim" msgstr "" #: src/slic3r/GUI/GUI_Preview.cpp:250 src/libslic3r/ExtrusionEntity.cpp:329 -#: src/libslic3r/ExtrusionEntity.cpp:362 src/libslic3r/PrintConfig.cpp:2680 +#: src/libslic3r/ExtrusionEntity.cpp:362 src/libslic3r/PrintConfig.cpp:2686 msgid "Support material interface" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:251 src/slic3r/GUI/Tab.cpp:1630 +#: src/slic3r/GUI/GUI_Preview.cpp:251 src/slic3r/GUI/Tab.cpp:1634 #: src/libslic3r/ExtrusionEntity.cpp:330 src/libslic3r/ExtrusionEntity.cpp:364 msgid "Wipe tower" msgstr "" @@ -4543,15 +4592,15 @@ msgstr "" msgid "Apply color change automatically" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:1057 +#: src/slic3r/GUI/GUI_Preview.cpp:1058 msgid "Shells" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:1058 +#: src/slic3r/GUI/GUI_Preview.cpp:1059 msgid "Tool marker" msgstr "" -#: src/slic3r/GUI/GUI_Preview.cpp:1059 +#: src/slic3r/GUI/GUI_Preview.cpp:1060 msgid "Legend/Estimated printing time" msgstr "" @@ -4570,19 +4619,19 @@ msgstr "" msgid "Open Documentation in web browser." msgstr "" -#: src/slic3r/GUI/ImGuiWrapper.cpp:532 +#: src/slic3r/GUI/ImGuiWrapper.cpp:527 msgid "Edit" msgstr "" -#: src/slic3r/GUI/ImGuiWrapper.cpp:985 src/slic3r/GUI/Search.cpp:479 +#: src/slic3r/GUI/ImGuiWrapper.cpp:960 src/slic3r/GUI/Search.cpp:479 msgid "Use for search" msgstr "" -#: src/slic3r/GUI/ImGuiWrapper.cpp:986 src/slic3r/GUI/Search.cpp:472 +#: src/slic3r/GUI/ImGuiWrapper.cpp:961 src/slic3r/GUI/Search.cpp:472 msgid "Category" msgstr "" -#: src/slic3r/GUI/ImGuiWrapper.cpp:988 src/slic3r/GUI/Search.cpp:474 +#: src/slic3r/GUI/ImGuiWrapper.cpp:963 src/slic3r/GUI/Search.cpp:474 msgid "Search in English" msgstr "" @@ -4726,11 +4775,11 @@ msgid "" "presets were used as fallback." msgstr "" -#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:223 src/slic3r/GUI/Plater.cpp:2403 +#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:223 src/slic3r/GUI/Plater.cpp:2426 msgid "You cannot load SLA project with a multi-part object on the bed" msgstr "" -#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:225 src/slic3r/GUI/Plater.cpp:2405 +#: src/slic3r/GUI/Jobs/SLAImportJob.cpp:225 src/slic3r/GUI/Plater.cpp:2428 msgid "Attention!" msgstr "" @@ -4771,11 +4820,11 @@ msgid "Load Config from ini/amf/3mf/gcode and merge" msgstr "" #: src/slic3r/GUI/KBShortcutsDialog.cpp:87 src/slic3r/GUI/Plater.cpp:912 -#: src/slic3r/GUI/Plater.cpp:6453 src/libslic3r/PrintConfig.cpp:4265 +#: src/slic3r/GUI/Plater.cpp:6492 src/libslic3r/PrintConfig.cpp:4271 msgid "Export G-code" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:88 src/slic3r/GUI/Plater.cpp:6454 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:88 src/slic3r/GUI/Plater.cpp:6493 msgid "Send G-code" msgstr "" @@ -4842,7 +4891,7 @@ msgid "Switch to Preview" msgstr "" #: src/slic3r/GUI/KBShortcutsDialog.cpp:114 -#: src/slic3r/GUI/PrintHostDialogs.cpp:216 +#: src/slic3r/GUI/PrintHostDialogs.cpp:217 msgid "Print host upload queue" msgstr "" @@ -5156,8 +5205,8 @@ msgstr "" msgid "Show/Hide G-code window" msgstr "" -#: src/slic3r/GUI/KBShortcutsDialog.cpp:230 src/slic3r/GUI/Plater.cpp:4394 -#: src/slic3r/GUI/Tab.cpp:2793 +#: src/slic3r/GUI/KBShortcutsDialog.cpp:230 src/slic3r/GUI/Plater.cpp:4446 +#: src/slic3r/GUI/Tab.cpp:2822 msgid "Preview" msgstr "" @@ -5268,29 +5317,29 @@ msgid "Closing PrusaSlicer while some presets are modified." msgstr "" #: src/slic3r/GUI/MainFrame.cpp:285 src/slic3r/GUI/MainFrame.cpp:335 -#: src/slic3r/GUI/Tab.hpp:376 src/slic3r/GUI/Tab.hpp:494 +#: src/slic3r/GUI/Tab.hpp:414 src/slic3r/GUI/Tab.hpp:537 msgid "Print Settings" msgstr "" #: src/slic3r/GUI/MainFrame.cpp:286 src/slic3r/GUI/MainFrame.cpp:339 #: src/slic3r/GUI/MainFrame.cpp:2096 src/slic3r/GUI/MainFrame.cpp:2097 -#: src/slic3r/GUI/Tab.hpp:479 +#: src/slic3r/GUI/Tab.hpp:522 msgid "Material Settings" msgstr "" #: src/slic3r/GUI/MainFrame.cpp:286 src/slic3r/GUI/MainFrame.cpp:337 #: src/slic3r/GUI/MainFrame.cpp:2096 src/slic3r/GUI/MainFrame.cpp:2097 -#: src/slic3r/GUI/Tab.hpp:406 +#: src/slic3r/GUI/Tab.hpp:448 msgid "Filament Settings" msgstr "" #: src/slic3r/GUI/MainFrame.cpp:287 src/slic3r/GUI/MainFrame.cpp:341 -#: src/slic3r/GUI/Tab.hpp:447 +#: src/slic3r/GUI/Tab.hpp:490 msgid "Printer Settings" msgstr "" #: src/slic3r/GUI/MainFrame.cpp:632 src/slic3r/GUI/Plater.cpp:1721 -#: src/slic3r/GUI/Plater.cpp:2795 +#: src/slic3r/GUI/Plater.cpp:2818 msgid "Untitled" msgstr "" @@ -5382,8 +5431,8 @@ msgstr "" #. TRN To be shown in the main menu View->Top #. TRN To be shown in Print Settings "Top solid layers" -#: src/slic3r/GUI/MainFrame.cpp:1118 src/libslic3r/PrintConfig.cpp:2861 -#: src/libslic3r/PrintConfig.cpp:2870 +#: src/slic3r/GUI/MainFrame.cpp:1118 src/libslic3r/PrintConfig.cpp:2867 +#: src/libslic3r/PrintConfig.cpp:2876 msgid "Top" msgstr "" @@ -5411,7 +5460,7 @@ msgstr "" msgid "Front View" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:1125 src/libslic3r/PrintConfig.cpp:2218 +#: src/slic3r/GUI/MainFrame.cpp:1125 src/libslic3r/PrintConfig.cpp:2224 msgid "Rear" msgstr "" @@ -5800,7 +5849,7 @@ msgid "Open New Instance" msgstr "" #: src/slic3r/GUI/MainFrame.cpp:1417 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1554 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1562 msgid "Compare Presets" msgstr "" @@ -5820,7 +5869,7 @@ msgstr "" msgid "&Collapse Sidebar" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:1430 src/slic3r/GUI/Plater.cpp:2296 +#: src/slic3r/GUI/MainFrame.cpp:1430 src/slic3r/GUI/Plater.cpp:2319 msgid "Collapse sidebar" msgstr "" @@ -5909,9 +5958,9 @@ msgstr "" msgid "Save zip file as:" msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:1682 src/slic3r/GUI/Plater.cpp:3276 -#: src/slic3r/GUI/Plater.cpp:5972 src/slic3r/GUI/Tab.cpp:1662 -#: src/slic3r/GUI/Tab.cpp:4391 +#: src/slic3r/GUI/MainFrame.cpp:1682 src/slic3r/GUI/Plater.cpp:3295 +#: src/slic3r/GUI/Plater.cpp:6011 src/slic3r/GUI/Tab.cpp:1666 +#: src/slic3r/GUI/Tab.cpp:4662 msgid "Slicing" msgstr "" @@ -5942,7 +5991,7 @@ msgstr "" msgid "Your file was repaired." msgstr "" -#: src/slic3r/GUI/MainFrame.cpp:1747 src/libslic3r/PrintConfig.cpp:4370 +#: src/slic3r/GUI/MainFrame.cpp:1747 src/libslic3r/PrintConfig.cpp:4376 msgid "Repair" msgstr "" @@ -6015,32 +6064,32 @@ msgstr "" msgid "Swap Y/Z axes" msgstr "" -#: src/slic3r/GUI/MsgDialog.cpp:203 +#: src/slic3r/GUI/MsgDialog.cpp:212 #, possible-c-format, possible-boost-format msgid "%s error" msgstr "" -#: src/slic3r/GUI/MsgDialog.cpp:204 +#: src/slic3r/GUI/MsgDialog.cpp:213 #, possible-c-format, possible-boost-format msgid "%s has encountered an error" msgstr "" -#: src/slic3r/GUI/MsgDialog.cpp:223 +#: src/slic3r/GUI/MsgDialog.cpp:232 #, possible-c-format, possible-boost-format msgid "%s warning" msgstr "" -#: src/slic3r/GUI/MsgDialog.cpp:224 +#: src/slic3r/GUI/MsgDialog.cpp:233 #, possible-c-format, possible-boost-format msgid "%s has a warning" msgstr "" -#: src/slic3r/GUI/MsgDialog.cpp:237 src/slic3r/GUI/MsgDialog.cpp:250 +#: src/slic3r/GUI/MsgDialog.cpp:246 src/slic3r/GUI/MsgDialog.cpp:259 #, possible-c-format, possible-boost-format msgid "%s info" msgstr "" -#: src/slic3r/GUI/MsgDialog.cpp:278 +#: src/slic3r/GUI/MsgDialog.cpp:287 #, possible-c-format, possible-boost-format msgid "%s information" msgstr "" @@ -6172,7 +6221,7 @@ msgstr "" #: src/slic3r/GUI/NotificationManager.cpp:1459 #: src/slic3r/GUI/NotificationManager.cpp:1486 #: src/slic3r/GUI/NotificationManager.cpp:1494 -#: src/slic3r/GUI/NotificationManager.cpp:1505 src/slic3r/GUI/Plater.cpp:3144 +#: src/slic3r/GUI/NotificationManager.cpp:1505 src/slic3r/GUI/Plater.cpp:3163 msgid "WARNING:" msgstr "" @@ -6198,8 +6247,8 @@ msgstr "" msgid "Instance %d" msgstr "" -#: src/slic3r/GUI/ObjectDataViewModel.cpp:105 src/slic3r/GUI/Tab.cpp:4229 -#: src/slic3r/GUI/Tab.cpp:4320 +#: src/slic3r/GUI/ObjectDataViewModel.cpp:105 src/slic3r/GUI/Tab.cpp:4500 +#: src/slic3r/GUI/Tab.cpp:4591 msgid "Layers" msgstr "" @@ -6239,40 +6288,16 @@ msgstr "" msgid "Error loading shaders" msgstr "" -#: src/slic3r/GUI/OptionsGroup.cpp:351 +#: src/slic3r/GUI/OptionsGroup.cpp:352 msgctxt "Layers" msgid "Top" msgstr "" -#: src/slic3r/GUI/OptionsGroup.cpp:351 +#: src/slic3r/GUI/OptionsGroup.cpp:352 msgctxt "Layers" msgid "Bottom" msgstr "" -#: src/slic3r/GUI/OptionsGroup.cpp:991 src/slic3r/GUI/Preferences.cpp:362 -msgid "Suppress to open hyperlink in browser" -msgstr "" - -#: src/slic3r/GUI/OptionsGroup.cpp:993 -msgid "PrusaSlicer will remember your choice." -msgstr "" - -#: src/slic3r/GUI/OptionsGroup.cpp:994 -msgid "You will not be asked about it again on label hovering." -msgstr "" - -#: src/slic3r/GUI/OptionsGroup.cpp:995 -#, possible-boost-format -msgid "" -"Visit \"Preferences\" and check \"%1%\"\n" -"to changes your choice." -msgstr "" - -#: src/slic3r/GUI/OptionsGroup.cpp:997 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:905 -msgid "PrusaSlicer: Don't ask me again" -msgstr "" - #: src/slic3r/GUI/PhysicalPrinterDialog.cpp:52 msgid "Delete this preset from this printer device" msgstr "" @@ -6293,7 +6318,7 @@ msgstr "" msgid "Add preset for this printer device" msgstr "" -#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:210 src/slic3r/GUI/Tab.cpp:2223 +#: src/slic3r/GUI/PhysicalPrinterDialog.cpp:210 src/slic3r/GUI/Tab.cpp:2247 msgid "Print Host upload" msgstr "" @@ -6407,18 +6432,18 @@ msgstr "" msgid "Sliced Info" msgstr "" -#: src/slic3r/GUI/Plater.cpp:296 src/slic3r/GUI/Plater.cpp:1357 +#: src/slic3r/GUI/Plater.cpp:296 src/slic3r/GUI/Plater.cpp:1376 +msgid "Used Filament (g)" +msgstr "" + +#: src/slic3r/GUI/Plater.cpp:297 src/slic3r/GUI/Plater.cpp:1357 msgid "Used Filament (m)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:297 src/slic3r/GUI/Plater.cpp:1369 +#: src/slic3r/GUI/Plater.cpp:298 src/slic3r/GUI/Plater.cpp:1369 msgid "Used Filament (mm³)" msgstr "" -#: src/slic3r/GUI/Plater.cpp:298 src/slic3r/GUI/Plater.cpp:1376 -msgid "Used Filament (g)" -msgstr "" - #: src/slic3r/GUI/Plater.cpp:299 msgid "Used Material (unit)" msgstr "" @@ -6440,8 +6465,8 @@ msgstr "" msgid "Select what kind of support do you need" msgstr "" -#: src/slic3r/GUI/Plater.cpp:433 src/libslic3r/PrintConfig.cpp:2534 -#: src/libslic3r/PrintConfig.cpp:3493 +#: src/slic3r/GUI/Plater.cpp:433 src/libslic3r/PrintConfig.cpp:2540 +#: src/libslic3r/PrintConfig.cpp:3499 msgid "Support on build plate only" msgstr "" @@ -6453,7 +6478,7 @@ msgstr "" msgid "Everywhere" msgstr "" -#: src/slic3r/GUI/Plater.cpp:467 src/slic3r/GUI/Tab.cpp:1541 +#: src/slic3r/GUI/Plater.cpp:467 src/slic3r/GUI/Tab.cpp:1545 msgid "Brim" msgstr "" @@ -6479,12 +6504,12 @@ msgstr "" msgid "Around object" msgstr "" -#: src/slic3r/GUI/Plater.cpp:893 src/slic3r/GUI/Plater.cpp:6454 +#: src/slic3r/GUI/Plater.cpp:893 src/slic3r/GUI/Plater.cpp:6493 msgid "Send to printer" msgstr "" -#: src/slic3r/GUI/Plater.cpp:913 src/slic3r/GUI/Plater.cpp:3276 -#: src/slic3r/GUI/Plater.cpp:5975 +#: src/slic3r/GUI/Plater.cpp:913 src/slic3r/GUI/Plater.cpp:3295 +#: src/slic3r/GUI/Plater.cpp:6014 msgid "Slice now" msgstr "" @@ -6539,7 +6564,7 @@ msgid "(including spool)" msgstr "" #: src/slic3r/GUI/Plater.cpp:1410 src/libslic3r/PrintConfig.cpp:1045 -#: src/libslic3r/PrintConfig.cpp:3287 src/libslic3r/PrintConfig.cpp:3288 +#: src/libslic3r/PrintConfig.cpp:3293 src/libslic3r/PrintConfig.cpp:3294 msgid "Cost" msgstr "" @@ -6563,32 +6588,43 @@ msgstr "" msgid "Import SLA archive" msgstr "" -#: src/slic3r/GUI/Plater.cpp:1723 +#: src/slic3r/GUI/Plater.cpp:1727 #, possible-boost-format msgid "Do you want to save the changes to \"%1%\"?" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2174 +#: src/slic3r/GUI/Plater.cpp:1732 src/slic3r/GUI/Preferences.cpp:222 +msgid "Ask for unsaved changes in project" +msgstr "" + +#: src/slic3r/GUI/Plater.cpp:1735 +msgid "" +"You will not be asked about it again, when: \n" +"- Closing PrusaSlicer,\n" +"- Loading or creating a new project" +msgstr "" + +#: src/slic3r/GUI/Plater.cpp:2197 #, possible-c-format, possible-boost-format msgid "" "Successfully unmounted. The device %s(%s) can now be safely removed from the " "computer." msgstr "" -#: src/slic3r/GUI/Plater.cpp:2179 +#: src/slic3r/GUI/Plater.cpp:2202 #, possible-c-format, possible-boost-format msgid "Ejecting of device %s(%s) has failed." msgstr "" -#: src/slic3r/GUI/Plater.cpp:2198 src/slic3r/GUI/Plater.cpp:5024 +#: src/slic3r/GUI/Plater.cpp:2221 src/slic3r/GUI/Plater.cpp:5074 msgid "New Project" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2295 +#: src/slic3r/GUI/Plater.cpp:2318 msgid "Expand sidebar" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2463 +#: src/slic3r/GUI/Plater.cpp:2486 msgid "" "The preset below was temporarily installed on the active instance of " "PrusaSlicer" @@ -6598,12 +6634,12 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Plater.cpp:2493 +#: src/slic3r/GUI/Plater.cpp:2516 #, possible-boost-format msgid "Failed loading file \"%1%\" due to an invalid configuration." msgstr "" -#: src/slic3r/GUI/Plater.cpp:2513 +#: src/slic3r/GUI/Plater.cpp:2536 #, possible-c-format, possible-boost-format msgid "" "Object size from file %s appears to be zero.\n" @@ -6614,11 +6650,11 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Plater.cpp:2517 +#: src/slic3r/GUI/Plater.cpp:2540 msgid "The size of the object is zero" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2530 +#: src/slic3r/GUI/Plater.cpp:2553 #, possible-c-format, possible-boost-format msgid "" "The dimensions of the object from file %s seem to be defined in meters.\n" @@ -6631,15 +6667,15 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Plater.cpp:2534 src/slic3r/GUI/Plater.cpp:2556 +#: src/slic3r/GUI/Plater.cpp:2557 src/slic3r/GUI/Plater.cpp:2579 msgid "The object is too small" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2535 src/slic3r/GUI/Plater.cpp:2557 +#: src/slic3r/GUI/Plater.cpp:2558 src/slic3r/GUI/Plater.cpp:2580 msgid "Apply to all the remaining small objects being loaded." msgstr "" -#: src/slic3r/GUI/Plater.cpp:2552 +#: src/slic3r/GUI/Plater.cpp:2575 #, possible-c-format, possible-boost-format msgid "" "The dimensions of the object from file %s seem to be defined in inches.\n" @@ -6652,180 +6688,180 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Plater.cpp:2570 +#: src/slic3r/GUI/Plater.cpp:2593 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 "" -#: src/slic3r/GUI/Plater.cpp:2573 src/slic3r/GUI/Plater.cpp:2628 +#: src/slic3r/GUI/Plater.cpp:2596 src/slic3r/GUI/Plater.cpp:2651 msgid "Multi-part object detected" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2581 +#: src/slic3r/GUI/Plater.cpp:2604 msgid "" "This file cannot be loaded in a simple mode. Do you want to switch to an " "advanced mode?" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2582 +#: src/slic3r/GUI/Plater.cpp:2605 msgid "Detected advanced data" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2602 +#: src/slic3r/GUI/Plater.cpp:2625 #, possible-c-format, possible-boost-format msgid "" "You can't to add the object(s) from %s because of one or some of them " "is(are) multi-part" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2625 +#: src/slic3r/GUI/Plater.cpp:2648 msgid "" "Multiple objects were loaded for a multi-material printer.\n" "Instead of considering them as multiple objects, should I consider\n" "these files to represent a single object having multiple parts?" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2744 +#: src/slic3r/GUI/Plater.cpp:2767 msgid "" "Your object appears to be too large, so it was automatically scaled down to " "fit your print bed." msgstr "" -#: src/slic3r/GUI/Plater.cpp:2745 +#: src/slic3r/GUI/Plater.cpp:2768 msgid "Object too large?" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2823 +#: src/slic3r/GUI/Plater.cpp:2846 msgid "Export STL file:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2830 +#: src/slic3r/GUI/Plater.cpp:2853 msgid "Export AMF file:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2836 +#: src/slic3r/GUI/Plater.cpp:2859 msgid "Save file as:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2842 +#: src/slic3r/GUI/Plater.cpp:2865 msgid "Export OBJ file:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2940 +#: src/slic3r/GUI/Plater.cpp:2963 msgid "Delete Object" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2952 +#: src/slic3r/GUI/Plater.cpp:2975 msgid "Delete All Objects" msgstr "" -#: src/slic3r/GUI/Plater.cpp:2980 +#: src/slic3r/GUI/Plater.cpp:3003 msgid "Reset Project" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3063 +#: src/slic3r/GUI/Plater.cpp:3086 msgid "" "The selected object couldn't be split because it contains only one solid " "part." msgstr "" -#: src/slic3r/GUI/Plater.cpp:3070 +#: src/slic3r/GUI/Plater.cpp:3093 msgid "All non-solid parts (modifiers) were deleted" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3072 +#: src/slic3r/GUI/Plater.cpp:3095 msgid "Split to Objects" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3126 +#: src/slic3r/GUI/Plater.cpp:3145 msgid "" "An object has custom support enforcers which will not be used because " "supports are disabled." msgstr "" -#: src/slic3r/GUI/Plater.cpp:3128 +#: src/slic3r/GUI/Plater.cpp:3147 msgid "Enable supports for enforcers only" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3257 src/slic3r/GUI/Plater.cpp:4090 +#: src/slic3r/GUI/Plater.cpp:3276 src/slic3r/GUI/Plater.cpp:4142 msgid "Invalid data" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3327 +#: src/slic3r/GUI/Plater.cpp:3346 msgid "Another export job is currently running." msgstr "" -#: src/slic3r/GUI/Plater.cpp:3385 +#: src/slic3r/GUI/Plater.cpp:3432 msgid "Replace from:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3401 +#: src/slic3r/GUI/Plater.cpp:3450 msgid "Unable to replace with more than one volume" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3401 src/slic3r/GUI/Plater.cpp:3480 +#: src/slic3r/GUI/Plater.cpp:3450 src/slic3r/GUI/Plater.cpp:3529 msgid "Error during replace" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3472 +#: src/slic3r/GUI/Plater.cpp:3521 msgid "Select the new file" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3480 +#: src/slic3r/GUI/Plater.cpp:3529 msgid "File for the replace wasn't selected" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3571 +#: src/slic3r/GUI/Plater.cpp:3620 msgid "Please select the file to reload" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3602 src/slic3r/GUI/Plater.cpp:5152 +#: src/slic3r/GUI/Plater.cpp:3651 src/slic3r/GUI/Plater.cpp:5202 msgid "The selected file" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3603 +#: src/slic3r/GUI/Plater.cpp:3652 msgid "differs from the original file" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3603 +#: src/slic3r/GUI/Plater.cpp:3652 msgid "Do you want to replace it" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3625 +#: src/slic3r/GUI/Plater.cpp:3669 src/slic3r/GUI/Plater.cpp:3675 msgid "Reload from:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3726 +#: src/slic3r/GUI/Plater.cpp:3778 msgid "Unable to reload:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3731 +#: src/slic3r/GUI/Plater.cpp:3783 msgid "Error during reload" msgstr "" -#: src/slic3r/GUI/Plater.cpp:3749 +#: src/slic3r/GUI/Plater.cpp:3801 msgid "Reload all from disk" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4044 +#: src/slic3r/GUI/Plater.cpp:4096 msgid "There are active warnings concerning sliced models:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4055 +#: src/slic3r/GUI/Plater.cpp:4107 msgid "generated warnings" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4386 +#: src/slic3r/GUI/Plater.cpp:4438 msgid "3D editor view" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4809 +#: src/slic3r/GUI/Plater.cpp:4859 msgid "Undo / Redo is processing" msgstr "" -#: src/slic3r/GUI/Plater.cpp:4811 +#: src/slic3r/GUI/Plater.cpp:4861 #, possible-boost-format msgid "" "Switching the printer technology from %1% to %2%.\n" @@ -6833,223 +6869,223 @@ msgid "" "printer technology." msgstr "" -#: src/slic3r/GUI/Plater.cpp:5008 +#: src/slic3r/GUI/Plater.cpp:5058 msgid "Creating a new project while the current project is modified." msgstr "" -#: src/slic3r/GUI/Plater.cpp:5011 +#: src/slic3r/GUI/Plater.cpp:5061 msgid "Creating a new project while some presets are modified." msgstr "" -#: src/slic3r/GUI/Plater.cpp:5012 +#: src/slic3r/GUI/Plater.cpp:5062 msgid "You can keep presets modifications to the new project or discard them" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5013 +#: src/slic3r/GUI/Plater.cpp:5063 msgid "" "You can keep presets modifications to the new project, discard them or save " "changes as new presets.\n" "Note, if changes will be saved then new project wouldn't keep them" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5019 +#: src/slic3r/GUI/Plater.cpp:5069 msgid "Creating a new project" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5050 +#: src/slic3r/GUI/Plater.cpp:5100 msgid "Load Project" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5076 src/slic3r/GUI/Plater.cpp:5336 +#: src/slic3r/GUI/Plater.cpp:5126 src/slic3r/GUI/Plater.cpp:5386 msgid "Import Object" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5080 +#: src/slic3r/GUI/Plater.cpp:5130 msgid "Import Objects" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5152 +#: src/slic3r/GUI/Plater.cpp:5202 msgid "does not contain valid gcode." msgstr "" -#: src/slic3r/GUI/Plater.cpp:5153 +#: src/slic3r/GUI/Plater.cpp:5203 msgid "Error while loading .gcode file" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5206 +#: src/slic3r/GUI/Plater.cpp:5256 #, possible-c-format, possible-boost-format msgid "%s - Drop project file" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5213 +#: src/slic3r/GUI/Plater.cpp:5263 msgid "Open as project" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5214 +#: src/slic3r/GUI/Plater.cpp:5264 msgid "Import geometry only" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5215 +#: src/slic3r/GUI/Plater.cpp:5265 msgid "Import config only" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5218 +#: src/slic3r/GUI/Plater.cpp:5268 msgid "Select an action to apply to the file" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5223 +#: src/slic3r/GUI/Plater.cpp:5273 msgid "Action" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5239 +#: src/slic3r/GUI/Plater.cpp:5289 msgid "Don't show again" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5280 +#: src/slic3r/GUI/Plater.cpp:5330 msgid "You can open only one .gcode file at a time." msgstr "" -#: src/slic3r/GUI/Plater.cpp:5281 +#: src/slic3r/GUI/Plater.cpp:5331 msgid "Drag and drop G-code file" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5358 +#: src/slic3r/GUI/Plater.cpp:5408 msgid "Load File" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5363 +#: src/slic3r/GUI/Plater.cpp:5413 msgid "Load Files" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5413 +#: src/slic3r/GUI/Plater.cpp:5463 msgid "All objects will be removed, continue?" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5424 +#: src/slic3r/GUI/Plater.cpp:5474 msgid "Delete Selected Objects" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5433 +#: src/slic3r/GUI/Plater.cpp:5483 msgid "Increase Instances" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5467 +#: src/slic3r/GUI/Plater.cpp:5517 msgid "Decrease Instances" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5518 +#: src/slic3r/GUI/Plater.cpp:5568 msgid "Enter the number of copies:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5519 +#: src/slic3r/GUI/Plater.cpp:5569 msgid "Copies of the selected object" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5523 +#: src/slic3r/GUI/Plater.cpp:5573 #, possible-c-format, possible-boost-format msgid "Set numbers of copies to %d" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5597 +#: src/slic3r/GUI/Plater.cpp:5647 msgid "Cut by Plane" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5657 +#: src/slic3r/GUI/Plater.cpp:5707 msgid "Save G-code file as:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5657 +#: src/slic3r/GUI/Plater.cpp:5707 msgid "Save SL1 / SL1S file as:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5666 +#: src/slic3r/GUI/Plater.cpp:5716 msgid "The provided file name is not valid." msgstr "" -#: src/slic3r/GUI/Plater.cpp:5667 +#: src/slic3r/GUI/Plater.cpp:5717 msgid "The following characters are not allowed by a FAT file system:" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5865 +#: src/slic3r/GUI/Plater.cpp:5904 msgid "" "The plater is empty.\n" "Do you want to save the project?" msgstr "" -#: src/slic3r/GUI/Plater.cpp:5865 +#: src/slic3r/GUI/Plater.cpp:5904 msgid "Save project" msgstr "" -#: src/slic3r/GUI/Plater.cpp:6453 +#: src/slic3r/GUI/Plater.cpp:6492 msgid "Export" msgstr "" -#: src/slic3r/GUI/Plater.cpp:6487 +#: src/slic3r/GUI/Plater.cpp:6526 msgid "" "Custom supports, seams and multimaterial painting were removed after " "repairing the mesh." msgstr "" -#: src/slic3r/GUI/Plater.cpp:6601 +#: src/slic3r/GUI/Plater.cpp:6640 msgid "Paste From Clipboard" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:106 src/slic3r/GUI/Tab.cpp:2258 -#: src/slic3r/GUI/Tab.cpp:2481 src/slic3r/GUI/Tab.cpp:2587 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1275 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1663 +#: src/slic3r/GUI/Preferences.cpp:106 src/slic3r/GUI/Tab.cpp:2282 +#: src/slic3r/GUI/Tab.cpp:2508 src/slic3r/GUI/Tab.cpp:2614 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1283 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1671 msgid "General" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:119 +#: src/slic3r/GUI/Preferences.cpp:121 msgid "Remember output directory" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:121 +#: src/slic3r/GUI/Preferences.cpp:123 msgid "" "If this is enabled, Slic3r will prompt the last output directory instead of " "the one containing the input files." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:127 +#: src/slic3r/GUI/Preferences.cpp:129 msgid "Auto-center parts" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:129 +#: src/slic3r/GUI/Preferences.cpp:131 msgid "" "If this is enabled, Slic3r will auto-center objects around the print bed " "center." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:135 +#: src/slic3r/GUI/Preferences.cpp:137 msgid "Background processing" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:137 +#: src/slic3r/GUI/Preferences.cpp:139 msgid "" "If this is enabled, Slic3r will pre-process objects as soon as they're " "loaded in order to save time when exporting G-code." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:146 +#: src/slic3r/GUI/Preferences.cpp:148 msgid "Export sources full pathnames to 3mf and amf" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:148 +#: src/slic3r/GUI/Preferences.cpp:150 msgid "" "If enabled, allows the Reload from disk command to automatically find and " "load the files when invoked." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:157 +#: src/slic3r/GUI/Preferences.cpp:159 msgid "If enabled, sets PrusaSlicer as default application to open .3mf files." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:164 +#: src/slic3r/GUI/Preferences.cpp:166 msgid "If enabled, sets PrusaSlicer as default application to open .stl files." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:175 +#: src/slic3r/GUI/Preferences.cpp:177 msgid "" "If enabled, Slic3r downloads updates of built-in system presets in the " "background. These updates are downloaded into a separate temporary location. " @@ -7057,208 +7093,216 @@ msgid "" "startup." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:180 +#: src/slic3r/GUI/Preferences.cpp:182 msgid "Suppress \" - default - \" presets" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:182 +#: src/slic3r/GUI/Preferences.cpp:184 msgid "" "Suppress \" - default - \" presets in the Print / Filament / Printer " "selections once there are any other valid presets available." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:188 +#: src/slic3r/GUI/Preferences.cpp:190 msgid "Show incompatible print and filament presets" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:190 +#: src/slic3r/GUI/Preferences.cpp:192 msgid "" "When checked, the print and filament presets are shown in the preset editor " "even if they are marked as incompatible with the active printer" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:198 +#: src/slic3r/GUI/Preferences.cpp:200 msgid "Show drop project dialog" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:200 +#: src/slic3r/GUI/Preferences.cpp:202 msgid "" "When checked, whenever dragging and dropping a project file on the " "application, shows a dialog asking to select the action to take on the file " "to load." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:206 src/slic3r/GUI/Preferences.cpp:210 +#: src/slic3r/GUI/Preferences.cpp:208 src/slic3r/GUI/Preferences.cpp:212 msgid "Allow just a single PrusaSlicer instance" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:208 +#: src/slic3r/GUI/Preferences.cpp:210 msgid "" "On OSX there is always only one instance of app running by default. However " "it is allowed to run multiple instances of same app from the command line. " "In such case this settings will allow only one instance." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:212 +#: src/slic3r/GUI/Preferences.cpp:214 msgid "" "If this is enabled, when starting PrusaSlicer and another instance of the " "same PrusaSlicer is already running, that instance will be reactivated " "instead." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:220 +#: src/slic3r/GUI/Preferences.cpp:224 +msgid "" +"Always ask for unsaved changes in project, when: \n" +"- Closing PrusaSlicer,\n" +"- Loading or creating a new project" +msgstr "" + +#: src/slic3r/GUI/Preferences.cpp:233 #: src/slic3r/GUI/UnsavedChangesDialog.cpp:896 msgid "" "Ask to save unsaved changes in presets when closing the application or when " "loading a new project" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:222 +#: src/slic3r/GUI/Preferences.cpp:235 msgid "" "Always ask for unsaved changes in presets, when: \n" "- Closing PrusaSlicer while some presets are modified,\n" "- Loading a new project while some presets are modified" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:229 +#: src/slic3r/GUI/Preferences.cpp:242 #: src/slic3r/GUI/UnsavedChangesDialog.cpp:895 msgid "Ask for unsaved changes in presets when selecting new preset" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:231 +#: src/slic3r/GUI/Preferences.cpp:244 msgid "" "Always ask for unsaved changes in presets when selecting new preset or " "resetting a preset" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:236 +#: src/slic3r/GUI/Preferences.cpp:249 #: src/slic3r/GUI/UnsavedChangesDialog.cpp:894 msgid "Ask for unsaved changes in presets when creating new project" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:238 +#: src/slic3r/GUI/Preferences.cpp:251 msgid "Always ask for unsaved changes in presets when creating new project" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:245 +#: src/slic3r/GUI/Preferences.cpp:258 msgid "Associate .gcode files to PrusaSlicer G-code Viewer" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:247 +#: src/slic3r/GUI/Preferences.cpp:260 msgid "" "If enabled, sets PrusaSlicer G-code Viewer as default application to open ." "gcode files." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:255 +#: src/slic3r/GUI/Preferences.cpp:268 msgid "Use Retina resolution for the 3D scene" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:257 +#: src/slic3r/GUI/Preferences.cpp:270 msgid "" "If enabled, the 3D scene will be rendered in Retina resolution. If you are " "experiencing 3D performance problems, disabling this option may help." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:267 src/slic3r/GUI/Preferences.cpp:269 +#: src/slic3r/GUI/Preferences.cpp:280 src/slic3r/GUI/Preferences.cpp:282 msgid "Show splash screen" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:275 +#: src/slic3r/GUI/Preferences.cpp:289 +msgid "If enabled, PrusaSlicer will be open at the position it was closed" +msgstr "" + +#: src/slic3r/GUI/Preferences.cpp:295 msgid "Clear Undo / Redo stack on new project" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:277 +#: src/slic3r/GUI/Preferences.cpp:297 msgid "" "Clear Undo / Redo stack on new project or when an existing project is loaded." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:283 +#: src/slic3r/GUI/Preferences.cpp:303 msgid "Enable support for legacy 3DConnexion devices" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:285 +#: src/slic3r/GUI/Preferences.cpp:305 msgid "" "If enabled, the legacy 3DConnexion devices settings dialog is available by " "pressing CTRL+M" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:294 +#: src/slic3r/GUI/Preferences.cpp:314 msgid "Camera" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:299 +#: src/slic3r/GUI/Preferences.cpp:319 msgid "Use perspective camera" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:301 +#: src/slic3r/GUI/Preferences.cpp:321 msgid "" "If enabled, use perspective camera. If not enabled, use orthographic camera." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:306 +#: src/slic3r/GUI/Preferences.cpp:326 msgid "Use free camera" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:308 +#: src/slic3r/GUI/Preferences.cpp:328 msgid "If enabled, use free camera. If not enabled, use constrained camera." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:313 +#: src/slic3r/GUI/Preferences.cpp:333 msgid "Reverse direction of zoom with mouse wheel" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:315 +#: src/slic3r/GUI/Preferences.cpp:335 msgid "If enabled, reverses the direction of zoom with mouse wheel" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:323 +#: src/slic3r/GUI/Preferences.cpp:343 msgid "GUI" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:346 +#: src/slic3r/GUI/Preferences.cpp:366 msgid "Sequential slider applied only to top layer" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:348 +#: src/slic3r/GUI/Preferences.cpp:368 msgid "" "If enabled, changes made using the sequential slider, in preview, apply only " "to gcode top layer. If disabled, changes made using the sequential slider, " "in preview, apply to the whole gcode." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:355 +#: src/slic3r/GUI/Preferences.cpp:375 msgid "Show sidebar collapse/expand button" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:357 +#: src/slic3r/GUI/Preferences.cpp:377 msgid "" "If enabled, the button for the collapse sidebar will be appeared in top " "right corner of the 3D Scene" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:364 -msgid "" -"If enabled, the descriptions of configuration parameters in settings tabs " -"wouldn't work as hyperlinks. If disabled, the descriptions of configuration " -"parameters in settings tabs will work as hyperlinks." +#: src/slic3r/GUI/Preferences.cpp:384 +msgid "If enabled, PrusaSlicer will not open hyperlinks in your browser." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:370 +#: src/slic3r/GUI/Preferences.cpp:391 msgid "Use colors for axes values in Manipulation panel" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:372 +#: src/slic3r/GUI/Preferences.cpp:393 msgid "" "If enabled, the axes names and axes values will be colorized according to " "the axes colors. If disabled, old UI will be used." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:378 +#: src/slic3r/GUI/Preferences.cpp:399 msgid "Order object volumes by types" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:380 +#: src/slic3r/GUI/Preferences.cpp:401 msgid "" "If enabled, volumes will be always ordered inside the object. Correct order " "is Model Part, Negative Volume, Modifier, Support Blocker and Support " @@ -7266,117 +7310,117 @@ msgid "" "Modifiers. But one of the model parts have to be on the first place." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:387 +#: src/slic3r/GUI/Preferences.cpp:408 msgid "Set settings tabs as menu items (experimental)" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:389 +#: src/slic3r/GUI/Preferences.cpp:410 msgid "" "If enabled, Settings Tabs will be placed as menu items. If disabled, old UI " "will be used." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:398 +#: src/slic3r/GUI/Preferences.cpp:419 msgid "Show \"Tip of the day\" notification after start" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:400 +#: src/slic3r/GUI/Preferences.cpp:421 msgid "If enabled, useful hints are displayed at startup." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:406 +#: src/slic3r/GUI/Preferences.cpp:427 msgid "Notify about new releases" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:408 +#: src/slic3r/GUI/Preferences.cpp:429 msgid "" "You will be notified about new release after startup acordingly: All = " "Regular release and alpha / beta releases. Release only = regular release." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:414 +#: src/slic3r/GUI/Preferences.cpp:435 msgid "Release only" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:423 +#: src/slic3r/GUI/Preferences.cpp:444 msgid "Use custom size for toolbar icons" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:425 +#: src/slic3r/GUI/Preferences.cpp:446 msgid "If enabled, you can change size of toolbar icons manually." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:450 +#: src/slic3r/GUI/Preferences.cpp:471 msgid "Render" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:455 +#: src/slic3r/GUI/Preferences.cpp:476 msgid "Use environment map" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:457 +#: src/slic3r/GUI/Preferences.cpp:478 msgid "If enabled, renders object using the environment map." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:470 +#: src/slic3r/GUI/Preferences.cpp:491 msgid "Dark mode (experimental)" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:475 +#: src/slic3r/GUI/Preferences.cpp:496 msgid "Enable dark mode" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:477 +#: src/slic3r/GUI/Preferences.cpp:498 msgid "" "If enabled, UI will use Dark mode colors. If disabled, old UI will be used." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:486 +#: src/slic3r/GUI/Preferences.cpp:507 msgid "Use system menu for application" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:488 +#: src/slic3r/GUI/Preferences.cpp:509 msgid "" "If enabled, application will use the standard Windows system menu,\n" "but on some combination of display scales it can looks ugly. If disabled, " "old UI will be used." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:557 +#: src/slic3r/GUI/Preferences.cpp:578 msgid "Changes for the critical options" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:559 +#: src/slic3r/GUI/Preferences.cpp:580 msgid "" "Changing some options will trigger application restart.\n" "You will lose the content of the plater." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:666 +#: src/slic3r/GUI/Preferences.cpp:694 msgid "Icon size in a respect to the default size" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:681 +#: src/slic3r/GUI/Preferences.cpp:709 msgid "Select toolbar icon size in respect to the default one." msgstr "" -#: src/slic3r/GUI/Preferences.cpp:715 src/slic3r/GUI/Preferences.cpp:726 +#: src/slic3r/GUI/Preferences.cpp:743 src/slic3r/GUI/Preferences.cpp:754 msgid "Old regular layout with the tab bar" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:716 +#: src/slic3r/GUI/Preferences.cpp:744 msgid "New layout, access via settings button in the top menu" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:717 src/slic3r/GUI/Preferences.cpp:727 +#: src/slic3r/GUI/Preferences.cpp:745 src/slic3r/GUI/Preferences.cpp:755 msgid "Settings in non-modal window" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:735 +#: src/slic3r/GUI/Preferences.cpp:763 msgid "Layout Options" msgstr "" -#: src/slic3r/GUI/Preferences.cpp:778 +#: src/slic3r/GUI/Preferences.cpp:806 msgid "Text colors" msgstr "" @@ -7418,7 +7462,7 @@ msgid "Add/Remove presets" msgstr "" #: src/slic3r/GUI/PresetComboBoxes.cpp:702 -#: src/slic3r/GUI/PresetComboBoxes.cpp:742 src/slic3r/GUI/Tab.cpp:3208 +#: src/slic3r/GUI/PresetComboBoxes.cpp:742 src/slic3r/GUI/Tab.cpp:3241 msgid "Add physical printer" msgstr "" @@ -7430,7 +7474,7 @@ msgstr "" msgid "Change extruder color" msgstr "" -#: src/slic3r/GUI/PresetComboBoxes.cpp:730 src/slic3r/GUI/Tab.cpp:3208 +#: src/slic3r/GUI/PresetComboBoxes.cpp:730 src/slic3r/GUI/Tab.cpp:3241 msgid "Edit physical printer" msgstr "" @@ -7642,82 +7686,82 @@ msgstr "" msgid "Group" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:83 +#: src/slic3r/GUI/PrintHostDialogs.cpp:84 #, possible-c-format, possible-boost-format msgid "Upload filename doesn't end with \"%s\". Do you wish to continue?" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:91 +#: src/slic3r/GUI/PrintHostDialogs.cpp:92 msgid "Upload and Print" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:102 +#: src/slic3r/GUI/PrintHostDialogs.cpp:103 msgid "Upload and Simulate" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:114 +#: src/slic3r/GUI/PrintHostDialogs.cpp:115 msgid "Upload" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:246 +#: src/slic3r/GUI/PrintHostDialogs.cpp:247 msgid "ID" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:247 +#: src/slic3r/GUI/PrintHostDialogs.cpp:248 msgid "Progress" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:248 +#: src/slic3r/GUI/PrintHostDialogs.cpp:249 msgid "Status" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:249 +#: src/slic3r/GUI/PrintHostDialogs.cpp:250 msgid "Host" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:250 +#: src/slic3r/GUI/PrintHostDialogs.cpp:251 msgctxt "OfFile" msgid "Size" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:251 +#: src/slic3r/GUI/PrintHostDialogs.cpp:252 msgid "Filename" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:252 +#: src/slic3r/GUI/PrintHostDialogs.cpp:253 msgid "Error Message" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:255 +#: src/slic3r/GUI/PrintHostDialogs.cpp:256 msgid "Cancel selected" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:257 +#: src/slic3r/GUI/PrintHostDialogs.cpp:258 msgid "Show error message" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:315 -#: src/slic3r/GUI/PrintHostDialogs.cpp:370 +#: src/slic3r/GUI/PrintHostDialogs.cpp:316 +#: src/slic3r/GUI/PrintHostDialogs.cpp:371 msgid "Enqueued" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:371 +#: src/slic3r/GUI/PrintHostDialogs.cpp:372 msgid "Uploading" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:373 +#: src/slic3r/GUI/PrintHostDialogs.cpp:374 msgid "Cancelling" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:374 +#: src/slic3r/GUI/PrintHostDialogs.cpp:375 msgid "Cancelled" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:375 +#: src/slic3r/GUI/PrintHostDialogs.cpp:376 msgid "Completed" msgstr "" -#: src/slic3r/GUI/PrintHostDialogs.cpp:423 +#: src/slic3r/GUI/PrintHostDialogs.cpp:424 msgid "Error uploading to print host:" msgstr "" @@ -7727,11 +7771,11 @@ msgstr "" #: src/slic3r/GUI/RammingChart.cpp:90 src/slic3r/GUI/WipeTowerDialog.cpp:114 #: src/libslic3r/PrintConfig.cpp:929 src/libslic3r/PrintConfig.cpp:973 -#: src/libslic3r/PrintConfig.cpp:988 src/libslic3r/PrintConfig.cpp:3154 -#: src/libslic3r/PrintConfig.cpp:3163 src/libslic3r/PrintConfig.cpp:3304 -#: src/libslic3r/PrintConfig.cpp:3312 src/libslic3r/PrintConfig.cpp:3320 -#: src/libslic3r/PrintConfig.cpp:3327 src/libslic3r/PrintConfig.cpp:3335 -#: src/libslic3r/PrintConfig.cpp:3343 +#: src/libslic3r/PrintConfig.cpp:988 src/libslic3r/PrintConfig.cpp:3160 +#: src/libslic3r/PrintConfig.cpp:3169 src/libslic3r/PrintConfig.cpp:3310 +#: src/libslic3r/PrintConfig.cpp:3318 src/libslic3r/PrintConfig.cpp:3326 +#: src/libslic3r/PrintConfig.cpp:3333 src/libslic3r/PrintConfig.cpp:3341 +#: src/libslic3r/PrintConfig.cpp:3349 msgid "s" msgstr "" @@ -7740,7 +7784,7 @@ msgid "Volumetric speed" msgstr "" #: src/slic3r/GUI/RammingChart.cpp:95 src/libslic3r/PrintConfig.cpp:886 -#: src/libslic3r/PrintConfig.cpp:1776 +#: src/libslic3r/PrintConfig.cpp:1782 msgid "mm³/s" msgstr "" @@ -7840,48 +7884,48 @@ msgid "Just switch to \"%1%\" preset" msgstr "" #: src/slic3r/GUI/Search.cpp:90 src/slic3r/GUI/Search.cpp:345 -#: src/slic3r/GUI/Tab.cpp:2615 +#: src/slic3r/GUI/Tab.cpp:2642 msgid "Stealth" msgstr "" #: src/slic3r/GUI/Search.cpp:90 src/slic3r/GUI/Search.cpp:345 -#: src/slic3r/GUI/Tab.cpp:2609 +#: src/slic3r/GUI/Tab.cpp:2636 msgid "Normal" msgstr "" -#: src/slic3r/GUI/Selection.cpp:170 +#: src/slic3r/GUI/Selection.cpp:168 msgid "Selection-Add" msgstr "" -#: src/slic3r/GUI/Selection.cpp:211 +#: src/slic3r/GUI/Selection.cpp:209 msgid "Selection-Remove" msgstr "" -#: src/slic3r/GUI/Selection.cpp:243 +#: src/slic3r/GUI/Selection.cpp:241 msgid "Selection-Add Object" msgstr "" -#: src/slic3r/GUI/Selection.cpp:262 +#: src/slic3r/GUI/Selection.cpp:260 msgid "Selection-Remove Object" msgstr "" -#: src/slic3r/GUI/Selection.cpp:280 +#: src/slic3r/GUI/Selection.cpp:278 msgid "Selection-Add Instance" msgstr "" -#: src/slic3r/GUI/Selection.cpp:299 +#: src/slic3r/GUI/Selection.cpp:297 msgid "Selection-Remove Instance" msgstr "" -#: src/slic3r/GUI/Selection.cpp:396 +#: src/slic3r/GUI/Selection.cpp:394 msgid "Selection-Add All" msgstr "" -#: src/slic3r/GUI/Selection.cpp:421 +#: src/slic3r/GUI/Selection.cpp:419 msgid "Selection-Remove All" msgstr "" -#: src/slic3r/GUI/Selection.cpp:961 src/slic3r/GUI/Selection.cpp:1063 +#: src/slic3r/GUI/Selection.cpp:950 msgid "Scale To Fit" msgstr "" @@ -8010,223 +8054,227 @@ msgstr "" msgid "Search in settings [%1%]" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1298 +#: src/slic3r/GUI/Tab.cpp:1302 msgid "Detach from system preset" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1311 +#: src/slic3r/GUI/Tab.cpp:1315 msgid "" "A copy of the current system preset will be created, which will be detached " "from the system preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:1312 +#: src/slic3r/GUI/Tab.cpp:1316 msgid "" "The current custom preset will be detached from the parent system preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:1315 +#: src/slic3r/GUI/Tab.cpp:1319 msgid "Modifications to the current profile will be saved." msgstr "" -#: src/slic3r/GUI/Tab.cpp:1321 +#: src/slic3r/GUI/Tab.cpp:1325 msgid "Detach preset" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1347 +#: src/slic3r/GUI/Tab.cpp:1351 msgid "This is a default preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:1349 +#: src/slic3r/GUI/Tab.cpp:1353 msgid "This is a system preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:1351 +#: src/slic3r/GUI/Tab.cpp:1355 msgid "Current preset is inherited from the default preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:1355 +#: src/slic3r/GUI/Tab.cpp:1359 msgid "Current preset is inherited from" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1359 +#: src/slic3r/GUI/Tab.cpp:1363 msgid "It can't be deleted or modified." msgstr "" -#: src/slic3r/GUI/Tab.cpp:1360 +#: src/slic3r/GUI/Tab.cpp:1364 msgid "" "Any modifications should be saved as a new preset inherited from this one." msgstr "" -#: src/slic3r/GUI/Tab.cpp:1361 +#: src/slic3r/GUI/Tab.cpp:1365 msgid "To do that please specify a new name for the preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:1365 +#: src/slic3r/GUI/Tab.cpp:1369 msgid "Additional information:" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1371 +#: src/slic3r/GUI/Tab.cpp:1375 msgid "printer model" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1379 +#: src/slic3r/GUI/Tab.cpp:1383 msgid "default print profile" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1382 +#: src/slic3r/GUI/Tab.cpp:1386 msgid "default filament profile" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1396 +#: src/slic3r/GUI/Tab.cpp:1400 msgid "default SLA material profile" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1400 +#: src/slic3r/GUI/Tab.cpp:1404 msgid "default SLA print profile" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1408 +#: src/slic3r/GUI/Tab.cpp:1412 msgid "full profile name" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1409 +#: src/slic3r/GUI/Tab.cpp:1413 msgid "symbolic profile name" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1447 src/slic3r/GUI/Tab.cpp:4318 +#: src/slic3r/GUI/Tab.cpp:1451 src/slic3r/GUI/Tab.cpp:4589 msgid "Layers and perimeters" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1453 +#: src/slic3r/GUI/Tab.cpp:1457 msgid "Vertical shells" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1465 +#: src/slic3r/GUI/Tab.cpp:1469 msgid "Horizontal shells" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1466 src/libslic3r/PrintConfig.cpp:2361 +#: src/slic3r/GUI/Tab.cpp:1470 src/libslic3r/PrintConfig.cpp:2367 msgid "Solid layers" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1471 +#: src/slic3r/GUI/Tab.cpp:1475 msgid "Minimum shell thickness" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1482 +#: src/slic3r/GUI/Tab.cpp:1486 msgid "Quality (slower slicing)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1496 +#: src/slic3r/GUI/Tab.cpp:1500 msgid "Fuzzy skin (experimental)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1519 +#: src/slic3r/GUI/Tab.cpp:1523 msgid "Reducing printing time" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1534 src/libslic3r/ExtrusionEntity.cpp:358 +#: src/slic3r/GUI/Tab.cpp:1538 src/libslic3r/ExtrusionEntity.cpp:358 msgid "Skirt" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1556 +#: src/slic3r/GUI/Tab.cpp:1560 msgid "Raft" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1561 +#: src/slic3r/GUI/Tab.cpp:1565 msgid "Options for support material and raft" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1581 +#: src/slic3r/GUI/Tab.cpp:1585 msgid "Speed for print moves" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1594 +#: src/slic3r/GUI/Tab.cpp:1598 msgid "Speed for non-print moves" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1598 +#: src/slic3r/GUI/Tab.cpp:1602 msgid "Modifiers" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1602 +#: src/slic3r/GUI/Tab.cpp:1606 msgid "Acceleration control (advanced)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1610 +#: src/slic3r/GUI/Tab.cpp:1614 msgid "Autospeed (advanced)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1618 +#: src/slic3r/GUI/Tab.cpp:1622 msgid "Multiple Extruders" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1626 +#: src/slic3r/GUI/Tab.cpp:1630 msgid "Ooze prevention" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1646 +#: src/slic3r/GUI/Tab.cpp:1650 msgid "Extrusion width" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1656 +#: src/slic3r/GUI/Tab.cpp:1660 msgid "Overlap" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1659 +#: src/slic3r/GUI/Tab.cpp:1663 msgid "Flow" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1670 +#: src/slic3r/GUI/Tab.cpp:1674 msgid "Other" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1673 src/slic3r/GUI/Tab.cpp:4395 +#: src/slic3r/GUI/Tab.cpp:1677 src/slic3r/GUI/Tab.cpp:4666 msgid "Output options" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1674 +#: src/slic3r/GUI/Tab.cpp:1678 msgid "Sequential printing" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1676 +#: src/slic3r/GUI/Tab.cpp:1680 msgid "Extruder clearance" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1681 src/slic3r/GUI/Tab.cpp:4396 +#: src/slic3r/GUI/Tab.cpp:1685 src/slic3r/GUI/Tab.cpp:4667 msgid "Output file" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1688 src/libslic3r/PrintConfig.cpp:1986 +#: src/slic3r/GUI/Tab.cpp:1692 src/libslic3r/PrintConfig.cpp:1992 msgid "Post-processing scripts" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1700 src/slic3r/GUI/Tab.cpp:1701 -#: src/slic3r/GUI/Tab.cpp:2078 src/slic3r/GUI/Tab.cpp:2079 -#: src/slic3r/GUI/Tab.cpp:2462 src/slic3r/GUI/Tab.cpp:2463 -#: src/slic3r/GUI/Tab.cpp:2534 src/slic3r/GUI/Tab.cpp:2535 -#: src/slic3r/GUI/Tab.cpp:4246 src/slic3r/GUI/Tab.cpp:4247 +#: src/slic3r/GUI/Tab.cpp:1704 +msgid "G-code Substitutions" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:1716 src/slic3r/GUI/Tab.cpp:1717 +#: src/slic3r/GUI/Tab.cpp:2102 src/slic3r/GUI/Tab.cpp:2103 +#: src/slic3r/GUI/Tab.cpp:2489 src/slic3r/GUI/Tab.cpp:2490 +#: src/slic3r/GUI/Tab.cpp:2561 src/slic3r/GUI/Tab.cpp:2562 +#: src/slic3r/GUI/Tab.cpp:4517 src/slic3r/GUI/Tab.cpp:4518 msgid "Notes" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1707 src/slic3r/GUI/Tab.cpp:2086 -#: src/slic3r/GUI/Tab.cpp:2469 src/slic3r/GUI/Tab.cpp:2541 -#: src/slic3r/GUI/Tab.cpp:4254 src/slic3r/GUI/Tab.cpp:4401 +#: src/slic3r/GUI/Tab.cpp:1723 src/slic3r/GUI/Tab.cpp:2110 +#: src/slic3r/GUI/Tab.cpp:2496 src/slic3r/GUI/Tab.cpp:2568 +#: src/slic3r/GUI/Tab.cpp:4525 src/slic3r/GUI/Tab.cpp:4672 msgid "Dependencies" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1708 src/slic3r/GUI/Tab.cpp:2087 -#: src/slic3r/GUI/Tab.cpp:2470 src/slic3r/GUI/Tab.cpp:2542 -#: src/slic3r/GUI/Tab.cpp:4255 src/slic3r/GUI/Tab.cpp:4402 +#: src/slic3r/GUI/Tab.cpp:1724 src/slic3r/GUI/Tab.cpp:2111 +#: src/slic3r/GUI/Tab.cpp:2497 src/slic3r/GUI/Tab.cpp:2569 +#: src/slic3r/GUI/Tab.cpp:4526 src/slic3r/GUI/Tab.cpp:4673 msgid "Profile dependencies" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1746 +#: src/slic3r/GUI/Tab.cpp:1763 msgid "Post processing scripts shall modify G-code file in place." msgstr "" -#: src/slic3r/GUI/Tab.cpp:1818 +#: src/slic3r/GUI/Tab.cpp:1842 #, possible-c-format, possible-boost-format msgid "" "The following line %s contains reserved keywords.\n" @@ -8239,82 +8287,82 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Tab.cpp:1823 +#: src/slic3r/GUI/Tab.cpp:1847 msgid "Found reserved keywords in" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1837 +#: src/slic3r/GUI/Tab.cpp:1861 msgid "Filament Overrides" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1960 +#: src/slic3r/GUI/Tab.cpp:1984 msgid "Nozzle" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1965 +#: src/slic3r/GUI/Tab.cpp:1989 msgid "Bed" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1970 +#: src/slic3r/GUI/Tab.cpp:1994 msgid "Cooling" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1972 src/libslic3r/PrintConfig.cpp:1888 -#: src/libslic3r/PrintConfig.cpp:2938 +#: src/slic3r/GUI/Tab.cpp:1996 src/libslic3r/PrintConfig.cpp:1894 +#: src/libslic3r/PrintConfig.cpp:2944 msgid "Enable" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1983 +#: src/slic3r/GUI/Tab.cpp:2007 msgid "Fan settings" msgstr "" -#: src/slic3r/GUI/Tab.cpp:1994 +#: src/slic3r/GUI/Tab.cpp:2018 msgid "Cooling thresholds" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2000 +#: src/slic3r/GUI/Tab.cpp:2024 msgid "Filament properties" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2007 +#: src/slic3r/GUI/Tab.cpp:2031 msgid "Print speed override" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2017 +#: src/slic3r/GUI/Tab.cpp:2041 msgid "Wipe tower parameters" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2020 +#: src/slic3r/GUI/Tab.cpp:2044 msgid "Toolchange parameters with single extruder MM printers" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2033 +#: src/slic3r/GUI/Tab.cpp:2057 msgid "Ramming settings" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2057 src/slic3r/GUI/Tab.cpp:2374 -#: src/slic3r/GUI/Tab.cpp:3925 src/libslic3r/GCode.cpp:733 -#: src/libslic3r/PrintConfig.cpp:2444 +#: src/slic3r/GUI/Tab.cpp:2081 src/slic3r/GUI/Tab.cpp:2401 +#: src/slic3r/GUI/Tab.cpp:4196 src/libslic3r/GCode.cpp:733 +#: src/libslic3r/PrintConfig.cpp:2450 msgid "Custom G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2058 src/slic3r/GUI/Tab.cpp:2375 -#: src/libslic3r/GCode.cpp:707 src/libslic3r/PrintConfig.cpp:2394 -#: src/libslic3r/PrintConfig.cpp:2409 +#: src/slic3r/GUI/Tab.cpp:2082 src/slic3r/GUI/Tab.cpp:2402 +#: src/libslic3r/GCode.cpp:707 src/libslic3r/PrintConfig.cpp:2400 +#: src/libslic3r/PrintConfig.cpp:2415 msgid "Start G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2068 src/slic3r/GUI/Tab.cpp:2385 +#: src/slic3r/GUI/Tab.cpp:2092 src/slic3r/GUI/Tab.cpp:2412 #: src/libslic3r/GCode.cpp:708 src/libslic3r/PrintConfig.cpp:662 #: src/libslic3r/PrintConfig.cpp:672 msgid "End G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2121 +#: src/slic3r/GUI/Tab.cpp:2145 msgid "Volumetric flow hints not available" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2225 +#: src/slic3r/GUI/Tab.cpp:2249 msgid "" "Note: All parameters from this group are moved to the Physical Printer " "settings (see changelog).\n" @@ -8327,20 +8375,20 @@ msgid "" "physical_printer directory." msgstr "" -#: src/slic3r/GUI/Tab.cpp:2259 src/slic3r/GUI/Tab.cpp:2482 +#: src/slic3r/GUI/Tab.cpp:2283 src/slic3r/GUI/Tab.cpp:2509 msgid "Size and coordinates" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2268 src/slic3r/GUI/UnsavedChangesDialog.cpp:1275 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1663 +#: src/slic3r/GUI/Tab.cpp:2292 src/slic3r/GUI/UnsavedChangesDialog.cpp:1283 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1671 msgid "Capabilities" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2273 +#: src/slic3r/GUI/Tab.cpp:2297 msgid "Number of extruders of the printer." msgstr "" -#: src/slic3r/GUI/Tab.cpp:2302 +#: src/slic3r/GUI/Tab.cpp:2326 msgid "" "Single Extruder Multi Material is selected, \n" "and all extruders must have the same diameter.\n" @@ -8348,171 +8396,171 @@ msgid "" "nozzle diameter value?" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2306 src/slic3r/GUI/Tab.cpp:2743 -#: src/libslic3r/PrintConfig.cpp:1852 +#: src/slic3r/GUI/Tab.cpp:2330 src/slic3r/GUI/Tab.cpp:2772 +#: src/libslic3r/PrintConfig.cpp:1858 msgid "Nozzle diameter" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2395 src/libslic3r/GCode.cpp:709 +#: src/slic3r/GUI/Tab.cpp:2422 src/libslic3r/GCode.cpp:709 #: src/libslic3r/PrintConfig.cpp:402 msgid "Before layer change G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2405 src/libslic3r/GCode.cpp:710 -#: src/libslic3r/PrintConfig.cpp:1578 +#: src/slic3r/GUI/Tab.cpp:2432 src/libslic3r/GCode.cpp:710 +#: src/libslic3r/PrintConfig.cpp:1584 msgid "After layer change G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2415 src/libslic3r/GCode.cpp:711 -#: src/libslic3r/PrintConfig.cpp:2821 +#: src/slic3r/GUI/Tab.cpp:2442 src/libslic3r/GCode.cpp:711 +#: src/libslic3r/PrintConfig.cpp:2827 msgid "Tool change G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2425 src/libslic3r/GCode.cpp:712 +#: src/slic3r/GUI/Tab.cpp:2452 src/libslic3r/GCode.cpp:712 msgid "Between objects G-code (for sequential printing)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2435 src/libslic3r/GCode.cpp:713 +#: src/slic3r/GUI/Tab.cpp:2462 src/libslic3r/GCode.cpp:713 msgid "Color Change G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2444 src/libslic3r/GCode.cpp:714 -#: src/libslic3r/PrintConfig.cpp:2435 +#: src/slic3r/GUI/Tab.cpp:2471 src/libslic3r/GCode.cpp:714 +#: src/libslic3r/PrintConfig.cpp:2441 msgid "Pause Print G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2453 src/libslic3r/GCode.cpp:715 +#: src/slic3r/GUI/Tab.cpp:2480 src/libslic3r/GCode.cpp:715 msgid "Template Custom G-code" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2489 +#: src/slic3r/GUI/Tab.cpp:2516 msgid "Display" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2504 +#: src/slic3r/GUI/Tab.cpp:2531 msgid "Tilt" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2505 +#: src/slic3r/GUI/Tab.cpp:2532 msgid "Tilt time" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2511 src/slic3r/GUI/Tab.cpp:4236 +#: src/slic3r/GUI/Tab.cpp:2538 src/slic3r/GUI/Tab.cpp:4507 msgid "Corrections" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2524 src/slic3r/GUI/Tab.cpp:4232 +#: src/slic3r/GUI/Tab.cpp:2551 src/slic3r/GUI/Tab.cpp:4503 msgid "Exposure" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2585 src/slic3r/GUI/Tab.cpp:2670 -#: src/libslic3r/PrintConfig.cpp:1607 src/libslic3r/PrintConfig.cpp:1642 -#: src/libslic3r/PrintConfig.cpp:1659 src/libslic3r/PrintConfig.cpp:1676 -#: src/libslic3r/PrintConfig.cpp:1692 src/libslic3r/PrintConfig.cpp:1702 -#: src/libslic3r/PrintConfig.cpp:1712 src/libslic3r/PrintConfig.cpp:1725 -#: src/libslic3r/PrintConfig.cpp:1735 +#: src/slic3r/GUI/Tab.cpp:2612 src/slic3r/GUI/Tab.cpp:2699 +#: src/libslic3r/PrintConfig.cpp:1613 src/libslic3r/PrintConfig.cpp:1648 +#: src/libslic3r/PrintConfig.cpp:1665 src/libslic3r/PrintConfig.cpp:1682 +#: src/libslic3r/PrintConfig.cpp:1698 src/libslic3r/PrintConfig.cpp:1708 +#: src/libslic3r/PrintConfig.cpp:1718 src/libslic3r/PrintConfig.cpp:1731 +#: src/libslic3r/PrintConfig.cpp:1741 msgid "Machine limits" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2608 +#: src/slic3r/GUI/Tab.cpp:2635 msgid "Values in this column are for Normal mode" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2614 +#: src/slic3r/GUI/Tab.cpp:2641 msgid "Values in this column are for Stealth mode" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2623 +#: src/slic3r/GUI/Tab.cpp:2650 msgid "Maximum feedrates" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2628 +#: src/slic3r/GUI/Tab.cpp:2655 msgid "Maximum accelerations" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2637 +#: src/slic3r/GUI/Tab.cpp:2664 msgid "Jerk limits" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2642 +#: src/slic3r/GUI/Tab.cpp:2670 msgid "Minimum feedrates" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2695 src/slic3r/GUI/Tab.cpp:2704 +#: src/slic3r/GUI/Tab.cpp:2724 src/slic3r/GUI/Tab.cpp:2733 msgid "Single extruder MM setup" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2705 +#: src/slic3r/GUI/Tab.cpp:2734 msgid "Single extruder multimaterial parameters" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2740 +#: src/slic3r/GUI/Tab.cpp:2769 msgid "" "This is a single extruder multimaterial printer, diameters of all extruders " "will be set to the new value. Do you want to proceed?" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2765 +#: src/slic3r/GUI/Tab.cpp:2794 msgid "Layer height limits" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2770 +#: src/slic3r/GUI/Tab.cpp:2799 msgid "Position (for multi-extruder printers)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2776 +#: src/slic3r/GUI/Tab.cpp:2805 msgid "Only lift Z" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2789 +#: src/slic3r/GUI/Tab.cpp:2818 msgid "" "Retraction when tool is disabled (advanced settings for multi-extruder " "setups)" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2796 +#: src/slic3r/GUI/Tab.cpp:2825 msgid "Reset to Filament Color" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2976 +#: src/slic3r/GUI/Tab.cpp:3005 msgid "" "The Wipe option is not available when using the Firmware Retraction mode.\n" "\n" "Shall I disable it in order to enable Firmware Retraction?" msgstr "" -#: src/slic3r/GUI/Tab.cpp:2978 +#: src/slic3r/GUI/Tab.cpp:3007 msgid "Firmware Retraction" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3279 +#: src/slic3r/GUI/Tab.cpp:3312 msgid "New printer preset selected" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3585 +#: src/slic3r/GUI/Tab.cpp:3618 msgid "Detached" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3652 +#: src/slic3r/GUI/Tab.cpp:3685 msgid "remove" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3652 +#: src/slic3r/GUI/Tab.cpp:3685 msgid "delete" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3661 +#: src/slic3r/GUI/Tab.cpp:3694 msgid "It's a last preset for this physical printer." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3666 +#: src/slic3r/GUI/Tab.cpp:3699 #, possible-boost-format msgid "" "Are you sure you want to delete \"%1%\" preset from the physical printer " "\"%2%\"?" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3678 +#: src/slic3r/GUI/Tab.cpp:3711 msgid "" "The physical printer below is based on the preset, you are going to delete." msgid_plural "" @@ -8520,14 +8568,14 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Tab.cpp:3683 +#: src/slic3r/GUI/Tab.cpp:3716 msgid "Note, that the selected preset will be deleted from this printer too." msgid_plural "" "Note, that the selected preset will be deleted from these printers too." msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Tab.cpp:3688 +#: src/slic3r/GUI/Tab.cpp:3721 msgid "" "The physical printer below is based only on the preset, you are going to " "delete." @@ -8537,7 +8585,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Tab.cpp:3693 +#: src/slic3r/GUI/Tab.cpp:3726 msgid "" "Note, that this printer will be deleted after deleting the selected preset." msgid_plural "" @@ -8545,56 +8593,76 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/Tab.cpp:3698 +#: src/slic3r/GUI/Tab.cpp:3731 #, possible-boost-format msgid "Are you sure you want to %1% the selected preset?" msgstr "" #. TRN Remove/Delete -#: src/slic3r/GUI/Tab.cpp:3703 +#: src/slic3r/GUI/Tab.cpp:3736 #, possible-boost-format msgid "%1% Preset" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3786 src/slic3r/GUI/Tab.cpp:3859 +#: src/slic3r/GUI/Tab.cpp:3819 src/slic3r/GUI/Tab.cpp:4130 msgid "Set" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3953 +#: src/slic3r/GUI/Tab.cpp:3906 +msgid "Plain pattern" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:3906 +msgid "Format" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:3906 +msgid "Params" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:4088 +msgid "Add G-code substitution" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:4094 +msgid "Delete all G-code substitution" +msgstr "" + +#: src/slic3r/GUI/Tab.cpp:4224 msgid "" "Machine limits will be emitted to G-code and used to estimate print time." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3956 +#: src/slic3r/GUI/Tab.cpp:4227 msgid "" "Machine limits will NOT be emitted to G-code, however they will be used to " "estimate print time, which may therefore not be accurate as the printer may " "apply a different set of machine limits." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3960 +#: src/slic3r/GUI/Tab.cpp:4231 msgid "" "Machine limits are not set, therefore the print time estimate may not be " "accurate." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3982 +#: src/slic3r/GUI/Tab.cpp:4253 msgid "LOCKED LOCK" msgstr "" #. TRN Description for "LOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3984 +#: src/slic3r/GUI/Tab.cpp:4255 msgid "" "indicates that the settings are the same as the system (or default) values " "for the current option group" msgstr "" -#: src/slic3r/GUI/Tab.cpp:3986 +#: src/slic3r/GUI/Tab.cpp:4257 msgid "UNLOCKED LOCK" msgstr "" #. TRN Description for "UNLOCKED LOCK" -#: src/slic3r/GUI/Tab.cpp:3988 +#: src/slic3r/GUI/Tab.cpp:4259 msgid "" "indicates that some settings were changed and are not equal to the system " "(or default) values for the current option group.\n" @@ -8602,23 +8670,23 @@ msgid "" "to the system (or default) values." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3993 +#: src/slic3r/GUI/Tab.cpp:4264 msgid "WHITE BULLET" msgstr "" #. TRN Description for "WHITE BULLET" -#: src/slic3r/GUI/Tab.cpp:3995 +#: src/slic3r/GUI/Tab.cpp:4266 msgid "" "for the left button: indicates a non-system (or non-default) preset,\n" "for the right button: indicates that the settings hasn't been modified." msgstr "" -#: src/slic3r/GUI/Tab.cpp:3998 +#: src/slic3r/GUI/Tab.cpp:4269 msgid "BACK ARROW" msgstr "" #. TRN Description for "BACK ARROW" -#: src/slic3r/GUI/Tab.cpp:4000 +#: src/slic3r/GUI/Tab.cpp:4271 msgid "" "indicates that the settings were changed and are not equal to the last saved " "preset for the current option group.\n" @@ -8626,13 +8694,13 @@ msgid "" "to the last saved preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:4010 +#: src/slic3r/GUI/Tab.cpp:4281 msgid "" "LOCKED LOCK icon indicates that the settings are the same as the system (or " "default) values for the current option group" msgstr "" -#: src/slic3r/GUI/Tab.cpp:4012 +#: src/slic3r/GUI/Tab.cpp:4283 msgid "" "UNLOCKED LOCK icon indicates that some settings were changed and are not " "equal to the system (or default) values for the current option group.\n" @@ -8640,17 +8708,17 @@ msgid "" "default) values." msgstr "" -#: src/slic3r/GUI/Tab.cpp:4015 +#: src/slic3r/GUI/Tab.cpp:4286 msgid "WHITE BULLET icon indicates a non system (or non default) preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:4018 +#: src/slic3r/GUI/Tab.cpp:4289 msgid "" "WHITE BULLET icon indicates that the settings are the same as in the last " "saved preset for the current option group." msgstr "" -#: src/slic3r/GUI/Tab.cpp:4020 +#: src/slic3r/GUI/Tab.cpp:4291 msgid "" "BACK ARROW icon indicates that the settings were changed and are not equal " "to the last saved preset for the current option group.\n" @@ -8658,68 +8726,68 @@ msgid "" "preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:4026 +#: src/slic3r/GUI/Tab.cpp:4297 msgid "" "LOCKED LOCK icon indicates that the value is the same as the system (or " "default) value." msgstr "" -#: src/slic3r/GUI/Tab.cpp:4027 +#: src/slic3r/GUI/Tab.cpp:4298 msgid "" "UNLOCKED LOCK icon indicates that the value was changed and is not equal to " "the system (or default) value.\n" "Click to reset current value to the system (or default) value." msgstr "" -#: src/slic3r/GUI/Tab.cpp:4033 +#: src/slic3r/GUI/Tab.cpp:4304 msgid "" "WHITE BULLET icon indicates that the value is the same as in the last saved " "preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:4034 +#: src/slic3r/GUI/Tab.cpp:4305 msgid "" "BACK ARROW icon indicates that the value was changed and is not equal to the " "last saved preset.\n" "Click to reset current value to the last saved preset." msgstr "" -#: src/slic3r/GUI/Tab.cpp:4188 src/slic3r/GUI/Tab.cpp:4190 +#: src/slic3r/GUI/Tab.cpp:4459 src/slic3r/GUI/Tab.cpp:4461 msgid "Material" msgstr "" -#: src/slic3r/GUI/Tab.cpp:4275 src/slic3r/GUI/Tab.cpp:4276 +#: src/slic3r/GUI/Tab.cpp:4546 src/slic3r/GUI/Tab.cpp:4547 msgid "Material printing profile" msgstr "" -#: src/slic3r/GUI/Tab.cpp:4328 +#: src/slic3r/GUI/Tab.cpp:4599 msgid "Support head" msgstr "" -#: src/slic3r/GUI/Tab.cpp:4333 +#: src/slic3r/GUI/Tab.cpp:4604 msgid "Support pillar" msgstr "" -#: src/slic3r/GUI/Tab.cpp:4356 +#: src/slic3r/GUI/Tab.cpp:4627 msgid "Connection of the support sticks and junctions" msgstr "" -#: src/slic3r/GUI/Tab.cpp:4361 +#: src/slic3r/GUI/Tab.cpp:4632 msgid "Automatic generation" msgstr "" -#: src/slic3r/GUI/Tab.cpp:4436 +#: src/slic3r/GUI/Tab.cpp:4707 #, possible-boost-format msgid "" "\"%1%\" is disabled because \"%2%\" is on in \"%3%\" category.\n" "To enable \"%1%\", please switch off \"%2%\"" msgstr "" -#: src/slic3r/GUI/Tab.cpp:4438 src/libslic3r/PrintConfig.cpp:3572 +#: src/slic3r/GUI/Tab.cpp:4709 src/libslic3r/PrintConfig.cpp:3578 msgid "Object elevation" msgstr "" -#: src/slic3r/GUI/Tab.cpp:4438 src/libslic3r/PrintConfig.cpp:3674 +#: src/slic3r/GUI/Tab.cpp:4709 src/libslic3r/PrintConfig.cpp:3680 msgid "Pad around object" msgstr "" @@ -8836,75 +8904,75 @@ msgstr "" msgid "Transfer the selected options to the newly selected preset \"%1%\"." msgstr "" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1214 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1222 msgid "The following preset was modified" msgid_plural "The following presets were modified" msgstr[0] "" msgstr[1] "" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1220 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1228 #, possible-boost-format msgid "Preset \"%1%\" has the following unsaved changes:" msgstr "" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1224 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1232 #, possible-boost-format msgid "" "Preset \"%1%\" is not compatible with the new printer profile and it has the " "following unsaved changes:" msgstr "" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1225 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1233 #, possible-boost-format msgid "" "Preset \"%1%\" is not compatible with the new print profile and it has the " "following unsaved changes:" msgstr "" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1271 -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1659 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1279 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1667 msgid "Extruders count" msgstr "" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1444 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1452 msgid "Select presets to compare" msgstr "" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1493 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1501 msgid "Show all presets (including incompatible)" msgstr "" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1508 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1516 msgid "Left Preset Value" msgstr "" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1509 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1517 msgid "Right Preset Value" msgstr "" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1616 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1624 msgid "One of the presets doesn't found" msgstr "" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1627 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1635 msgid "Compared presets has different printer technology" msgstr "" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1641 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1649 msgid "Presets are the same" msgstr "" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1649 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1657 msgid "" "Presets are different.\n" "Click this button to select the same preset for the right and left preset." msgstr "" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1673 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1681 msgid "Undef category" msgstr "" -#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1673 +#: src/slic3r/GUI/UnsavedChangesDialog.cpp:1681 msgid "Undef group" msgstr "" @@ -9212,7 +9280,7 @@ msgid "Could not get resources to create a new connection" msgstr "" #: src/slic3r/Utils/FixModelByWin10.cpp:221 -#: src/slic3r/Utils/FixModelByWin10.cpp:359 +#: src/slic3r/Utils/FixModelByWin10.cpp:362 msgid "Exporting source model" msgstr "" @@ -9229,45 +9297,45 @@ msgid "Mesh repair failed." msgstr "" #: src/slic3r/Utils/FixModelByWin10.cpp:253 -#: src/slic3r/Utils/FixModelByWin10.cpp:386 +#: src/slic3r/Utils/FixModelByWin10.cpp:389 msgid "Loading repaired model" msgstr "" #: src/slic3r/Utils/FixModelByWin10.cpp:265 #: src/slic3r/Utils/FixModelByWin10.cpp:272 -#: src/slic3r/Utils/FixModelByWin10.cpp:304 +#: src/slic3r/Utils/FixModelByWin10.cpp:303 msgid "Saving mesh into the 3MF container failed." msgstr "" -#: src/slic3r/Utils/FixModelByWin10.cpp:376 +#: src/slic3r/Utils/FixModelByWin10.cpp:379 msgid "Export of a temporary 3mf file failed" msgstr "" -#: src/slic3r/Utils/FixModelByWin10.cpp:392 +#: src/slic3r/Utils/FixModelByWin10.cpp:395 msgid "Import of the repaired 3mf file failed" msgstr "" -#: src/slic3r/Utils/FixModelByWin10.cpp:394 +#: src/slic3r/Utils/FixModelByWin10.cpp:397 msgid "Repaired 3MF file does not contain any object" msgstr "" -#: src/slic3r/Utils/FixModelByWin10.cpp:396 +#: src/slic3r/Utils/FixModelByWin10.cpp:399 msgid "Repaired 3MF file contains more than one object" msgstr "" -#: src/slic3r/Utils/FixModelByWin10.cpp:398 +#: src/slic3r/Utils/FixModelByWin10.cpp:401 msgid "Repaired 3MF file does not contain any volume" msgstr "" -#: src/slic3r/Utils/FixModelByWin10.cpp:400 +#: src/slic3r/Utils/FixModelByWin10.cpp:403 msgid "Repaired 3MF file contains more than one volume" msgstr "" -#: src/slic3r/Utils/FixModelByWin10.cpp:410 +#: src/slic3r/Utils/FixModelByWin10.cpp:413 msgid "Model repair finished" msgstr "" -#: src/slic3r/Utils/FixModelByWin10.cpp:416 +#: src/slic3r/Utils/FixModelByWin10.cpp:419 msgid "Model repair canceled" msgstr "" @@ -9478,11 +9546,11 @@ msgid "" "This may cause problems in g-code visualization and printing time estimation." msgstr "" -#: src/libslic3r/GCode.cpp:1217 src/libslic3r/GCode.cpp:1228 +#: src/libslic3r/GCode.cpp:1236 src/libslic3r/GCode.cpp:1247 msgid "No extrusions were generated for objects." msgstr "" -#: src/libslic3r/GCode.cpp:1426 +#: src/libslic3r/GCode.cpp:1445 msgid "" "Your print is very close to the priming regions. Make sure there is no " "collision." @@ -9666,115 +9734,115 @@ msgstr "" msgid "write calledback failed" msgstr "" -#: src/libslic3r/Print.cpp:446 +#: src/libslic3r/Print.cpp:447 msgid "All objects are outside of the print volume." msgstr "" -#: src/libslic3r/Print.cpp:449 +#: src/libslic3r/Print.cpp:450 msgid "The supplied settings will cause an empty print." msgstr "" -#: src/libslic3r/Print.cpp:453 +#: src/libslic3r/Print.cpp:454 msgid "Some objects are too close; your extruder will collide with them." msgstr "" -#: src/libslic3r/Print.cpp:455 +#: src/libslic3r/Print.cpp:456 msgid "" "Some objects are too tall and cannot be printed without extruder collisions." msgstr "" -#: src/libslic3r/Print.cpp:464 +#: src/libslic3r/Print.cpp:465 msgid "" "Only a single object may be printed at a time in Spiral Vase mode. Either " "remove all but the last object, or enable sequential mode by " "\"complete_objects\"." msgstr "" -#: src/libslic3r/Print.cpp:468 +#: src/libslic3r/Print.cpp:469 msgid "" "The Spiral Vase option can only be used when printing single material " "objects." msgstr "" -#: src/libslic3r/Print.cpp:481 +#: src/libslic3r/Print.cpp:482 msgid "" "The wipe tower is only supported if all extruders have the same nozzle " "diameter and use filaments of the same diameter." msgstr "" -#: src/libslic3r/Print.cpp:487 +#: src/libslic3r/Print.cpp:488 msgid "" "The Wipe Tower is currently only supported for the Marlin, RepRap/Sprinter, " "RepRapFirmware and Repetier G-code flavors." msgstr "" -#: src/libslic3r/Print.cpp:489 +#: src/libslic3r/Print.cpp:490 msgid "" "The Wipe Tower is currently only supported with the relative extruder " "addressing (use_relative_e_distances=1)." msgstr "" -#: src/libslic3r/Print.cpp:491 +#: src/libslic3r/Print.cpp:492 msgid "Ooze prevention is currently not supported with the wipe tower enabled." msgstr "" -#: src/libslic3r/Print.cpp:493 +#: src/libslic3r/Print.cpp:494 msgid "" "The Wipe Tower currently does not support volumetric E (use_volumetric_e=0)." msgstr "" -#: src/libslic3r/Print.cpp:495 +#: src/libslic3r/Print.cpp:496 msgid "" "The Wipe Tower is currently not supported for multimaterial sequential " "prints." msgstr "" -#: src/libslic3r/Print.cpp:516 +#: src/libslic3r/Print.cpp:517 msgid "" "The Wipe Tower is only supported for multiple objects if they have equal " "layer heights" msgstr "" -#: src/libslic3r/Print.cpp:518 +#: src/libslic3r/Print.cpp:519 msgid "" "The Wipe Tower is only supported for multiple objects if they are printed " "over an equal number of raft layers" msgstr "" -#: src/libslic3r/Print.cpp:521 +#: src/libslic3r/Print.cpp:522 msgid "" "The Wipe Tower is only supported for multiple objects if they are printed " "with the same support_material_contact_distance" msgstr "" -#: src/libslic3r/Print.cpp:523 +#: src/libslic3r/Print.cpp:524 msgid "" "The Wipe Tower is only supported for multiple objects if they are sliced " "equally." msgstr "" -#: src/libslic3r/Print.cpp:536 +#: src/libslic3r/Print.cpp:537 msgid "" "The Wipe tower is only supported if all objects have the same variable layer " "height" msgstr "" -#: src/libslic3r/Print.cpp:558 +#: src/libslic3r/Print.cpp:559 msgid "" "One or more object were assigned an extruder that the printer does not have." msgstr "" -#: src/libslic3r/Print.cpp:571 +#: src/libslic3r/Print.cpp:572 #, possible-boost-format msgid "%1%=%2% mm is too low to be printable at a layer height %3% mm" msgstr "" -#: src/libslic3r/Print.cpp:574 +#: src/libslic3r/Print.cpp:575 #, possible-boost-format msgid "Excessive %1%=%2% mm to be printable with a nozzle diameter %3% mm" msgstr "" -#: src/libslic3r/Print.cpp:585 +#: src/libslic3r/Print.cpp:586 msgid "" "Printing with multiple extruders of differing nozzle diameters. If support " "is to be printed with the current extruder (support_material_extruder == 0 " @@ -9782,13 +9850,13 @@ msgid "" "same diameter." msgstr "" -#: src/libslic3r/Print.cpp:593 +#: src/libslic3r/Print.cpp:594 msgid "" "For the Wipe Tower to work with the soluble supports, the support layers " "need to be synchronized with the object layers." msgstr "" -#: src/libslic3r/Print.cpp:597 +#: src/libslic3r/Print.cpp:598 msgid "" "The Wipe Tower currently supports the non-soluble supports only if they are " "printed with the current extruder without triggering a tool change. (both " @@ -9796,27 +9864,27 @@ msgid "" "set to 0)." msgstr "" -#: src/libslic3r/Print.cpp:633 +#: src/libslic3r/Print.cpp:634 msgid "First layer height can't be greater than nozzle diameter" msgstr "" -#: src/libslic3r/Print.cpp:638 +#: src/libslic3r/Print.cpp:639 msgid "Layer height can't be greater than nozzle diameter" msgstr "" -#: src/libslic3r/Print.cpp:792 +#: src/libslic3r/Print.cpp:793 msgid "Infilling layers" msgstr "" -#: src/libslic3r/Print.cpp:814 +#: src/libslic3r/Print.cpp:815 msgid "Generating skirt and brim" msgstr "" -#: src/libslic3r/Print.cpp:862 +#: src/libslic3r/Print.cpp:863 msgid "Exporting G-code" msgstr "" -#: src/libslic3r/Print.cpp:866 +#: src/libslic3r/Print.cpp:867 msgid "Generating G-code" msgstr "" @@ -10086,7 +10154,7 @@ msgstr "" msgid "mm or % (zero to disable)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:392 src/libslic3r/PrintConfig.cpp:2783 +#: src/libslic3r/PrintConfig.cpp:392 src/libslic3r/PrintConfig.cpp:2789 msgid "Other layers" msgstr "" @@ -10151,9 +10219,9 @@ msgstr "" #: src/libslic3r/PrintConfig.cpp:445 src/libslic3r/PrintConfig.cpp:616 #: src/libslic3r/PrintConfig.cpp:1169 src/libslic3r/PrintConfig.cpp:1178 -#: src/libslic3r/PrintConfig.cpp:1372 src/libslic3r/PrintConfig.cpp:1665 -#: src/libslic3r/PrintConfig.cpp:1716 src/libslic3r/PrintConfig.cpp:1727 -#: src/libslic3r/PrintConfig.cpp:1737 src/libslic3r/PrintConfig.cpp:1935 +#: src/libslic3r/PrintConfig.cpp:1378 src/libslic3r/PrintConfig.cpp:1671 +#: src/libslic3r/PrintConfig.cpp:1722 src/libslic3r/PrintConfig.cpp:1733 +#: src/libslic3r/PrintConfig.cpp:1743 src/libslic3r/PrintConfig.cpp:1941 msgid "mm/s²" msgstr "" @@ -10169,10 +10237,10 @@ msgid "" msgstr "" #: src/libslic3r/PrintConfig.cpp:456 src/libslic3r/PrintConfig.cpp:1075 -#: src/libslic3r/PrintConfig.cpp:2226 src/libslic3r/PrintConfig.cpp:2236 -#: src/libslic3r/PrintConfig.cpp:2527 src/libslic3r/PrintConfig.cpp:2768 -#: src/libslic3r/PrintConfig.cpp:2985 src/libslic3r/PrintConfig.cpp:3546 -#: src/libslic3r/PrintConfig.cpp:3667 +#: src/libslic3r/PrintConfig.cpp:2232 src/libslic3r/PrintConfig.cpp:2242 +#: src/libslic3r/PrintConfig.cpp:2533 src/libslic3r/PrintConfig.cpp:2774 +#: src/libslic3r/PrintConfig.cpp:2991 src/libslic3r/PrintConfig.cpp:3552 +#: src/libslic3r/PrintConfig.cpp:3673 msgid "°" msgstr "" @@ -10185,10 +10253,10 @@ msgid "This fan speed is enforced during all bridges and overhangs." msgstr "" #: src/libslic3r/PrintConfig.cpp:464 src/libslic3r/PrintConfig.cpp:1087 -#: src/libslic3r/PrintConfig.cpp:1553 src/libslic3r/PrintConfig.cpp:1745 -#: src/libslic3r/PrintConfig.cpp:1808 src/libslic3r/PrintConfig.cpp:2059 -#: src/libslic3r/PrintConfig.cpp:2118 src/libslic3r/PrintConfig.cpp:3171 -#: src/libslic3r/PrintConfig.cpp:3460 src/libslic3r/PrintConfig.cpp:3586 +#: src/libslic3r/PrintConfig.cpp:1559 src/libslic3r/PrintConfig.cpp:1751 +#: src/libslic3r/PrintConfig.cpp:1814 src/libslic3r/PrintConfig.cpp:2065 +#: src/libslic3r/PrintConfig.cpp:2124 src/libslic3r/PrintConfig.cpp:3177 +#: src/libslic3r/PrintConfig.cpp:3466 src/libslic3r/PrintConfig.cpp:3592 msgid "%" msgstr "" @@ -10216,13 +10284,13 @@ msgstr "" #: src/libslic3r/PrintConfig.cpp:902 src/libslic3r/PrintConfig.cpp:911 #: src/libslic3r/PrintConfig.cpp:919 src/libslic3r/PrintConfig.cpp:946 #: src/libslic3r/PrintConfig.cpp:965 src/libslic3r/PrintConfig.cpp:1306 -#: src/libslic3r/PrintConfig.cpp:1490 src/libslic3r/PrintConfig.cpp:1572 -#: src/libslic3r/PrintConfig.cpp:1648 src/libslic3r/PrintConfig.cpp:1682 -#: src/libslic3r/PrintConfig.cpp:1694 src/libslic3r/PrintConfig.cpp:1704 -#: src/libslic3r/PrintConfig.cpp:1767 src/libslic3r/PrintConfig.cpp:1826 -#: src/libslic3r/PrintConfig.cpp:1966 src/libslic3r/PrintConfig.cpp:2193 -#: src/libslic3r/PrintConfig.cpp:2202 src/libslic3r/PrintConfig.cpp:2733 -#: src/libslic3r/PrintConfig.cpp:2883 src/libslic3r/PrintConfig.cpp:2893 +#: src/libslic3r/PrintConfig.cpp:1496 src/libslic3r/PrintConfig.cpp:1578 +#: src/libslic3r/PrintConfig.cpp:1654 src/libslic3r/PrintConfig.cpp:1688 +#: src/libslic3r/PrintConfig.cpp:1700 src/libslic3r/PrintConfig.cpp:1710 +#: src/libslic3r/PrintConfig.cpp:1773 src/libslic3r/PrintConfig.cpp:1832 +#: src/libslic3r/PrintConfig.cpp:1972 src/libslic3r/PrintConfig.cpp:2199 +#: src/libslic3r/PrintConfig.cpp:2208 src/libslic3r/PrintConfig.cpp:2739 +#: src/libslic3r/PrintConfig.cpp:2889 src/libslic3r/PrintConfig.cpp:2899 msgid "mm/s" msgstr "" @@ -10374,8 +10442,8 @@ msgstr "" msgid "Default print profile" msgstr "" -#: src/libslic3r/PrintConfig.cpp:630 src/libslic3r/PrintConfig.cpp:3390 -#: src/libslic3r/PrintConfig.cpp:3401 +#: src/libslic3r/PrintConfig.cpp:630 src/libslic3r/PrintConfig.cpp:3396 +#: src/libslic3r/PrintConfig.cpp:3407 msgid "" "Default print profile associated with the current printer profile. On " "selection of the current printer profile, this print profile will be " @@ -10446,7 +10514,7 @@ msgid "" msgstr "" #: src/libslic3r/PrintConfig.cpp:704 src/libslic3r/PrintConfig.cpp:1144 -#: src/libslic3r/PrintConfig.cpp:2698 src/libslic3r/PrintConfig.cpp:2715 +#: src/libslic3r/PrintConfig.cpp:2704 src/libslic3r/PrintConfig.cpp:2721 msgid "Rectilinear" msgstr "" @@ -10459,7 +10527,7 @@ msgid "Aligned Rectilinear" msgstr "" #: src/libslic3r/PrintConfig.cpp:707 src/libslic3r/PrintConfig.cpp:1151 -#: src/libslic3r/PrintConfig.cpp:2716 +#: src/libslic3r/PrintConfig.cpp:2722 msgid "Concentric" msgstr "" @@ -10498,11 +10566,11 @@ msgid "" msgstr "" #: src/libslic3r/PrintConfig.cpp:732 src/libslic3r/PrintConfig.cpp:843 -#: src/libslic3r/PrintConfig.cpp:1200 src/libslic3r/PrintConfig.cpp:1397 -#: src/libslic3r/PrintConfig.cpp:1454 src/libslic3r/PrintConfig.cpp:1481 -#: src/libslic3r/PrintConfig.cpp:1955 src/libslic3r/PrintConfig.cpp:2341 -#: src/libslic3r/PrintConfig.cpp:2515 src/libslic3r/PrintConfig.cpp:2604 -#: src/libslic3r/PrintConfig.cpp:2839 +#: src/libslic3r/PrintConfig.cpp:1200 src/libslic3r/PrintConfig.cpp:1403 +#: src/libslic3r/PrintConfig.cpp:1460 src/libslic3r/PrintConfig.cpp:1487 +#: src/libslic3r/PrintConfig.cpp:1961 src/libslic3r/PrintConfig.cpp:2347 +#: src/libslic3r/PrintConfig.cpp:2521 src/libslic3r/PrintConfig.cpp:2610 +#: src/libslic3r/PrintConfig.cpp:2845 msgid "mm or %" msgstr "" @@ -10514,9 +10582,9 @@ msgid "" msgstr "" #: src/libslic3r/PrintConfig.cpp:744 src/libslic3r/PrintConfig.cpp:1222 -#: src/libslic3r/PrintConfig.cpp:1233 src/libslic3r/PrintConfig.cpp:2300 -#: src/libslic3r/PrintConfig.cpp:2353 src/libslic3r/PrintConfig.cpp:2684 -#: src/libslic3r/PrintConfig.cpp:2853 +#: src/libslic3r/PrintConfig.cpp:1233 src/libslic3r/PrintConfig.cpp:2306 +#: src/libslic3r/PrintConfig.cpp:2359 src/libslic3r/PrintConfig.cpp:2690 +#: src/libslic3r/PrintConfig.cpp:2859 msgid "mm/s or %" msgstr "" @@ -10568,7 +10636,7 @@ msgid "Extruder Color" msgstr "" #: src/libslic3r/PrintConfig.cpp:805 src/libslic3r/PrintConfig.cpp:868 -#: src/libslic3r/PrintConfig.cpp:3242 +#: src/libslic3r/PrintConfig.cpp:3248 msgid "This is only used in the Slic3r interface as a visual help." msgstr "" @@ -10640,11 +10708,11 @@ msgid "" "maximum speeds." msgstr "" -#: src/libslic3r/PrintConfig.cpp:860 src/libslic3r/PrintConfig.cpp:2288 +#: src/libslic3r/PrintConfig.cpp:860 src/libslic3r/PrintConfig.cpp:2294 msgid "approximate seconds" msgstr "" -#: src/libslic3r/PrintConfig.cpp:867 src/libslic3r/PrintConfig.cpp:3241 +#: src/libslic3r/PrintConfig.cpp:867 src/libslic3r/PrintConfig.cpp:3247 msgid "Color" msgstr "" @@ -10656,7 +10724,7 @@ msgstr "" msgid "You can put your notes regarding the filament here." msgstr "" -#: src/libslic3r/PrintConfig.cpp:882 src/libslic3r/PrintConfig.cpp:1773 +#: src/libslic3r/PrintConfig.cpp:882 src/libslic3r/PrintConfig.cpp:1779 msgid "Max volumetric speed" msgstr "" @@ -10795,8 +10863,8 @@ msgid "" "average." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1002 src/libslic3r/PrintConfig.cpp:3280 -#: src/libslic3r/PrintConfig.cpp:3281 +#: src/libslic3r/PrintConfig.cpp:1002 src/libslic3r/PrintConfig.cpp:3286 +#: src/libslic3r/PrintConfig.cpp:3287 msgid "Density" msgstr "" @@ -10854,7 +10922,7 @@ msgstr "" msgid "g" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1066 src/libslic3r/PrintConfig.cpp:3385 +#: src/libslic3r/PrintConfig.cpp:1066 src/libslic3r/PrintConfig.cpp:3391 msgid "(Unknown)" msgstr "" @@ -10885,7 +10953,7 @@ msgstr "" msgid "Fill pattern for general low-density infill." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1146 src/libslic3r/PrintConfig.cpp:2747 +#: src/libslic3r/PrintConfig.cpp:1146 src/libslic3r/PrintConfig.cpp:2753 msgid "Grid" msgstr "" @@ -10901,7 +10969,7 @@ msgstr "" msgid "Line" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1152 src/libslic3r/PrintConfig.cpp:2700 +#: src/libslic3r/PrintConfig.cpp:1152 src/libslic3r/PrintConfig.cpp:2706 msgid "Honeycomb" msgstr "" @@ -11104,41 +11172,49 @@ msgid "" msgstr "" #: src/libslic3r/PrintConfig.cpp:1361 -msgid "High extruder current on filament swap" +msgid "G-code substitutions" msgstr "" #: src/libslic3r/PrintConfig.cpp:1362 +msgid "Find / replace patterns in G-code lines and substitute them." +msgstr "" + +#: src/libslic3r/PrintConfig.cpp:1367 +msgid "High extruder current on filament swap" +msgstr "" + +#: src/libslic3r/PrintConfig.cpp:1368 msgid "" "It may be beneficial to increase the extruder motor current during the " "filament exchange sequence to allow for rapid ramming feed rates and to " "overcome resistance when loading a filament with an ugly shaped tip." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1370 +#: src/libslic3r/PrintConfig.cpp:1376 msgid "" "This is the acceleration your printer will use for infill. Set zero to " "disable acceleration control for infill." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1378 +#: src/libslic3r/PrintConfig.cpp:1384 msgid "Combine infill every" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1380 +#: src/libslic3r/PrintConfig.cpp:1386 msgid "" "This feature allows to combine infill and speed up your print by extruding " "thicker infill layers while preserving thin perimeters, thus accuracy." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1383 +#: src/libslic3r/PrintConfig.cpp:1389 msgid "Combine infill every n layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1389 +#: src/libslic3r/PrintConfig.cpp:1395 msgid "Length of the infill anchor" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1391 +#: src/libslic3r/PrintConfig.cpp:1397 msgid "" "Connect an infill line to an internal perimeter with a short segment of an " "additional perimeter. If expressed as percentage (example: 15%) it is " @@ -11151,35 +11227,35 @@ msgid "" "perimeters connected to a single infill line." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1407 +#: src/libslic3r/PrintConfig.cpp:1413 msgid "0 (no open anchors)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1408 src/libslic3r/PrintConfig.cpp:1431 +#: src/libslic3r/PrintConfig.cpp:1414 src/libslic3r/PrintConfig.cpp:1437 msgid "1 mm" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1409 src/libslic3r/PrintConfig.cpp:1432 +#: src/libslic3r/PrintConfig.cpp:1415 src/libslic3r/PrintConfig.cpp:1438 msgid "2 mm" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1410 src/libslic3r/PrintConfig.cpp:1433 +#: src/libslic3r/PrintConfig.cpp:1416 src/libslic3r/PrintConfig.cpp:1439 msgid "5 mm" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1411 src/libslic3r/PrintConfig.cpp:1434 +#: src/libslic3r/PrintConfig.cpp:1417 src/libslic3r/PrintConfig.cpp:1440 msgid "10 mm" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1412 src/libslic3r/PrintConfig.cpp:1435 +#: src/libslic3r/PrintConfig.cpp:1418 src/libslic3r/PrintConfig.cpp:1441 msgid "1000 (unlimited)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1417 +#: src/libslic3r/PrintConfig.cpp:1423 msgid "Maximum length of the infill anchor" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1419 +#: src/libslic3r/PrintConfig.cpp:1425 msgid "" "Connect an infill line to an internal perimeter with a short segment of an " "additional perimeter. If expressed as percentage (example: 15%) it is " @@ -11191,19 +11267,19 @@ msgid "" "parameter. Set this parameter to zero to disable anchoring." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1430 +#: src/libslic3r/PrintConfig.cpp:1436 msgid "0 (not anchored)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1440 +#: src/libslic3r/PrintConfig.cpp:1446 msgid "Infill extruder" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1442 +#: src/libslic3r/PrintConfig.cpp:1448 msgid "The extruder to use when printing infill." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1450 +#: src/libslic3r/PrintConfig.cpp:1456 msgid "" "Set this to a non-zero value to set a manual extrusion width for infill. If " "left zero, default extrusion width will be used if set, otherwise 1.125 x " @@ -11212,32 +11288,32 @@ msgid "" "example 90%) it will be computed over layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1461 +#: src/libslic3r/PrintConfig.cpp:1467 msgid "Infill before perimeters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1462 +#: src/libslic3r/PrintConfig.cpp:1468 msgid "" "This option will switch the print order of perimeters and infill, making the " "latter first." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1467 +#: src/libslic3r/PrintConfig.cpp:1473 msgid "Only infill where needed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1469 +#: src/libslic3r/PrintConfig.cpp:1475 msgid "" "This option will limit infill to the areas actually needed for supporting " "ceilings (it will act as internal support material). If enabled, slows down " "the G-code generation due to the multiple checks involved." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1476 +#: src/libslic3r/PrintConfig.cpp:1482 msgid "Infill/perimeters overlap" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1478 +#: src/libslic3r/PrintConfig.cpp:1484 msgid "" "This setting applies an additional overlap between infill and perimeters for " "better bonding. Theoretically this shouldn't be needed, but backlash might " @@ -11245,84 +11321,84 @@ msgid "" "perimeter extrusion width." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1489 +#: src/libslic3r/PrintConfig.cpp:1495 msgid "Speed for printing the internal fill. Set to zero for auto." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1497 +#: src/libslic3r/PrintConfig.cpp:1503 msgid "Inherits profile" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1498 +#: src/libslic3r/PrintConfig.cpp:1504 msgid "Name of the profile, from which this profile inherits." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1511 +#: src/libslic3r/PrintConfig.cpp:1517 msgid "Interface shells" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1512 +#: src/libslic3r/PrintConfig.cpp:1518 msgid "" "Force the generation of solid shells between adjacent materials/volumes. " "Useful for multi-extruder prints with translucent materials or manual " "soluble support material." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1520 +#: src/libslic3r/PrintConfig.cpp:1526 msgid "Maximum width of a segmented region" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1521 +#: src/libslic3r/PrintConfig.cpp:1527 msgid "Maximum width of a segmented region. Zero disables this feature." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1522 src/libslic3r/PrintConfig.cpp:2133 -#: src/libslic3r/PrintConfig.cpp:2142 +#: src/libslic3r/PrintConfig.cpp:1528 src/libslic3r/PrintConfig.cpp:2139 +#: src/libslic3r/PrintConfig.cpp:2148 msgid "mm (zero to disable)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1529 +#: src/libslic3r/PrintConfig.cpp:1535 msgid "Enable ironing" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1530 +#: src/libslic3r/PrintConfig.cpp:1536 msgid "" "Enable ironing of the top layers with the hot print head for smooth surface" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1536 src/libslic3r/PrintConfig.cpp:1538 +#: src/libslic3r/PrintConfig.cpp:1542 src/libslic3r/PrintConfig.cpp:1544 msgid "Ironing Type" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1543 +#: src/libslic3r/PrintConfig.cpp:1549 msgid "All top surfaces" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1544 +#: src/libslic3r/PrintConfig.cpp:1550 msgid "Topmost surface only" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1545 +#: src/libslic3r/PrintConfig.cpp:1551 msgid "All solid surfaces" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1550 +#: src/libslic3r/PrintConfig.cpp:1556 msgid "Flow rate" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1552 +#: src/libslic3r/PrintConfig.cpp:1558 msgid "Percent of a flow rate relative to object's normal layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1560 +#: src/libslic3r/PrintConfig.cpp:1566 msgid "Spacing between ironing passes" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1562 +#: src/libslic3r/PrintConfig.cpp:1568 msgid "Distance between ironing lines" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1579 +#: src/libslic3r/PrintConfig.cpp:1585 msgid "" "This custom code is inserted at every layer change, right after the Z move " "and before the extruder moves to the first layer point. Note that you can " @@ -11330,11 +11406,11 @@ msgid "" "[layer_z]." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1590 +#: src/libslic3r/PrintConfig.cpp:1596 msgid "Supports remaining times" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1591 +#: src/libslic3r/PrintConfig.cpp:1597 msgid "" "Emit M73 P[percent printed] R[remaining time in minutes] at 1 minute " "intervals into the G-code to let the firmware show accurate remaining time. " @@ -11342,155 +11418,155 @@ msgid "" "firmware supports M73 Qxx Sxx for the silent mode." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1599 +#: src/libslic3r/PrintConfig.cpp:1605 msgid "Supports stealth mode" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1600 +#: src/libslic3r/PrintConfig.cpp:1606 msgid "The firmware supports stealth mode" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1605 +#: src/libslic3r/PrintConfig.cpp:1611 msgid "How to apply limits" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1606 +#: src/libslic3r/PrintConfig.cpp:1612 msgid "Purpose of Machine Limits" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1608 +#: src/libslic3r/PrintConfig.cpp:1614 msgid "How to apply the Machine Limits" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1613 +#: src/libslic3r/PrintConfig.cpp:1619 msgid "Emit to G-code" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1614 +#: src/libslic3r/PrintConfig.cpp:1620 msgid "Use for time estimate" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1615 +#: src/libslic3r/PrintConfig.cpp:1621 msgid "Ignore" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1638 +#: src/libslic3r/PrintConfig.cpp:1644 msgid "Maximum feedrate X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1639 +#: src/libslic3r/PrintConfig.cpp:1645 msgid "Maximum feedrate Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1640 +#: src/libslic3r/PrintConfig.cpp:1646 msgid "Maximum feedrate Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1641 +#: src/libslic3r/PrintConfig.cpp:1647 msgid "Maximum feedrate E" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1644 +#: src/libslic3r/PrintConfig.cpp:1650 msgid "Maximum feedrate of the X axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1645 +#: src/libslic3r/PrintConfig.cpp:1651 msgid "Maximum feedrate of the Y axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1646 +#: src/libslic3r/PrintConfig.cpp:1652 msgid "Maximum feedrate of the Z axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1647 +#: src/libslic3r/PrintConfig.cpp:1653 msgid "Maximum feedrate of the E axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1655 +#: src/libslic3r/PrintConfig.cpp:1661 msgid "Maximum acceleration X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1656 +#: src/libslic3r/PrintConfig.cpp:1662 msgid "Maximum acceleration Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1657 +#: src/libslic3r/PrintConfig.cpp:1663 msgid "Maximum acceleration Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1658 +#: src/libslic3r/PrintConfig.cpp:1664 msgid "Maximum acceleration E" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1661 +#: src/libslic3r/PrintConfig.cpp:1667 msgid "Maximum acceleration of the X axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1662 +#: src/libslic3r/PrintConfig.cpp:1668 msgid "Maximum acceleration of the Y axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1663 +#: src/libslic3r/PrintConfig.cpp:1669 msgid "Maximum acceleration of the Z axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1664 +#: src/libslic3r/PrintConfig.cpp:1670 msgid "Maximum acceleration of the E axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1672 +#: src/libslic3r/PrintConfig.cpp:1678 msgid "Maximum jerk X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1673 +#: src/libslic3r/PrintConfig.cpp:1679 msgid "Maximum jerk Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1674 +#: src/libslic3r/PrintConfig.cpp:1680 msgid "Maximum jerk Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1675 +#: src/libslic3r/PrintConfig.cpp:1681 msgid "Maximum jerk E" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1678 +#: src/libslic3r/PrintConfig.cpp:1684 msgid "Maximum jerk of the X axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1679 +#: src/libslic3r/PrintConfig.cpp:1685 msgid "Maximum jerk of the Y axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1680 +#: src/libslic3r/PrintConfig.cpp:1686 msgid "Maximum jerk of the Z axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1681 +#: src/libslic3r/PrintConfig.cpp:1687 msgid "Maximum jerk of the E axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1691 +#: src/libslic3r/PrintConfig.cpp:1697 msgid "Minimum feedrate when extruding" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1693 +#: src/libslic3r/PrintConfig.cpp:1699 msgid "Minimum feedrate when extruding (M205 S)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1701 +#: src/libslic3r/PrintConfig.cpp:1707 msgid "Minimum travel feedrate" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1703 +#: src/libslic3r/PrintConfig.cpp:1709 msgid "Minimum travel feedrate (M205 T)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1711 +#: src/libslic3r/PrintConfig.cpp:1717 msgid "Maximum acceleration when extruding" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1713 +#: src/libslic3r/PrintConfig.cpp:1719 msgid "" "Maximum acceleration when extruding (M204 P)\n" "\n" @@ -11498,31 +11574,31 @@ msgid "" "(M204 T)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1724 +#: src/libslic3r/PrintConfig.cpp:1730 msgid "Maximum acceleration when retracting" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1726 +#: src/libslic3r/PrintConfig.cpp:1732 msgid "Maximum acceleration when retracting (M204 R)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1734 +#: src/libslic3r/PrintConfig.cpp:1740 msgid "Maximum acceleration for travel moves" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1736 +#: src/libslic3r/PrintConfig.cpp:1742 msgid "Maximum acceleration for travel moves (M204 T)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1743 src/libslic3r/PrintConfig.cpp:1752 +#: src/libslic3r/PrintConfig.cpp:1749 src/libslic3r/PrintConfig.cpp:1758 msgid "Max" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1744 +#: src/libslic3r/PrintConfig.cpp:1750 msgid "This setting represents the maximum speed of your fan." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1753 +#: src/libslic3r/PrintConfig.cpp:1759 msgid "" "This is the highest printable layer height for this extruder, used to cap " "the variable layer height and support layer height. Maximum recommended " @@ -11530,28 +11606,28 @@ msgid "" "adhesion. If set to 0, layer height is limited to 75% of the nozzle diameter." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1763 +#: src/libslic3r/PrintConfig.cpp:1769 msgid "Max print speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1764 +#: src/libslic3r/PrintConfig.cpp:1770 msgid "" "When setting other speed settings to 0 Slic3r will autocalculate the optimal " "speed in order to keep constant extruder pressure. This experimental setting " "is used to set the highest print speed you want to allow." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1774 +#: src/libslic3r/PrintConfig.cpp:1780 msgid "" "This experimental setting is used to set the maximum volumetric speed your " "extruder supports." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1783 +#: src/libslic3r/PrintConfig.cpp:1789 msgid "Max volumetric slope positive" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1784 src/libslic3r/PrintConfig.cpp:1795 +#: src/libslic3r/PrintConfig.cpp:1790 src/libslic3r/PrintConfig.cpp:1801 msgid "" "This experimental setting is used to limit the speed of change in extrusion " "rate. A value of 1.8 mm³/s² ensures, that a change from the extrusion rate " @@ -11559,95 +11635,95 @@ msgid "" "s) to 5.4 mm³/s (feedrate 60 mm/s) will take at least 2 seconds." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1788 src/libslic3r/PrintConfig.cpp:1799 +#: src/libslic3r/PrintConfig.cpp:1794 src/libslic3r/PrintConfig.cpp:1805 msgid "mm³/s²" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1794 +#: src/libslic3r/PrintConfig.cpp:1800 msgid "Max volumetric slope negative" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1806 src/libslic3r/PrintConfig.cpp:1815 +#: src/libslic3r/PrintConfig.cpp:1812 src/libslic3r/PrintConfig.cpp:1821 msgid "Min" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1807 +#: src/libslic3r/PrintConfig.cpp:1813 msgid "This setting represents the minimum PWM your fan needs to work." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1816 +#: src/libslic3r/PrintConfig.cpp:1822 msgid "" "This is the lowest printable layer height for this extruder and limits the " "resolution for variable layer height. Typical values are between 0.05 mm and " "0.1 mm." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1824 +#: src/libslic3r/PrintConfig.cpp:1830 msgid "Min print speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1825 +#: src/libslic3r/PrintConfig.cpp:1831 msgid "Slic3r will not scale speed down below this speed." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1832 +#: src/libslic3r/PrintConfig.cpp:1838 msgid "Minimal filament extrusion length" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1833 +#: src/libslic3r/PrintConfig.cpp:1839 msgid "" "Generate no less than the number of skirt loops required to consume the " "specified amount of filament on the bottom layer. For multi-extruder " "machines, this minimum applies to each extruder." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1842 +#: src/libslic3r/PrintConfig.cpp:1848 msgid "Configuration notes" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1843 +#: src/libslic3r/PrintConfig.cpp:1849 msgid "" "You can put here your personal notes. This text will be added to the G-code " "header comments." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1853 +#: src/libslic3r/PrintConfig.cpp:1859 msgid "" "This is the diameter of your extruder nozzle (for example: 0.5, 0.35 etc.)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1858 +#: src/libslic3r/PrintConfig.cpp:1864 msgid "Host Type" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1859 +#: src/libslic3r/PrintConfig.cpp:1865 msgid "" "Slic3r can upload G-code files to a printer host. This field must contain " "the kind of the host." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1881 +#: src/libslic3r/PrintConfig.cpp:1887 msgid "Only retract when crossing perimeters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1882 +#: src/libslic3r/PrintConfig.cpp:1888 msgid "" "Disables retraction when the travel path does not exceed the upper layer's " "perimeters (and thus any ooze will be probably invisible)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1889 +#: src/libslic3r/PrintConfig.cpp:1895 msgid "" "This option will drop the temperature of the inactive extruders to prevent " "oozing. It will enable a tall skirt automatically and move extruders outside " "such skirt when changing temperatures." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1896 +#: src/libslic3r/PrintConfig.cpp:1902 msgid "Output filename format" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1897 +#: src/libslic3r/PrintConfig.cpp:1903 msgid "" "You can use all configuration options as variables inside this template. For " "example: [layer_height], [fill_density] etc. You can also use [timestamp], " @@ -11655,31 +11731,31 @@ msgid "" "[input_filename], [input_filename_base]." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1906 +#: src/libslic3r/PrintConfig.cpp:1912 msgid "Detect bridging perimeters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1908 +#: src/libslic3r/PrintConfig.cpp:1914 msgid "" "Experimental option to adjust flow for overhangs (bridge flow will be used), " "to apply bridge speed to them and enable fan." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1914 +#: src/libslic3r/PrintConfig.cpp:1920 msgid "Filament parking position" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1915 +#: src/libslic3r/PrintConfig.cpp:1921 msgid "" "Distance of the extruder tip from the position where the filament is parked " "when unloaded. This should match the value in printer firmware." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1923 +#: src/libslic3r/PrintConfig.cpp:1929 msgid "Extra loading distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1924 +#: src/libslic3r/PrintConfig.cpp:1930 msgid "" "When set to zero, the distance the filament is moved from parking position " "during load is exactly the same as it was moved back during unload. When " @@ -11687,27 +11763,27 @@ msgid "" "than unloading." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1932 src/libslic3r/PrintConfig.cpp:1949 -#: src/libslic3r/PrintConfig.cpp:1963 src/libslic3r/PrintConfig.cpp:1973 +#: src/libslic3r/PrintConfig.cpp:1938 src/libslic3r/PrintConfig.cpp:1955 +#: src/libslic3r/PrintConfig.cpp:1969 src/libslic3r/PrintConfig.cpp:1979 msgid "Perimeters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1933 +#: src/libslic3r/PrintConfig.cpp:1939 msgid "" "This is the acceleration your printer will use for perimeters. Set zero to " "disable acceleration control for perimeters." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1940 +#: src/libslic3r/PrintConfig.cpp:1946 msgid "Perimeter extruder" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1942 +#: src/libslic3r/PrintConfig.cpp:1948 msgid "" "The extruder to use when printing perimeters and brim. First extruder is 1." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1951 +#: src/libslic3r/PrintConfig.cpp:1957 msgid "" "Set this to a non-zero value to set a manual extrusion width for perimeters. " "You may want to use thinner extrudates to get more accurate surfaces. If " @@ -11716,12 +11792,12 @@ msgid "" "it will be computed over layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1965 +#: src/libslic3r/PrintConfig.cpp:1971 msgid "" "Speed for perimeters (contours, aka vertical shells). Set to zero for auto." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1975 +#: src/libslic3r/PrintConfig.cpp:1981 msgid "" "This option sets the number of perimeters to generate for each layer. Note " "that Slic3r may increase this number automatically when it detects sloping " @@ -11729,11 +11805,11 @@ msgid "" "Perimeters option is enabled." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1979 +#: src/libslic3r/PrintConfig.cpp:1985 msgid "(minimum)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:1987 +#: src/libslic3r/PrintConfig.cpp:1993 msgid "" "If you want to process the output G-code through custom scripts, just list " "their absolute paths here. Separate multiple scripts with a semicolon. " @@ -11742,90 +11818,90 @@ msgid "" "environment variables." msgstr "" -#: src/libslic3r/PrintConfig.cpp:1999 +#: src/libslic3r/PrintConfig.cpp:2005 msgid "Printer type" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2000 +#: src/libslic3r/PrintConfig.cpp:2006 msgid "Type of the printer." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2005 +#: src/libslic3r/PrintConfig.cpp:2011 msgid "Printer notes" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2006 +#: src/libslic3r/PrintConfig.cpp:2012 msgid "You can put your notes regarding the printer here." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2014 +#: src/libslic3r/PrintConfig.cpp:2020 msgid "Printer vendor" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2015 +#: src/libslic3r/PrintConfig.cpp:2021 msgid "Name of the printer vendor." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2020 +#: src/libslic3r/PrintConfig.cpp:2026 msgid "Printer variant" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2021 +#: src/libslic3r/PrintConfig.cpp:2027 msgid "" "Name of the printer variant. For example, the printer variants may be " "differentiated by a nozzle diameter." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2038 +#: src/libslic3r/PrintConfig.cpp:2044 msgid "Raft contact Z distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2040 +#: src/libslic3r/PrintConfig.cpp:2046 msgid "" "The vertical distance between object and raft. Ignored for soluble interface." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2047 +#: src/libslic3r/PrintConfig.cpp:2053 msgid "Raft expansion" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2049 +#: src/libslic3r/PrintConfig.cpp:2055 msgid "Expansion of the raft in XY plane for better stability." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2056 +#: src/libslic3r/PrintConfig.cpp:2062 msgid "First layer density" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2058 +#: src/libslic3r/PrintConfig.cpp:2064 msgid "Density of the first raft or support layer." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2066 +#: src/libslic3r/PrintConfig.cpp:2072 msgid "First layer expansion" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2068 +#: src/libslic3r/PrintConfig.cpp:2074 msgid "" "Expansion of the first raft or support layer to improve adhesion to print " "bed." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2075 +#: src/libslic3r/PrintConfig.cpp:2081 msgid "Raft layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2077 +#: src/libslic3r/PrintConfig.cpp:2083 msgid "" "The object will be raised by this number of layers, and support material " "will be generated under it." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2085 +#: src/libslic3r/PrintConfig.cpp:2091 msgid "Slice resolution" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2086 +#: src/libslic3r/PrintConfig.cpp:2092 msgid "" "Minimum detail resolution, used to simplify the input file for speeding up " "the slicing job and reducing memory usage. High-resolution models often " @@ -11833,11 +11909,11 @@ msgid "" "simplification and use full resolution from input." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2096 +#: src/libslic3r/PrintConfig.cpp:2102 msgid "G-code resolution" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2097 +#: src/libslic3r/PrintConfig.cpp:2103 msgid "" "Maximum deviation of exported G-code paths from their full resolution " "counterparts. Very high resolution G-code requires huge amount of RAM to " @@ -11848,201 +11924,201 @@ msgid "" "produced." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2108 +#: src/libslic3r/PrintConfig.cpp:2114 msgid "Minimum travel after retraction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2109 +#: src/libslic3r/PrintConfig.cpp:2115 msgid "" "Retraction is not triggered when travel moves are shorter than this length." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2115 +#: src/libslic3r/PrintConfig.cpp:2121 msgid "Retract amount before wipe" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2116 +#: src/libslic3r/PrintConfig.cpp:2122 msgid "" "With bowden extruders, it may be wise to do some amount of quick retract " "before doing the wipe movement." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2123 +#: src/libslic3r/PrintConfig.cpp:2129 msgid "Retract on layer change" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2124 +#: src/libslic3r/PrintConfig.cpp:2130 msgid "This flag enforces a retraction whenever a Z move is done." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2129 src/libslic3r/PrintConfig.cpp:2137 +#: src/libslic3r/PrintConfig.cpp:2135 src/libslic3r/PrintConfig.cpp:2143 msgid "Length" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2130 +#: src/libslic3r/PrintConfig.cpp:2136 msgid "Retraction Length" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2131 +#: src/libslic3r/PrintConfig.cpp:2137 msgid "" "When retraction is triggered, filament is pulled back by the specified " "amount (the length is measured on raw filament, before it enters the " "extruder)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2138 +#: src/libslic3r/PrintConfig.cpp:2144 msgid "Retraction Length (Toolchange)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2139 +#: src/libslic3r/PrintConfig.cpp:2145 msgid "" "When retraction is triggered before changing tool, filament is pulled back " "by the specified amount (the length is measured on raw filament, before it " "enters the extruder)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2147 +#: src/libslic3r/PrintConfig.cpp:2153 msgid "Lift Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2148 +#: src/libslic3r/PrintConfig.cpp:2154 msgid "" "If you set this to a positive value, Z is quickly raised every time a " "retraction is triggered. When using multiple extruders, only the setting for " "the first extruder will be considered." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2155 +#: src/libslic3r/PrintConfig.cpp:2161 msgid "Above Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2156 +#: src/libslic3r/PrintConfig.cpp:2162 msgid "Only lift Z above" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2157 +#: src/libslic3r/PrintConfig.cpp:2163 msgid "" "If you set this to a positive value, Z lift will only take place above the " "specified absolute Z. You can tune this setting for skipping lift on the " "first layers." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2164 +#: src/libslic3r/PrintConfig.cpp:2170 msgid "Below Z" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2165 +#: src/libslic3r/PrintConfig.cpp:2171 msgid "Only lift Z below" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2166 +#: src/libslic3r/PrintConfig.cpp:2172 msgid "" "If you set this to a positive value, Z lift will only take place below the " "specified absolute Z. You can tune this setting for limiting lift to the " "first layers." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2174 src/libslic3r/PrintConfig.cpp:2182 +#: src/libslic3r/PrintConfig.cpp:2180 src/libslic3r/PrintConfig.cpp:2188 msgid "Extra length on restart" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2175 +#: src/libslic3r/PrintConfig.cpp:2181 msgid "" "When the retraction is compensated after the travel move, the extruder will " "push this additional amount of filament. This setting is rarely needed." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2183 +#: src/libslic3r/PrintConfig.cpp:2189 msgid "" "When the retraction is compensated after changing tool, the extruder will " "push this additional amount of filament." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2190 src/libslic3r/PrintConfig.cpp:2191 +#: src/libslic3r/PrintConfig.cpp:2196 src/libslic3r/PrintConfig.cpp:2197 msgid "Retraction Speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2192 +#: src/libslic3r/PrintConfig.cpp:2198 msgid "The speed for retractions (it only applies to the extruder motor)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2198 src/libslic3r/PrintConfig.cpp:2199 +#: src/libslic3r/PrintConfig.cpp:2204 src/libslic3r/PrintConfig.cpp:2205 msgid "Deretraction Speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2200 +#: src/libslic3r/PrintConfig.cpp:2206 msgid "" "The speed for loading of a filament into extruder after retraction (it only " "applies to the extruder motor). If left to zero, the retraction speed is " "used." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2207 +#: src/libslic3r/PrintConfig.cpp:2213 msgid "Seam position" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2209 +#: src/libslic3r/PrintConfig.cpp:2215 msgid "Position of perimeters starting points." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2215 +#: src/libslic3r/PrintConfig.cpp:2221 msgid "Random" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2216 +#: src/libslic3r/PrintConfig.cpp:2222 msgid "Nearest" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2217 +#: src/libslic3r/PrintConfig.cpp:2223 msgid "Aligned" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2225 +#: src/libslic3r/PrintConfig.cpp:2231 msgid "Direction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2227 +#: src/libslic3r/PrintConfig.cpp:2233 msgid "Preferred direction of the seam" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2228 +#: src/libslic3r/PrintConfig.cpp:2234 msgid "Seam preferred direction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2235 +#: src/libslic3r/PrintConfig.cpp:2241 msgid "Jitter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2237 +#: src/libslic3r/PrintConfig.cpp:2243 msgid "Seam preferred direction jitter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2238 +#: src/libslic3r/PrintConfig.cpp:2244 msgid "Preferred direction of the seam - jitter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2245 +#: src/libslic3r/PrintConfig.cpp:2251 msgid "Distance from brim/object" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2246 +#: src/libslic3r/PrintConfig.cpp:2252 msgid "" "Distance between skirt and brim (when draft shield is not used) or objects." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2252 +#: src/libslic3r/PrintConfig.cpp:2258 msgid "Skirt height" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2253 +#: src/libslic3r/PrintConfig.cpp:2259 msgid "Height of skirt expressed in layers." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2259 +#: src/libslic3r/PrintConfig.cpp:2265 msgid "Draft shield" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2260 +#: src/libslic3r/PrintConfig.cpp:2266 msgid "" "With draft shield active, the skirt will be printed skirt_distance from the " "object, possibly intersecting brim.\n" @@ -12052,81 +12128,81 @@ msgid "" "from print bed due to wind draft." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2268 +#: src/libslic3r/PrintConfig.cpp:2274 msgid "Disabled" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2269 +#: src/libslic3r/PrintConfig.cpp:2275 msgid "Limited" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2270 +#: src/libslic3r/PrintConfig.cpp:2276 msgid "Enabled" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2275 +#: src/libslic3r/PrintConfig.cpp:2281 msgid "Loops (minimum)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2276 +#: src/libslic3r/PrintConfig.cpp:2282 msgid "Skirt Loops" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2277 +#: src/libslic3r/PrintConfig.cpp:2283 msgid "" "Number of loops for the skirt. If the Minimum Extrusion Length option is " "set, the number of loops might be greater than the one configured here. Set " "this to zero to disable skirt completely." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2285 +#: src/libslic3r/PrintConfig.cpp:2291 msgid "Slow down if layer print time is below" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2286 +#: src/libslic3r/PrintConfig.cpp:2292 msgid "" "If layer print time is estimated below this number of seconds, print moves " "speed will be scaled down to extend duration to this value." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2295 +#: src/libslic3r/PrintConfig.cpp:2301 msgid "Small perimeters" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2297 +#: src/libslic3r/PrintConfig.cpp:2303 msgid "" "This separate setting will affect the speed of perimeters having radius <= " "6.5mm (usually holes). If expressed as percentage (for example: 80%) it will " "be calculated on the perimeters speed setting above. Set to zero for auto." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2307 +#: src/libslic3r/PrintConfig.cpp:2313 msgid "Solid infill threshold area" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2309 +#: src/libslic3r/PrintConfig.cpp:2315 msgid "" "Force solid infill for regions having a smaller area than the specified " "threshold." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2310 +#: src/libslic3r/PrintConfig.cpp:2316 msgid "mm²" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2316 +#: src/libslic3r/PrintConfig.cpp:2322 msgid "Solid infill extruder" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2318 +#: src/libslic3r/PrintConfig.cpp:2324 msgid "The extruder to use when printing solid infill." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2324 +#: src/libslic3r/PrintConfig.cpp:2330 msgid "Solid infill every" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2326 +#: src/libslic3r/PrintConfig.cpp:2332 msgid "" "This feature allows to force a solid layer every given number of layers. " "Zero to disable. You can set this to any value (for example 9999); Slic3r " @@ -12134,7 +12210,7 @@ msgid "" "according to nozzle diameter and layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2338 +#: src/libslic3r/PrintConfig.cpp:2344 msgid "" "Set this to a non-zero value to set a manual extrusion width for infill for " "solid surfaces. If left zero, default extrusion width will be used if set, " @@ -12142,26 +12218,26 @@ msgid "" "(for example 90%) it will be computed over layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2350 +#: src/libslic3r/PrintConfig.cpp:2356 msgid "" "Speed for printing solid regions (top/bottom/internal horizontal shells). " "This can be expressed as a percentage (for example: 80%) over the default " "infill speed above. Set to zero for auto." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2362 +#: src/libslic3r/PrintConfig.cpp:2368 msgid "Number of solid layers to generate on top and bottom surfaces." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2368 src/libslic3r/PrintConfig.cpp:2369 +#: src/libslic3r/PrintConfig.cpp:2374 src/libslic3r/PrintConfig.cpp:2375 msgid "Minimum thickness of a top / bottom shell" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2375 +#: src/libslic3r/PrintConfig.cpp:2381 msgid "Spiral vase" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2376 +#: src/libslic3r/PrintConfig.cpp:2382 msgid "" "This feature will raise Z gradually while printing a single-walled object in " "order to remove any visible seam. This option requires a single perimeter, " @@ -12170,18 +12246,18 @@ msgid "" "when printing more than one single object." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2384 +#: src/libslic3r/PrintConfig.cpp:2390 msgid "Temperature variation" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2385 +#: src/libslic3r/PrintConfig.cpp:2391 msgid "" "Temperature difference to be applied when an extruder is not active. Enables " "a full-height \"sacrificial\" skirt on which the nozzles are periodically " "wiped." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2395 +#: src/libslic3r/PrintConfig.cpp:2401 msgid "" "This start procedure is inserted at the beginning, after bed has reached the " "target temperature and extruder just started heating, and before extruder " @@ -12192,7 +12268,7 @@ msgid "" "put a \"M109 S[first_layer_temperature]\" command wherever you want." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2410 +#: src/libslic3r/PrintConfig.cpp:2416 msgid "" "This start procedure is inserted at the beginning, after any printer start " "gcode (and after any toolchange to this filament in case of multi-material " @@ -12205,45 +12281,45 @@ msgid "" "extruders, the gcode is processed in extruder order." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2426 +#: src/libslic3r/PrintConfig.cpp:2432 msgid "Color change G-code" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2427 +#: src/libslic3r/PrintConfig.cpp:2433 msgid "This G-code will be used as a code for the color change" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2436 +#: src/libslic3r/PrintConfig.cpp:2442 msgid "This G-code will be used as a code for the pause print" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2445 +#: src/libslic3r/PrintConfig.cpp:2451 msgid "This G-code will be used as a custom code" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2453 +#: src/libslic3r/PrintConfig.cpp:2459 msgid "Single Extruder Multi Material" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2454 +#: src/libslic3r/PrintConfig.cpp:2460 msgid "The printer multiplexes filaments into a single hot end." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2459 +#: src/libslic3r/PrintConfig.cpp:2465 msgid "Prime all printing extruders" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2460 +#: src/libslic3r/PrintConfig.cpp:2466 msgid "" "If enabled, all printing extruders will be primed at the front edge of the " "print bed at the start of the print." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2465 +#: src/libslic3r/PrintConfig.cpp:2471 msgid "No sparse layers (EXPERIMENTAL)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2466 +#: src/libslic3r/PrintConfig.cpp:2472 msgid "" "If enabled, the wipe tower will not be printed on layers with no " "toolchanges. On layers with a toolchange, extruder will travel downward to " @@ -12251,112 +12327,112 @@ msgid "" "with the print." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2473 +#: src/libslic3r/PrintConfig.cpp:2479 msgid "Slice gap closing radius" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2475 +#: src/libslic3r/PrintConfig.cpp:2481 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 "" -#: src/libslic3r/PrintConfig.cpp:2483 +#: src/libslic3r/PrintConfig.cpp:2489 msgid "Slicing Mode" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2485 +#: src/libslic3r/PrintConfig.cpp:2491 msgid "" "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to " "close all holes in the model." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2490 +#: src/libslic3r/PrintConfig.cpp:2496 msgid "Regular" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2491 +#: src/libslic3r/PrintConfig.cpp:2497 msgid "Even-odd" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2492 +#: src/libslic3r/PrintConfig.cpp:2498 msgid "Close holes" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2497 +#: src/libslic3r/PrintConfig.cpp:2503 msgid "Generate support material" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2499 +#: src/libslic3r/PrintConfig.cpp:2505 msgid "Enable support material generation." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2503 +#: src/libslic3r/PrintConfig.cpp:2509 msgid "Auto generated supports" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2505 +#: src/libslic3r/PrintConfig.cpp:2511 msgid "" "If checked, supports will be generated automatically based on the overhang " "threshold value. If unchecked, supports will be generated inside the " "\"Support Enforcer\" volumes only." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2511 +#: src/libslic3r/PrintConfig.cpp:2517 msgid "XY separation between an object and its support" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2513 +#: src/libslic3r/PrintConfig.cpp:2519 msgid "" "XY separation between an object and its support. If expressed as percentage " "(for example 50%), it will be calculated over external perimeter width." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2524 +#: src/libslic3r/PrintConfig.cpp:2530 msgid "Pattern angle" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2526 +#: src/libslic3r/PrintConfig.cpp:2532 msgid "" "Use this setting to rotate the support material pattern on the horizontal " "plane." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2536 src/libslic3r/PrintConfig.cpp:3495 +#: src/libslic3r/PrintConfig.cpp:2542 src/libslic3r/PrintConfig.cpp:3501 msgid "" "Only create support if it lies on a build plate. Don't create support on a " "print." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2542 +#: src/libslic3r/PrintConfig.cpp:2548 msgid "Top contact Z distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2544 +#: src/libslic3r/PrintConfig.cpp:2550 msgid "" "The vertical distance between object and support material interface. Setting " "this to 0 will also prevent Slic3r from using bridge flow and speed for the " "first object layer." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2552 +#: src/libslic3r/PrintConfig.cpp:2558 msgid "0 (soluble)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2553 +#: src/libslic3r/PrintConfig.cpp:2559 msgid "0.1 (detachable)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2554 +#: src/libslic3r/PrintConfig.cpp:2560 msgid "0.2 (detachable)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2560 +#: src/libslic3r/PrintConfig.cpp:2566 msgid "Bottom contact Z distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2562 +#: src/libslic3r/PrintConfig.cpp:2568 msgid "" "The vertical distance between the object top surface and the support " "material interface. If set to zero, support_material_contact_distance will " @@ -12365,15 +12441,15 @@ msgstr "" #. TRN To be shown in Print Settings "Bottom contact Z distance". Have to be as short as possible #. TRN To be shown in Print Settings "Bottom interface layers". Have to be as short as possible -#: src/libslic3r/PrintConfig.cpp:2570 src/libslic3r/PrintConfig.cpp:2655 +#: src/libslic3r/PrintConfig.cpp:2576 src/libslic3r/PrintConfig.cpp:2661 msgid "Same as top" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2577 +#: src/libslic3r/PrintConfig.cpp:2583 msgid "Enforce support for the first" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2579 +#: src/libslic3r/PrintConfig.cpp:2585 msgid "" "Generate support material for the specified number of layers counting from " "bottom, regardless of whether normal support material is enabled or not and " @@ -12381,21 +12457,21 @@ msgid "" "of objects having a very thin or poor footprint on the build plate." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2584 +#: src/libslic3r/PrintConfig.cpp:2590 msgid "Enforce support for the first n layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2590 +#: src/libslic3r/PrintConfig.cpp:2596 msgid "Support material/raft/skirt extruder" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2592 +#: src/libslic3r/PrintConfig.cpp:2598 msgid "" "The extruder to use when printing support material, raft and skirt (1+, 0 to " "use the current extruder to minimize tool changes)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2601 +#: src/libslic3r/PrintConfig.cpp:2607 msgid "" "Set this to a non-zero value to set a manual extrusion width for support " "material. If left zero, default extrusion width will be used if set, " @@ -12403,151 +12479,151 @@ msgid "" "example 90%) it will be computed over layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2611 +#: src/libslic3r/PrintConfig.cpp:2617 msgid "Interface loops" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2613 +#: src/libslic3r/PrintConfig.cpp:2619 msgid "" "Cover the top contact layer of the supports with loops. Disabled by default." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2618 +#: src/libslic3r/PrintConfig.cpp:2624 msgid "Support material/raft interface extruder" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2620 +#: src/libslic3r/PrintConfig.cpp:2626 msgid "" "The extruder to use when printing support material interface (1+, 0 to use " "the current extruder to minimize tool changes). This affects raft too." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2628 +#: src/libslic3r/PrintConfig.cpp:2634 msgid "Top interface layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2630 +#: src/libslic3r/PrintConfig.cpp:2636 msgid "" "Number of interface layers to insert between the object(s) and support " "material." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2637 +#: src/libslic3r/PrintConfig.cpp:2643 msgid "0 (off)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2638 +#: src/libslic3r/PrintConfig.cpp:2644 msgid "1 (light)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2639 +#: src/libslic3r/PrintConfig.cpp:2645 msgid "2 (default)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2640 +#: src/libslic3r/PrintConfig.cpp:2646 msgid "3 (heavy)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2646 +#: src/libslic3r/PrintConfig.cpp:2652 msgid "Bottom interface layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2648 +#: src/libslic3r/PrintConfig.cpp:2654 msgid "" "Number of interface layers to insert between the object(s) and support " "material. Set to -1 to use support_material_interface_layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2661 +#: src/libslic3r/PrintConfig.cpp:2667 msgid "Closing radius" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2663 +#: src/libslic3r/PrintConfig.cpp:2669 msgid "" "For snug supports, the support regions will be merged using morphological " "closing operation. Gaps smaller than the closing radius will be filled in." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2671 +#: src/libslic3r/PrintConfig.cpp:2677 msgid "Interface pattern spacing" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2673 +#: src/libslic3r/PrintConfig.cpp:2679 msgid "Spacing between interface lines. Set zero to get a solid interface." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2682 +#: src/libslic3r/PrintConfig.cpp:2688 msgid "" "Speed for printing support material interface layers. If expressed as " "percentage (for example 50%) it will be calculated over support material " "speed." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2691 +#: src/libslic3r/PrintConfig.cpp:2697 msgid "Pattern" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2693 +#: src/libslic3r/PrintConfig.cpp:2699 msgid "Pattern used to generate support material." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2699 +#: src/libslic3r/PrintConfig.cpp:2705 msgid "Rectilinear grid" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2705 +#: src/libslic3r/PrintConfig.cpp:2711 msgid "Interface pattern" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2707 +#: src/libslic3r/PrintConfig.cpp:2713 msgid "" "Pattern used to generate support material interface. Default pattern for non-" "soluble support interface is Rectilinear, while default pattern for soluble " "support interface is Concentric." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2721 +#: src/libslic3r/PrintConfig.cpp:2727 msgid "Pattern spacing" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2723 +#: src/libslic3r/PrintConfig.cpp:2729 msgid "Spacing between support material lines." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2732 +#: src/libslic3r/PrintConfig.cpp:2738 msgid "Speed for printing support material." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2739 +#: src/libslic3r/PrintConfig.cpp:2745 msgid "Style" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2741 +#: src/libslic3r/PrintConfig.cpp:2747 msgid "" "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." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2748 +#: src/libslic3r/PrintConfig.cpp:2754 msgid "Snug" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2753 +#: src/libslic3r/PrintConfig.cpp:2759 msgid "Synchronize with object layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2755 +#: src/libslic3r/PrintConfig.cpp:2761 msgid "" "Synchronize support layers with the object print layers. This is useful with " "multi-material printers, where the extruder switch is expensive." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2761 +#: src/libslic3r/PrintConfig.cpp:2767 msgid "Overhang threshold" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2763 +#: src/libslic3r/PrintConfig.cpp:2769 msgid "" "Support material will not be generated for overhangs whose slope angle (90° " "= vertical) is above the given threshold. In other words, this value " @@ -12556,58 +12632,58 @@ msgid "" "detection (recommended)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2775 +#: src/libslic3r/PrintConfig.cpp:2781 msgid "With sheath around the support" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2777 +#: src/libslic3r/PrintConfig.cpp:2783 msgid "" "Add a sheath (a single perimeter line) around the base support. This makes " "the support more reliable, but also more difficult to remove." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2784 +#: src/libslic3r/PrintConfig.cpp:2790 msgid "" "Nozzle temperature for layers after the first one. Set this to zero to " "disable temperature control commands in the output G-code." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2787 +#: src/libslic3r/PrintConfig.cpp:2793 msgid "Nozzle temperature" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2793 +#: src/libslic3r/PrintConfig.cpp:2799 msgid "Thick bridges" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2795 +#: src/libslic3r/PrintConfig.cpp:2801 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 "" -#: src/libslic3r/PrintConfig.cpp:2801 +#: src/libslic3r/PrintConfig.cpp:2807 msgid "Detect thin walls" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2803 +#: src/libslic3r/PrintConfig.cpp:2809 msgid "" "Detect single-width walls (parts where two extrusions don't fit and we need " "to collapse them into a single trace)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2809 +#: src/libslic3r/PrintConfig.cpp:2815 msgid "Threads" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2810 +#: src/libslic3r/PrintConfig.cpp:2816 msgid "" "Threads are used to parallelize long-running tasks. Optimal threads number " "is slightly above the number of available cores/processors." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2822 +#: src/libslic3r/PrintConfig.cpp:2828 msgid "" "This custom code is inserted before every toolchange. Placeholder variables " "for all PrusaSlicer settings as well as {toolchange_z}, {previous_extruder} " @@ -12617,7 +12693,7 @@ msgid "" "behaviour both before and after the toolchange." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2835 +#: src/libslic3r/PrintConfig.cpp:2841 msgid "" "Set this to a non-zero value to set a manual extrusion width for infill for " "top surfaces. You may want to use thinner extrudates to fill all narrow " @@ -12626,7 +12702,7 @@ msgid "" "percentage (for example 90%) it will be computed over layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2848 +#: src/libslic3r/PrintConfig.cpp:2854 msgid "" "Speed for printing top solid layers (it only applies to the uppermost " "external layers and not to their internal solid layers). You may want to " @@ -12635,65 +12711,65 @@ msgid "" "for auto." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2863 +#: src/libslic3r/PrintConfig.cpp:2869 msgid "Number of solid layers to generate on top surfaces." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2864 +#: src/libslic3r/PrintConfig.cpp:2870 msgid "Top solid layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2872 +#: src/libslic3r/PrintConfig.cpp:2878 msgid "" "The number of top solid layers is increased above top_solid_layers if " "necessary to satisfy minimum thickness of top shell. This is useful to " "prevent pillowing effect when printing with variable layer height." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2875 +#: src/libslic3r/PrintConfig.cpp:2881 msgid "Minimum top shell thickness" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2882 +#: src/libslic3r/PrintConfig.cpp:2888 msgid "Speed for travel moves (jumps between distant extrusion points)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2890 +#: src/libslic3r/PrintConfig.cpp:2896 msgid "Z travel" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2891 +#: src/libslic3r/PrintConfig.cpp:2897 msgid "" "Speed for movements along the Z axis.\n" "When set to zero, the value is ignored and regular travel speed is used " "instead." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2899 +#: src/libslic3r/PrintConfig.cpp:2905 msgid "Use firmware retraction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2900 +#: src/libslic3r/PrintConfig.cpp:2906 msgid "" "This experimental setting uses G10 and G11 commands to have the firmware " "handle the retraction. This is only supported in recent Marlin." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2906 +#: src/libslic3r/PrintConfig.cpp:2912 msgid "Use relative E distances" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2907 +#: src/libslic3r/PrintConfig.cpp:2913 msgid "" "If your firmware requires relative E values, check this, otherwise leave it " "unchecked. Most firmwares use absolute values." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2913 +#: src/libslic3r/PrintConfig.cpp:2919 msgid "Use volumetric E" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2914 +#: src/libslic3r/PrintConfig.cpp:2920 msgid "" "This experimental setting uses outputs the E values in cubic millimeters " "instead of linear millimeters. If your firmware doesn't already know " @@ -12703,131 +12779,131 @@ msgid "" "only supported in recent Marlin." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2924 +#: src/libslic3r/PrintConfig.cpp:2930 msgid "Enable variable layer height feature" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2925 +#: src/libslic3r/PrintConfig.cpp:2931 msgid "" "Some printers or printer setups may have difficulties printing with a " "variable layer height. Enabled by default." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2931 +#: src/libslic3r/PrintConfig.cpp:2937 msgid "Wipe while retracting" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2932 +#: src/libslic3r/PrintConfig.cpp:2938 msgid "" "This flag will move the nozzle while retracting to minimize the possible " "blob on leaky extruders." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2939 +#: src/libslic3r/PrintConfig.cpp:2945 msgid "" "Multi material printers may need to prime or purge extruders on tool " "changes. Extrude the excess material into the wipe tower." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2945 +#: src/libslic3r/PrintConfig.cpp:2951 msgid "Purging volumes - load/unload volumes" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2946 +#: src/libslic3r/PrintConfig.cpp:2952 msgid "" "This vector saves required volumes to change from/to each tool used on the " "wipe tower. These values are used to simplify creation of the full purging " "volumes below." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2952 +#: src/libslic3r/PrintConfig.cpp:2958 msgid "Purging volumes - matrix" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2953 +#: src/libslic3r/PrintConfig.cpp:2959 msgid "" "This matrix describes volumes (in cubic milimetres) required to purge the " "new filament on the wipe tower for any given pair of tools." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2962 +#: src/libslic3r/PrintConfig.cpp:2968 msgid "Position X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2963 +#: src/libslic3r/PrintConfig.cpp:2969 msgid "X coordinate of the left front corner of a wipe tower" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2969 +#: src/libslic3r/PrintConfig.cpp:2975 msgid "Position Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2970 +#: src/libslic3r/PrintConfig.cpp:2976 msgid "Y coordinate of the left front corner of a wipe tower" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2977 +#: src/libslic3r/PrintConfig.cpp:2983 msgid "Width of a wipe tower" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2983 +#: src/libslic3r/PrintConfig.cpp:2989 msgid "Wipe tower rotation angle" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2984 +#: src/libslic3r/PrintConfig.cpp:2990 msgid "Wipe tower rotation angle with respect to x-axis." msgstr "" -#: src/libslic3r/PrintConfig.cpp:2990 src/libslic3r/PrintConfig.cpp:2991 +#: src/libslic3r/PrintConfig.cpp:2996 src/libslic3r/PrintConfig.cpp:2997 msgid "Wipe tower brim width" msgstr "" -#: src/libslic3r/PrintConfig.cpp:2999 +#: src/libslic3r/PrintConfig.cpp:3005 msgid "Wipe into this object's infill" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3000 +#: src/libslic3r/PrintConfig.cpp:3006 msgid "" "Purging after toolchange will be done inside this object's infills. This " "lowers the amount of waste but may result in longer print time due to " "additional travel moves." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3007 +#: src/libslic3r/PrintConfig.cpp:3013 msgid "Wipe into this object" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3008 +#: src/libslic3r/PrintConfig.cpp:3014 msgid "" "Object will be used to purge the nozzle after a toolchange to save material " "that would otherwise end up in the wipe tower and decrease print time. " "Colours of the objects will be mixed as a result." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3014 +#: src/libslic3r/PrintConfig.cpp:3020 msgid "Maximal bridging distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3015 +#: src/libslic3r/PrintConfig.cpp:3021 msgid "Maximal distance between supports on sparse infill sections." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3021 +#: src/libslic3r/PrintConfig.cpp:3027 msgid "XY Size Compensation" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3023 +#: src/libslic3r/PrintConfig.cpp:3029 msgid "" "The object will be grown/shrunk in the XY plane by the configured value " "(negative = inwards, positive = outwards). This might be useful for fine-" "tuning hole sizes." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3031 +#: src/libslic3r/PrintConfig.cpp:3037 msgid "Z offset" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3032 +#: src/libslic3r/PrintConfig.cpp:3038 msgid "" "This value will be added (or subtracted) from all the Z coordinates in the " "output G-code. It is used to compensate for bad Z endstop position: for " @@ -12835,450 +12911,450 @@ msgid "" "print bed, set this to -0.3 (or fix your endstop)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3099 +#: src/libslic3r/PrintConfig.cpp:3105 msgid "Display width" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3100 +#: src/libslic3r/PrintConfig.cpp:3106 msgid "Width of the display" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3105 +#: src/libslic3r/PrintConfig.cpp:3111 msgid "Display height" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3106 +#: src/libslic3r/PrintConfig.cpp:3112 msgid "Height of the display" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3111 +#: src/libslic3r/PrintConfig.cpp:3117 msgid "Number of pixels in" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3113 +#: src/libslic3r/PrintConfig.cpp:3119 msgid "Number of pixels in X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3119 +#: src/libslic3r/PrintConfig.cpp:3125 msgid "Number of pixels in Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3124 +#: src/libslic3r/PrintConfig.cpp:3130 msgid "Display horizontal mirroring" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3125 +#: src/libslic3r/PrintConfig.cpp:3131 msgid "Mirror horizontally" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3126 +#: src/libslic3r/PrintConfig.cpp:3132 msgid "Enable horizontal mirroring of output images" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3131 +#: src/libslic3r/PrintConfig.cpp:3137 msgid "Display vertical mirroring" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3132 +#: src/libslic3r/PrintConfig.cpp:3138 msgid "Mirror vertically" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3133 +#: src/libslic3r/PrintConfig.cpp:3139 msgid "Enable vertical mirroring of output images" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3138 +#: src/libslic3r/PrintConfig.cpp:3144 msgid "Display orientation" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3139 +#: src/libslic3r/PrintConfig.cpp:3145 msgid "" "Set the actual LCD display orientation inside the SLA printer. Portrait mode " "will flip the meaning of display width and height parameters and the output " "images will be rotated by 90 degrees." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3145 +#: src/libslic3r/PrintConfig.cpp:3151 msgid "Landscape" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3146 +#: src/libslic3r/PrintConfig.cpp:3152 msgid "Portrait" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3151 src/libslic3r/PrintConfig.cpp:3776 +#: src/libslic3r/PrintConfig.cpp:3157 src/libslic3r/PrintConfig.cpp:3782 msgid "Fast" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3152 +#: src/libslic3r/PrintConfig.cpp:3158 msgid "Fast tilt" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3153 +#: src/libslic3r/PrintConfig.cpp:3159 msgid "Time of the fast tilt" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3160 src/libslic3r/PrintConfig.cpp:3775 +#: src/libslic3r/PrintConfig.cpp:3166 src/libslic3r/PrintConfig.cpp:3781 msgid "Slow" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3161 +#: src/libslic3r/PrintConfig.cpp:3167 msgid "Slow tilt" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3162 +#: src/libslic3r/PrintConfig.cpp:3168 msgid "Time of the slow tilt" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3169 +#: src/libslic3r/PrintConfig.cpp:3175 msgid "Area fill" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3170 +#: src/libslic3r/PrintConfig.cpp:3176 msgid "" "The percentage of the bed area. \n" "If the print area exceeds the specified value, \n" "then a slow tilt will be used, otherwise - a fast tilt" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3177 src/libslic3r/PrintConfig.cpp:3178 -#: src/libslic3r/PrintConfig.cpp:3179 +#: src/libslic3r/PrintConfig.cpp:3183 src/libslic3r/PrintConfig.cpp:3184 +#: src/libslic3r/PrintConfig.cpp:3185 msgid "Printer scaling correction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3185 src/libslic3r/PrintConfig.cpp:3187 +#: src/libslic3r/PrintConfig.cpp:3191 src/libslic3r/PrintConfig.cpp:3193 msgid "Printer scaling correction in X axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3186 +#: src/libslic3r/PrintConfig.cpp:3192 msgid "Printer scaling X axis correction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3193 src/libslic3r/PrintConfig.cpp:3195 +#: src/libslic3r/PrintConfig.cpp:3199 src/libslic3r/PrintConfig.cpp:3201 msgid "Printer scaling correction in Y axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3194 +#: src/libslic3r/PrintConfig.cpp:3200 msgid "Printer scaling Y axis correction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3201 src/libslic3r/PrintConfig.cpp:3203 +#: src/libslic3r/PrintConfig.cpp:3207 src/libslic3r/PrintConfig.cpp:3209 msgid "Printer scaling correction in Z axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3202 +#: src/libslic3r/PrintConfig.cpp:3208 msgid "Printer scaling Z axis correction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3209 src/libslic3r/PrintConfig.cpp:3210 +#: src/libslic3r/PrintConfig.cpp:3215 src/libslic3r/PrintConfig.cpp:3216 msgid "Printer absolute correction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3211 +#: src/libslic3r/PrintConfig.cpp:3217 msgid "" "Will inflate or deflate the sliced 2D polygons according to the sign of the " "correction." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3217 +#: src/libslic3r/PrintConfig.cpp:3223 msgid "Elephant foot minimum width" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3219 +#: src/libslic3r/PrintConfig.cpp:3225 msgid "" "Minimum width of features to maintain when doing elephant foot compensation." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3226 src/libslic3r/PrintConfig.cpp:3227 +#: src/libslic3r/PrintConfig.cpp:3232 src/libslic3r/PrintConfig.cpp:3233 msgid "Printer gamma correction" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3228 +#: src/libslic3r/PrintConfig.cpp:3234 msgid "" "This will apply a gamma correction to the rasterized 2D polygons. A gamma " "value of zero means thresholding with the threshold in the middle. This " "behaviour eliminates antialiasing without losing holes in polygons." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3247 src/libslic3r/PrintConfig.cpp:3248 +#: src/libslic3r/PrintConfig.cpp:3253 src/libslic3r/PrintConfig.cpp:3254 msgid "SLA material type" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3259 src/libslic3r/PrintConfig.cpp:3260 +#: src/libslic3r/PrintConfig.cpp:3265 src/libslic3r/PrintConfig.cpp:3266 msgid "Initial layer height" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3266 src/libslic3r/PrintConfig.cpp:3267 +#: src/libslic3r/PrintConfig.cpp:3272 src/libslic3r/PrintConfig.cpp:3273 msgid "Bottle volume" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3268 +#: src/libslic3r/PrintConfig.cpp:3274 msgid "ml" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3273 src/libslic3r/PrintConfig.cpp:3274 +#: src/libslic3r/PrintConfig.cpp:3279 src/libslic3r/PrintConfig.cpp:3280 msgid "Bottle weight" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3275 +#: src/libslic3r/PrintConfig.cpp:3281 msgid "kg" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3282 +#: src/libslic3r/PrintConfig.cpp:3288 msgid "g/ml" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3289 +#: src/libslic3r/PrintConfig.cpp:3295 msgid "money/bottle" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3294 +#: src/libslic3r/PrintConfig.cpp:3300 msgid "Faded layers" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3295 +#: src/libslic3r/PrintConfig.cpp:3301 msgid "" "Number of the layers needed for the exposure time fade from initial exposure " "time to the exposure time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3302 src/libslic3r/PrintConfig.cpp:3303 +#: src/libslic3r/PrintConfig.cpp:3308 src/libslic3r/PrintConfig.cpp:3309 msgid "Minimum exposure time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3310 src/libslic3r/PrintConfig.cpp:3311 +#: src/libslic3r/PrintConfig.cpp:3316 src/libslic3r/PrintConfig.cpp:3317 msgid "Maximum exposure time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3318 src/libslic3r/PrintConfig.cpp:3319 +#: src/libslic3r/PrintConfig.cpp:3324 src/libslic3r/PrintConfig.cpp:3325 msgid "Exposure time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3325 src/libslic3r/PrintConfig.cpp:3326 +#: src/libslic3r/PrintConfig.cpp:3331 src/libslic3r/PrintConfig.cpp:3332 msgid "Minimum initial exposure time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3333 src/libslic3r/PrintConfig.cpp:3334 +#: src/libslic3r/PrintConfig.cpp:3339 src/libslic3r/PrintConfig.cpp:3340 msgid "Maximum initial exposure time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3341 src/libslic3r/PrintConfig.cpp:3342 +#: src/libslic3r/PrintConfig.cpp:3347 src/libslic3r/PrintConfig.cpp:3348 msgid "Initial exposure time" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3348 src/libslic3r/PrintConfig.cpp:3349 +#: src/libslic3r/PrintConfig.cpp:3354 src/libslic3r/PrintConfig.cpp:3355 msgid "Correction for expansion" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3355 src/libslic3r/PrintConfig.cpp:3356 +#: src/libslic3r/PrintConfig.cpp:3361 src/libslic3r/PrintConfig.cpp:3362 msgid "Correction for expansion in X axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3362 src/libslic3r/PrintConfig.cpp:3363 +#: src/libslic3r/PrintConfig.cpp:3368 src/libslic3r/PrintConfig.cpp:3369 msgid "Correction for expansion in Y axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3369 src/libslic3r/PrintConfig.cpp:3370 +#: src/libslic3r/PrintConfig.cpp:3375 src/libslic3r/PrintConfig.cpp:3376 msgid "Correction for expansion in Z axis" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3376 +#: src/libslic3r/PrintConfig.cpp:3382 msgid "SLA print material notes" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3377 +#: src/libslic3r/PrintConfig.cpp:3383 msgid "You can put your notes regarding the SLA print material here." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3389 src/libslic3r/PrintConfig.cpp:3400 +#: src/libslic3r/PrintConfig.cpp:3395 src/libslic3r/PrintConfig.cpp:3406 msgid "Default SLA material profile" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3411 +#: src/libslic3r/PrintConfig.cpp:3417 msgid "Generate supports" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3413 +#: src/libslic3r/PrintConfig.cpp:3419 msgid "Generate supports for the models" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3418 +#: src/libslic3r/PrintConfig.cpp:3424 msgid "Pinhead front diameter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3420 +#: src/libslic3r/PrintConfig.cpp:3426 msgid "Diameter of the pointing side of the head" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3427 +#: src/libslic3r/PrintConfig.cpp:3433 msgid "Head penetration" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3429 +#: src/libslic3r/PrintConfig.cpp:3435 msgid "How much the pinhead has to penetrate the model surface" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3436 +#: src/libslic3r/PrintConfig.cpp:3442 msgid "Pinhead width" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3438 +#: src/libslic3r/PrintConfig.cpp:3444 msgid "Width from the back sphere center to the front sphere center" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3446 +#: src/libslic3r/PrintConfig.cpp:3452 msgid "Pillar diameter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3448 +#: src/libslic3r/PrintConfig.cpp:3454 msgid "Diameter in mm of the support pillars" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3456 +#: src/libslic3r/PrintConfig.cpp:3462 msgid "Small pillar diameter percent" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3458 +#: src/libslic3r/PrintConfig.cpp:3464 msgid "" "The percentage of smaller pillars compared to the normal pillar diameter " "which are used in problematic areas where a normal pilla cannot fit." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3467 +#: src/libslic3r/PrintConfig.cpp:3473 msgid "Max bridges on a pillar" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3469 +#: src/libslic3r/PrintConfig.cpp:3475 msgid "" "Maximum number of bridges that can be placed on a pillar. Bridges hold " "support point pinheads and connect to pillars as small branches." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3477 +#: src/libslic3r/PrintConfig.cpp:3483 msgid "Pillar connection mode" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3478 +#: src/libslic3r/PrintConfig.cpp:3484 msgid "" "Controls the bridge type between two neighboring pillars. Can be zig-zag, " "cross (double zig-zag) or dynamic which will automatically switch between " "the first two depending on the distance of the two pillars." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3486 +#: src/libslic3r/PrintConfig.cpp:3492 msgid "Zig-Zag" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3487 +#: src/libslic3r/PrintConfig.cpp:3493 msgid "Cross" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3488 +#: src/libslic3r/PrintConfig.cpp:3494 msgid "Dynamic" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3500 +#: src/libslic3r/PrintConfig.cpp:3506 msgid "Pillar widening factor" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3502 +#: src/libslic3r/PrintConfig.cpp:3508 msgid "" "Merging bridges or pillars into another pillars can increase the radius. " "Zero means no increase, one means full increase." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3511 +#: src/libslic3r/PrintConfig.cpp:3517 msgid "Support base diameter" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3513 +#: src/libslic3r/PrintConfig.cpp:3519 msgid "Diameter in mm of the pillar base" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3521 +#: src/libslic3r/PrintConfig.cpp:3527 msgid "Support base height" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3523 +#: src/libslic3r/PrintConfig.cpp:3529 msgid "The height of the pillar base cone" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3530 +#: src/libslic3r/PrintConfig.cpp:3536 msgid "Support base safety distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3533 +#: src/libslic3r/PrintConfig.cpp:3539 msgid "" "The minimum distance of the pillar base from the model in mm. Makes sense in " "zero elevation mode where a gap according to this parameter is inserted " "between the model and the pad." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3543 +#: src/libslic3r/PrintConfig.cpp:3549 msgid "Critical angle" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3545 +#: src/libslic3r/PrintConfig.cpp:3551 msgid "The default angle for connecting support sticks and junctions." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3553 +#: src/libslic3r/PrintConfig.cpp:3559 msgid "Max bridge length" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3555 +#: src/libslic3r/PrintConfig.cpp:3561 msgid "The max length of a bridge" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3562 +#: src/libslic3r/PrintConfig.cpp:3568 msgid "Max pillar linking distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3564 +#: src/libslic3r/PrintConfig.cpp:3570 msgid "" "The max distance of two pillars to get linked with each other. A zero value " "will prohibit pillar cascading." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3574 +#: src/libslic3r/PrintConfig.cpp:3580 msgid "" "How much the supports should lift up the supported object. If \"Pad around " "object\" is enabled, this value is ignored." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3585 +#: src/libslic3r/PrintConfig.cpp:3591 msgid "This is a relative measure of support points density." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3591 +#: src/libslic3r/PrintConfig.cpp:3597 msgid "Minimal distance of the support points" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3593 +#: src/libslic3r/PrintConfig.cpp:3599 msgid "No support points will be placed closer than this threshold." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3599 +#: src/libslic3r/PrintConfig.cpp:3605 msgid "Use pad" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3601 +#: src/libslic3r/PrintConfig.cpp:3607 msgid "Add a pad underneath the supported model" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3606 +#: src/libslic3r/PrintConfig.cpp:3612 msgid "Pad wall thickness" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3608 +#: src/libslic3r/PrintConfig.cpp:3614 msgid "The thickness of the pad and its optional cavity walls." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3616 +#: src/libslic3r/PrintConfig.cpp:3622 msgid "Pad wall height" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3617 +#: src/libslic3r/PrintConfig.cpp:3623 msgid "" "Defines the pad cavity depth. Set to zero to disable the cavity. Be careful " "when enabling this feature, as some resins may produce an extreme suction " @@ -13286,111 +13362,111 @@ msgid "" "difficult." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3630 +#: src/libslic3r/PrintConfig.cpp:3636 msgid "Pad brim size" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3631 +#: src/libslic3r/PrintConfig.cpp:3637 msgid "How far should the pad extend around the contained geometry" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3641 +#: src/libslic3r/PrintConfig.cpp:3647 msgid "Max merge distance" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3643 +#: src/libslic3r/PrintConfig.cpp:3649 msgid "" "Some objects can get along with a few smaller pads instead of a single big " "one. This parameter defines how far the center of two smaller pads should " "be. If theyare closer, they will get merged into one pad." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3663 +#: src/libslic3r/PrintConfig.cpp:3669 msgid "Pad wall slope" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3665 +#: src/libslic3r/PrintConfig.cpp:3671 msgid "" "The slope of the pad wall relative to the bed plane. 90 degrees means " "straight walls." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3676 +#: src/libslic3r/PrintConfig.cpp:3682 msgid "Create pad around object and ignore the support elevation" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3681 +#: src/libslic3r/PrintConfig.cpp:3687 msgid "Pad around object everywhere" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3683 +#: src/libslic3r/PrintConfig.cpp:3689 msgid "Force pad around object everywhere" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3688 +#: src/libslic3r/PrintConfig.cpp:3694 msgid "Pad object gap" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3690 +#: src/libslic3r/PrintConfig.cpp:3696 msgid "" "The gap between the object bottom and the generated pad in zero elevation " "mode." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3699 +#: src/libslic3r/PrintConfig.cpp:3705 msgid "Pad object connector stride" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3701 +#: src/libslic3r/PrintConfig.cpp:3707 msgid "" "Distance between two connector sticks which connect the object and the " "generated pad." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3708 +#: src/libslic3r/PrintConfig.cpp:3714 msgid "Pad object connector width" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3710 +#: src/libslic3r/PrintConfig.cpp:3716 msgid "" "Width of the connector sticks which connect the object and the generated pad." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3717 +#: src/libslic3r/PrintConfig.cpp:3723 msgid "Pad object connector penetration" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3720 +#: src/libslic3r/PrintConfig.cpp:3726 msgid "How much should the tiny connectors penetrate into the model body." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3727 +#: src/libslic3r/PrintConfig.cpp:3733 msgid "Enable hollowing" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3729 +#: src/libslic3r/PrintConfig.cpp:3735 msgid "Hollow out a model to have an empty interior" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3734 +#: src/libslic3r/PrintConfig.cpp:3740 msgid "Wall thickness" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3736 +#: src/libslic3r/PrintConfig.cpp:3742 msgid "Minimum wall thickness of a hollowed model." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3744 +#: src/libslic3r/PrintConfig.cpp:3750 msgid "Accuracy" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3746 +#: src/libslic3r/PrintConfig.cpp:3752 msgid "" "Performance vs accuracy of calculation. Lower values may produce unwanted " "artifacts." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3756 +#: src/libslic3r/PrintConfig.cpp:3762 msgid "" "Hollowing is done in two steps: first, an imaginary interior is calculated " "deeper (offset plus the closing distance) in the object and then it's " @@ -13399,240 +13475,240 @@ msgid "" "most." msgstr "" -#: src/libslic3r/PrintConfig.cpp:3768 +#: src/libslic3r/PrintConfig.cpp:3774 msgid "Print speed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:3770 +#: src/libslic3r/PrintConfig.cpp:3776 msgid "" "A slower printing profile might be necessary when using materials with " "higher viscosity or with some hollowed parts. It slows down the tilt " "movement and adds a delay before exposure." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4232 +#: src/libslic3r/PrintConfig.cpp:4238 msgid "Export OBJ" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4233 +#: src/libslic3r/PrintConfig.cpp:4239 msgid "Export the model(s) as OBJ." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4244 +#: src/libslic3r/PrintConfig.cpp:4250 msgid "Export SLA" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4245 +#: src/libslic3r/PrintConfig.cpp:4251 msgid "Slice the model and export SLA printing layers as PNG." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4250 +#: src/libslic3r/PrintConfig.cpp:4256 msgid "Export 3MF" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4251 +#: src/libslic3r/PrintConfig.cpp:4257 msgid "Export the model(s) as 3MF." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4255 +#: src/libslic3r/PrintConfig.cpp:4261 msgid "Export AMF" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4256 +#: src/libslic3r/PrintConfig.cpp:4262 msgid "Export the model(s) as AMF." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4260 +#: src/libslic3r/PrintConfig.cpp:4266 msgid "Export STL" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4261 +#: src/libslic3r/PrintConfig.cpp:4267 msgid "Export the model(s) as STL." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4266 +#: src/libslic3r/PrintConfig.cpp:4272 msgid "Slice the model and export toolpaths as G-code." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4271 +#: src/libslic3r/PrintConfig.cpp:4277 msgid "G-code viewer" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4272 +#: src/libslic3r/PrintConfig.cpp:4278 msgid "Visualize an already sliced and saved G-code" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4277 +#: src/libslic3r/PrintConfig.cpp:4283 msgid "Slice" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4278 +#: src/libslic3r/PrintConfig.cpp:4284 msgid "" "Slice the model as FFF or SLA based on the printer_technology configuration " "value." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4283 +#: src/libslic3r/PrintConfig.cpp:4289 msgid "Help" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4284 +#: src/libslic3r/PrintConfig.cpp:4290 msgid "Show this help." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4289 +#: src/libslic3r/PrintConfig.cpp:4295 msgid "Help (FFF options)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4290 +#: src/libslic3r/PrintConfig.cpp:4296 msgid "Show the full list of print/G-code configuration options." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4294 +#: src/libslic3r/PrintConfig.cpp:4300 msgid "Help (SLA options)" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4295 +#: src/libslic3r/PrintConfig.cpp:4301 msgid "Show the full list of SLA print configuration options." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4299 +#: src/libslic3r/PrintConfig.cpp:4305 msgid "Output Model Info" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4300 +#: src/libslic3r/PrintConfig.cpp:4306 msgid "Write information about the model to the console." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4304 +#: src/libslic3r/PrintConfig.cpp:4310 msgid "Save config file" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4305 +#: src/libslic3r/PrintConfig.cpp:4311 msgid "Save configuration to the specified file." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4315 +#: src/libslic3r/PrintConfig.cpp:4321 msgid "Align XY" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4316 +#: src/libslic3r/PrintConfig.cpp:4322 msgid "Align the model to the given point." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4321 +#: src/libslic3r/PrintConfig.cpp:4327 msgid "Cut model at the given Z." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4342 +#: src/libslic3r/PrintConfig.cpp:4348 msgid "Center" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4343 +#: src/libslic3r/PrintConfig.cpp:4349 msgid "Center the print around the given center." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4347 +#: src/libslic3r/PrintConfig.cpp:4353 msgid "Don't arrange" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4348 +#: src/libslic3r/PrintConfig.cpp:4354 msgid "" "Do not rearrange the given models before merging and keep their original XY " "coordinates." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4351 +#: src/libslic3r/PrintConfig.cpp:4357 msgid "Ensure on bed" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4352 +#: src/libslic3r/PrintConfig.cpp:4358 msgid "" "Lift the object above the bed when it is partially below. Enabled by " "default, use --no-ensure-on-bed to disable." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4356 +#: src/libslic3r/PrintConfig.cpp:4362 msgid "Duplicate" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4357 +#: src/libslic3r/PrintConfig.cpp:4363 msgid "Multiply copies by this factor." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4361 +#: src/libslic3r/PrintConfig.cpp:4367 msgid "Duplicate by grid" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4362 +#: src/libslic3r/PrintConfig.cpp:4368 msgid "Multiply copies by creating a grid." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4366 +#: src/libslic3r/PrintConfig.cpp:4372 msgid "" "Arrange the supplied models in a plate and merge them in a single model in " "order to perform actions once." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4371 +#: src/libslic3r/PrintConfig.cpp:4377 msgid "" "Try to repair any non-manifold meshes (this option is implicitly added " "whenever we need to slice the model to perform the requested action)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4375 +#: src/libslic3r/PrintConfig.cpp:4381 msgid "Rotation angle around the Z axis in degrees." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4379 +#: src/libslic3r/PrintConfig.cpp:4385 msgid "Rotate around X" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4380 +#: src/libslic3r/PrintConfig.cpp:4386 msgid "Rotation angle around the X axis in degrees." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4384 +#: src/libslic3r/PrintConfig.cpp:4390 msgid "Rotate around Y" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4385 +#: src/libslic3r/PrintConfig.cpp:4391 msgid "Rotation angle around the Y axis in degrees." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4390 +#: src/libslic3r/PrintConfig.cpp:4396 msgid "Scaling factor or percentage." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4395 +#: src/libslic3r/PrintConfig.cpp:4401 msgid "" "Detect unconnected parts in the given model(s) and split them into separate " "objects." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4398 +#: src/libslic3r/PrintConfig.cpp:4404 msgid "Scale to Fit" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4399 +#: src/libslic3r/PrintConfig.cpp:4405 msgid "Scale to fit the given volume." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4408 +#: src/libslic3r/PrintConfig.cpp:4414 msgid "Ignore non-existent config files" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4409 +#: src/libslic3r/PrintConfig.cpp:4415 msgid "Do not fail if a file supplied to --load does not exist." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4412 +#: src/libslic3r/PrintConfig.cpp:4418 msgid "" "Forward-compatibility rule when loading configurations from config files and " "project files (3MF, AMF)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4413 +#: src/libslic3r/PrintConfig.cpp:4419 msgid "" "This version of PrusaSlicer may not understand configurations produced by " "the newest PrusaSlicer versions. For example, newer PrusaSlicer may extend " @@ -13640,80 +13716,80 @@ msgid "" "substitute an unknown value with a default silently or verbosely." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4420 +#: src/libslic3r/PrintConfig.cpp:4426 msgid "Bail out on unknown configuration values" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4421 +#: src/libslic3r/PrintConfig.cpp:4427 msgid "" "Enable reading unknown configuration values by verbosely substituting them " "with defaults." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4422 +#: src/libslic3r/PrintConfig.cpp:4428 msgid "" "Enable reading unknown configuration values by silently substituting them " "with defaults." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4426 +#: src/libslic3r/PrintConfig.cpp:4432 msgid "Load config file" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4427 +#: src/libslic3r/PrintConfig.cpp:4433 msgid "" "Load configuration from the specified file. It can be used more than once to " "load options from multiple files." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4430 +#: src/libslic3r/PrintConfig.cpp:4436 msgid "Output File" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4431 +#: src/libslic3r/PrintConfig.cpp:4437 msgid "" "The file where the output will be written (if not specified, it will be " "based on the input file)." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4435 +#: src/libslic3r/PrintConfig.cpp:4441 msgid "Single instance mode" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4436 +#: src/libslic3r/PrintConfig.cpp:4442 msgid "" "If enabled, the command line arguments are sent to an existing instance of " "GUI PrusaSlicer, or an existing PrusaSlicer window is activated. Overrides " "the \"single_instance\" configuration value from application preferences." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4447 +#: src/libslic3r/PrintConfig.cpp:4453 msgid "Data directory" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4448 +#: src/libslic3r/PrintConfig.cpp:4454 msgid "" "Load and store settings at the given directory. This is useful for " "maintaining different profiles or including configurations from a network " "storage." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4451 +#: src/libslic3r/PrintConfig.cpp:4457 msgid "Logging level" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4452 +#: src/libslic3r/PrintConfig.cpp:4458 msgid "" "Sets logging sensitivity. 0:fatal, 1:error, 2:warning, 3:info, 4:debug, 5:" "trace\n" "For example. loglevel=2 logs fatal, error and warning level messages." msgstr "" -#: src/libslic3r/PrintConfig.cpp:4458 +#: src/libslic3r/PrintConfig.cpp:4464 msgid "Render with a software renderer" msgstr "" -#: src/libslic3r/PrintConfig.cpp:4459 +#: src/libslic3r/PrintConfig.cpp:4465 msgid "" "Render with a software renderer. The bundled MESA software renderer is " "loaded instead of the default OpenGL driver." @@ -13796,7 +13872,7 @@ msgid "Different layer height for each model\nDid you know that you can print ea msgstr "" #: resources/data/hints.ini: [hint:Solid infill threshold area] -msgid "Solid infill threshold area\nDid you know that you can make parts of your model with a small cross-section be filled with solid infill automatically? Set theSolid infill threshold area.(Expert mode only.)" +msgid "Solid infill threshold area\nDid you know that you can make parts of your model with a small cross-section be filled with solid infill automatically? Set theSolid infill threshold area.(Expert mode only.)" msgstr "" #: resources/data/hints.ini: [hint:Search functionality] @@ -13848,7 +13924,7 @@ msgid "Insert Custom G-code\nDid you know that you can insert a custom G-code at msgstr "" #: resources/data/hints.ini: [hint:Configuration snapshots] -msgid "Configuration snapshots\nDid you know that roll back to a complete backup of all system and user profiles? You can view and move back and forth between snapshots using the Configuration - Configuration snapshots menu." +msgid "Configuration snapshots\nDid you know that you can roll back to a complete backup of all system and user profiles? You can view and move back and forth between snapshots using the Configuration - Configuration snapshots menu." msgstr "" #: resources/data/hints.ini: [hint:Minimum shell thickness] diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index 996d6b2c2..42da89999 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -381,7 +381,7 @@ void PreferencesDialog::build(size_t selected_tab) def.label = L("Suppress to open hyperlink in browser"); def.type = coBool; - def.tooltip = L("If enabled, PrusaSlicer will not open a hyperlinks in your browser."); + def.tooltip = L("If enabled, PrusaSlicer will not open hyperlinks in your browser."); //def.tooltip = ("If enabled, the descriptions of configuration parameters in settings tabs wouldn't work as hyperlinks. " // "If disabled, the descriptions of configuration parameters in settings tabs will work as hyperlinks."); def.set_default_value(new ConfigOptionBool{ app_config->get("suppress_hyperlinks") == "1" });